diff --git a/.docker/etc/crontabs/www b/.docker/etc/crontabs/www deleted file mode 100644 index 36cba15..0000000 --- a/.docker/etc/crontabs/www +++ /dev/null @@ -1 +0,0 @@ -* * * * * php /www/artisan schedule:run >> /dev/null 2>&1 \ No newline at end of file diff --git a/.docker/etc/nginx/http.d/default.conf b/.docker/etc/nginx/http.d/default.conf deleted file mode 100644 index 5c0acb1..0000000 --- a/.docker/etc/nginx/http.d/default.conf +++ /dev/null @@ -1,41 +0,0 @@ -server { - listen 7001 default_server; - listen [::]:7001 default_server; - - root /www/public/; - index index.html index.htm; - - server_name _; - - # 开启 brotli 压缩 - brotli on; - brotli_static on; - brotli_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; - - # 开启 gzip 压缩 - gzip on; - gzip_static on; - gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; - - location ~* \.(jpg|jpeg|png|gif|js|css|svg|woff2|woff|ttf|eot|wasm|json|ico|html|htm)$ { - } - - location ~ .* { - proxy_pass http://127.0.0.1:7010; - proxy_http_version 1.1; - proxy_set_header Connection ""; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Real-PORT $remote_port; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $http_host; - proxy_set_header Scheme $scheme; - proxy_set_header Server-Protocol $server_protocol; - proxy_set_header Server-Name $server_name; - proxy_set_header Server-Addr $server_addr; - proxy_set_header Server-Port $server_port; - } - - location ~ /\.ht { - deny all; - } -} \ No newline at end of file diff --git a/.docker/etc/supervisor/supervisord.conf b/.docker/etc/supervisor/supervisord.conf deleted file mode 100644 index 018e54b..0000000 --- a/.docker/etc/supervisor/supervisord.conf +++ /dev/null @@ -1,83 +0,0 @@ -[supervisord] -nodaemon=true -user=root -logfile=/dev/null -logfile_maxbytes=0 -pidfile=/tmp/supervisord.pid - -[unix_http_server] -file=/run/supervisord.sock -chmod=0700 - -[rpcinterface:supervisor] -supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface - -[program:chown] -directory=/www -command=sh -c "chown -R www:www /www && chmod -R 775 /www" -autostart=true -autorestart=false -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 -stderr_logfile=/dev/stderr -stderr_logfile_maxbytes=0 - -[program:nginx] -command=nginx -g 'daemon off;' -user=root -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 -stderr_logfile=/dev/stderr -stderr_logfile_maxbytes=0 -autostart=true -autorestart=true -startretries=10 - -[program:cron] -command=crond -f -l 8 -user=root -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 -stderr_logfile=/dev/stderr -stderr_logfile_maxbytes=0 -autostart=true -autorestart=true -startretries=10 - -; [program:laravels] -; command=php bin/laravels start -; directory=/www -; user=www-data -; numprocs=1 -; stdout_logfile=/dev/stdout -; stdout_logfile_maxbytes=0 -; stderr_logfile=/dev/stderr -; stderr_logfile_maxbytes=0 -; autostart=true -; autorestart=true -; startretries=3 - -[program:adapterman] -command=php -c php.ini webman.php start -directory=/www -user=www -numprocs=1 -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 -stderr_logfile=/dev/stderr -stderr_logfile_maxbytes=0 -autostart=true -autorestart=true -startretries=10 - -[program:xboard-queue] -command=php artisan horizon -directory=/www -user=www -stdout_logfile=/www/storage/logs/queue.log -stdout_logfile_maxbytes=0 -stderr_logfile=/www/storage/logs/queue_error.log -stderr_logfile_maxbytes=0 -autostart=true -autorestart=true -startretries=10 diff --git a/.docker/services/redis/Dockerfile b/.docker/services/redis/Dockerfile deleted file mode 100644 index 8220abe..0000000 --- a/.docker/services/redis/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM redis:7-alpine - -RUN mkdir -p /run/redis-socket && chmod 777 /run/redis-socket -COPY ./redis.conf /etc/redis.conf -CMD ["redis-server", "/etc/redis.conf"] diff --git a/.docker/services/redis/redis.conf b/.docker/services/redis/redis.conf deleted file mode 100644 index b067b4c..0000000 --- a/.docker/services/redis/redis.conf +++ /dev/null @@ -1,7 +0,0 @@ -unixsocket /run/redis-socket/redis.sock -unixsocketperm 777 -port 0 - -save 900 1 -save 300 10 -save 60 10000 diff --git a/.docker/supervisor/supervisord.conf b/.docker/supervisor/supervisord.conf new file mode 100644 index 0000000..768921d --- /dev/null +++ b/.docker/supervisor/supervisord.conf @@ -0,0 +1,64 @@ +[supervisord] +nodaemon=true +user=root +logfile=/dev/stdout +logfile_maxbytes=0 +pidfil=/www/storage/logs/supervisor/supervisord.pid +loglevel=info + +[program:octane] +process_name=%(program_name)s_%(process_num)02d +command=php /www/artisan octane:start --host=0.0.0.0 --port=7001 +autostart=%(ENV_ENABLE_WEB)s +autorestart=true +user=www +redirect_stderr=true +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stdout_logfile_backups=0 +numprocs=1 +stopwaitsecs=10 +stopsignal=QUIT +stopasgroup=true +killasgroup=true +priority=100 + +[program:horizon] +process_name=%(program_name)s_%(process_num)02d +command=php /www/artisan horizon +autostart=%(ENV_ENABLE_HORIZON)s +autorestart=true +user=www +redirect_stderr=true +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stdout_logfile_backups=0 +numprocs=1 +stopwaitsecs=3 +stopsignal=SIGINT +stopasgroup=true +killasgroup=true +priority=200 + +[program:redis] +process_name=%(program_name)s_%(process_num)02d +command=redis-server --dir /data + --dbfilename dump.rdb + --save 900 1 + --save 300 10 + --save 60 10000 + --unixsocket /data/redis.sock + --unixsocketperm 777 +autostart=%(ENV_ENABLE_REDIS)s +autorestart=true +user=redis +redirect_stderr=true +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stdout_logfile_backups=0 +numprocs=1 +stopwaitsecs=3 +stopsignal=TERM +stopasgroup=true +killasgroup=true +priority=300 \ No newline at end of file diff --git a/.dockerignore b/.dockerignore index c86c433..3b0ee11 100644 --- a/.dockerignore +++ b/.dockerignore @@ -23,3 +23,4 @@ docker-compose.yml storage/laravels.conf storage/laravels.pid storage/laravels-timer-process.pid +/frontend diff --git a/.env.example b/.env.example index 2bffe56..7950762 100755 --- a/.env.example +++ b/.env.example @@ -4,7 +4,6 @@ APP_KEY=base64:PZXk5vTuTinfeEVG5FpYv2l6WEhLsyvGpiWK7IgJJ60= APP_DEBUG=false APP_URL=http://localhost -ADMIN_SETTING_CACHE=60 #设置缓存时间(单位秒) LOG_CHANNEL=stack DB_CONNECTION=mysql diff --git a/.github/ISSUE_TEMPLATE/bug-report----问题反馈.md b/.github/ISSUE_TEMPLATE/bug-report----问题反馈.md index beeb6eb..578ef2e 100644 --- a/.github/ISSUE_TEMPLATE/bug-report----问题反馈.md +++ b/.github/ISSUE_TEMPLATE/bug-report----问题反馈.md @@ -1,43 +1,39 @@ --- -name: Bug report | 问题反馈 -about: Tell us what problems you have encountered -title: "[BUG]" -labels: '' +name: 🐛 问题反馈 | Bug Report +about: 提交使用过程中遇到的问题 | Report an issue +title: "问题:" +labels: '🐛 bug' assignees: '' - --- -🙇‍♂️🙇‍♂️🙇‍♂️注意:XrayR等非XBoard问题请前往项目方提问 -🙇‍♂️🙇‍♂️🙇‍♂️Note: XrayR and other non-XBoard issues please go to the project side to ask questions + + + +> ⚠️ 请务必按照模板填写完整信息,没有详细描述的issue可能会被忽略或关闭 +> ⚠️ Please follow the template to provide complete information, issues without detailed description may be ignored or closed + +**基本信息 | Basic Info** +```yaml +XBoard版本 | Version: +部署方式 | Deployment: [Docker/手动部署] +PHP版本 | Version: +数据库 | Database: +``` + +**问题描述 | Description** + -The XBoard version number you are using -当前使用的XBoard版本号(git commit id) --------- +**复现步骤 | Steps** + +1. +2. -Would you like to deploy using Docker? -你的部署方式(是否为Docker) --------- +**相关截图 | Screenshots** + - -Please briefly describe the issue you encountered (preferably with reproducible steps). -简单描述你遇到的问题(最好带上复现步骤) --------- - - - -Screenshot of the reported error(Please do desensitization) -报告错误的截图(请做脱敏处理) --------- - - - -Screenshot of the reported error(Please do desensitization) -报告错误的截图(请做脱敏处理) --------- - - - -Run the php artisan log:export 7 command to export log files (where 7 represents logs for the last 7 days). -运行`php artisan log:export 7` 命令导出的日志文件(其中7为最近7天的日志)。 --------- +**日志信息 | Logs** + +```log +// 粘贴日志内容到这里 +``` diff --git a/.github/ISSUE_TEMPLATE/feature-request---功能请求.md b/.github/ISSUE_TEMPLATE/feature-request---功能请求.md index f025311..f1374ec 100644 --- a/.github/ISSUE_TEMPLATE/feature-request---功能请求.md +++ b/.github/ISSUE_TEMPLATE/feature-request---功能请求.md @@ -1,11 +1,28 @@ --- -name: Feature request | 功能请求 -about: Tell us what you need -title: "[Feature request]" -labels: '' +name: ✨ 功能请求 | Feature Request +about: 提交新功能建议或改进意见 | Suggest an idea +title: "建议:" +labels: '✨ enhancement' assignees: '' - --- -Please describe in detail the problems or needs you have encountered. -请详细描述你遇到的问题或需求。 +> ⚠️ 请务必按照模板详细描述你的需求,没有详细描述的issue可能会被忽略或关闭 +> ⚠️ Please follow the template to describe your request in detail, issues without detailed description may be ignored or closed + +**需求描述 | Description** + + + +**使用场景 | Use Case** + + + +**功能建议 | Suggestion** + +```yaml +功能形式 | Type: [新功能/功能优化/界面改进] +预期效果 | Expected: +``` + +**补充说明 | Additional** + diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 00dd386..155944e 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -1,89 +1,93 @@ -name: Docker - -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. +name: Docker Build and Publish on: push: - branches: [ "dev" ] - # Publish semver tags as releases. - tags: [ 'v*.*.*' ] - workflow_dispatch: # Enable manual trigger + branches: ["master"] + workflow_dispatch: env: - # Use docker.io for Docker Hub if empty REGISTRY: ghcr.io - # github.repository as / IMAGE_NAME: ${{ github.repository }} - jobs: build: - runs-on: ubuntu-latest permissions: contents: read packages: write - # This is used to complete the identity challenge - # with sigstore/fulcio when running outside of PRs. id-token: write steps: - - name: Checkout repository - uses: actions/checkout@v3 - - uses: satackey/action-docker-layer-caching@v0.0.11 - continue-on-error: true + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Set up QEMU uses: docker/setup-qemu-action@v3 + with: + platforms: 'arm64,amd64' + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + platforms: linux/amd64,linux/arm64 + driver-opts: | + image=moby/buildkit:latest + + - name: Login to registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=sha,format=long + type=raw,value=new + + - name: Get version + id: get_version + run: echo "version=$(git describe --tags --always)" >> $GITHUB_OUTPUT + + - name: Update version in app.php + run: | + VERSION=$(date '+%Y%m%d')-$(git rev-parse --short HEAD) + sed -i "s/'version' => '.*'/'version' => '$VERSION'/g" config/app.php + echo "Updated version to: $VERSION" + + - name: Build and push + id: build-and-push + uses: docker/build-push-action@v5 + with: + context: . + push: true + platforms: linux/amd64,linux/arm64 + cache-from: type=gha + cache-to: type=gha,mode=max + tags: | + ${{ env.REGISTRY }}/${{ github.repository_owner }}/xboard:master + ${{ env.REGISTRY }}/${{ github.repository_owner }}/xboard:latest + ${{ env.REGISTRY }}/${{ github.repository_owner }}/xboard + ${{ env.REGISTRY }}/${{ github.repository_owner }}/xboard:${{ steps.get_version.outputs.version }} + build-args: | + BUILDKIT_INLINE_CACHE=1 + provenance: false - name: Install cosign uses: sigstore/cosign-installer@v3.4.0 with: cosign-release: 'v2.2.2' - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.2.0 - - # Login against a Docker registry except on PR - # https://github.com/docker/login-action - - name: Log into registry ${{ env.REGISTRY }} - uses: docker/login-action@v3.1.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract Docker metadata - id: meta - uses: docker/metadata-action@v5.5.1 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - - name: Get version - id: get_version - run: echo "version=$(git describe --tags --always)" >> $GITHUB_OUTPUT - - - name: Build and push Docker image - id: build-and-push - uses: docker/build-push-action@v5.3.0 - with: - context: . - push: true - platforms: linux/amd64,linux/arm64 - tags: ${{ env.REGISTRY }}/${{ github.repository_owner }}/xboard:latest,${{ env.REGISTRY }}/${{ github.repository_owner }}/xboard,${{ env.REGISTRY }}/${{ github.repository_owner }}/xboard:${{ steps.get_version.outputs.version }} - # Sign the resulting Docker image digest except on PRs. - # This will only write to the public Rekor transparency log when the Docker - # repository is public to avoid leaking data. If you would like to publish - # transparency data even for private images, pass --force to cosign below. - # https://github.com/sigstore/cosign - - name: Sign the published Docker image + - name: Sign image + if: steps.build-and-push.outputs.digest != '' env: - # https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable - TAGS: ${{ steps.meta.outputs.tags }} - DIGEST: ${{ steps.build-and-push.outputs.digest }} - # This step uses the identity token to provision an ephemeral certificate - # against the sigstore community Fulcio instance. - run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST} + COSIGN_EXPERIMENTAL: 1 + run: | + echo "${{ steps.meta.outputs.tags }}" | xargs -I {} cosign sign --yes "{}@${{ steps.build-and-push.outputs.digest }}" diff --git a/.gitignore b/.gitignore index fd66ac0..6ce6c19 100755 --- a/.gitignore +++ b/.gitignore @@ -27,4 +27,7 @@ storage/laravels.pid storage/laravels-timer-process.pid cli-php.ini frontend -docker-compose.yaml \ No newline at end of file +docker-compose.yaml +bun.lockb +compose.yaml +.scribe \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 3ce274a..e1e4bf6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,27 @@ -FROM phpswoole/swoole:php8.1-alpine +FROM phpswoole/swoole:php8.2-alpine COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ +RUN install-php-extensions pcntl bcmath zip redis \ + && apk --no-cache add shadow sqlite mysql-client mysql-client mysql-dev mariadb-connector-c git patch supervisor redis \ + && addgroup -S -g 1000 www && adduser -S -G www -u 1000 www \ + && (getent group redis || addgroup -S redis) \ + && (getent passwd redis || adduser -S -G redis -H -h /data redis) -RUN install-php-extensions pcntl bcmath inotify \ -&& apk --no-cache add shadow supervisor nginx sqlite nginx-mod-http-brotli mysql-client git patch \ -&& addgroup -S -g 1000 www && adduser -S -G www -u 1000 www -#复制项目文件以及配置文件 WORKDIR /www COPY .docker / COPY . /www -RUN composer install --optimize-autoloader --no-cache --no-dev \ -&& php artisan storage:link \ -&& chown -R www:www /www \ -&& chmod -R 775 /www +COPY .docker/supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf -CMD /usr/bin/supervisord --nodaemon -c /etc/supervisor/supervisord.conf \ No newline at end of file +RUN composer install --optimize-autoloader --no-cache --no-dev \ + && php artisan storage:link \ + && chown -R www:www /www \ + && chmod -R 775 /www \ + && mkdir -p /data \ + && chown redis:redis /data + +ENV ENABLE_WEB=true \ + ENABLE_HORIZON=true \ + ENABLE_REDIS=false + +EXPOSE 7001 +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] \ No newline at end of file diff --git a/README.md b/README.md index 740050d..2b39cb9 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,91 @@ -# 关于Xboard -Xboard是基于V2board二次开发,在性能上和功能上都有大部分增强的**面板 +# Xboard -# 免责声明 -本项目只是本人个人学习开发并维护,本人不保证任何可用性,也不对使用本软件造成的任何后果负责。 +
-# Xboard 特点 -基于V2board 二次开发,增加了以下特性 -- 升级Laravel10 -- 适配Laravels (提升至10+倍并发) -- 适配Webman (比laravels快50%左右) -- 修改配置从数据库中获取 -- 支持Docker部署、分布式部署 -- 支持根据用户IP归属地来下发订阅 -- 增加Hy2支持 -- 增加sing-box下发 -- 支持直接从cloudflare获取访问者真实IP -- 支持根据客户端版本自动下发新协议 -- 支持线路筛选(订阅地址后面增加 &filter=香港|美国) -- 支持Sqlite安装(代替Mysql,自用用户福音) -- 使用Vue3 + TypeScript + NaiveUI + Unocss + Pinia重构用户前端 -- 修复大量BUG +[![Telegram](https://img.shields.io/badge/Telegram-Channel-blue)](https://t.me/XboardOfficial) +![PHP](https://img.shields.io/badge/PHP-8.2+-green.svg) +![MySQL](https://img.shields.io/badge/MySQL-5.7+-blue.svg) +[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) -# **系统架构** +English | [简体中文](README_CN.md) -- PHP8.1+ -- Composer -- MySQL5.7+ -- Redis -- Laravel +
-## 性能对比 [查看详情](./docs/性能对比.md) -> xboard 无论前端还是后端性能都有巨大的提升 +## 📖 Introduction -|场景 | php-fpm(传统) | php-fpm(传统开启opcache) | laravels | webman(docker)| -|---- | ---- |---- |----| ---| -|首页 | 6请求/秒 | 157请求/秒 | 477请求/秒 | 803请求/秒 | -|用户订阅 | 6请求/秒 | 196请求/秒 | 586请求/秒 | 1064请求/秒 | -|用户首页延迟| 308ms | 110ms | 101ms | 98ms | +Xboard is a modern panel system built on Laravel 11, focusing on providing a clean and efficient user experience. -## 页面展示 -![示例图片](./docs/images/dashboard.png) +## ✨ Features -## 安装 / 更新 / 回滚 -你可以点击查看下列方式的**安装、更新**步骤 -- [1panel 部署](./docs/1panel安装指南.md) -- [Docker Compose 纯命令行快速部署](./docs/docker-compose安装指南.md) -- [aapanel + Docker Compose (推荐)](./docs/aapanel+docker安装指南.md) -- [aapanel 部署](./docs/aapanel安装指南.md) -### 从其他版本迁移 -#### 数据库迁移 -**根据你的版本查看对应的迁移指南进行迁移** -- v2board dev 23/10/27的版本 [点击跳转迁移指南](./docs/v2b_dev迁移指南.md) -- v2board 1.7.4 [点击跳转迁移指南](./docs/v2b_1.7.4迁移指南.md) -- v2board 1.7.3 [点击跳转迁移指南](./docs/v2b_1.7.3迁移指南.md) -- v2board wyx2685 [点击跳转迁移指南](./docs/v2b_wyx2685迁移指南.md) +- 🚀 Built with Laravel 11 + Octane for significant performance gains +- 🎨 Redesigned admin interface (React + Shadcn UI) +- 📱 Modern user frontend (Vue3 + TypeScript) +- 🐳 Ready-to-use Docker deployment solution +- 🎯 Optimized system architecture for better maintainability +## 🚀 Quick Start -### 注意 -> 修改后台路径需要重启才能生效 +```bash +git clone -b compose --depth 1 https://github.com/cedar2025/Xboard && \ +cd Xboard && \ +docker compose run -it --rm \ + -e ENABLE_SQLITE=true \ + -e ENABLE_REDIS=true \ + -e ADMIN_ACCOUNT=admin@demo.com \ + web php artisan xboard:install && \ +docker compose up -d ``` + +> After installation, visit: http://SERVER_IP:7001 +> ⚠️ Make sure to save the admin credentials shown during installation + +## 📖 Documentation + +### 🔄 Upgrade Notice +> 🚨 **Important:** This version involves significant changes. Please strictly follow the upgrade documentation and backup your database before upgrading. Note that upgrading and migration are different processes, do not confuse them. + +### Deployment Guides +- [Deploy with 1Panel](./docs/zh-CN/installation/1panel.md) +- [Deploy with Docker Compose](./docs/zh-CN/installation/docker-compose.md) +- [Deploy with aaPanel](./docs/zh-CN/installation/aapanel.md) +- [Deploy with aaPanel + Docker](./docs/zh-CN/installation/aapanel-docker.md) (Recommended) + +### Migration Guides +- [Migrate from v2board dev](./docs/zh-CN/migration/v2board-dev.md) +- [Migrate from v2board 1.7.4](./docs/zh-CN/migration/v2board-1.7.4.md) +- [Migrate from v2board 1.7.3](./docs/zh-CN/migration/v2board-1.7.3.md) +- [Migrate from v2board wyx2685](./docs/zh-CN/migration/v2board-wyx2685.md) + +## 🛠️ Tech Stack + +- Backend: Laravel 11 + Octane +- Admin Panel: React + Shadcn UI + TailwindCSS +- User Frontend: Vue3 + TypeScript + NaiveUI +- Deployment: Docker + Docker Compose +- Caching: Redis + Octane Cache + +## 📷 Preview +![Admin Preview](./docs/images/admin.png) + +![User Preview](./docs/images/user.png) + +## ⚠️ Disclaimer + +This project is for learning and communication purposes only. Users are responsible for any consequences of using this project. + +## 🔔 Important Notes + +1. Restart required after modifying admin path: +```bash docker compose restart ``` -> 如果是是aapanel安装则需要重启 webman守护进程 + +2. For aaPanel installations, restart the Octane daemon process + +## 🤝 Contributing + +Issues and Pull Requests are welcome to help improve the project. + +## 📈 Star History + +[![Stargazers over time](https://starchart.cc/cedar2025/Xboard.svg)](https://starchart.cc/cedar2025/Xboard) \ No newline at end of file diff --git a/README_CN.md b/README_CN.md new file mode 100644 index 0000000..90ee163 --- /dev/null +++ b/README_CN.md @@ -0,0 +1,96 @@ +# Xboard + +
+ +[![Telegram](https://img.shields.io/badge/Telegram-Channel-blue)](https://t.me/XboardOfficial) +![PHP](https://img.shields.io/badge/PHP-8.2+-green.svg) +![MySQL](https://img.shields.io/badge/MySQL-5.7+-blue.svg) +[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) + +[English](README.md) | 简体中文 + +
+ +## 📖 简介 + +Xboard 是一个基于 Laravel 11 开发的现代化面板系统,专注于提供简洁、高效的用户体验。 + +## ✨ 特性 + +- 🚀 基于 Laravel 11 + Octane,性能提升显著 +- 🎨 全新设计的管理界面 (React + Shadcn UI) +- 📱 现代化的用户前端 (Vue3 + TypeScript) +- 🐳 开箱即用的 Docker 部署方案 +- 🎯 优化的系统架构,提供更好的可维护性 + +## 🚀 快速开始 + +```bash +git clone -b compose --depth 1 https://github.com/cedar2025/Xboard && \ +cd Xboard && \ +docker compose run -it --rm \ + -e ENABLE_SQLITE=true \ + -e ENABLE_REDIS=true \ + -e ADMIN_ACCOUNT=admin@demo.com \ + web php artisan xboard:install && \ +docker compose up -d +``` + +> 安装完成后访问:http://服务器IP:7001 +> ⚠️ 请务必保存安装时显示的管理员账号密码 + +## 📚 使用文档 + +### 🔄 升级提示 +> 🚨 **重要:** 此次版本跨度较大,请严格按照升级文档进行升级,必要时请备份数据库再进行升级。升级跟迁移不是一个东西,请不要混淆。 + +### 部署教程 +- [使用 1Panel 部署](./docs/zh-CN/installation/1panel.md) +- [Docker Compose 部署](./docs/zh-CN/installation/docker-compose.md) +- [使用 aaPanel 部署](./docs/zh-CN/installation/aapanel.md) +- [aaPanel + Docker 部署](./docs/zh-CN/installation/aapanel-docker.md)(推荐) + +### 迁移指南 +- [从 v2board dev 迁移](./docs/zh-CN/migration/v2board-dev.md) +- [从 v2board 1.7.4 迁移](./docs/zh-CN/migration/v2board-1.7.4.md) +- [从 v2board 1.7.3 迁移](./docs/zh-CN/migration/v2board-1.7.3.md) +- [从 v2board wyx2685 迁移](./docs/zh-CN/migration/v2board-wyx2685.md) + +## 🤝 参与贡献 + +欢迎提交 Issue 和 Pull Request 来帮助改进项目。 + +## 🛠️ 技术栈 + +- 后端:Laravel 11 + Octane +- 管理面板:React + Shadcn UI + TailwindCSS +- 用户前端:Vue3 + TypeScript + NaiveUI +- 部署方案:Docker + Docker Compose +- 缓存系统:Redis + Octane Cache + +## 📷 界面预览 + +![管理员后台](./docs/images/admin.png) + +![用户前端](./docs/images/user.png) + +## ⚠️ 免责声明 + +本项目仅供学习交流使用,使用本项目造成的任何后果由使用者自行承担。 + +## 🔔 注意事项 + +1. 修改后台路径后需要重启: +```bash +docker compose restart +``` + +2. aaPanel 环境下需要重启 Octane 守护进程 + +## 🤝 参与贡献 + +欢迎提交 Issue 和 Pull Request 来帮助改进项目。 + +## 📈 Star 增长趋势 + +[![Stargazers over time](https://starchart.cc/cedar2025/Xboard.svg)](https://starchart.cc/cedar2025/Xboard) \ No newline at end of file diff --git a/app/Console/Commands/BackupDatabase.php b/app/Console/Commands/BackupDatabase.php index 22a3c3c..14c82ee 100644 --- a/app/Console/Commands/BackupDatabase.php +++ b/app/Console/Commands/BackupDatabase.php @@ -4,6 +4,8 @@ namespace App\Console\Commands; use Illuminate\Console\Command; use Google\Cloud\Storage\StorageClient; +use Illuminate\Support\Facades\File; +use Illuminate\Support\Facades\Log; use Symfony\Component\Process\Process; class BackupDatabase extends Command @@ -85,14 +87,14 @@ class BackupDatabase extends Command ]); // 输出文件链接 - \Log::channel('backup')->info("🎉:数据库备份已上传到 Google Cloud Storage: $objectName"); + Log::channel('backup')->info("🎉:数据库备份已上传到 Google Cloud Storage: $objectName"); $this->info("🎉:数据库备份已上传到 Google Cloud Storage: $objectName"); - \File::delete($compressedBackupPath); + File::delete($compressedBackupPath); } }catch(\Exception $e){ - \Log::channel('backup')->error("😔:数据库备份失败 \n" . $e); + Log::channel('backup')->error("😔:数据库备份失败 \n" . $e); $this->error("😔:数据库备份失败\n" . $e); - \File::delete($compressedBackupPath); + File::delete($compressedBackupPath); } } } diff --git a/app/Console/Commands/ClearUser.php b/app/Console/Commands/ClearUser.php index 30eb338..cd64abe 100644 --- a/app/Console/Commands/ClearUser.php +++ b/app/Console/Commands/ClearUser.php @@ -45,7 +45,7 @@ class ClearUser extends Command ->where('last_login_at', NULL); $count = $builder->count(); if ($builder->delete()) { - $this->info("已删除${count}位没有任何数据的用户"); + $this->info("已删除{$count}位没有任何数据的用户"); } } } diff --git a/app/Console/Commands/ExportV2Log.php b/app/Console/Commands/ExportV2Log.php index 830ab36..ec2ccbe 100644 --- a/app/Console/Commands/ExportV2Log.php +++ b/app/Console/Commands/ExportV2Log.php @@ -4,6 +4,7 @@ namespace App\Console\Commands; use Illuminate\Console\Command; use Carbon\Carbon; +use Illuminate\Support\Facades\DB; class ExportV2Log extends Command { @@ -20,7 +21,7 @@ class ExportV2Log extends Command $days = $this->argument('days'); $date = Carbon::now()->subDays($days)->startOfDay(); - $logs = \DB::table('v2_log') + $logs = DB::table('v2_log') ->where('created_at', '>=', $date->timestamp) ->get(); diff --git a/app/Console/Commands/MigrateFromV2b.php b/app/Console/Commands/MigrateFromV2b.php index 2209282..ace9c85 100644 --- a/app/Console/Commands/MigrateFromV2b.php +++ b/app/Console/Commands/MigrateFromV2b.php @@ -4,6 +4,8 @@ namespace App\Console\Commands; use App\Models\Setting; use Illuminate\Console\Command; +use Illuminate\Support\Facades\Artisan; +use Illuminate\Support\Facades\DB; class MigrateFromV2b extends Command { @@ -51,11 +53,12 @@ class MigrateFromV2b extends Command ], '1.7.3' => [ 'ALTER TABLE `v2_stat_order` RENAME TO `v2_stat`;', - "ALTER TABLE `v2_stat` CHANGE COLUMN order_amount order_total INT COMMENT '订单合计';", + "ALTER TABLE `v2_stat` CHANGE COLUMN order_amount paid_total INT COMMENT '订单合计';", + "ALTER TABLE `v2_stat` CHANGE COLUMN order_count paid_count INT COMMENT '邀请佣金';", "ALTER TABLE `v2_stat` CHANGE COLUMN commission_amount commission_total INT COMMENT '佣金合计';", "ALTER TABLE `v2_stat` - ADD COLUMN paid_count INT NULL, - ADD COLUMN paid_total INT NULL, + ADD COLUMN order_count INT NULL, + ADD COLUMN order_total INT NULL, ADD COLUMN register_count INT NULL, ADD COLUMN invite_count INT NULL, ADD COLUMN transfer_used_total VARCHAR(32) NULL; @@ -132,7 +135,7 @@ class MigrateFromV2b extends Command try { foreach ($sqlCommands[$version] as $sqlCommand) { // Execute SQL command - \DB::statement($sqlCommand); + DB::statement($sqlCommand); } $this->info('1️⃣、数据库差异矫正成功'); @@ -158,7 +161,7 @@ class MigrateFromV2b extends Command public function MigrateV2ConfigToV2Settings() { - \Artisan::call('config:clear'); + Artisan::call('config:clear'); $configValue = config('v2board') ?? []; foreach ($configValue as $k => $v) { @@ -167,16 +170,16 @@ class MigrateFromV2b extends Command // 如果记录不存在,则插入 if ($existingSetting) { - $this->warn("配置 ${k} 在数据库已经存在, 忽略"); + $this->warn("配置 {$k} 在数据库已经存在, 忽略"); continue; } Setting::create([ 'name' => $k, 'value' => is_array($v)? json_encode($v) : $v, ]); - $this->info("配置 ${k} 迁移成功"); + $this->info("配置 {$k} 迁移成功"); } - \Artisan::call('config:cache'); + Artisan::call('config:cache'); $this->info('所有配置迁移完成'); } diff --git a/app/Console/Commands/SendRemindMail.php b/app/Console/Commands/SendRemindMail.php index 672c37a..996d148 100644 --- a/app/Console/Commands/SendRemindMail.php +++ b/app/Console/Commands/SendRemindMail.php @@ -39,11 +39,16 @@ class SendRemindMail extends Command */ public function handle() { + if (!(bool) admin_setting('remind_mail_enable', false)) { + return; + } $users = User::all(); $mailService = new MailService(); foreach ($users as $user) { - if ($user->remind_expire) $mailService->remindExpire($user); - if ($user->remind_traffic) $mailService->remindTraffic($user); + if ($user->remind_expire) + $mailService->remindExpire($user); + if ($user->remind_traffic) + $mailService->remindTraffic($user); } } } diff --git a/app/Console/Commands/XboardInstall.php b/app/Console/Commands/XboardInstall.php index 434dd10..6d9016c 100644 --- a/app/Console/Commands/XboardInstall.php +++ b/app/Console/Commands/XboardInstall.php @@ -7,6 +7,10 @@ use Illuminate\Encryption\Encrypter; use App\Models\User; use App\Utils\Helper; use Illuminate\Support\Env; +use Illuminate\Support\Facades\Artisan; +use Illuminate\Support\Facades\Config; +use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\File; use function Laravel\Prompts\confirm; use function Laravel\Prompts\text; use function Laravel\Prompts\note; @@ -45,17 +49,17 @@ class XboardInstall extends Command public function handle() { try { - $isDocker = env('docker', false); - $enableSqlite = env('enable_sqlite', false); - $enableRedis = env('enable_redis', false); - $adminAccount = env('admin_account', ''); + $isDocker = file_exists('/.dockerenv'); + $enableSqlite = env('ENABLE_SQLITE', false); + $enableRedis = env('ENABLE_REDIS', false); + $adminAccount = env('ADMIN_ACCOUNT', ''); $this->info("__ __ ____ _ "); $this->info("\ \ / /| __ ) ___ __ _ _ __ __| | "); $this->info(" \ \/ / | __ \ / _ \ / _` | '__/ _` | "); $this->info(" / /\ \ | |_) | (_) | (_| | | | (_| | "); $this->info("/_/ \_\|____/ \___/ \__,_|_| \__,_| "); if ( - (\File::exists(base_path() . '/.env') && $this->getEnvValue('INSTALLED')) + (File::exists(base_path() . '/.env') && $this->getEnvValue('INSTALLED')) || (env('INSTALLED', false) && $isDocker) ) { $securePath = admin_setting('secure_path', admin_setting('frontend_admin_path', hash('crc32b', config('app.key')))); @@ -86,11 +90,11 @@ class XboardInstall extends Command 'DB_PASSWORD' => '', ]; try { - \Config::set("database.default", 'sqlite'); - \Config::set("database.connections.sqlite.database", base_path($envConfig['DB_DATABASE'])); - \DB::purge('sqlite'); - \DB::connection('sqlite')->getPdo(); - if (!blank(\DB::connection('sqlite')->getPdo()->query("SELECT name FROM sqlite_master WHERE type='table'")->fetchAll(\PDO::FETCH_COLUMN))) { + Config::set("database.default", 'sqlite'); + Config::set("database.connections.sqlite.database", base_path($envConfig['DB_DATABASE'])); + DB::purge('sqlite'); + DB::connection('sqlite')->getPdo(); + if (!blank(DB::connection('sqlite')->getPdo()->query("SELECT name FROM sqlite_master WHERE type='table'")->fetchAll(\PDO::FETCH_COLUMN))) { if (confirm(label: '检测到数据库中已经存在数据,是否要清空数据库以便安装新的数据?', default: false, yes: '清空', no: '退出安装')) { $this->info('正在清空数据库请稍等'); $this->call('db:wipe', ['--force' => true]); @@ -115,16 +119,16 @@ class XboardInstall extends Command 'DB_PASSWORD' => text(label: '请输入数据库密码', required: false), ]; try { - \Config::set("database.default", 'mysql'); - \Config::set("database.connections.mysql.host", $envConfig['DB_HOST']); - \Config::set("database.connections.mysql.port", $envConfig['DB_PORT']); - \Config::set("database.connections.mysql.database", $envConfig['DB_DATABASE']); - \Config::set("database.connections.mysql.username", $envConfig['DB_USERNAME']); - \Config::set("database.connections.mysql.password", $envConfig['DB_PASSWORD']); - \DB::purge('mysql'); - \DB::connection('mysql')->getPdo(); + Config::set("database.default", 'mysql'); + Config::set("database.connections.mysql.host", $envConfig['DB_HOST']); + Config::set("database.connections.mysql.port", $envConfig['DB_PORT']); + Config::set("database.connections.mysql.database", $envConfig['DB_DATABASE']); + Config::set("database.connections.mysql.username", $envConfig['DB_USERNAME']); + Config::set("database.connections.mysql.password", $envConfig['DB_PASSWORD']); + DB::purge('mysql'); + DB::connection('mysql')->getPdo(); $isMysqlValid = true; - if (!blank(\DB::connection('mysql')->select('SHOW TABLES'))) { + if (!blank(DB::connection('mysql')->select('SHOW TABLES'))) { if (confirm(label: '检测到数据库中已经存在数据,是否要清空数据库以便安装新的数据?', default: false, yes: '清空', no: '不清空')) { $this->info('正在清空数据库请稍等'); $this->call('db:wipe', ['--force' => true]); @@ -141,12 +145,11 @@ class XboardInstall extends Command } } $envConfig['APP_KEY'] = 'base64:' . base64_encode(Encrypter::generateKey('AES-256-CBC')); - $envConfig['INSTALLED'] = true; $isReidsValid = false; while (!$isReidsValid) { // 判断是否为Docker环境 if ($isDocker == 'true' && ($enableRedis || confirm(label: '是否启用Docker内置的Redis', default: true, yes: '启用', no: '不启用'))) { - $envConfig['REDIS_HOST'] = '/run/redis-socket/redis.sock'; + $envConfig['REDIS_HOST'] = '/data/redis.sock'; $envConfig['REDIS_PORT'] = 0; $envConfig['REDIS_PASSWORD'] = null; } else { @@ -171,6 +174,8 @@ class XboardInstall extends Command // 连接失败,输出错误消息 $this->error("redis连接失败:" . $e->getMessage()); $this->info("请重新输入REDIS配置"); + $enableRedis = false; + sleep(1); } } @@ -191,10 +196,10 @@ class XboardInstall extends Command $this->saveToEnv($envConfig); $this->call('config:cache'); - \Artisan::call('cache:clear'); + Artisan::call('cache:clear'); $this->info('正在导入数据库请稍等...'); - \Artisan::call("migrate", ['--force' => true]); - $this->info(\Artisan::output()); + Artisan::call("migrate", ['--force' => true]); + $this->info(Artisan::output()); $this->info('数据库导入完成'); $this->info('开始注册管理员账号'); if (!$this->registerAdmin($email, $password)) { @@ -206,6 +211,8 @@ class XboardInstall extends Command $defaultSecurePath = hash('crc32b', config('app.key')); $this->info("访问 http(s)://你的站点/{$defaultSecurePath} 进入管理面板,你可以在用户中心修改你的密码。"); + $envConfig['INSTALLED'] = true; + $this->saveToEnv($envConfig); } catch (\Exception $e) { $this->error($e); } diff --git a/app/Console/Commands/XboardStatistics.php b/app/Console/Commands/XboardStatistics.php index c4aaecc..01c275e 100644 --- a/app/Console/Commands/XboardStatistics.php +++ b/app/Console/Commands/XboardStatistics.php @@ -44,8 +44,8 @@ class XboardStatistics extends Command { $startAt = microtime(true); ini_set('memory_limit', -1); - $this->statUser(); - $this->statServer(); + // $this->statUser(); + // $this->statServer(); $this->stat(); info('统计任务执行完毕。耗时:' . (microtime(true) - $startAt) / 1000); } diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 3a39c25..62b2fc7 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -6,6 +6,7 @@ use App\Utils\CacheKey; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Illuminate\Support\Facades\Cache; +use App\Services\UserOnlineService; class Kernel extends ConsoleKernel { @@ -44,6 +45,10 @@ class Kernel extends ConsoleKernel if (env('ENABLE_AUTO_BACKUP_AND_UPDATE', false)) { $schedule->command('backup:database', ['true'])->daily()->onOneServer(); } + // 每分钟清理过期的在线状态 + $schedule->call(function () { + app(UserOnlineService::class)->cleanExpiredOnlineStatus(); + })->everyMinute(); } /** diff --git a/app/Contracts/PaymentInterface.php b/app/Contracts/PaymentInterface.php new file mode 100644 index 0000000..2661362 --- /dev/null +++ b/app/Contracts/PaymentInterface.php @@ -0,0 +1,10 @@ +getContent() ?: json_encode($_POST); - - } -} - if (! function_exists('admin_setting')) { /** * 获取或保存配置参数. diff --git a/app/Http/Controllers/V1/Admin/CouponController.php b/app/Http/Controllers/V1/Admin/CouponController.php deleted file mode 100644 index 4674820..0000000 --- a/app/Http/Controllers/V1/Admin/CouponController.php +++ /dev/null @@ -1,141 +0,0 @@ -input('current') ? $request->input('current') : 1; - $pageSize = $request->input('pageSize') >= 10 ? $request->input('pageSize') : 10; - $sortType = in_array($request->input('sort_type'), ['ASC', 'DESC']) ? $request->input('sort_type') : 'DESC'; - $sort = $request->input('sort') ? $request->input('sort') : 'id'; - $builder = Coupon::orderBy($sort, $sortType); - $total = $builder->count(); - $coupons = $builder->forPage($current, $pageSize) - ->get(); - return response([ - 'data' => $coupons, - 'total' => $total - ]); - } - - public function show(Request $request) - { - $request->validate([ - 'id' => 'required|numeric' - ],[ - 'id.required' => '优惠券ID不能为空', - 'id.numeric' => '优惠券ID必须为数字' - ]); - $coupon = Coupon::find($request->input('id')); - if (!$coupon) { - return $this->fail([400202,'优惠券不存在']); - } - $coupon->show = !$coupon->show; - if (!$coupon->save()) { - return $this->fail([500,'保存失败']); - } - return $this->success(true); - } - - public function generate(CouponGenerate $request) - { - if ($request->input('generate_count')) { - $this->multiGenerate($request); - return; - } - - $params = $request->validated(); - if (!$request->input('id')) { - if (!isset($params['code'])) { - $params['code'] = Helper::randomChar(8); - } - if (!Coupon::create($params)) { - return $this->fail([500,'创建失败']); - } - } else { - try { - Coupon::find($request->input('id'))->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500,'保存失败']); - } - } - - return $this->success(true); - } - - private function multiGenerate(CouponGenerate $request) - { - $coupons = []; - $coupon = $request->validated(); - $coupon['created_at'] = $coupon['updated_at'] = time(); - $coupon['show'] = 1; - unset($coupon['generate_count']); - for ($i = 0;$i < $request->input('generate_count');$i++) { - $coupon['code'] = Helper::randomChar(8); - array_push($coupons, $coupon); - } - try{ - DB::beginTransaction(); - if (!Coupon::insert(array_map(function ($item) use ($coupon) { - // format data - if (isset($item['limit_plan_ids']) && is_array($item['limit_plan_ids'])) { - $item['limit_plan_ids'] = json_encode($coupon['limit_plan_ids']); - } - if (isset($item['limit_period']) && is_array($item['limit_period'])) { - $item['limit_period'] = json_encode($coupon['limit_period']); - } - return $item; - }, $coupons))) { - throw new \Exception(); - } - DB::commit(); - }catch(\Exception $e){ - DB::rollBack(); - return $this->fail([500, '生成失败']); - } - - $data = "名称,类型,金额或比例,开始时间,结束时间,可用次数,可用于订阅,券码,生成时间\r\n"; - foreach($coupons as $coupon) { - $type = ['', '金额', '比例'][$coupon['type']]; - $value = ['', ($coupon['value'] / 100),$coupon['value']][$coupon['type']]; - $startTime = date('Y-m-d H:i:s', $coupon['started_at']); - $endTime = date('Y-m-d H:i:s', $coupon['ended_at']); - $limitUse = $coupon['limit_use'] ?? '不限制'; - $createTime = date('Y-m-d H:i:s', $coupon['created_at']); - $limitPlanIds = isset($coupon['limit_plan_ids']) ? implode("/", $coupon['limit_plan_ids']) : '不限制'; - $data .= "{$coupon['name']},{$type},{$value},{$startTime},{$endTime},{$limitUse},{$limitPlanIds},{$coupon['code']},{$createTime}\r\n"; - } - echo $data; - } - - public function drop(Request $request) - { - $request->validate([ - 'id' => 'required|numeric' - ],[ - 'id.required' => '优惠券ID不能为空', - 'id.numeric' => '优惠券ID必须为数字' - ]); - $coupon = Coupon::find($request->input('id')); - if (!$coupon) { - return $this->fail([400202,'优惠券不存在']); - } - if (!$coupon->delete()) { - return $this->fail([500,'删除失败']); - } - - return $this->success(true); - } -} diff --git a/app/Http/Controllers/V1/Admin/NoticeController.php b/app/Http/Controllers/V1/Admin/NoticeController.php deleted file mode 100644 index 49a1c49..0000000 --- a/app/Http/Controllers/V1/Admin/NoticeController.php +++ /dev/null @@ -1,73 +0,0 @@ -success(Notice::orderBy('id', 'DESC')->get()); - } - - public function save(NoticeSave $request) - { - $data = $request->only([ - 'title', - 'content', - 'img_url', - 'tags' - ]); - if (!$request->input('id')) { - if (!Notice::create($data)) { - return $this->fail([500 ,'保存失败']); - } - } else { - try { - Notice::find($request->input('id'))->update($data); - } catch (\Exception $e) { - return $this->fail([500 ,'保存失败']); - } - } - return $this->success(true); - } - - - - public function show(Request $request) - { - if (empty($request->input('id'))) { - return $this->fail([500 ,'公告ID不能为空']); - } - $notice = Notice::find($request->input('id')); - if (!$notice) { - return $this->fail([400202 ,'公告不存在']); - } - $notice->show = $notice->show ? 0 : 1; - if (!$notice->save()) { - return $this->fail([500 ,'保存失败']); - } - - return $this->success(true); - } - - public function drop(Request $request) - { - if (empty($request->input('id'))) { - return $this->fail([422 ,'公告ID不能为空']); - } - $notice = Notice::find($request->input('id')); - if (!$notice) { - return $this->fail([400202 ,'公告不存在']); - } - if (!$notice->delete()) { - return $this->fail([500 ,'删除失败']); - } - return $this->success(true); - } -} diff --git a/app/Http/Controllers/V1/Admin/OrderController.php b/app/Http/Controllers/V1/Admin/OrderController.php deleted file mode 100644 index b49c751..0000000 --- a/app/Http/Controllers/V1/Admin/OrderController.php +++ /dev/null @@ -1,186 +0,0 @@ -input('filter')) { - foreach ($request->input('filter') as $filter) { - if ($filter['key'] === 'email') { - $user = User::where('email', "%{$filter['value']}%")->first(); - if (!$user) continue; - $builder->where('user_id', $user->id); - continue; - } - if ($filter['condition'] === '模糊') { - $filter['condition'] = 'like'; - $filter['value'] = "%{$filter['value']}%"; - } - $builder->where($filter['key'], $filter['condition'], $filter['value']); - } - } - } - - public function detail(Request $request) - { - $order = Order::find($request->input('id')); - if (!$order) return $this->fail([400202 ,'订单不存在']); - $order['commission_log'] = CommissionLog::where('trade_no', $order->trade_no)->get(); - if ($order->surplus_order_ids) { - $order['surplus_orders'] = Order::whereIn('id', $order->surplus_order_ids)->get(); - } - return $this->success($order); - } - - public function fetch(OrderFetch $request) - { - $current = $request->input('current') ? $request->input('current') : 1; - $pageSize = $request->input('pageSize') >= 10 ? $request->input('pageSize') : 10; - $orderModel = Order::orderBy('created_at', 'DESC'); - if ($request->input('is_commission')) { - $orderModel->where('invite_user_id', '!=', NULL); - $orderModel->whereNotIn('status', [0, 2]); - $orderModel->where('commission_balance', '>', 0); - } - $this->filter($request, $orderModel); - $total = $orderModel->count(); - $res = $orderModel->forPage($current, $pageSize) - ->get(); - $plan = Plan::get(); - for ($i = 0; $i < count($res); $i++) { - for ($k = 0; $k < count($plan); $k++) { - if ($plan[$k]['id'] == $res[$i]['plan_id']) { - $res[$i]['plan_name'] = $plan[$k]['name']; - } - } - } - return response([ - 'data' => $res, - 'total' => $total - ]); - } - - public function paid(Request $request) - { - $order = Order::where('trade_no', $request->input('trade_no')) - ->first(); - if (!$order) { - return $this->fail([400202 ,'订单不存在']); - } - if ($order->status !== 0) return $this->fail([400 ,'只能对待支付的订单进行操作']); - - $orderService = new OrderService($order); - if (!$orderService->paid('manual_operation')) { - return $this->fail([500 ,'更新失败']); - } - return $this->success(true); - } - - public function cancel(Request $request) - { - $order = Order::where('trade_no', $request->input('trade_no')) - ->first(); - if (!$order) { - return $this->fail([400202 ,'订单不存在']); - } - if ($order->status !== 0) return $this->fail([400 ,'只能对待支付的订单进行操作']); - - $orderService = new OrderService($order); - if (!$orderService->cancel()) { - return $this->fail([400 ,'更新失败']); - } - return $this->success(true); - } - - public function update(OrderUpdate $request) - { - $params = $request->only([ - 'commission_status' - ]); - - $order = Order::where('trade_no', $request->input('trade_no')) - ->first(); - if (!$order) { - return $this->fail([400202 ,'订单不存在']); - } - - try { - $order->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500 ,'更新失败']); - } - - return $this->success(true); - } - - public function assign(OrderAssign $request) - { - $plan = Plan::find($request->input('plan_id')); - $user = User::where('email', $request->input('email'))->first(); - - if (!$user) { - return $this->fail([400202 ,'该用户不存在']); - } - - if (!$plan) { - return $this->fail([400202 ,'该订阅不存在']); - } - - $userService = new UserService(); - if ($userService->isNotCompleteOrderByUserId($user->id)) { - return $this->fail([400 ,'该用户还有待支付的订单,无法分配']); - } - - try { - DB::beginTransaction(); - $order = new Order(); - $orderService = new OrderService($order); - $order->user_id = $user->id; - $order->plan_id = $plan->id; - $order->period = $request->input('period'); - $order->trade_no = Helper::guid(); - $order->total_amount = $request->input('total_amount'); - - if ($order->period === 'reset_price') { - $order->type = Order::TYPE_RESET_TRAFFIC; - } else if ($user->plan_id !== NULL && $order->plan_id !== $user->plan_id) { - $order->type = Order::TYPE_UPGRADE; - } else if ($user->expired_at > time() && $order->plan_id == $user->plan_id) { - $order->type = Order::TYPE_RENEWAL; - } else { - $order->type = Order::TYPE_NEW_PURCHASE; - } - - $orderService->setInvite($user); - - if (!$order->save()) { - DB::rollBack(); - return $this->fail([500 ,'订单创建失败']); - } - DB::commit(); - }catch(\Exception $e){ - DB::rollBack(); - throw $e; - } - - return $this->success($order->trade_no); - } -} diff --git a/app/Http/Controllers/V1/Admin/Server/GroupController.php b/app/Http/Controllers/V1/Admin/Server/GroupController.php deleted file mode 100644 index 8c4d7cc..0000000 --- a/app/Http/Controllers/V1/Admin/Server/GroupController.php +++ /dev/null @@ -1,75 +0,0 @@ -input('group_id')) { - return $this->success([ServerGroup::find($request->input('group_id'))]); - } - $serverGroups = ServerGroup::get(); - $servers = ServerService::getAllServers(); - foreach ($serverGroups as $k => $v) { - $serverGroups[$k]['user_count'] = User::where('group_id', $v['id'])->count(); - $serverGroups[$k]['server_count'] = 0; - foreach ($servers as $server) { - if (in_array($v['id'], $server['group_id'])) { - $serverGroups[$k]['server_count'] = $serverGroups[$k]['server_count']+1; - } - } - } - return $this->success($serverGroups); - } - - public function save(Request $request) - { - if (empty($request->input('name'))) { - return $this->fail([422,'组名不能为空']); - } - - if ($request->input('id')) { - $serverGroup = ServerGroup::find($request->input('id')); - } else { - $serverGroup = new ServerGroup(); - } - - $serverGroup->name = $request->input('name'); - return $this->success($serverGroup->save()); - } - - public function drop(Request $request) - { - if ($request->input('id')) { - $serverGroup = ServerGroup::find($request->input('id')); - if (!$serverGroup) { - return $this->fail([400202,'组不存在']); - } - } - - $servers = ServerVmess::all(); - foreach ($servers as $server) { - if (in_array($request->input('id'), $server->group_id)) { - return $this->fail([400,'该组已被节点所使用,无法删除']); - } - } - - if (Plan::where('group_id', $request->input('id'))->first()) { - return $this->fail([400, '该组已被订阅所使用,无法删除']); - } - if (User::where('group_id', $request->input('id'))->first()) { - return $this->fail([400, '该组已被用户所使用,无法删除']); - } - return $this->success($serverGroup->delete()); - } -} diff --git a/app/Http/Controllers/V1/Admin/Server/HysteriaController.php b/app/Http/Controllers/V1/Admin/Server/HysteriaController.php deleted file mode 100644 index c75e484..0000000 --- a/app/Http/Controllers/V1/Admin/Server/HysteriaController.php +++ /dev/null @@ -1,113 +0,0 @@ -validate([ - 'show' => '', - 'name' => 'required', - 'group_id' => 'required|array', - 'route_id' => 'nullable|array', - 'parent_id' => 'nullable|integer', - 'host' => 'required', - 'port' => 'required', - 'server_port' => 'required', - 'tags' => 'nullable|array', - 'excludes' => 'nullable|array', - 'ips' => 'nullable|array', - 'rate' => 'required|numeric', - 'up_mbps' => 'required|numeric|min:1', - 'down_mbps' => 'required|numeric|min:1', - 'server_name' => 'nullable', - 'insecure' => 'required|in:0,1', - 'alpn' => 'nullable|in:0,1,2,3', - 'version' => 'nullable|in:1,2', - 'is_obfs' => 'nullable' - ],[ - 'name.required' => '节点名称不能为空', - 'group_id.required' => '权限组不能为空', - 'host.required' => '节点地址不能为空', - 'port.required' => '连接端口不能为空', - 'server_port' => '服务端口不能为空', - 'rate.required' => '倍率不能为空', - 'up_mbps.required' => '上行带宽不能为空', - 'down_mbps.required' => '下行带宽不能为空', - ]); - - if ($request->input('id')) { - $server = ServerHysteria::find($request->input('id')); - if (!$server) { - return $this->fail([400202, '服务器不存在']); - } - try { - $server->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500,'保存失败']); - } - return $this->success(true); - } - - if (!ServerHysteria::create($params)) { - return $this->fail([500,'创建失败']); - } - - return $this->success(true); - } - - public function drop(Request $request) - { - if ($request->input('id')) { - $server = ServerHysteria::find($request->input('id')); - if (!$server) { - return $this->fail([400202,'节点ID不存在']); - } - } - return $this->success($server->delete()); - } - - public function update(Request $request) - { - $request->validate([ - 'show' => 'in:0,1' - ], [ - 'show.in' => '显示状态格式不正确' - ]); - $params = $request->only([ - 'show', - ]); - - $server = ServerHysteria::find($request->input('id')); - - if (!$server) { - return $this->fail([400202,'该服务器不存在']); - } - try { - $server->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500,'保存失败']); - } - - return $this->success(true); - } - - public function copy(Request $request) - { - $server = ServerHysteria::find($request->input('id')); - $server->show = 0; - if (!$server) { - return $this->fail([400202,'服务器不存在']); - } - ServerHysteria::create($server->toArray()); - return $this->success(true); - } -} diff --git a/app/Http/Controllers/V1/Admin/Server/ManageController.php b/app/Http/Controllers/V1/Admin/Server/ManageController.php deleted file mode 100644 index c3292db..0000000 --- a/app/Http/Controllers/V1/Admin/Server/ManageController.php +++ /dev/null @@ -1,45 +0,0 @@ -success(ServerService::getAllServers()); - } - - public function sort(Request $request) - { - ini_set('post_max_size', '1m'); - $params = $request->only( - 'shadowsocks', - 'vmess', - 'trojan', - 'hysteria', - 'vless' - ) ?? []; - try{ - DB::beginTransaction(); - foreach ($params as $k => $v) { - $model = 'App\\Models\\Server' . ucfirst($k); - foreach($v as $id => $sort) { - $model::where('id', $id)->update(['sort' => $sort]); - } - } - DB::commit(); - }catch (\Exception $e){ - DB::rollBack(); - \Log::error($e); - return $this->fail([500,'保存失败']); - - } - return $this->success(true); - } -} diff --git a/app/Http/Controllers/V1/Admin/Server/ShadowsocksController.php b/app/Http/Controllers/V1/Admin/Server/ShadowsocksController.php deleted file mode 100644 index 3748030..0000000 --- a/app/Http/Controllers/V1/Admin/Server/ShadowsocksController.php +++ /dev/null @@ -1,84 +0,0 @@ -validated(); - if ($request->input('id')) { - $server = ServerShadowsocks::find($request->input('id')); - if (!$server) { - return $this->fail([400202, '服务器不存在']); - } - try { - $server->update($params); - return $this->success(true); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500,'保存失败']); - } - } - - try{ - ServerShadowsocks::create($params); - return $this->success(true); - }catch(\Exception $e){ - \Log::error($e); - return $this->fail([500,'创建失败']); - } - - - } - - public function drop(Request $request) - { - if ($request->input('id')) { - $server = ServerShadowsocks::find($request->input('id')); - if (!$server) { - return $this->fail([400202, '节点不存在']); - } - } - return $this->success($server->delete()); - } - - public function update(ServerShadowsocksUpdate $request) - { - $params = $request->only([ - 'show', - ]); - - $server = ServerShadowsocks::find($request->input('id')); - - if (!$server) { - return $this->fail([400202, '该服务器不存在']); - } - try { - $server->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500,'保存失败']); - } - - return $this->success(true); - } - - public function copy(Request $request) - { - $server = ServerShadowsocks::find($request->input('id')); - $server->show = 0; - if (!$server) { - return $this->fail([400202,'服务器不存在']); - } - ServerShadowsocks::create($server->toArray()); - return $this->success(true); - } -} diff --git a/app/Http/Controllers/V1/Admin/Server/TrojanController.php b/app/Http/Controllers/V1/Admin/Server/TrojanController.php deleted file mode 100644 index 0f1de3a..0000000 --- a/app/Http/Controllers/V1/Admin/Server/TrojanController.php +++ /dev/null @@ -1,76 +0,0 @@ -validated(); - if ($request->input('id')) { - $server = ServerTrojan::find($request->input('id')); - if (!$server) { - return $this->fail([400202,'服务器不存在']); - } - try { - $server->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500, '保存失败']); - } - return $this->success(true); - } - - ServerTrojan::create($params); - return $this->success(true); - } - - public function drop(Request $request) - { - if ($request->input('id')) { - $server = ServerTrojan::find($request->input('id')); - if (!$server) { - return $this->fail([400202,'节点ID不存在']); - } - } - return $this->success($server->delete()); - } - - public function update(ServerTrojanUpdate $request) - { - $params = $request->only([ - 'show', - ]); - - $server = ServerTrojan::find($request->input('id')); - - if (!$server) { - return $this->fail([400202,'该服务器不存在']); - } - try { - $server->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500,'保存失败']); - } - - return $this->success(true); - } - - public function copy(Request $request) - { - $server = ServerTrojan::find($request->input('id')); - $server->show = 0; - if (!$server) { - return $this->fail([400202,'服务器不存在']); - } - ServerTrojan::create($server->toArray()); - return $this->success(true); - } -} diff --git a/app/Http/Controllers/V1/Admin/Server/VlessController.php b/app/Http/Controllers/V1/Admin/Server/VlessController.php deleted file mode 100644 index 7b7b973..0000000 --- a/app/Http/Controllers/V1/Admin/Server/VlessController.php +++ /dev/null @@ -1,122 +0,0 @@ -validate([ - 'group_id' => 'required', - 'route_id' => 'nullable|array', - 'name' => 'required', - 'parent_id' => 'nullable|integer', - 'host' => 'required', - 'port' => 'required', - 'server_port' => 'required', - 'tls' => 'required|in:0,1,2', - 'tls_settings' => 'nullable|array', - 'flow' => 'nullable|in:xtls-rprx-vision', - 'network' => 'required', - 'network_settings' => 'nullable|array', - 'tags' => 'nullable|array', - 'excludes' => 'nullable|array', - 'ips' => 'nullable|array', - 'rate' => 'required', - 'show' => 'nullable|in:0,1', - 'sort' => 'nullable' - ],[ - 'name.required' => '节点名称不能为空', - 'group_id.required' => '权限组不能为空', - 'host.required' => '节点地址不能为空', - 'port.required' => '连接端口不能为空', - 'server_port' => '服务端口不能为空', - 'rate.required' => '倍率不能为空', - 'network.required' => '协议不能为空', - ]); - - if (isset($params['tls']) && (int)$params['tls'] === 2) { - $keyPair = SodiumCompat::crypto_box_keypair(); - $params['tls_settings'] = $params['tls_settings'] ?? []; - if (!isset($params['tls_settings']['public_key'])) { - $params['tls_settings']['public_key'] = Helper::base64EncodeUrlSafe(SodiumCompat::crypto_box_publickey($keyPair)); - } - if (!isset($params['tls_settings']['private_key'])) { - $params['tls_settings']['private_key'] = Helper::base64EncodeUrlSafe(SodiumCompat::crypto_box_secretkey($keyPair)); - } - if (!isset($params['tls_settings']['short_id'])) { - $params['tls_settings']['short_id'] = substr(sha1($params['tls_settings']['private_key']), 0, 8); - } - if (!isset($params['tls_settings']['server_port'])) { - $params['tls_settings']['server_port'] = "443"; - } - } - - if ($request->input('id')) { - $server = ServerVless::find($request->input('id')); - if (!$server) { - return $this->fail([400202, '服务器不存在']); - } - try { - $server->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500, '保存失败']); - } - return $this->success(true); - } - ServerVless::create($params); - - return $this->success(true); - } - - public function drop(Request $request) - { - if ($request->input('id')) { - $server = ServerVless::find($request->input('id')); - if (!$server) { - return $this->fail([400202,'节点不存在']); - } - } - return $this->success($server->delete()); - } - - public function update(Request $request) - { - $params = $request->validate([ - 'show' => 'nullable|in:0,1', - ]); - - $server = ServerVless::find($request->input('id')); - - if (!$server) { - return $this->fail([400202, '该服务器不存在']); - } - try { - $server->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500, '保存失败']); - } - - return $this->success(true); - } - - public function copy(Request $request) - { - $server = ServerVless::find($request->input('id')); - $server->show = 0; - if (!$server) { - return $this->fail([400202, '该服务器不存在']); - } - ServerVless::create($server->toArray()); - return $this->success(true); - } -} diff --git a/app/Http/Controllers/V1/Admin/Server/VmessController.php b/app/Http/Controllers/V1/Admin/Server/VmessController.php deleted file mode 100644 index ecd8446..0000000 --- a/app/Http/Controllers/V1/Admin/Server/VmessController.php +++ /dev/null @@ -1,79 +0,0 @@ -validated(); - - if ($request->input('id')) { - $server = ServerVmess::find($request->input('id')); - if (!$server) { - return $this->fail([400202, '服务器不存在']); - } - try { - $server->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500, '保存失败']); - } - return $this->success(true); - } - - ServerVmess::create($params); - - return $this->success(true); - } - - public function drop(Request $request) - { - if ($request->input('id')) { - $server = ServerVmess::find($request->input('id')); - if (!$server) { - return $this->fail([400202, '节点不存在']); - } - } - return $this->success($server->delete()); - } - - public function update(ServerVmessUpdate $request) - { - $params = $request->only([ - 'show', - ]); - - $server = ServerVmess::find($request->input('id')); - - if (!$server) { - return $this->fail([400202, '该服务器不存在']); - } - try { - $server->update($params); - } catch (\Exception $e) { - \Log::error($e); - return $this->fail([500, '保存失败']); - } - - return $this->success(true); - } - - public function copy(Request $request) - { - $server = ServerVmess::find($request->input('id')); - $server->show = 0; - if (!$server) { - return $this->fail([400202, '该服务器不存在']); - } - ServerVmess::create($server->toArray()); - return $this->success(true); - } -} diff --git a/app/Http/Controllers/V1/Admin/StatController.php b/app/Http/Controllers/V1/Admin/StatController.php deleted file mode 100644 index 0fa6d75..0000000 --- a/app/Http/Controllers/V1/Admin/StatController.php +++ /dev/null @@ -1,206 +0,0 @@ - [ - 'month_income' => Order::where('created_at', '>=', strtotime(date('Y-m-1'))) - ->where('created_at', '<', time()) - ->whereNotIn('status', [0, 2]) - ->sum('total_amount'), - 'month_register_total' => User::where('created_at', '>=', strtotime(date('Y-m-1'))) - ->where('created_at', '<', time()) - ->count(), - 'ticket_pending_total' => Ticket::where('status', 0) - ->count(), - 'commission_pending_total' => Order::where('commission_status', 0) - ->where('invite_user_id', '!=', NULL) - ->whereNotIn('status', [0, 2]) - ->where('commission_balance', '>', 0) - ->count(), - 'day_income' => Order::where('created_at', '>=', strtotime(date('Y-m-d'))) - ->where('created_at', '<', time()) - ->whereNotIn('status', [0, 2]) - ->sum('total_amount'), - 'last_month_income' => Order::where('created_at', '>=', strtotime('-1 month', strtotime(date('Y-m-1')))) - ->where('created_at', '<', strtotime(date('Y-m-1'))) - ->whereNotIn('status', [0, 2]) - ->sum('total_amount'), - 'commission_month_payout' => CommissionLog::where('created_at', '>=', strtotime(date('Y-m-1'))) - ->where('created_at', '<', time()) - ->sum('get_amount'), - 'commission_last_month_payout' => CommissionLog::where('created_at', '>=', strtotime('-1 month', strtotime(date('Y-m-1')))) - ->where('created_at', '<', strtotime(date('Y-m-1'))) - ->sum('get_amount'), - ] - ]; - } - - public function getOrder(Request $request) - { - $statistics = Stat::where('record_type', 'd') - ->limit(31) - ->orderBy('record_at', 'DESC') - ->get() - ->toArray(); - $result = []; - foreach ($statistics as $statistic) { - $date = date('m-d', $statistic['record_at']); - $result[] = [ - 'type' => '收款金额', - 'date' => $date, - 'value' => $statistic['paid_total'] / 100 - ]; - $result[] = [ - 'type' => '收款笔数', - 'date' => $date, - 'value' => $statistic['paid_count'] - ]; - $result[] = [ - 'type' => '佣金金额(已发放)', - 'date' => $date, - 'value' => $statistic['commission_total'] / 100 - ]; - $result[] = [ - 'type' => '佣金笔数(已发放)', - 'date' => $date, - 'value' => $statistic['commission_count'] - ]; - } - $result = array_reverse($result); - return [ - 'data' => $result - ]; - } - - // 获取当日实时流量排行 - public function getServerLastRank() - { - $servers = [ - 'shadowsocks' => ServerShadowsocks::with(['parent'])->get()->toArray(), - 'v2ray' => ServerVmess::with(['parent'])->get()->toArray(), - 'trojan' => ServerTrojan::with(['parent'])->get()->toArray(), - 'vmess' => ServerVmess::with(['parent'])->get()->toArray(), - 'hysteria' => ServerHysteria::with(['parent'])->get()->toArray(), - 'vless' => ServerVless::with(['parent'])->get()->toArray(), - ]; - - $recordAt = strtotime(date('Y-m-d')); - $statService = new StatisticalService(); - $statService->setStartAt($recordAt); - $stats = $statService->getStatServer(); - $statistics = collect($stats)->map(function ($item){ - $item['total'] = $item['u'] + $item['d']; - return $item; - })->sortByDesc('total')->values()->all(); - foreach ($statistics as $k => $v) { - foreach ($servers[$v['server_type']] as $server) { - if ($server['id'] === $v['server_id']) { - $statistics[$k]['server_name'] = $server['name']; - if($server['parent']) $statistics[$k]['server_name'] .= "({$server['parent']['name']})"; - } - } - $statistics[$k]['total'] = $statistics[$k]['total'] / 1073741824; - } - array_multisort(array_column($statistics, 'total'), SORT_DESC, $statistics); - return [ - 'data' => collect($statistics)->take(15)->all() - ]; - } - // 获取昨日节点流量排行 - public function getServerYesterdayRank() - { - $servers = [ - 'shadowsocks' => ServerShadowsocks::with(['parent'])->get()->toArray(), - 'v2ray' => ServerVmess::with(['parent'])->get()->toArray(), - 'trojan' => ServerTrojan::with(['parent'])->get()->toArray(), - 'vmess' => ServerVmess::with(['parent'])->get()->toArray(), - 'hysteria' => ServerHysteria::with(['parent'])->get()->toArray(), - 'vless' => ServerVless::with(['parent'])->get()->toArray(), - ]; - $startAt = strtotime('-1 day', strtotime(date('Y-m-d'))); - $endAt = strtotime(date('Y-m-d')); - $statistics = StatServer::select([ - 'server_id', - 'server_type', - 'u', - 'd', - DB::raw('(u+d) as total') - ]) - ->where('record_at', '>=', $startAt) - ->where('record_at', '<', $endAt) - ->where('record_type', 'd') - ->limit(15) - ->orderBy('total', 'DESC') - ->get() - ->toArray(); - foreach ($statistics as $k => $v) { - foreach ($servers[$v['server_type']] as $server) { - if ($server['id'] === $v['server_id']) { - $statistics[$k]['server_name'] = $server['name']; - if($server['parent']) $statistics[$k]['server_name'] .= "({$server['parent']['name']})"; - } - } - $statistics[$k]['total'] = $statistics[$k]['total'] / 1073741824; - } - array_multisort(array_column($statistics, 'total'), SORT_DESC, $statistics); - return [ - 'data' => $statistics - ]; - } - - public function getStatUser(Request $request) - { - $request->validate([ - 'user_id' => 'required|integer' - ]); - $current = $request->input('current') ? $request->input('current') : 1; - $pageSize = $request->input('pageSize') >= 10 ? $request->input('pageSize') : 10; - $builder = StatUser::orderBy('record_at', 'DESC')->where('user_id', $request->input('user_id')); - - $total = $builder->count(); - $records = $builder->forPage($current, $pageSize) - ->get(); - - // 追加当天流量 - $recordAt = strtotime(date('Y-m-d')); - $statService = new StatisticalService(); - $statService->setStartAt($recordAt); - $todayTraffics = $statService->getStatUserByUserID($request->input('user_id')); - if (($current == 1) && count($todayTraffics) > 0) { - foreach ($todayTraffics as $todayTraffic){ - $todayTraffic['server_rate'] = number_format($todayTraffic['server_rate'], 2); - $records->prepend($todayTraffic); - } - }; - - return [ - 'data' => $records, - 'total' => $total + count($todayTraffics), - ]; - } - -} - diff --git a/app/Http/Controllers/V1/Admin/ThemeController.php b/app/Http/Controllers/V1/Admin/ThemeController.php deleted file mode 100644 index 8db527d..0000000 --- a/app/Http/Controllers/V1/Admin/ThemeController.php +++ /dev/null @@ -1,81 +0,0 @@ -path = $path = public_path('theme/'); - $this->themes = array_map(function ($item) use ($path) { - return str_replace($path, '', $item); - }, glob($path . '*')); - } - - public function getThemes() - { - $themeConfigs = []; - foreach ($this->themes as $theme) { - $themeConfigFile = $this->path . "{$theme}/config.json"; - if (!File::exists($themeConfigFile)) continue; - $themeConfig = json_decode(File::get($themeConfigFile), true); - if (!isset($themeConfig['configs']) || !is_array($themeConfig)) continue; - $themeConfigs[$theme] = $themeConfig; - if (admin_setting("theme_{$theme}")) continue; - $themeService = new ThemeService($theme); - $themeService->init(); - } - $data = [ - 'themes' => $themeConfigs, - 'active' => admin_setting('frontend_theme', 'Xboard') - ]; - return $this->success($data); - } - - public function getThemeConfig(Request $request) - { - $payload = $request->validate([ - 'name' => 'required|in:' . join(',', $this->themes) - ]); - return $this->success(admin_setting("theme_{$payload['name']}") ?? config("theme.{$payload['name']}")); - } - - public function saveThemeConfig(Request $request) - { - $payload = $request->validate([ - 'name' => 'required|in:' . join(',', $this->themes), - 'config' => 'required' - ]); - $payload['config'] = json_decode(base64_decode($payload['config']), true); - if (!$payload['config'] || !is_array($payload['config'])) return $this->fail([422,'参数不正确']); - $themeConfigFile = public_path("theme/{$payload['name']}/config.json"); - if (!File::exists($themeConfigFile)) return $this->fail([400202,'主题不存在']); - $themeConfig = json_decode(File::get($themeConfigFile), true); - if (!isset($themeConfig['configs']) || !is_array($themeConfig)) return $this->fail([422,'主题配置文件有误']); - $validateFields = array_column($themeConfig['configs'], 'field_name'); - $config = []; - foreach ($validateFields as $validateField) { - $config[$validateField] = isset($payload['config'][$validateField]) ? $payload['config'][$validateField] : ''; - } - - File::ensureDirectoryExists(base_path() . '/config/theme/'); - // $data = var_export($config, 1); - - try { - admin_setting(["theme_{$payload['name']}" => $config]); -// sleep(2); - } catch (\Exception $e) { - return $this->fail([200002, '保存失败']); - } - return $this->success($config); - } -} diff --git a/app/Http/Controllers/V1/Admin/TicketController.php b/app/Http/Controllers/V1/Admin/TicketController.php deleted file mode 100644 index 7eb34dd..0000000 --- a/app/Http/Controllers/V1/Admin/TicketController.php +++ /dev/null @@ -1,92 +0,0 @@ -input('id')) { - $ticket = Ticket::where('id', $request->input('id')) - ->first(); - if (!$ticket) { - return $this->fail([400202,'工单不存在']); - } - $ticket['message'] = TicketMessage::where('ticket_id', $ticket->id)->get(); - for ($i = 0; $i < count($ticket['message']); $i++) { - if ($ticket['message'][$i]['user_id'] !== $ticket->user_id) { - $ticket['message'][$i]['is_me'] = true; - } else { - $ticket['message'][$i]['is_me'] = false; - } - } - return $this->success($ticket); - } - $current = $request->input('current') ? $request->input('current') : 1; - $pageSize = $request->input('pageSize') >= 10 ? $request->input('pageSize') : 10; - $model = Ticket::orderBy('updated_at', 'DESC'); - if ($request->input('status') !== NULL) { - $model->where('status', $request->input('status')); - } - if ($request->input('reply_status') !== NULL) { - $model->whereIn('reply_status', $request->input('reply_status')); - } - if ($request->input('email') !== NULL) { - $user = User::where('email', $request->input('email'))->first(); - if ($user) $model->where('user_id', $user->id); - } - $total = $model->count(); - $res = $model->forPage($current, $pageSize) - ->get(); - return response([ - 'data' => $res, - 'total' => $total - ]); - } - - public function reply(Request $request) - { - $request->validate([ - 'id' => 'required|numeric', - 'message' => 'required|string' - ],[ - 'id.required' => '工单ID不能为空', - 'message.required' => '消息不能为空' - ]); - $ticketService = new TicketService(); - $ticketService->replyByAdmin( - $request->input('id'), - $request->input('message'), - $request->user['id'] - ); - return $this->success(true); - } - - public function close(Request $request) - { - $request->validate([ - 'id' => 'required|numeric' - ],[ - 'id.required' => '工单ID不能为空' - ]); - try { - $ticket = Ticket::findOrFail($request->input('id')); - $ticket->status = Ticket::STATUS_CLOSED; - $ticket->save(); - return $this->success(true); - } catch (ModelNotFoundException $e) { - return $this->fail([400202, '工单不存在']); - } catch (\Exception $e) { - return $this->fail([500101, '关闭失败']); - } - } -} diff --git a/app/Http/Controllers/V1/Client/AppController.php b/app/Http/Controllers/V1/Client/AppController.php index 0f41261..4637b08 100644 --- a/app/Http/Controllers/V1/Client/AppController.php +++ b/app/Http/Controllers/V1/Client/AppController.php @@ -14,7 +14,7 @@ class AppController extends Controller public function getConfig(Request $request) { $servers = []; - $user = $request->user; + $user = $request->user(); $userService = new UserService(); if ($userService->isAvailable($user)) { $servers = ServerService::getAvailableServers($user); @@ -30,8 +30,9 @@ class AppController extends Controller $proxies = []; foreach ($servers as $item) { + $protocol_settings = $item['protocol_settings']; if ($item['type'] === 'shadowsocks' - && in_array($item['cipher'], [ + && in_array(data_get($protocol_settings, 'cipher'), [ 'aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm', diff --git a/app/Http/Controllers/V1/Client/ClientController.php b/app/Http/Controllers/V1/Client/ClientController.php index 903490f..2824635 100644 --- a/app/Http/Controllers/V1/Client/ClientController.php +++ b/app/Http/Controllers/V1/Client/ClientController.php @@ -8,12 +8,27 @@ use App\Services\ServerService; use App\Services\UserService; use App\Utils\Helper; use Illuminate\Http\Request; +use Illuminate\Support\Collection; +use Illuminate\Validation\Rule; class ClientController extends Controller { + /** + * Protocol prefix mapping for server names + */ + private const PROTOCOL_PREFIXES = [ + 'hysteria' => [ + 1 => '[Hy]', + 2 => '[Hy2]' + ], + 'vless' => '[vless]', + 'shadowsocks' => '[ss]', + 'vmess' => '[vmess]', + 'trojan' => '[trojan]', + ]; // 支持hy2 的客户端版本列表 - const SupportedHy2ClientVersions = [ + private const CLIENT_VERSIONS = [ 'NekoBox' => '1.2.7', 'sing-box' => '1.5.0', 'stash' => '2.5.0', @@ -26,121 +41,191 @@ class ClientController extends Controller 'loon' => '637', 'v2rayng' => '1.9.5', 'v2rayN' => '6.31', - 'surge' => '2398' + 'surge' => '2398', + 'flclash' => '0.8.0' ]; - // allowed types - const AllowedTypes = ['vmess', 'vless', 'trojan', 'hysteria', 'shadowsocks', 'hysteria2']; + + private const ALLOWED_TYPES = ['vmess', 'vless', 'trojan', 'hysteria', 'shadowsocks', 'hysteria2']; + + /** + * 处理浏览器访问订阅的情况 + */ + private function handleBrowserSubscribe($user, UserService $userService) + { + $useTraffic = $user['u'] + $user['d']; + $totalTraffic = $user['transfer_enable']; + $remainingTraffic = Helper::trafficConvert($totalTraffic - $useTraffic); + $expiredDate = $user['expired_at'] ? date('Y-m-d', $user['expired_at']) : __('Unlimited'); + $resetDay = $userService->getResetDay($user); + + // 获取通用订阅地址 + $subscriptionUrl = Helper::getSubscribeUrl($user->token); + + // 生成二维码 + $writer = new \BaconQrCode\Writer( + new \BaconQrCode\Renderer\ImageRenderer( + new \BaconQrCode\Renderer\RendererStyle\RendererStyle(200), + new \BaconQrCode\Renderer\Image\SvgImageBackEnd() + ) + ); + $qrCode = base64_encode($writer->writeString($subscriptionUrl)); + + $data = [ + 'username' => $user->email, + 'status' => $userService->isAvailable($user) ? 'active' : 'inactive', + 'data_limit' => $totalTraffic ? Helper::trafficConvert($totalTraffic) : '∞', + 'data_used' => Helper::trafficConvert($useTraffic), + 'expired_date' => $expiredDate, + 'reset_day' => $resetDay, + 'subscription_url' => $subscriptionUrl, + 'qr_code' => $qrCode + ]; + + // 只有当 device_limit 不为 null 时才添加到返回数据中 + if ($user->device_limit !== null) { + $data['device_limit'] = $user->device_limit; + } + + return response()->view('client.subscribe', $data); + } + + /** + * 检查是否是浏览器访问 + */ + private function isBrowserAccess(Request $request): bool + { + $userAgent = strtolower($request->input('flag', $request->header('User-Agent'))); + return str_contains($userAgent, 'mozilla') + || str_contains($userAgent, 'chrome') + || str_contains($userAgent, 'safari') + || str_contains($userAgent, 'edge'); + } public function subscribe(Request $request) { - // filter types - $types = $request->input('types', 'all'); - $typesArr = $types === 'all' ? self::AllowedTypes : array_values(array_intersect(explode('|', str_replace(['|', '|', ','], "|", $types)), self::AllowedTypes)); - // filter keyword - $filterArr = mb_strlen($filter = $request->input('filter')) > 20 ? null : explode("|", str_replace(['|', '|', ','], "|", $filter)); - $flag = strtolower($request->input('flag') ?? $request->header('User-Agent', '')); - $ip = $request->input('ip', $request->ip()); - // get client version - $version = preg_match('/\/v?(\d+(\.\d+){0,2})/', $flag, $matches) ? $matches[1] : null; - $supportHy2 = $version ? collect(self::SupportedHy2ClientVersions) - ->contains(fn($minVersion, $client) => stripos($flag, $client) !== false && $this->versionCompare($version, $minVersion)) : true; - $user = $request->user; - // account not expired and is not banned. + $request->validate([ + 'types' => ['nullable', 'string'], + 'filter' => ['nullable', 'string'], + 'flag' => ['nullable', 'string'], + ]); + + $user = $request->user(); $userService = new UserService(); - if ($userService->isAvailable($user)) { - // get ip location - $ip2region = new \Ip2Region(); - $region = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? ($ip2region->memorySearch($ip)['region'] ?? null) : null; - // get available servers - $servers = ServerService::getAvailableServers($user); - // filter servers - $serversFiltered = $this->serverFilter($servers, $typesArr, $filterArr, $region, $supportHy2); - $this->setSubscribeInfoToServers($serversFiltered, $user, count($servers) - count($serversFiltered)); - $servers = $serversFiltered; - $this->addPrefixToServerName($servers); - if ($flag) { - foreach (array_reverse(glob(app_path('Protocols') . '/*.php')) as $file) { - $file = 'App\\Protocols\\' . basename($file, '.php'); - $class = new $file($user, $servers); - $classFlags = explode(',', $class->flag); - foreach ($classFlags as $classFlag) { - if (stripos($flag, $classFlag) !== false) { - return $class->handle(); - } - } - } - } - $class = new General($user, $servers); - return $class->handle(); + + if (!$userService->isAvailable($user)) { + return response()->json(['message' => 'Account unavailable'], 403); } + + // 检测是否是浏览器访问 + if ($this->isBrowserAccess($request)) { + return $this->handleBrowserSubscribe($user, $userService); + } + $clientInfo = $this->getClientInfo($request); + $types = $this->getFilteredTypes($request->input('types'), $clientInfo['supportHy2']); + $filterArr = $this->getFilterArray($request->input('filter')); + // Get available servers and apply filters + $servers = ServerService::getAvailableServers($user); + $serversFiltered = $this->filterServers( + servers: $servers, + types: $types, + filters: $filterArr, + ); + + $this->setSubscribeInfoToServers($serversFiltered, $user, count($servers) - count($serversFiltered)); + $serversFiltered = $this->addPrefixToServerName($serversFiltered); + + // Handle protocol response + if ($clientInfo['flag']) { + foreach (array_reverse(glob(app_path('Protocols') . '/*.php')) as $file) { + $className = 'App\\Protocols\\' . basename($file, '.php'); + $protocol = new $className($user, $serversFiltered); + if ( + collect($protocol->getFlags()) + ->contains(fn($f) => stripos($clientInfo['flag'], $f) !== false) + ) { + return $protocol->handle(); + } + } + } + + return (new General($user, $serversFiltered))->handle(); } - /** - * Summary of serverFilter - * @param mixed $typesArr - * @param mixed $filterArr - * @param mixed $region - * @param mixed $supportHy2 - * @return array - */ - private function serverFilter($servers, $typesArr, $filterArr, $region, $supportHy2) + + private function getFilteredTypes(string|null $types, bool $supportHy2): array { - return collect($servers)->reject(function ($server) use ($typesArr, $filterArr, $region, $supportHy2) { - if ($server['type'] == "hysteria" && $server['version'] == 2) { - if(!in_array('hysteria2', $typesArr)){ + if ($types === 'all') { + return self::ALLOWED_TYPES; + } + + $allowedTypes = $supportHy2 + ? self::ALLOWED_TYPES + : array_diff(self::ALLOWED_TYPES, ['hysteria2']); + if (!$types) { + return array_values($allowedTypes); + } + + $userTypes = explode('|', str_replace(['|', '|', ','], '|', $types)); + return array_values(array_intersect($userTypes, $allowedTypes)); + } + + private function getFilterArray(?string $filter): ?array + { + if ($filter === null) { + return null; + } + return mb_strlen($filter) > 20 ? null : + explode('|', str_replace(['|', '|', ','], '|', $filter)); + } + + private function getClientInfo(Request $request): array + { + $flag = strtolower($request->input('flag') ?? $request->header('User-Agent', '')); + preg_match('/\/v?(\d+(\.\d+){0,2})/', $flag, $matches); + $version = $matches[1] ?? null; + + $supportHy2 = $version ? $this->checkHy2Support($flag, $version) : true; + + return [ + 'flag' => $flag, + 'version' => $version, + 'supportHy2' => $supportHy2 + ]; + } + + private function checkHy2Support(string $flag, string $version): bool + { + $result = false; + foreach (self::CLIENT_VERSIONS as $client => $minVersion) { + if (stripos($flag, $client) !== false) { + $result = $result || version_compare($version, $minVersion, '>='); + } + } + return $result || !count(self::CLIENT_VERSIONS); + } + + private function filterServers(array $servers, array $types, ?array $filters): array + { + return collect($servers)->reject(function ($server) use ($types, $filters) { + // Check Hysteria2 compatibility + if ($server['type'] === 'hysteria' && optional($server['protocol_settings'])['version'] === 2) { + if (!in_array('hysteria2', $types)) { return true; - }elseif(false == $supportHy2){ + } + } else { + if (!in_array($server['type'], $types)) { return true; } } - - if ($filterArr) { - foreach ($filterArr as $filter) { - if (stripos($server['name'], $filter) !== false || in_array($filter, $server['tags'] ?? [])) { - return false; - } - } - return true; - } - - if (strpos($region, '中国') !== false) { - $excludes = $server['excludes'] ?? []; - if (empty($excludes)) { - return false; - } - foreach ($excludes as $v) { - $excludeList = explode("|", str_replace(["|", ",", " ", ","], "|", $v)); - foreach ($excludeList as $needle) { - if (stripos($region, $needle) !== false) { - return true; - } - } - } + // Apply custom filters + if ($filters) { + return !collect($filters)->contains(function ($filter) use ($server) { + return stripos($server['name'], $filter) !== false + || in_array($filter, $server['tags'] ?? []); + }); } + return false; })->values()->all(); } - /* - * add prefix to server name - */ - private function addPrefixToServerName(&$servers) - { - // 线路名称增加协议类型 - if (admin_setting('show_protocol_to_server_enable')) { - $typePrefixes = [ - 'hysteria' => [1 => '[Hy]', 2 => '[Hy2]'], - 'vless' => '[vless]', - 'shadowsocks' => '[ss]', - 'vmess' => '[vmess]', - 'trojan' => '[trojan]', - ]; - $servers = collect($servers)->map(function ($server) use ($typePrefixes) { - if (isset($typePrefixes[$server['type']])) { - $prefix = is_array($typePrefixes[$server['type']]) ? $typePrefixes[$server['type']][$server['version']] : $typePrefixes[$server['type']]; - $server['name'] = $prefix . $server['name']; - } - return $server; - })->toArray(); - } - } /** * Summary of setSubscribeInfoToServers @@ -163,7 +248,7 @@ class ClientController extends Controller $useTraffic = $user['u'] + $user['d']; $totalTraffic = $user['transfer_enable']; $remainingTraffic = Helper::trafficConvert($totalTraffic - $useTraffic); - $expiredDate = $user['expired_at'] ? date('Y-m-d', $user['expired_at']) : '长期有效'; + $expiredDate = $user['expired_at'] ? date('Y-m-d', $user['expired_at']) : __('长期有效'); $userService = new UserService(); $resetDay = $userService->getResetDay($user); array_unshift($servers, array_merge($servers[0], [ @@ -179,33 +264,41 @@ class ClientController extends Controller ])); } - /** - * 判断版本号 + * Add protocol prefix to server names if enabled in admin settings + * + * @param array> $servers + * @return array> */ - - function versionCompare($version1, $version2) + private function addPrefixToServerName(array $servers): array { - if (!preg_match('/^\d+(\.\d+){0,2}/', $version1) || !preg_match('/^\d+(\.\d+){0,2}/', $version2)) { - return false; - } - $v1Parts = explode('.', $version1); - $v2Parts = explode('.', $version2); - - $maxParts = max(count($v1Parts), count($v2Parts)); - - for ($i = 0; $i < $maxParts; $i++) { - $part1 = isset($v1Parts[$i]) ? (int) $v1Parts[$i] : 0; - $part2 = isset($v2Parts[$i]) ? (int) $v2Parts[$i] : 0; - - if ($part1 < $part2) { - return false; - } elseif ($part1 > $part2) { - return true; - } + if (!admin_setting('show_protocol_to_server_enable', false)) { + return $servers; } - // 版本号相等 - return true; + return collect($servers) + ->map(function (array $server): array { + $server['name'] = $this->getPrefixedServerName($server); + return $server; + }) + ->all(); + } + /** + * Get server name with protocol prefix + * + * @param array $server + */ + private function getPrefixedServerName(array $server): string + { + $type = $server['type'] ?? ''; + if (!isset(self::PROTOCOL_PREFIXES[$type])) { + return $server['name'] ?? ''; + } + + $prefix = is_array(self::PROTOCOL_PREFIXES[$type]) + ? self::PROTOCOL_PREFIXES[$type][$server['protocol_settings']['version'] ?? 1] ?? '' + : self::PROTOCOL_PREFIXES[$type]; + + return $prefix . ($server['name'] ?? ''); } } diff --git a/app/Http/Controllers/V1/Guest/PlanController.php b/app/Http/Controllers/V1/Guest/PlanController.php index ae2e782..4348a25 100755 --- a/app/Http/Controllers/V1/Guest/PlanController.php +++ b/app/Http/Controllers/V1/Guest/PlanController.php @@ -3,14 +3,23 @@ namespace App\Http\Controllers\V1\Guest; use App\Http\Controllers\Controller; +use App\Http\Resources\PlanResource; use App\Models\Plan; +use App\Services\PlanService; +use Auth; use Illuminate\Http\Request; class PlanController extends Controller { + + protected $planService; + public function __construct(PlanService $planService) + { + $this->planService = $planService; + } public function fetch(Request $request) { - $plan = Plan::where('show', 1)->get(); - return $this->success($plan); + $plan = $this->planService->getAvailablePlans(); + return $this->success(PlanResource::collection($plan)); } } diff --git a/app/Http/Controllers/V1/Guest/TelegramController.php b/app/Http/Controllers/V1/Guest/TelegramController.php index 7edff49..f836d2b 100644 --- a/app/Http/Controllers/V1/Guest/TelegramController.php +++ b/app/Http/Controllers/V1/Guest/TelegramController.php @@ -23,7 +23,7 @@ class TelegramController extends Controller if ($request->input('access_token') !== md5(admin_setting('telegram_bot_token'))) { throw new ApiException('access_token is error', 401); } - $data = json_decode(get_request_content(),true); + $data = json_decode(request()->getContent(),true); $this->formatMessage($data); $this->formatChatJoinRequest($data); $this->handle(); diff --git a/app/Http/Controllers/V1/Passport/AuthController.php b/app/Http/Controllers/V1/Passport/AuthController.php index 8979be6..cd34e4f 100644 --- a/app/Http/Controllers/V1/Passport/AuthController.php +++ b/app/Http/Controllers/V1/Passport/AuthController.php @@ -180,7 +180,7 @@ class AuthController extends Controller $authService = new AuthService($user); - $data = $authService->generateAuthData($request); + $data = $authService->generateAuthData(); return $this->success($data); } @@ -223,48 +223,70 @@ class AuthController extends Controller } $authService = new AuthService($user); - return $this->success($authService->generateAuthData($request)); + return $this->success($authService->generateAuthData()); } public function token2Login(Request $request) { - if ($request->input('token')) { - $redirect = '/#/login?verify=' . $request->input('token') . '&redirect=' . ($request->input('redirect') ? $request->input('redirect') : 'dashboard'); - if (admin_setting('app_url')) { - $location = admin_setting('app_url') . $redirect; - } else { - $location = url($redirect); - } - return redirect()->to($location)->send(); + if ($token = $request->input('token')) { + $redirect = '/#/login?verify=' . $token . '&redirect=' . ($request->input('redirect', 'dashboard')); + + return redirect()->to( + admin_setting('app_url') + ? admin_setting('app_url') . $redirect + : url($redirect) + ); } - if ($request->input('verify')) { - $key = CacheKey::get('TEMP_TOKEN', $request->input('verify')); + if ($verify = $request->input('verify')) { + $key = CacheKey::get('TEMP_TOKEN', $verify); $userId = Cache::get($key); + if (!$userId) { - return $this->fail([400,__('Token error')]); - } - $user = User::find($userId); - if (!$user) { - return $this->fail([400,__('The user does not ')]); + return response()->json([ + 'message' => __('Token error') + ], 400); } + + $user = User::findOrFail($userId); + if ($user->banned) { - return $this->fail([400,__('Your account has been suspended')]); + return response()->json([ + 'message' => __('Your account has been suspended') + ], 400); } + Cache::forget($key); $authService = new AuthService($user); - return $this->success($authService->generateAuthData($request)); + + return response()->json([ + 'data' => $authService->generateAuthData() + ]); } + + return response()->json([ + 'message' => __('Invalid request') + ], 400); } public function getQuickLoginUrl(Request $request) { $authorization = $request->input('auth_data') ?? $request->header('authorization'); - if (!$authorization) return $this->fail(ResponseEnum::CLIENT_HTTP_UNAUTHORIZED); - - $user = AuthService::decryptAuthData($authorization); - if (!$user) return $this->fail(ResponseEnum::CLIENT_HTTP_UNAUTHORIZED_EXPIRED); + + if (!$authorization) { + return response()->json([ + 'message' => ResponseEnum::CLIENT_HTTP_UNAUTHORIZED + ], 401); + } + $user = AuthService::findUserByBearerToken($authorization); + + if (!$user) { + return response()->json([ + 'message' => ResponseEnum::CLIENT_HTTP_UNAUTHORIZED_EXPIRED + ], 401); + } + $code = Helper::guid(); $key = CacheKey::get('TEMP_TOKEN', $code); Cache::put($key, $user['id'], 60); diff --git a/app/Http/Controllers/V1/Server/DeepbworkController.php b/app/Http/Controllers/V1/Server/DeepbworkController.php deleted file mode 100644 index 6a6b895..0000000 --- a/app/Http/Controllers/V1/Server/DeepbworkController.php +++ /dev/null @@ -1,222 +0,0 @@ -input('node_id'); - $server = ServerVmess::find($nodeId); - if (!$server) { - return $this->fail([400,'节点不存在']); - } - Cache::put(CacheKey::get('SERVER_VMESS_LAST_CHECK_AT', $server->id), time(), 3600); - $users = ServerService::getAvailableUsers($server->group_id); - $result = []; - foreach ($users as $user) { - $user->v2ray_user = [ - "uuid" => $user->uuid, - "email" => sprintf("%s@v2board.user", $user->uuid), - "alter_id" => 0, - "level" => 0, - ]; - unset($user->uuid); - array_push($result, $user); - } - $eTag = sha1(json_encode($result)); - if (strpos($request->header('If-None-Match'), $eTag) !== false ) { - return response(null,304); - } - return response([ - 'msg' => 'ok', - 'data' => $result, - ])->header('ETag', "\"{$eTag}\""); - } - - // 后端提交数据 - public function submit(Request $request) - { - $server = ServerVmess::find($request->input('node_id')); - if (!$server) { - return response([ - 'ret' => 0, - 'msg' => 'server is not found' - ]); - } - $data = get_request_content(); - $data = json_decode($data, true); - Cache::put(CacheKey::get('SERVER_VMESS_ONLINE_USER', $server->id), count($data), 3600); - Cache::put(CacheKey::get('SERVER_VMESS_LAST_PUSH_AT', $server->id), time(), 3600); - $userService = new UserService(); - $formatData = []; - - foreach ($data as $item) { - $formatData[$item['user_id']] = [$item['u'], $item['d']]; - } - $userService->trafficFetch($server->toArray(), 'vmess', $formatData); - - return response([ - 'ret' => 1, - 'msg' => 'ok' - ]); - } - - // 后端获取配置 - public function config(Request $request) - { - $request->validate([ - 'node_id' => 'required', - 'local_port' => 'required' - ],[ - 'node_id.required' => '节点ID不能为空', - 'local_port.required' => '本地端口不能为空' - ]); - try { - $json = $this->getV2RayConfig($request->input('node_id'), $request->input('local_port')); - } catch (\Exception $e) { - \Log::error($e); - throw new ApiException($e->getMessage()); - } - - return(json_encode($json, JSON_UNESCAPED_UNICODE)); - } - - private function getV2RayConfig(int $nodeId, int $localPort) - { - $server = ServerVmess::find($nodeId); - if (!$server) { - return $this->fail([400,'节点不存在']); - } - $json = json_decode(self::V2RAY_CONFIG); - $json->log->loglevel = (int)admin_setting('server_log_enable') ? 'debug' : 'none'; - $json->inbounds[1]->port = (int)$localPort; - $json->inbounds[0]->port = (int)$server->server_port; - $json->inbounds[0]->streamSettings->network = $server->network; - $this->setDns($server, $json); - $this->setNetwork($server, $json); - $this->setRule($server, $json); - $this->setTls($server, $json); - - return $json; - } - - private function setDns(ServerVmess $server, object $json) - { - if ($server->dnsSettings) { - $dns = $server->dnsSettings; - if (isset($dns->servers)) { - array_push($dns->servers, '1.1.1.1'); - array_push($dns->servers, 'localhost'); - } - $json->dns = $dns; - $json->outbounds[0]->settings->domainStrategy = 'UseIP'; - } - } - - private function setNetwork(ServerVmess $server, object $json) - { - if ($server->networkSettings) { - switch ($server->network) { - case 'tcp': - $json->inbounds[0]->streamSettings->tcpSettings = $server->networkSettings; - break; - case 'kcp': - $json->inbounds[0]->streamSettings->kcpSettings = $server->networkSettings; - break; - case 'ws': - $json->inbounds[0]->streamSettings->wsSettings = $server->networkSettings; - break; - case 'http': - $json->inbounds[0]->streamSettings->httpSettings = $server->networkSettings; - break; - case 'domainsocket': - $json->inbounds[0]->streamSettings->dsSettings = $server->networkSettings; - break; - case 'quic': - $json->inbounds[0]->streamSettings->quicSettings = $server->networkSettings; - break; - case 'grpc': - $json->inbounds[0]->streamSettings->grpcSettings = $server->networkSettings; - break; - } - } - } - - private function setRule(ServerVmess $server, object $json) - { - $domainRules = array_filter(explode(PHP_EOL, admin_setting('server_v2ray_domain'))); - $protocolRules = array_filter(explode(PHP_EOL, admin_setting('server_v2ray_protocol'))); - if ($server->ruleSettings) { - $ruleSettings = $server->ruleSettings; - // domain - if (isset($ruleSettings->domain)) { - $ruleSettings->domain = array_filter($ruleSettings->domain); - if (!empty($ruleSettings->domain)) { - $domainRules = array_merge($domainRules, $ruleSettings->domain); - } - } - // protocol - if (isset($ruleSettings->protocol)) { - $ruleSettings->protocol = array_filter($ruleSettings->protocol); - if (!empty($ruleSettings->protocol)) { - $protocolRules = array_merge($protocolRules, $ruleSettings->protocol); - } - } - } - if (!empty($domainRules)) { - $domainObj = new \StdClass(); - $domainObj->type = 'field'; - $domainObj->domain = $domainRules; - $domainObj->outboundTag = 'block'; - array_push($json->routing->rules, $domainObj); - } - if (!empty($protocolRules)) { - $protocolObj = new \StdClass(); - $protocolObj->type = 'field'; - $protocolObj->protocol = $protocolRules; - $protocolObj->outboundTag = 'block'; - array_push($json->routing->rules, $protocolObj); - } - if (empty($domainRules) && empty($protocolRules)) { - $json->inbounds[0]->sniffing->enabled = false; - } - } - - private function setTls(ServerVMess $server, object $json) - { - if ((int)$server->tls) { - $tlsSettings = $server->tlsSettings; - $json->inbounds[0]->streamSettings->security = 'tls'; - $tls = (object)[ - 'certificateFile' => '/root/.cert/server.crt', - 'keyFile' => '/root/.cert/server.key' - ]; - $json->inbounds[0]->streamSettings->tlsSettings = new \StdClass(); - if (isset($tlsSettings->serverName)) { - $json->inbounds[0]->streamSettings->tlsSettings->serverName = (string)$tlsSettings->serverName; - } - if (isset($tlsSettings->allowInsecure)) { - $json->inbounds[0]->streamSettings->tlsSettings->allowInsecure = (int)$tlsSettings->allowInsecure ? true : false; - } - $json->inbounds[0]->streamSettings->tlsSettings->certificates[0] = $tls; - } - } -} diff --git a/app/Http/Controllers/V1/Server/ShadowsocksTidalabController.php b/app/Http/Controllers/V1/Server/ShadowsocksTidalabController.php index d40dfd6..9566958 100644 --- a/app/Http/Controllers/V1/Server/ShadowsocksTidalabController.php +++ b/app/Http/Controllers/V1/Server/ShadowsocksTidalabController.php @@ -21,13 +21,9 @@ class ShadowsocksTidalabController extends Controller public function user(Request $request) { ini_set('memory_limit', -1); - $nodeId = $request->input('node_id'); - $server = ServerShadowsocks::find($nodeId); - if (!$server) { - return $this->fail([400,'节点不存在']); - } + $server = $request->input('node_info'); Cache::put(CacheKey::get('SERVER_SHADOWSOCKS_LAST_CHECK_AT', $server->id), time(), 3600); - $users = ServerService::getAvailableUsers($server->group_id); + $users = ServerService::getAvailableUsers($server->group_ids); $result = []; foreach ($users as $user) { array_push($result, [ @@ -49,15 +45,8 @@ class ShadowsocksTidalabController extends Controller // 后端提交数据 public function submit(Request $request) { - $server = ServerShadowsocks::find($request->input('node_id')); - if (!$server) { - return response([ - 'ret' => 0, - 'msg' => 'server is not found' - ]); - } - $data = get_request_content(); - $data = json_decode($data, true); + $server = $request->input('node_info'); + $data = json_decode(request()->getContent(), true); Cache::put(CacheKey::get('SERVER_SHADOWSOCKS_ONLINE_USER', $server->id), count($data), 3600); Cache::put(CacheKey::get('SERVER_SHADOWSOCKS_LAST_PUSH_AT', $server->id), time(), 3600); $userService = new UserService(); @@ -73,4 +62,4 @@ class ShadowsocksTidalabController extends Controller 'msg' => 'ok' ]); } -} +} \ No newline at end of file diff --git a/app/Http/Controllers/V1/Server/TrojanTidalabController.php b/app/Http/Controllers/V1/Server/TrojanTidalabController.php index 2e47f65..3cd2cbc 100644 --- a/app/Http/Controllers/V1/Server/TrojanTidalabController.php +++ b/app/Http/Controllers/V1/Server/TrojanTidalabController.php @@ -23,9 +23,8 @@ class TrojanTidalabController extends Controller public function user(Request $request) { ini_set('memory_limit', -1); - $nodeId = $request->input('node_id'); - $server = ServerTrojan::find($nodeId); - if (!$server) { + $server = $request->input('node_info'); + if ($server->type !== 'trojan') { return $this->fail([400, '节点不存在']); } Cache::put(CacheKey::get('SERVER_TROJAN_LAST_CHECK_AT', $server->id), time(), 3600); @@ -51,15 +50,11 @@ class TrojanTidalabController extends Controller // 后端提交数据 public function submit(Request $request) { - $server = ServerTrojan::find($request->input('node_id')); - if (!$server) { - return response([ - 'ret' => 0, - 'msg' => 'server is not found' - ]); + $server = $request->input('node_info'); + if ($server->type !== 'trojan') { + return $this->fail([400, '节点不存在']); } - $data = get_request_content(); - $data = json_decode($data, true); + $data = json_decode(request()->getContent(), true); Cache::put(CacheKey::get('SERVER_TROJAN_ONLINE_USER', $server->id), count($data), 3600); Cache::put(CacheKey::get('SERVER_TROJAN_LAST_PUSH_AT', $server->id), time(), 3600); $userService = new UserService(); @@ -78,6 +73,10 @@ class TrojanTidalabController extends Controller // 后端获取配置 public function config(Request $request) { + $server = $request->input('node_info'); + if ($server->type !== 'trojan') { + return $this->fail([400, '节点不存在']); + } $request->validate([ 'node_id' => 'required', 'local_port' => 'required' @@ -86,7 +85,7 @@ class TrojanTidalabController extends Controller 'local_port.required' => '本地端口不能为空' ]); try { - $json = $this->getTrojanConfig($request->input('node_id'), $request->input('local_port')); + $json = $this->getTrojanConfig($server, $request->input('local_port')); } catch (\Exception $e) { \Log::error($e); return $this->fail([500, '配置获取失败']); @@ -95,19 +94,15 @@ class TrojanTidalabController extends Controller return (json_encode($json, JSON_UNESCAPED_UNICODE)); } - private function getTrojanConfig(int $nodeId, int $localPort) + private function getTrojanConfig($server, int $localPort) { - $server = ServerTrojan::find($nodeId); - if (!$server) { - return $this->fail([400, '节点不存在']); - } - + $protocolSettings = $server->protocol_settings; $json = json_decode(self::TROJAN_CONFIG); $json->local_port = $server->server_port; - $json->ssl->sni = $server->server_name ? $server->server_name : $server->host; + $json->ssl->sni = data_get($protocolSettings, 'server_name', $server->host); $json->ssl->cert = "/root/.cert/server.crt"; $json->ssl->key = "/root/.cert/server.key"; $json->api->api_port = $localPort; return $json; } -} +} \ No newline at end of file diff --git a/app/Http/Controllers/V1/Server/UniProxyController.php b/app/Http/Controllers/V1/Server/UniProxyController.php index 35d94a5..b6d699f 100644 --- a/app/Http/Controllers/V1/Server/UniProxyController.php +++ b/app/Http/Controllers/V1/Server/UniProxyController.php @@ -9,22 +9,30 @@ use App\Utils\CacheKey; use App\Utils\Helper; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cache; -use Illuminate\Support\Facades\Validator; +use App\Services\UserOnlineService; +use Illuminate\Http\JsonResponse; class UniProxyController extends Controller { + public function __construct( + private readonly UserOnlineService $userOnlineService + ) { + } // 后端获取用户 public function user(Request $request) { ini_set('memory_limit', -1); - Cache::put(CacheKey::get('SERVER_' . strtoupper($request->input('node_type')) . '_LAST_CHECK_AT', $request->input('node_id')), time(), 3600); - $users = ServerService::getAvailableUsers($request->input('node_info')->group_id)->toArray(); + $node = $request->input('node_info'); + $nodeType = $node->type; + $nodeId = $node->id; + Cache::put(CacheKey::get('SERVER_' . strtoupper($nodeType) . '_LAST_CHECK_AT', $nodeId), time(), 3600); + $users = ServerService::getAvailableUsers($node->group_ids); $response['users'] = $users; $eTag = sha1(json_encode($response)); - if (strpos($request->header('If-None-Match'), $eTag) !== false) { + if (strpos($request->header('If-None-Match', ''), $eTag) !== false) { return response(null, 304); } @@ -34,131 +42,142 @@ class UniProxyController extends Controller // 后端提交数据 public function push(Request $request) { - $res = json_decode(get_request_content(), true); - $data = array_filter($res, function ($item) { - return is_array($item) && count($item) === 2 && is_numeric($item[0]) && is_numeric($item[1]); - }); - $nodeType = $request->input('node_type'); - $nodeId = $request->input('node_id'); - // 增加单节点多服务器统计在线人数 - $ip = $request->ip(); - $id = $request->input("id"); - $time = time(); - $cacheKey = CacheKey::get('MULTI_SERVER_' . strtoupper($nodeType) . '_ONLINE_USER', $nodeId); - - // 1、获取节点节点在线人数缓存 - $onlineUsers = Cache::get($cacheKey) ?? []; - $onlineCollection = collect($onlineUsers); - // 过滤掉超过600秒的记录 - $onlineCollection = $onlineCollection->reject(function ($item) use ($time) { - return $item['time'] < ($time - 600); - }); - // 定义数据 - $updatedItem = [ - 'id' => $id ?? $ip, - 'ip' => $ip, - 'online_user' => count($data), - 'time' => $time - ]; - - $existingItemIndex = $onlineCollection->search(function ($item) use ($updatedItem) { - return ($item['id'] ?? '') === $updatedItem['id']; - }); - if ($existingItemIndex !== false) { - $onlineCollection[$existingItemIndex] = $updatedItem; - } else { - $onlineCollection->push($updatedItem); + $res = json_decode(request()->getContent(), true); + if (!is_array($res)) { + return $this->fail([422, 'Invalid data format']); } - $onlineUsers = $onlineCollection->all(); - Cache::put($cacheKey, $onlineUsers, 3600); + $data = array_filter($res, function ($item) { + return is_array($item) + && count($item) === 2 + && is_numeric($item[0]) + && is_numeric($item[1]); + }); + if (empty($data)) { + return $this->success(true); + } + $node = $request->input('node_info'); + $nodeType = $node->type; + $nodeId = $node->id; + + Cache::put( + CacheKey::get('SERVER_' . strtoupper($nodeType) . '_ONLINE_USER', $nodeId), + count($data), + 3600 + ); + Cache::put( + CacheKey::get('SERVER_' . strtoupper($nodeType) . '_LAST_PUSH_AT', $nodeId), + time(), + 3600 + ); - $online_user = $onlineCollection->sum('online_user'); - Cache::put(CacheKey::get('SERVER_' . strtoupper($nodeType) . '_ONLINE_USER', $nodeId), $online_user, 3600); - Cache::put(CacheKey::get('SERVER_' . strtoupper($nodeType) . '_LAST_PUSH_AT', $nodeId), time(), 3600); $userService = new UserService(); - $userService->trafficFetch($request->input('node_info')->toArray(), $nodeType, $data, $ip); + $userService->trafficFetch($node->toArray(), $nodeType, $data); return $this->success(true); } // 后端获取配置 public function config(Request $request) { - $nodeType = $request->input('node_type'); - $nodeInfo = $request->input('node_info'); - switch ($nodeType) { - case 'shadowsocks': - $response = [ - 'server_port' => $nodeInfo->server_port, - 'cipher' => $nodeInfo->cipher, - 'obfs' => $nodeInfo->obfs, - 'obfs_settings' => $nodeInfo->obfs_settings - ]; + $node = $request->input('node_info'); + $nodeType = $node->type; + $protocolSettings = $node->protocol_settings; + + $serverPort = $node->server_port; + $host = $node->host; + + $baseConfig = [ + 'server_port' => (int) $serverPort, + 'network' => data_get($protocolSettings, 'network'), + 'networkSettings' => data_get($protocolSettings, 'network_settings') ?: null, + ]; + + $response = match ($nodeType) { + 'shadowsocks' => [ + ...$baseConfig, + 'cipher' => $protocolSettings['cipher'], + 'obfs' => $protocolSettings['obfs'], + 'obfs_settings' => $protocolSettings['obfs_settings'], + 'server_key' => match ($protocolSettings['cipher']) { + '2022-blake3-aes-128-gcm' => Helper::getServerKey($node->created_at, 16), + '2022-blake3-aes-256-gcm' => Helper::getServerKey($node->created_at, 32), + default => null + } + ], + 'vmess' => [ + ...$baseConfig, + 'tls' => (int) $protocolSettings['tls'] + ], + 'trojan' => [ + ...$baseConfig, + 'host' => $host, + 'server_name' => $protocolSettings['server_name'], + ], + 'vless' => [ + ...$baseConfig, + 'tls' => (int) $protocolSettings['tls'], + 'flow' => $protocolSettings['flow'], + 'tls_settings' => + match ((int) $protocolSettings['tls']) { + 2 => $protocolSettings['reality_settings'], + default => $protocolSettings['tls_settings'] + } + ], + 'hysteria' => [ + 'server_port' => (int) $serverPort, + 'version' => (int) $protocolSettings['version'], + 'host' => $host, + 'server_name' => $protocolSettings['tls']['server_name'], + 'up_mbps' => (int) $protocolSettings['bandwidth']['up'], + 'down_mbps' => (int) $protocolSettings['bandwidth']['down'], + ...match ((int) $protocolSettings['version']) { + 1 => ['obfs' => $protocolSettings['obfs']['password'] ?? null], + 2 => [ + 'obfs' => $protocolSettings['obfs']['open'] ? $protocolSettings['obfs']['type'] : null, + 'obfs-password' => $protocolSettings['obfs']['password'] ?? null + ], + default => [] + } + ], + default => [] + }; - if ($nodeInfo->cipher === '2022-blake3-aes-128-gcm') { - $response['server_key'] = Helper::getServerKey($nodeInfo->created_at, 16); - } - if ($nodeInfo->cipher === '2022-blake3-aes-256-gcm') { - $response['server_key'] = Helper::getServerKey($nodeInfo->created_at, 32); - } - break; - case 'vmess': - $response = [ - 'server_port' => $nodeInfo->server_port, - 'network' => $nodeInfo->network, - 'networkSettings' => $nodeInfo->networkSettings, - 'tls' => $nodeInfo->tls - ]; - break; - case 'trojan': - $response = [ - 'host' => $nodeInfo->host, - 'server_port' => $nodeInfo->server_port, - 'server_name' => $nodeInfo->server_name, - 'network' => $nodeInfo->network, - 'networkSettings' => $nodeInfo->networkSettings, - ]; - break; - case 'hysteria': - $response = [ - 'version' => $nodeInfo->version, - 'host' => $nodeInfo->host, - 'server_port' => $nodeInfo->server_port, - 'server_name' => $nodeInfo->server_name, - 'up_mbps' => $nodeInfo->up_mbps, - 'down_mbps' => $nodeInfo->down_mbps, - 'obfs' => $nodeInfo->is_obfs ? Helper::getServerKey($nodeInfo->created_at, 16) : null - ]; - break; - case "vless": - $response = [ - 'server_port' => $nodeInfo->server_port, - 'network' => $nodeInfo->network, - 'network_settings' => $nodeInfo->network_settings, - 'networkSettings' => $nodeInfo->network_settings, - 'tls' => $nodeInfo->tls, - 'flow' => $nodeInfo->flow, - 'tls_settings' => $nodeInfo->tls_settings - ]; - break; - } $response['base_config'] = [ 'push_interval' => (int) admin_setting('server_push_interval', 60), 'pull_interval' => (int) admin_setting('server_pull_interval', 60) ]; - if ($nodeInfo['route_id']) { - $response['routes'] = ServerService::getRoutes($nodeInfo['route_id']); - } - $eTag = sha1(json_encode($response)); - if (strpos($request->header('If-None-Match'), $eTag) !== false) { - return response(null, 304); + + if (!empty($node['route_ids'])) { + $response['routes'] = ServerService::getRoutes($node['route_ids']); } + $eTag = sha1(json_encode($response)); + if (strpos($request->header('If-None-Match', '') ?? '', $eTag) !== false) { + return response(null, 304); + } return response($response)->header('ETag', "\"{$eTag}\""); } - // 后端提交在线数据 - public function alive(Request $request) + // 获取在线用户数据(wyx2685 + public function alivelist(Request $request): JsonResponse { - return $this->success(true); + $node = $request->input('node_info'); + $deviceLimitUsers = ServerService::getAvailableUsers($node->group_ids) + ->where('device_limit', '>', 0); + $alive = $this->userOnlineService->getAliveList($deviceLimitUsers); + return response()->json(['alive' => (object) $alive]); + } + + // 后端提交在线数据 + public function alive(Request $request): JsonResponse + { + $node = $request->input('node_info'); + $data = json_decode(request()->getContent(), true); + if ($data === null) { + return response()->json([ + 'error' => 'Invalid online data' + ], 400); + } + $this->userOnlineService->updateAliveData($data, $node->type, $node->id); + return response()->json(['data' => true]); } } diff --git a/app/Http/Controllers/V1/Staff/TicketController.php b/app/Http/Controllers/V1/Staff/TicketController.php index c63cf28..ae32373 100644 --- a/app/Http/Controllers/V1/Staff/TicketController.php +++ b/app/Http/Controllers/V1/Staff/TicketController.php @@ -57,7 +57,7 @@ class TicketController extends Controller $ticketService->replyByAdmin( $request->input('id'), $request->input('message'), - $request->user['id'] + $request->user()->id ); return $this->success(true); } diff --git a/app/Http/Controllers/V1/User/CouponController.php b/app/Http/Controllers/V1/User/CouponController.php index a70dcc2..89c7873 100644 --- a/app/Http/Controllers/V1/User/CouponController.php +++ b/app/Http/Controllers/V1/User/CouponController.php @@ -16,7 +16,7 @@ class CouponController extends Controller } $couponService = new CouponService($request->input('code')); $couponService->setPlanId($request->input('plan_id')); - $couponService->setUserId($request->user['id']); + $couponService->setUserId($request->user()->id); $couponService->check(); return $this->success($couponService->getCoupon()); } diff --git a/app/Http/Controllers/V1/User/InviteController.php b/app/Http/Controllers/V1/User/InviteController.php index 88e167b..cbde315 100644 --- a/app/Http/Controllers/V1/User/InviteController.php +++ b/app/Http/Controllers/V1/User/InviteController.php @@ -17,11 +17,11 @@ class InviteController extends Controller { public function save(Request $request) { - if (InviteCode::where('user_id', $request->user['id'])->where('status', 0)->count() >= admin_setting('invite_gen_limit', 5)) { + if (InviteCode::where('user_id', $request->user()->id)->where('status', 0)->count() >= admin_setting('invite_gen_limit', 5)) { return $this->fail([400,__('The maximum number of creations has been reached')]); } $inviteCode = new InviteCode(); - $inviteCode->user_id = $request->user['id']; + $inviteCode->user_id = $request->user()->id; $inviteCode->code = Helper::randomChar(8); return $this->success($inviteCode->save()); } @@ -30,7 +30,7 @@ class InviteController extends Controller { $current = $request->input('current') ? $request->input('current') : 1; $pageSize = $request->input('page_size') >= 10 ? $request->input('page_size') : 10; - $builder = CommissionLog::where('invite_user_id', $request->user['id']) + $builder = CommissionLog::where('invite_user_id', $request->user()->id) ->where('get_amount', '>', 0) ->orderBy('created_at', 'DESC'); $total = $builder->count(); @@ -45,7 +45,7 @@ class InviteController extends Controller public function fetch(Request $request) { $commission_rate = admin_setting('invite_commission', 10); - $user = User::find($request->user['id']) + $user = User::find($request->user()->id) ->load(['codes' => fn($query) => $query->where('status', 0)]); if ($user->commission_rate) { $commission_rate = $user->commission_rate; diff --git a/app/Http/Controllers/V1/User/KnowledgeController.php b/app/Http/Controllers/V1/User/KnowledgeController.php index 6861e81..ae500ed 100644 --- a/app/Http/Controllers/V1/User/KnowledgeController.php +++ b/app/Http/Controllers/V1/User/KnowledgeController.php @@ -20,7 +20,7 @@ class KnowledgeController extends Controller ->first() ->toArray(); if (!$knowledge) return $this->fail([500, __('Article does not exist')]); - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); $userService = new UserService(); if (!$userService->isAvailable($user)) { $this->formatAccessData($knowledge['body']); diff --git a/app/Http/Controllers/V1/User/NoticeController.php b/app/Http/Controllers/V1/User/NoticeController.php index b6b9349..3ea555b 100644 --- a/app/Http/Controllers/V1/User/NoticeController.php +++ b/app/Http/Controllers/V1/User/NoticeController.php @@ -12,8 +12,8 @@ class NoticeController extends Controller { $current = $request->input('current') ? $request->input('current') : 1; $pageSize = 5; - $model = Notice::orderBy('created_at', 'DESC') - ->where('show', 1); + $model = Notice::orderBy('sort', 'ASC') + ->where('show', true); $total = $model->count(); $res = $model->forPage($current, $pageSize) ->get(); diff --git a/app/Http/Controllers/V1/User/OrderController.php b/app/Http/Controllers/V1/User/OrderController.php index e9fe203..6ad6742 100755 --- a/app/Http/Controllers/V1/User/OrderController.php +++ b/app/Http/Controllers/V1/User/OrderController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\V1\User; use App\Exceptions\ApiException; use App\Http\Controllers\Controller; use App\Http\Requests\User\OrderSave; +use App\Http\Resources\OrderResource; use App\Models\Order; use App\Models\Payment; use App\Models\Plan; @@ -13,6 +14,7 @@ use App\Services\CouponService; use App\Services\OrderService; use App\Services\PaymentService; use App\Services\PlanService; +use App\Services\Plugin\HookManager; use App\Services\UserService; use App\Utils\Helper; use Illuminate\Http\Request; @@ -22,138 +24,127 @@ class OrderController extends Controller { public function fetch(Request $request) { - $model = Order::where('user_id', $request->user['id']) - ->orderBy('created_at', 'DESC'); - if ($request->input('status') !== null) { - $model->where('status', $request->input('status')); - } - $order = $model->get(); - $plan = Plan::get(); - for ($i = 0; $i < count($order); $i++) { - for ($x = 0; $x < count($plan); $x++) { - if ($order[$i]['plan_id'] === $plan[$x]['id']) { - $order[$i]['plan'] = $plan[$x]; - } - } - } - return $this->success($order->makeHidden(['id', 'user_id'])); + $request->validate([ + 'status' => 'nullable|integer|in:0,1,2,3', + ]); + $orders = Order::with('plan') + ->where('user_id', $request->user()->id) + ->when($request->input('status') !== null, function ($query) use ($request) { + $query->where('status', $request->input('status')); + }) + ->orderBy('created_at', 'DESC') + ->get(); + + return $this->success(OrderResource::collection($orders)); } public function detail(Request $request) { - $order = Order::where('user_id', $request->user['id']) + $request->validate([ + 'trade_no' => 'required|string', + ]); + $order = Order::with('payment') + ->where('user_id', $request->user()->id) ->where('trade_no', $request->input('trade_no')) ->first(); if (!$order) { return $this->fail([400, __('Order does not exist or has been paid')]); } $order['plan'] = Plan::find($order->plan_id); - $order['try_out_plan_id'] = (int)admin_setting('try_out_plan_id'); + $order['try_out_plan_id'] = (int) admin_setting('try_out_plan_id'); if (!$order['plan']) { return $this->fail([400, __('Subscription plan does not exist')]); } if ($order->surplus_order_ids) { $order['surplus_orders'] = Order::whereIn('id', $order->surplus_order_ids)->get(); } - return $this->success($order); + return $this->success(OrderResource::make($order)); } public function save(OrderSave $request) { - $userService = new UserService(); - if ($userService->isNotCompleteOrderByUserId($request->user['id'])) { - return $this->fail([400, __('You have an unpaid or pending order, please try again later or cancel it')]); + $request->validate([ + 'plan_id' => 'required|exists:App\Models\Plan,id', + 'period' => 'required|string' + ]); + + $user = User::findOrFail($request->user()->id); + $userService = app(UserService::class); + + if ($userService->isNotCompleteOrderByUserId($user->id)) { + throw new ApiException(__('You have an unpaid or pending order, please try again later or cancel it')); } - $planService = new PlanService($request->input('plan_id')); + $plan = Plan::findOrFail($request->input('plan_id')); + $planService = new PlanService($plan); - $plan = $planService->plan; - $user = User::find($request->user['id']); + // Validate plan purchase + $planService->validatePurchase($user, $request->input('period')); - if (!$plan) { - return $this->fail([400, __('Subscription plan does not exist')]); - } + return DB::transaction(function () use ($request, $plan, $user, $userService, $planService) { + $period = $request->input('period'); + $newPeriod = PlanService::getPeriodKey($period); - if ($user->plan_id !== $plan->id && !$planService->haveCapacity() && $request->input('period') !== 'reset_price') { - throw new ApiException(__('Current product is sold out')); - } - - if ($plan[$request->input('period')] === NULL) { - return $this->fail([400, __('This payment period cannot be purchased, please choose another period')]); - } - - if ($request->input('period') === 'reset_price') { - if (!$userService->isAvailable($user) || $plan->id !== $user->plan_id) { - return $this->fail([400, __('Subscription has expired or no active subscription, unable to purchase Data Reset Package')]); - } - } - - if ((!$plan->show && !$plan->renew) || (!$plan->show && $user->plan_id !== $plan->id)) { - if ($request->input('period') !== 'reset_price') { - return $this->fail([400, __('This subscription has been sold out, please choose another subscription')]); - } - } - - if (!$plan->renew && $user->plan_id == $plan->id && $request->input('period') !== 'reset_price') { - return $this->fail([400, __('This subscription cannot be renewed, please change to another subscription')]); - } - - - if (!$plan->show && $plan->renew && !$userService->isAvailable($user)) { - return $this->fail([400, __('This subscription has expired, please change to another subscription')]); - } - - try{ - DB::beginTransaction(); - $order = new Order(); - $orderService = new OrderService($order); - $order->user_id = $request->user['id']; - $order->plan_id = $plan->id; - $order->period = $request->input('period'); - $order->trade_no = Helper::generateOrderNo(); - $order->total_amount = $plan[$request->input('period')]; + // Create order + $order = new Order([ + 'user_id' => $user->id, + 'plan_id' => $plan->id, + 'period' => $newPeriod, + 'trade_no' => Helper::generateOrderNo(), + 'total_amount' => optional($plan->prices)[$newPeriod] * 100 + ]); + // Apply coupon if provided if ($request->input('coupon_code')) { - $couponService = new CouponService($request->input('coupon_code')); - if (!$couponService->use($order)) { - return $this->fail([400, __('Coupon failed')]); - } - $order->coupon_id = $couponService->getId(); + $this->applyCoupon($order, $request->input('coupon_code')); } + // Set order attributes + $orderService = new OrderService($order); $orderService->setVipDiscount($user); $orderService->setOrderType($user); $orderService->setInvite($user); + // Handle user balance if ($user->balance && $order->total_amount > 0) { - $remainingBalance = $user->balance - $order->total_amount; - $userService = new UserService(); - if ($remainingBalance > 0) { - if (!$userService->addBalance($order->user_id, - $order->total_amount)) { - return $this->fail([400, __('Insufficient balance')]); - } - $order->balance_amount = $order->total_amount; - $order->total_amount = 0; - } else { - if (!$userService->addBalance($order->user_id, - $user->balance)) { - return $this->fail([400, __('Insufficient balance')]); - } - $order->balance_amount = $user->balance; - $order->total_amount = $order->total_amount - $user->balance; - } + $this->handleUserBalance($order, $user, $userService); } if (!$order->save()) { - DB::rollBack(); - return $this->fail([400, __('Failed to create order')]); + throw new ApiException(__('Failed to create order')); } - DB::commit(); - }catch (\Exception $e){ - DB::rollBack(); - throw $e; - } + HookManager::call('order.after_create', $order); - return $this->success($order->trade_no); + return $this->success($order->trade_no); + }); + } + + protected function applyCoupon(Order $order, string $couponCode): void + { + $couponService = new CouponService($couponCode); + if (!$couponService->use($order)) { + throw new ApiException(__('Coupon failed')); + } + $order->coupon_id = $couponService->getId(); + } + + protected function handleUserBalance(Order $order, User $user, UserService $userService): void + { + $remainingBalance = $user->balance - $order->total_amount; + + if ($remainingBalance > 0) { + if (!$userService->addBalance($order->user_id, -$order->total_amount)) { + throw new ApiException(__('Insufficient balance')); + } + $order->balance_amount = $order->total_amount; + $order->total_amount = 0; + } else { + if (!$userService->addBalance($order->user_id, -$user->balance)) { + throw new ApiException(__('Insufficient balance')); + } + $order->balance_amount = $user->balance; + $order->total_amount = $order->total_amount - $user->balance; + } } public function checkout(Request $request) @@ -161,7 +152,7 @@ class OrderController extends Controller $tradeNo = $request->input('trade_no'); $method = $request->input('method'); $order = Order::where('trade_no', $tradeNo) - ->where('user_id', $request->user['id']) + ->where('user_id', $request->user()->id) ->where('status', 0) ->first(); if (!$order) { @@ -170,21 +161,24 @@ class OrderController extends Controller // free process if ($order->total_amount <= 0) { $orderService = new OrderService($order); - if (!$orderService->paid($order->trade_no)) return $this->fail([400, '支付失败']); + if (!$orderService->paid($order->trade_no)) + return $this->fail([400, '支付失败']); return response([ 'type' => -1, 'data' => true ]); } $payment = Payment::find($method); - if (!$payment || $payment->enable !== 1) return $this->fail([400, __('Payment method is not available')]); + if (!$payment || $payment->enable !== 1) + return $this->fail([400, __('Payment method is not available')]); $paymentService = new PaymentService($payment->payment, $payment->id); $order->handling_amount = NULL; if ($payment->handling_fee_fixed || $payment->handling_fee_percent) { $order->handling_amount = round(($order->total_amount * ($payment->handling_fee_percent / 100)) + $payment->handling_fee_fixed); } $order->payment_id = $method; - if (!$order->save()) return $this->fail([400, __('Request failed, please try again later')]); + if (!$order->save()) + return $this->fail([400, __('Request failed, please try again later')]); $result = $paymentService->pay([ 'trade_no' => $tradeNo, 'total_amount' => isset($order->handling_amount) ? ($order->total_amount + $order->handling_amount) : $order->total_amount, @@ -201,7 +195,7 @@ class OrderController extends Controller { $tradeNo = $request->input('trade_no'); $order = Order::where('trade_no', $tradeNo) - ->where('user_id', $request->user['id']) + ->where('user_id', $request->user()->id) ->first(); if (!$order) { return $this->fail([400, __('Order does not exist')]); @@ -232,7 +226,7 @@ class OrderController extends Controller return $this->fail([422, __('Invalid parameter')]); } $order = Order::where('trade_no', $request->input('trade_no')) - ->where('user_id', $request->user['id']) + ->where('user_id', $request->user()->id) ->first(); if (!$order) { return $this->fail([400, __('Order does not exist')]); diff --git a/app/Http/Controllers/V1/User/PlanController.php b/app/Http/Controllers/V1/User/PlanController.php index 3b3ab27..7db7aad 100755 --- a/app/Http/Controllers/V1/User/PlanController.php +++ b/app/Http/Controllers/V1/User/PlanController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\V1\User; use App\Exceptions\ApiException; use App\Http\Controllers\Controller; +use App\Http\Resources\PlanResource; use App\Models\Plan; use App\Models\User; use App\Services\PlanService; @@ -11,29 +12,27 @@ use Illuminate\Http\Request; class PlanController extends Controller { + protected PlanService $planService; + + public function __construct(PlanService $planService) + { + $this->planService = $planService; + } public function fetch(Request $request) { - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); if ($request->input('id')) { $plan = Plan::where('id', $request->input('id'))->first(); if (!$plan) { return $this->fail([400, __('Subscription plan does not exist')]); } - if ((!$plan->show && !$plan->renew) || (!$plan->show && $user->plan_id !== $plan->id)) { + if (!$this->planService->isPlanAvailableForUser($plan, $user)) { return $this->fail([400, __('Subscription plan does not exist')]); } - return $this->success($plan); + return $this->success(PlanResource::make($plan)); } - $counts = PlanService::countActiveUsers(); - $plans = Plan::where('show', 1) - ->orderBy('sort', 'ASC') - ->get(); - foreach ($plans as $k => $v) { - if ($plans[$k]->capacity_limit === NULL) continue; - if (!isset($counts[$plans[$k]->id])) continue; - $plans[$k]->capacity_limit = $plans[$k]->capacity_limit - $counts[$plans[$k]->id]->count; - } - return $this->success($plans); + $plans = $this->planService->getAvailablePlans(); + return $this->success(PlanResource::collection($plans)); } } diff --git a/app/Http/Controllers/V1/User/ServerController.php b/app/Http/Controllers/V1/User/ServerController.php index 6e7ec51..f12b005 100644 --- a/app/Http/Controllers/V1/User/ServerController.php +++ b/app/Http/Controllers/V1/User/ServerController.php @@ -13,14 +13,14 @@ class ServerController extends Controller { public function fetch(Request $request) { - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); $servers = []; $userService = new UserService(); if ($userService->isAvailable($user)) { $servers = ServerService::getAvailableServers($user); } $eTag = sha1(json_encode(array_column($servers, 'cache_key'))); - if (strpos($request->header('If-None-Match'), $eTag) !== false ) { + if (strpos($request->header('If-None-Match', ''), $eTag) !== false ) { return response(null,304); } $data = NodeResource::collection($servers); diff --git a/app/Http/Controllers/V1/User/StatController.php b/app/Http/Controllers/V1/User/StatController.php index f93bab5..11bb9c0 100644 --- a/app/Http/Controllers/V1/User/StatController.php +++ b/app/Http/Controllers/V1/User/StatController.php @@ -15,23 +15,11 @@ class StatController extends Controller { $startDate = now()->startOfMonth()->timestamp; $records = StatUser::query() - ->where('user_id', $request->user['id']) + ->where('user_id', $request->user()->id) ->where('record_at', '>=', $startDate) ->orderBy('record_at', 'DESC') ->get(); - // 追加当天流量 - $recordAt = strtotime(date('Y-m-d')); - $statService = new StatisticalService(); - $statService->setStartAt($recordAt); - $todayTraffics = $statService->getStatUserByUserID($request->user['id']); - if (count($todayTraffics) > 0) { - $todayTraffics = collect($todayTraffics)->map(function ($todayTraffic) { - $todayTraffic['server_rate'] = number_format($todayTraffic['server_rate'], 2); - return $todayTraffic; - }); - $records = $todayTraffics->merge($records); - } $data = TrafficLogResource::collection(collect($records)); return $this->success($data); } diff --git a/app/Http/Controllers/V1/User/TelegramController.php b/app/Http/Controllers/V1/User/TelegramController.php index 61709c2..2cf65c7 100644 --- a/app/Http/Controllers/V1/User/TelegramController.php +++ b/app/Http/Controllers/V1/User/TelegramController.php @@ -21,6 +21,6 @@ class TelegramController extends Controller public function unbind(Request $request) { - $user = User::where('user_id', $request->user['id'])->first(); + $user = User::where('user_id', $request->user()->id)->first(); } } diff --git a/app/Http/Controllers/V1/User/TicketController.php b/app/Http/Controllers/V1/User/TicketController.php index 35e3456..3105a0a 100644 --- a/app/Http/Controllers/V1/User/TicketController.php +++ b/app/Http/Controllers/V1/User/TicketController.php @@ -21,7 +21,7 @@ class TicketController extends Controller { if ($request->input('id')) { $ticket = Ticket::where('id', $request->input('id')) - ->where('user_id', $request->user['id']) + ->where('user_id', $request->user()->id) ->first() ->load('message'); if (!$ticket) { @@ -33,7 +33,7 @@ class TicketController extends Controller }); return $this->success(TicketResource::make($ticket)->additional(['message' => true])); } - $ticket = Ticket::where('user_id', $request->user['id']) + $ticket = Ticket::where('user_id', $request->user()->id) ->orderBy('created_at', 'DESC') ->get(); return $this->success(TicketResource::collection($ticket)); @@ -43,20 +43,20 @@ class TicketController extends Controller { try{ DB::beginTransaction(); - if ((int)Ticket::where('status', 0)->where('user_id', $request->user['id'])->lockForUpdate()->count()) { + if ((int)Ticket::where('status', 0)->where('user_id', $request->user()->id)->lockForUpdate()->count()) { throw new \Exception(__('There are other unresolved tickets')); } $ticket = Ticket::create(array_merge($request->only([ 'subject', 'level' ]), [ - 'user_id' => $request->user['id'] + 'user_id' => $request->user()->id ])); if (!$ticket) { throw new \Exception(__('There are other unresolved tickets')); } $ticketMessage = TicketMessage::create([ - 'user_id' => $request->user['id'], + 'user_id' => $request->user()->id, 'ticket_id' => $ticket->id, 'message' => $request->input('message') ]); @@ -64,7 +64,7 @@ class TicketController extends Controller throw new \Exception(__('Failed to open ticket')); } DB::commit(); - $this->sendNotify($ticket, $request->input('message'), $request->user['id']); + $this->sendNotify($ticket, $request->input('message'), $request->user()->id); return $this->success(true); }catch(\Exception $e){ DB::rollBack(); @@ -83,7 +83,7 @@ class TicketController extends Controller return $this->fail([400, __('Message cannot be empty')]); } $ticket = Ticket::where('id', $request->input('id')) - ->where('user_id', $request->user['id']) + ->where('user_id', $request->user()->id) ->first(); if (!$ticket) { return $this->fail([400, __('Ticket does not exist')]); @@ -91,18 +91,18 @@ class TicketController extends Controller if ($ticket->status) { return $this->fail([400, __('The ticket is closed and cannot be replied')]); } - if ($request->user['id'] == $this->getLastMessage($ticket->id)->user_id) { + if ($request->user()->id == $this->getLastMessage($ticket->id)->user_id) { return $this->fail([400, __('Please wait for the technical enginneer to reply')]); } $ticketService = new TicketService(); if (!$ticketService->reply( $ticket, $request->input('message'), - $request->user['id'] + $request->user()->id )) { return $this->fail([400, __('Ticket reply failed')]); } - $this->sendNotify($ticket, $request->input('message'), $request->user['id']); + $this->sendNotify($ticket, $request->input('message'), $request->user()->id); return $this->success(true); } @@ -113,7 +113,7 @@ class TicketController extends Controller return $this->fail([422, __('Invalid parameter')]); } $ticket = Ticket::where('id', $request->input('id')) - ->where('user_id', $request->user['id']) + ->where('user_id', $request->user()->id) ->first(); if (!$ticket) { return $this->fail([400, __('Ticket does not exist')]); @@ -143,7 +143,7 @@ class TicketController extends Controller )) { return $this->fail([422, __('Unsupported withdrawal method')]); } - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); $limit = admin_setting('commission_withdraw_limit', 100); if ($limit > ($user->commission_balance / 100)) { return $this->fail([422, __('The current required minimum withdrawal commission is :limit', ['limit' => $limit])]); @@ -154,7 +154,7 @@ class TicketController extends Controller $ticket = Ticket::create([ 'subject' => $subject, 'level' => 2, - 'user_id' => $request->user['id'] + 'user_id' => $request->user()->id ]); if (!$ticket) { return $this->fail([400, __('Failed to open ticket')]); @@ -164,7 +164,7 @@ class TicketController extends Controller __('Withdrawal account') . ":" . $request->input('withdraw_account') ); $ticketMessage = TicketMessage::create([ - 'user_id' => $request->user['id'], + 'user_id' => $request->user()->id, 'ticket_id' => $ticket->id, 'message' => $message ]); @@ -177,7 +177,7 @@ class TicketController extends Controller DB::rollBack(); throw $e; } - $this->sendNotify($ticket, $message, $request->user['id']); + $this->sendNotify($ticket, $message, $request->user()->id); return $this->success(true); } diff --git a/app/Http/Controllers/V1/User/UserController.php b/app/Http/Controllers/V1/User/UserController.php index abb97bf..c33f00c 100755 --- a/app/Http/Controllers/V1/User/UserController.php +++ b/app/Http/Controllers/V1/User/UserController.php @@ -15,6 +15,7 @@ use App\Services\AuthService; use App\Services\UserService; use App\Utils\CacheKey; use App\Utils\Helper; +use Auth; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cache; @@ -22,7 +23,7 @@ class UserController extends Controller { public function getActiveSession(Request $request) { - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); if (!$user) { return $this->fail([400, __('The user does not exist')]); } @@ -32,7 +33,7 @@ class UserController extends Controller public function removeActiveSession(Request $request) { - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); if (!$user) { return $this->fail([400, __('The user does not exist')]); } @@ -43,9 +44,9 @@ class UserController extends Controller public function checkLogin(Request $request) { $data = [ - 'is_login' => $request->user['id'] ? true : false + 'is_login' => $request->user()?->id ? true : false ]; - if ($request->user['is_admin']) { + if ($request->user()?->is_admin) { $data['is_admin'] = true; } return $this->success($data); @@ -53,7 +54,7 @@ class UserController extends Controller public function changePassword(UserChangePassword $request) { - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); if (!$user) { return $this->fail([400, __('The user does not exist')]); } @@ -76,7 +77,7 @@ class UserController extends Controller public function info(Request $request) { - $user = User::where('id', $request->user['id']) + $user = User::where('id', $request->user()->id) ->select([ 'email', 'transfer_enable', @@ -106,12 +107,12 @@ class UserController extends Controller { $stat = [ Order::where('status', 0) - ->where('user_id', $request->user['id']) + ->where('user_id', $request->user()->id) ->count(), Ticket::where('status', 0) - ->where('user_id', $request->user['id']) + ->where('user_id', $request->user()->id) ->count(), - User::where('invite_user_id', $request->user['id']) + User::where('invite_user_id', $request->user()->id) ->count() ]; return $this->success($stat); @@ -119,7 +120,7 @@ class UserController extends Controller public function getSubscribe(Request $request) { - $user = User::where('id', $request->user['id']) + $user = User::where('id', $request->user()->id) ->select([ 'plan_id', 'token', @@ -148,7 +149,7 @@ class UserController extends Controller public function resetSecurity(Request $request) { - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); if (!$user) { return $this->fail([400, __('The user does not exist')]); } @@ -167,7 +168,7 @@ class UserController extends Controller 'remind_traffic' ]); - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); if (!$user) { return $this->fail([400, __('The user does not exist')]); } @@ -182,7 +183,7 @@ class UserController extends Controller public function transfer(UserTransfer $request) { - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); if (!$user) { return $this->fail([400, __('The user does not exist')]); } @@ -199,7 +200,7 @@ class UserController extends Controller public function getQuickLoginUrl(Request $request) { - $user = User::find($request->user['id']); + $user = User::find($request->user()->id); if (!$user) { return $this->fail([400, __('The user does not exist')]); } diff --git a/app/Http/Controllers/V1/Admin/ConfigController.php b/app/Http/Controllers/V2/Admin/ConfigController.php old mode 100755 new mode 100644 similarity index 63% rename from app/Http/Controllers/V1/Admin/ConfigController.php rename to app/Http/Controllers/V2/Admin/ConfigController.php index ae5c95c..f461dad --- a/app/Http/Controllers/V1/Admin/ConfigController.php +++ b/app/Http/Controllers/V2/Admin/ConfigController.php @@ -1,15 +1,15 @@ $request->user['email'], + 'email' => $request->user()->email, 'subject' => 'This is xboard test email', 'template_name' => 'notify', 'template_value' => [ @@ -44,8 +44,7 @@ class ConfigController extends Controller ] ]); return response([ - 'data' => true, - 'log' => $mailLog + 'data' => $mailLog, ]); } @@ -53,8 +52,9 @@ class ConfigController extends Controller { // 判断站点网址 $app_url = admin_setting('app_url'); - if(blank($app_url)) return $this->fail([422, '请先设置站点网址']); - $hookUrl = $app_url .'/api/v1/guest/telegram/webhook?' . http_build_query([ + if (blank($app_url)) + return $this->fail([422, '请先设置站点网址']); + $hookUrl = $app_url . '/api/v1/guest/telegram/webhook?' . http_build_query([ 'access_token' => md5(admin_setting('telegram_bot_token', $request->input('telegram_bot_token'))) ]); $telegramService = new TelegramService($request->input('telegram_bot_token')); @@ -68,45 +68,46 @@ class ConfigController extends Controller $key = $request->input('key'); $data = [ 'invite' => [ - 'invite_force' => (int)admin_setting('invite_force', 0), + 'invite_force' => (bool) admin_setting('invite_force', 0), 'invite_commission' => admin_setting('invite_commission', 10), 'invite_gen_limit' => admin_setting('invite_gen_limit', 5), - 'invite_never_expire' => admin_setting('invite_never_expire', 0), - 'commission_first_time_enable' => admin_setting('commission_first_time_enable', 1), - 'commission_auto_check_enable' => admin_setting('commission_auto_check_enable', 1), + 'invite_never_expire' => (bool) admin_setting('invite_never_expire', 0), + 'commission_first_time_enable' => (bool) admin_setting('commission_first_time_enable', 1), + 'commission_auto_check_enable' => (bool) admin_setting('commission_auto_check_enable', 1), 'commission_withdraw_limit' => admin_setting('commission_withdraw_limit', 100), 'commission_withdraw_method' => admin_setting('commission_withdraw_method', Dict::WITHDRAW_METHOD_WHITELIST_DEFAULT), - 'withdraw_close_enable' => admin_setting('withdraw_close_enable', 0), - 'commission_distribution_enable' => admin_setting('commission_distribution_enable', 0), + 'withdraw_close_enable' => (bool) admin_setting('withdraw_close_enable', 0), + 'commission_distribution_enable' => (bool) admin_setting('commission_distribution_enable', 0), 'commission_distribution_l1' => admin_setting('commission_distribution_l1'), 'commission_distribution_l2' => admin_setting('commission_distribution_l2'), 'commission_distribution_l3' => admin_setting('commission_distribution_l3') ], 'site' => [ 'logo' => admin_setting('logo'), - 'force_https' => (int)admin_setting('force_https', 0), - 'stop_register' => (int)admin_setting('stop_register', 0), + 'force_https' => (int) admin_setting('force_https', 0), + 'stop_register' => (int) admin_setting('stop_register', 0), 'app_name' => admin_setting('app_name', 'XBoard'), 'app_description' => admin_setting('app_description', 'XBoard is best!'), 'app_url' => admin_setting('app_url'), 'subscribe_url' => admin_setting('subscribe_url'), - 'try_out_plan_id' => (int)admin_setting('try_out_plan_id', 0), - 'try_out_hour' => (int)admin_setting('try_out_hour', 1), + 'try_out_plan_id' => (int) admin_setting('try_out_plan_id', 0), + 'try_out_hour' => (int) admin_setting('try_out_hour', 1), 'tos_url' => admin_setting('tos_url'), 'currency' => admin_setting('currency', 'CNY'), 'currency_symbol' => admin_setting('currency_symbol', '¥'), ], 'subscribe' => [ - 'plan_change_enable' => (int)admin_setting('plan_change_enable', 1), - 'reset_traffic_method' => (int)admin_setting('reset_traffic_method', 0), - 'surplus_enable' => (int)admin_setting('surplus_enable', 1), - 'new_order_event_id' => (int)admin_setting('new_order_event_id', 0), - 'renew_order_event_id' => (int)admin_setting('renew_order_event_id', 0), - 'change_order_event_id' => (int)admin_setting('change_order_event_id', 0), - 'show_info_to_server_enable' => (int)admin_setting('show_info_to_server_enable', 0), - 'show_protocol_to_server_enable' => (int)admin_setting('show_protocol_to_server_enable', 0), - 'default_remind_expire' => (int)admin_setting('default_remind_expire',1), - 'default_remind_traffic' => (int)admin_setting('default_remind_traffic',1), + 'plan_change_enable' => (bool) admin_setting('plan_change_enable', 1), + 'reset_traffic_method' => (int) admin_setting('reset_traffic_method', 0), + 'surplus_enable' => (bool) admin_setting('surplus_enable', 1), + 'new_order_event_id' => (int) admin_setting('new_order_event_id', 0), + 'renew_order_event_id' => (int) admin_setting('renew_order_event_id', 0), + 'change_order_event_id' => (int) admin_setting('change_order_event_id', 0), + 'show_info_to_server_enable' => (bool) admin_setting('show_info_to_server_enable', 0), + 'show_protocol_to_server_enable' => (bool) admin_setting('show_protocol_to_server_enable', 0), + 'default_remind_expire' => (bool) admin_setting('default_remind_expire', 1), + 'default_remind_traffic' => (bool) admin_setting('default_remind_traffic', 1), + 'subscribe_path' => admin_setting('subscribe_path', 's'), ], 'frontend' => [ @@ -120,6 +121,7 @@ class ConfigController extends Controller 'server_token' => admin_setting('server_token'), 'server_pull_interval' => admin_setting('server_pull_interval', 60), 'server_push_interval' => admin_setting('server_push_interval', 60), + 'device_limit_mode' => (int) admin_setting('device_limit_mode', 0), ], 'email' => [ 'email_template' => admin_setting('email_template', 'default'), @@ -128,35 +130,36 @@ class ConfigController extends Controller 'email_username' => admin_setting('email_username'), 'email_password' => admin_setting('email_password'), 'email_encryption' => admin_setting('email_encryption'), - 'email_from_address' => admin_setting('email_from_address') + 'email_from_address' => admin_setting('email_from_address'), + 'remind_mail_enable' => (bool) admin_setting('remind_mail_enable', false), ], 'telegram' => [ - 'telegram_bot_enable' => admin_setting('telegram_bot_enable', 0), + 'telegram_bot_enable' => (bool) admin_setting('telegram_bot_enable', 0), 'telegram_bot_token' => admin_setting('telegram_bot_token'), 'telegram_discuss_link' => admin_setting('telegram_discuss_link') ], 'app' => [ - 'windows_version' => admin_setting('windows_version'), - 'windows_download_url' => admin_setting('windows_download_url'), - 'macos_version' => admin_setting('macos_version'), - 'macos_download_url' => admin_setting('macos_download_url'), - 'android_version' => admin_setting('android_version'), - 'android_download_url' => admin_setting('android_download_url') + 'windows_version' => admin_setting('windows_version', ''), + 'windows_download_url' => admin_setting('windows_download_url', ''), + 'macos_version' => admin_setting('macos_version', ''), + 'macos_download_url' => admin_setting('macos_download_url', ''), + 'android_version' => admin_setting('android_version', ''), + 'android_download_url' => admin_setting('android_download_url', '') ], 'safe' => [ - 'email_verify' => (int)admin_setting('email_verify', 0), - 'safe_mode_enable' => (int)admin_setting('safe_mode_enable', 0), + 'email_verify' => (bool) admin_setting('email_verify', 0), + 'safe_mode_enable' => (bool) admin_setting('safe_mode_enable', 0), 'secure_path' => admin_setting('secure_path', admin_setting('frontend_admin_path', hash('crc32b', config('app.key')))), - 'email_whitelist_enable' => (int)admin_setting('email_whitelist_enable', 0), + 'email_whitelist_enable' => (bool) admin_setting('email_whitelist_enable', 0), 'email_whitelist_suffix' => admin_setting('email_whitelist_suffix', Dict::EMAIL_WHITELIST_SUFFIX_DEFAULT), - 'email_gmail_limit_enable' => admin_setting('email_gmail_limit_enable', 0), - 'recaptcha_enable' => (int)admin_setting('recaptcha_enable', 0), - 'recaptcha_key' => admin_setting('recaptcha_key'), - 'recaptcha_site_key' => admin_setting('recaptcha_site_key'), - 'register_limit_by_ip_enable' => (int)admin_setting('register_limit_by_ip_enable', 0), + 'email_gmail_limit_enable' => (bool) admin_setting('email_gmail_limit_enable', 0), + 'recaptcha_enable' => (bool) admin_setting('recaptcha_enable', 0), + 'recaptcha_key' => admin_setting('recaptcha_key', ''), + 'recaptcha_site_key' => admin_setting('recaptcha_site_key', ''), + 'register_limit_by_ip_enable' => (bool) admin_setting('register_limit_by_ip_enable', 0), 'register_limit_count' => admin_setting('register_limit_count', 3), 'register_limit_expire' => admin_setting('register_limit_expire', 60), - 'password_limit_enable' => (int)admin_setting('password_limit_enable', 1), + 'password_limit_enable' => (bool) admin_setting('password_limit_enable', 1), 'password_limit_count' => admin_setting('password_limit_count', 5), 'password_limit_expire' => admin_setting('password_limit_expire', 60) ] @@ -165,7 +168,8 @@ class ConfigController extends Controller return $this->success([ $key => $data[$key] ]); - }; + } + ; // TODO: default should be in Dict return $this->success($data); } @@ -173,26 +177,13 @@ class ConfigController extends Controller public function save(ConfigSave $request) { $data = $request->validated(); - $config = config('v2board'); - foreach (ConfigSave::RULES as $k => $v) { - if (!in_array($k, array_keys(ConfigSave::RULES))) { - unset($config[$k]); - continue; - } - if (array_key_exists($k, $data)) { - $value = $data[$k]; - if (is_array($value)) $value = json_encode($value); - Setting::updateOrCreate( - ['name' => $k], - ['name' => $k, 'value' => $value] - ); + foreach ($data as $k => $v) { + if ($k == 'frontend_theme') { + $themeService = new ThemeService(); + $themeService->switch($v); } + admin_setting([$k => $v]); } - // 如果是workerman环境,则触发reload - if(isset(get_defined_constants(true)['user']['Workerman'])){ - posix_kill(posix_getppid(), SIGUSR1); - } - Cache::forget('admin_settings'); // \Artisan::call('horizon:terminate'); //重启队列使配置生效 return $this->success(true); } diff --git a/app/Http/Controllers/V2/Admin/CouponController.php b/app/Http/Controllers/V2/Admin/CouponController.php new file mode 100644 index 0000000..b65535b --- /dev/null +++ b/app/Http/Controllers/V2/Admin/CouponController.php @@ -0,0 +1,189 @@ +has('filter')) { + collect($request->input('filter'))->each(function ($filter) use ($builder) { + $key = $filter['id']; + $value = $filter['value']; + $builder->where(function ($query) use ($key, $value) { + if (is_array($value)) { + $query->whereIn($key, $value); + } else { + $query->where($key, 'like', "%{$value}%"); + } + }); + }); + } + + if ($request->has('sort')) { + collect($request->input('sort'))->each(function ($sort) use ($builder) { + $key = $sort['id']; + $value = $sort['desc'] ? 'DESC' : 'ASC'; + $builder->orderBy($key, $value); + }); + } + } + public function fetch(Request $request) + { + $current = $request->input('current', 1); + $pageSize = $request->input('pageSize', 10); + $builder = Coupon::query(); + $this->applyFiltersAndSorts($request, $builder); + $coupons = $builder + ->orderBy('created_at', 'desc') + ->paginate($pageSize, ["*"], 'page', $current); + return response([ + 'data' => $coupons->items(), + 'total' => $coupons->total() + ]); + } + + public function update(Request $request) + { + $params = $request->validate([ + 'id' => 'required|numeric', + 'show' => 'nullable|boolean' + ], [ + 'id.required' => '优惠券ID不能为空', + 'id.numeric' => '优惠券ID必须为数字' + ]); + try { + DB::beginTransaction(); + $coupon = Coupon::find($request->input('id')); + if (!$coupon) { + throw new ApiException(400201, '优惠券不存在'); + } + $coupon->update($params); + DB::commit(); + } catch (\Exception $e) { + \Log::error($e); + return $this->fail([500, '保存失败']); + } + } + + public function show(Request $request) + { + $request->validate([ + 'id' => 'required|numeric' + ], [ + 'id.required' => '优惠券ID不能为空', + 'id.numeric' => '优惠券ID必须为数字' + ]); + $coupon = Coupon::find($request->input('id')); + if (!$coupon) { + return $this->fail([400202, '优惠券不存在']); + } + $coupon->show = !$coupon->show; + if (!$coupon->save()) { + return $this->fail([500, '保存失败']); + } + return $this->success(true); + } + + public function generate(CouponGenerate $request) + { + if ($request->input('generate_count')) { + $this->multiGenerate($request); + return; + } + + $params = $request->validated(); + if (!$request->input('id')) { + if (!isset($params['code'])) { + $params['code'] = Helper::randomChar(8); + } + if (!Coupon::create($params)) { + return $this->fail([500, '创建失败']); + } + } else { + try { + Coupon::find($request->input('id'))->update($params); + } catch (\Exception $e) { + \Log::error($e); + return $this->fail([500, '保存失败']); + } + } + + return $this->success(true); + } + + private function multiGenerate(CouponGenerate $request) + { + $coupons = []; + $coupon = $request->validated(); + $coupon['created_at'] = $coupon['updated_at'] = time(); + $coupon['show'] = 1; + unset($coupon['generate_count']); + for ($i = 0; $i < $request->input('generate_count'); $i++) { + $coupon['code'] = Helper::randomChar(8); + array_push($coupons, $coupon); + } + try { + DB::beginTransaction(); + if ( + !Coupon::insert(array_map(function ($item) use ($coupon) { + // format data + if (isset($item['limit_plan_ids']) && is_array($item['limit_plan_ids'])) { + $item['limit_plan_ids'] = json_encode($coupon['limit_plan_ids']); + } + if (isset($item['limit_period']) && is_array($item['limit_period'])) { + $item['limit_period'] = json_encode($coupon['limit_period']); + } + return $item; + }, $coupons)) + ) { + throw new \Exception(); + } + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return $this->fail([500, '生成失败']); + } + + $data = "名称,类型,金额或比例,开始时间,结束时间,可用次数,可用于订阅,券码,生成时间\r\n"; + foreach ($coupons as $coupon) { + $type = ['', '金额', '比例'][$coupon['type']]; + $value = ['', ($coupon['value'] / 100), $coupon['value']][$coupon['type']]; + $startTime = date('Y-m-d H:i:s', $coupon['started_at']); + $endTime = date('Y-m-d H:i:s', $coupon['ended_at']); + $limitUse = $coupon['limit_use'] ?? '不限制'; + $createTime = date('Y-m-d H:i:s', $coupon['created_at']); + $limitPlanIds = isset($coupon['limit_plan_ids']) ? implode("/", $coupon['limit_plan_ids']) : '不限制'; + $data .= "{$coupon['name']},{$type},{$value},{$startTime},{$endTime},{$limitUse},{$limitPlanIds},{$coupon['code']},{$createTime}\r\n"; + } + echo $data; + } + + public function drop(Request $request) + { + $request->validate([ + 'id' => 'required|numeric' + ], [ + 'id.required' => '优惠券ID不能为空', + 'id.numeric' => '优惠券ID必须为数字' + ]); + $coupon = Coupon::find($request->input('id')); + if (!$coupon) { + return $this->fail([400202, '优惠券不存在']); + } + if (!$coupon->delete()) { + return $this->fail([500, '删除失败']); + } + + return $this->success(true); + } +} diff --git a/app/Http/Controllers/V1/Admin/KnowledgeController.php b/app/Http/Controllers/V2/Admin/KnowledgeController.php similarity index 74% rename from app/Http/Controllers/V1/Admin/KnowledgeController.php rename to app/Http/Controllers/V2/Admin/KnowledgeController.php index 991c9dc..d773a8d 100644 --- a/app/Http/Controllers/V1/Admin/KnowledgeController.php +++ b/app/Http/Controllers/V2/Admin/KnowledgeController.php @@ -1,6 +1,6 @@ input('id')) { $knowledge = Knowledge::find($request->input('id'))->toArray(); - if (!$knowledge) return $this->fail([400202,'知识不存在']); + if (!$knowledge) + return $this->fail([400202, '知识不存在']); return $this->success($knowledge); } $data = Knowledge::select(['title', 'id', 'updated_at', 'category', 'show']) - ->orderBy('sort', 'ASC') - ->get(); + ->orderBy('sort', 'ASC') + ->get(); return $this->success($data); } @@ -36,14 +37,14 @@ class KnowledgeController extends Controller if (!$request->input('id')) { if (!Knowledge::create($params)) { - return $this->fail([500,'创建失败']); + return $this->fail([500, '创建失败']); } } else { try { Knowledge::find($request->input('id'))->update($params); } catch (\Exception $e) { \Log::error($e); - return $this->fail([500,'创建失败']); + return $this->fail([500, '创建失败']); } } @@ -54,8 +55,8 @@ class KnowledgeController extends Controller { $request->validate([ 'id' => 'required|numeric' - ],[ - 'id.required' => '知识库ID不能为空' + ], [ + 'id.required' => '知识库ID不能为空' ]); $knowledge = Knowledge::find($request->input('id')); if (!$knowledge) { @@ -69,11 +70,17 @@ class KnowledgeController extends Controller return $this->success(true); } - public function sort(KnowledgeSort $request) + public function sort(Request $request) { + $request->validate([ + 'ids' => 'required|array' + ], [ + 'ids.required' => '参数有误', + 'ids.array' => '参数有误' + ]); try { DB::beginTransaction(); - foreach ($request->input('knowledge_ids') as $k => $v) { + foreach ($request->input('ids') as $k => $v) { $knowledge = Knowledge::find($v); $knowledge->timestamps = false; $knowledge->update(['sort' => $k + 1]); @@ -90,15 +97,15 @@ class KnowledgeController extends Controller { $request->validate([ 'id' => 'required|numeric' - ],[ - 'id.required' => '知识库ID不能为空' + ], [ + 'id.required' => '知识库ID不能为空' ]); $knowledge = Knowledge::find($request->input('id')); if (!$knowledge) { - return $this->fail([400202,'知识不存在']); + return $this->fail([400202, '知识不存在']); } if (!$knowledge->delete()) { - return $this->fail([500,'删除失败']); + return $this->fail([500, '删除失败']); } return $this->success(true); diff --git a/app/Http/Controllers/V2/Admin/NoticeController.php b/app/Http/Controllers/V2/Admin/NoticeController.php new file mode 100644 index 0000000..854b313 --- /dev/null +++ b/app/Http/Controllers/V2/Admin/NoticeController.php @@ -0,0 +1,101 @@ +success( + Notice::orderBy('sort', 'ASC') + ->orderBy('id', 'DESC') + ->get() + ); + } + + public function save(NoticeSave $request) + { + $data = $request->only([ + 'title', + 'content', + 'img_url', + 'tags', + 'show', + 'popup' + ]); + if (!$request->input('id')) { + if (!Notice::create($data)) { + return $this->fail([500, '保存失败']); + } + } else { + try { + Notice::find($request->input('id'))->update($data); + } catch (\Exception $e) { + return $this->fail([500, '保存失败']); + } + } + return $this->success(true); + } + + + + public function show(Request $request) + { + if (empty($request->input('id'))) { + return $this->fail([500, '公告ID不能为空']); + } + $notice = Notice::find($request->input('id')); + if (!$notice) { + return $this->fail([400202, '公告不存在']); + } + $notice->show = $notice->show ? 0 : 1; + if (!$notice->save()) { + return $this->fail([500, '保存失败']); + } + + return $this->success(true); + } + + public function drop(Request $request) + { + if (empty($request->input('id'))) { + return $this->fail([422, '公告ID不能为空']); + } + $notice = Notice::find($request->input('id')); + if (!$notice) { + return $this->fail([400202, '公告不存在']); + } + if (!$notice->delete()) { + return $this->fail([500, '删除失败']); + } + return $this->success(true); + } + + public function sort(Request $request) + { + $params = $request->validate([ + 'ids' => 'required|array' + ]); + + try { + DB::beginTransaction(); + foreach ($params['ids'] as $k => $v) { + $notice = Notice::findOrFail($v); + $notice->update(['sort' => $k + 1]); + } + DB::commit(); + return $this->success(true); + } catch (\Exception $e) { + DB::rollBack(); + \Log::error($e); + return $this->fail([500, '排序保存失败']); + } + } +} diff --git a/app/Http/Controllers/V2/Admin/OrderController.php b/app/Http/Controllers/V2/Admin/OrderController.php new file mode 100644 index 0000000..ddc4f50 --- /dev/null +++ b/app/Http/Controllers/V2/Admin/OrderController.php @@ -0,0 +1,246 @@ +find($request->input('id')); + if (!$order) + return $this->fail([400202, '订单不存在']); + if ($order->surplus_order_ids) { + $order['surplus_orders'] = Order::whereIn('id', $order->surplus_order_ids)->get(); + } + $order['period'] = PlanService::getLegacyPeriod($order->period); + return $this->success($order); + } + + public function fetch(Request $request) + { + $current = $request->input('current', 1); + $pageSize = $request->input('pageSize', 10); + $orderModel = Order::with('plan:id,name'); + + if ($request->boolean('is_commission')) { + $orderModel->whereNotNull('invite_user_id') + ->whereNotIn('status', [0, 2]) + ->where('commission_balance', '>', 0); + } + + $this->applyFiltersAndSorts($request, $orderModel); + + return response()->json( + $orderModel + ->latest('created_at') + ->paginate( + perPage: $pageSize, + page: $current + )->through(fn($order) => [ + ...$order->toArray(), + 'period' => PlanService::getLegacyPeriod($order->period) + ]), + ); + } + + private function applyFiltersAndSorts(Request $request, Builder $builder): void + { + $this->applyFilters($request, $builder); + $this->applySorting($request, $builder); + } + + private function applyFilters(Request $request, Builder $builder): void + { + if (!$request->has('filter')) { + return; + } + + collect($request->input('filter'))->each(function ($filter) use ($builder) { + $field = $filter['id']; + $value = $filter['value']; + + $builder->where(function ($query) use ($field, $value) { + $this->buildFilterQuery($query, $field, $value); + }); + }); + } + + private function buildFilterQuery(Builder $query, string $field, mixed $value): void + { + // Handle array values for 'in' operations + if (is_array($value)) { + $query->whereIn($field, $value); + return; + } + + // Handle operator-based filtering + if (!is_string($value) || !str_contains($value, ':')) { + $query->where($field, 'like', "%{$value}%"); + return; + } + + [$operator, $filterValue] = explode(':', $value, 2); + + // Convert numeric strings to appropriate type + if (is_numeric($filterValue)) { + $filterValue = strpos($filterValue, '.') !== false + ? (float) $filterValue + : (int) $filterValue; + } + + // Apply operator + $query->where($field, match (strtolower($operator)) { + 'eq' => '=', + 'gt' => '>', + 'gte' => '>=', + 'lt' => '<', + 'lte' => '<=', + 'like' => 'like', + 'notlike' => 'not like', + 'null' => static fn($q) => $q->whereNull($queryField), + 'notnull' => static fn($q) => $q->whereNotNull($queryField), + default => 'like' + }, match (strtolower($operator)) { + 'like', 'notlike' => "%{$filterValue}%", + 'null', 'notnull' => null, + default => $filterValue + }); + } + + private function applySorting(Request $request, Builder $builder): void + { + if (!$request->has('sort')) { + return; + } + + collect($request->input('sort'))->each(function ($sort) use ($builder) { + $field = $sort['id']; + $direction = $sort['desc'] ? 'DESC' : 'ASC'; + $builder->orderBy($field, $direction); + }); + } + + public function paid(Request $request) + { + $order = Order::where('trade_no', $request->input('trade_no')) + ->first(); + if (!$order) { + return $this->fail([400202, '订单不存在']); + } + if ($order->status !== 0) + return $this->fail([400, '只能对待支付的订单进行操作']); + + $orderService = new OrderService($order); + if (!$orderService->paid('manual_operation')) { + return $this->fail([500, '更新失败']); + } + return $this->success(true); + } + + public function cancel(Request $request) + { + $order = Order::where('trade_no', $request->input('trade_no')) + ->first(); + if (!$order) { + return $this->fail([400202, '订单不存在']); + } + if ($order->status !== 0) + return $this->fail([400, '只能对待支付的订单进行操作']); + + $orderService = new OrderService($order); + if (!$orderService->cancel()) { + return $this->fail([400, '更新失败']); + } + return $this->success(true); + } + + public function update(OrderUpdate $request) + { + $params = $request->only([ + 'commission_status' + ]); + + $order = Order::where('trade_no', $request->input('trade_no')) + ->first(); + if (!$order) { + return $this->fail([400202, '订单不存在']); + } + + try { + $order->update($params); + } catch (\Exception $e) { + \Log::error($e); + return $this->fail([500, '更新失败']); + } + + return $this->success(true); + } + + public function assign(OrderAssign $request) + { + $plan = Plan::find($request->input('plan_id')); + $user = User::where('email', $request->input('email'))->first(); + + if (!$user) { + return $this->fail([400202, '该用户不存在']); + } + + if (!$plan) { + return $this->fail([400202, '该订阅不存在']); + } + + $userService = new UserService(); + if ($userService->isNotCompleteOrderByUserId($user->id)) { + return $this->fail([400, '该用户还有待支付的订单,无法分配']); + } + + try { + DB::beginTransaction(); + $order = new Order(); + $orderService = new OrderService($order); + $order->user_id = $user->id; + $order->plan_id = $plan->id; + $order->period = PlanService::getPeriodKey($request->input('period')); + $order->trade_no = Helper::guid(); + $order->total_amount = $request->input('total_amount'); + + if (PlanService::getPeriodKey($order->period) === Plan::PERIOD_RESET_TRAFFIC) { + $order->type = Order::TYPE_RESET_TRAFFIC; + } else if ($user->plan_id !== NULL && $order->plan_id !== $user->plan_id) { + $order->type = Order::TYPE_UPGRADE; + } else if ($user->expired_at > time() && $order->plan_id == $user->plan_id) { + $order->type = Order::TYPE_RENEWAL; + } else { + $order->type = Order::TYPE_NEW_PURCHASE; + } + + $orderService->setInvite($user); + + if (!$order->save()) { + DB::rollBack(); + return $this->fail([500, '订单创建失败']); + } + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + throw $e; + } + + return $this->success($order->trade_no); + } +} diff --git a/app/Http/Controllers/V1/Admin/PaymentController.php b/app/Http/Controllers/V2/Admin/PaymentController.php similarity index 97% rename from app/Http/Controllers/V1/Admin/PaymentController.php rename to app/Http/Controllers/V2/Admin/PaymentController.php index a2fb841..51e9d27 100644 --- a/app/Http/Controllers/V1/Admin/PaymentController.php +++ b/app/Http/Controllers/V2/Admin/PaymentController.php @@ -1,6 +1,6 @@ input('payment'), $request->input('id')); - return $this->success($paymentService->form()); + return $this->success(collect($paymentService->form())->values()); } public function show(Request $request) diff --git a/app/Http/Controllers/V1/Admin/PlanController.php b/app/Http/Controllers/V2/Admin/PlanController.php old mode 100755 new mode 100644 similarity index 55% rename from app/Http/Controllers/V1/Admin/PlanController.php rename to app/Http/Controllers/V2/Admin/PlanController.php index 3015841..9d7063a --- a/app/Http/Controllers/V1/Admin/PlanController.php +++ b/app/Http/Controllers/V2/Admin/PlanController.php @@ -1,16 +1,11 @@ get(); - foreach ($plans as $k => $v) { - $plans[$k]->count = 0; - foreach ($counts as $kk => $vv) { - if ($plans[$k]->id === $counts[$kk]->plan_id) $plans[$k]->count = $counts[$kk]->count; - } - } + $plans = Plan::orderBy('sort', 'ASC') + ->with([ + 'group:id,name' + ]) + ->withCount('users') + ->get(); + return $this->success($plans); } - public function save(PlanSave $request) + public function save(Request $request) { - $params = $request->validated(); + $params = $request->validate([ + 'id' => 'nullable|integer', + 'name' => 'required|string', + 'content' => 'nullable|string', + 'reset_traffic_method' => 'integer|nullable', + 'transfer_enable' => 'integer|required', + 'prices' => 'array|nullable', + 'group_id' => 'integer|nullable', + 'speed_limit' => 'integer|nullable', + 'device_limit' => 'integer|nullable', + 'capacity_limit' => 'integer|nullable', + ]); if ($request->input('id')) { $plan = Plan::find($request->input('id')); if (!$plan) { - return $this->fail([400202 ,'该订阅不存在']); + return $this->fail([400202, '该订阅不存在']); } DB::beginTransaction(); // update user group id and transfer @@ -44,7 +49,8 @@ class PlanController extends Controller User::where('plan_id', $plan->id)->update([ 'group_id' => $params['group_id'], 'transfer_enable' => $params['transfer_enable'] * 1073741824, - 'speed_limit' => $params['speed_limit'] + 'speed_limit' => $params['speed_limit'], + 'device_limit' => $params['device_limit'], ]); } $plan->update($params); @@ -53,11 +59,11 @@ class PlanController extends Controller } catch (\Exception $e) { DB::rollBack(); \Log::error($e); - return $this->fail([500 ,'保存失败']); + return $this->fail([500, '保存失败']); } } if (!Plan::create($params)) { - return $this->fail([500 ,'创建失败']); + return $this->fail([500, '创建失败']); } return $this->success(true); } @@ -65,57 +71,61 @@ class PlanController extends Controller public function drop(Request $request) { if (Order::where('plan_id', $request->input('id'))->first()) { - return $this->fail([400201 ,'该订阅下存在订单无法删除']); + return $this->fail([400201, '该订阅下存在订单无法删除']); } if (User::where('plan_id', $request->input('id'))->first()) { - return $this->fail([400201 ,'该订阅下存在用户无法删除']); + return $this->fail([400201, '该订阅下存在用户无法删除']); } if ($request->input('id')) { $plan = Plan::find($request->input('id')); if (!$plan) { - return $this->fail([400202 ,'该订阅不存在']); + return $this->fail([400202, '该订阅不存在']); } } return $this->success($plan->delete()); } - public function update(PlanUpdate $request) + public function update(Request $request) { $updateData = $request->only([ 'show', - 'renew' + 'renew', + 'sell' ]); $plan = Plan::find($request->input('id')); if (!$plan) { - return $this->fail([400202 ,'该订阅不存在']); + return $this->fail([400202, '该订阅不存在']); } try { $plan->update($updateData); } catch (\Exception $e) { \Log::error($e); - return $this->fail([500 ,'保存失败']); + return $this->fail([500, '保存失败']); } - return $this->success(); + return $this->success(true); } - public function sort(PlanSort $request) + public function sort(Request $request) { - - try{ + $params = $request->validate([ + 'ids' => 'required|array' + ]); + + try { DB::beginTransaction(); - foreach ($request->input('plan_ids') as $k => $v) { + foreach ($params['ids'] as $k => $v) { if (!Plan::find($v)->update(['sort' => $k + 1])) { throw new \Exception(); } } DB::commit(); - }catch (\Exception $e){ + } catch (\Exception $e) { DB::rollBack(); \Log::error($e); - return $this->fail([500 ,'保存失败']); + return $this->fail([500, '保存失败']); } return $this->success(true); } diff --git a/app/Http/Controllers/V2/Admin/PluginController.php b/app/Http/Controllers/V2/Admin/PluginController.php new file mode 100644 index 0000000..de78e3c --- /dev/null +++ b/app/Http/Controllers/V2/Admin/PluginController.php @@ -0,0 +1,195 @@ +pluginManager = $pluginManager; + $this->configService = $configService; + } + + /** + * 获取插件列表 + */ + public function index() + { + $installedPlugins = Plugin::get() + ->keyBy('code') + ->toArray(); + $pluginPath = base_path('plugins'); + $plugins = []; + + if (File::exists($pluginPath)) { + $directories = File::directories($pluginPath); + foreach ($directories as $directory) { + $pluginName = basename($directory); + $configFile = $directory . '/config.json'; + if (File::exists($configFile)) { + $config = json_decode(File::get($configFile), true); + $installed = isset($installedPlugins[$pluginName]); + // 使用配置服务获取配置 + $pluginConfig = $installed ? $this->configService->getConfig($pluginName) : ($config['config'] ?? []); + $plugins[] = [ + 'code' => $config['code'], + 'name' => $config['name'], + 'version' => $config['version'], + 'description' => $config['description'], + 'author' => $config['author'], + 'is_installed' => $installed, + 'is_enabled' => $installed ? $installedPlugins[$pluginName]['is_enabled'] : false, + 'config' => $pluginConfig, + ]; + } + } + } + + return response()->json([ + 'data' => $plugins + ]); + } + + /** + * 安装插件 + */ + public function install(Request $request) + { + $request->validate([ + 'code' => 'required|string' + ]); + + try { + $this->pluginManager->install($request->input('code')); + return response()->json([ + 'message' => '插件安装成功' + ]); + } catch (\Exception $e) { + return response()->json([ + 'message' => '插件安装失败:' . $e->getMessage() + ], 400); + } + } + + /** + * 卸载插件 + */ + public function uninstall(Request $request) + { + $request->validate([ + 'code' => 'required|string' + ]); + + try { + $this->pluginManager->uninstall($request->input('code')); + return response()->json([ + 'message' => '插件卸载成功' + ]); + } catch (\Exception $e) { + return response()->json([ + 'message' => '插件卸载失败:' . $e->getMessage() + ], 400); + } + } + + /** + * 启用插件 + */ + public function enable(Request $request) + { + $request->validate([ + 'code' => 'required|string' + ]); + + try { + $this->pluginManager->enable($request->input('code')); + return response()->json([ + 'message' => '插件启用成功' + ]); + } catch (\Exception $e) { + return response()->json([ + 'message' => '插件启用失败:' . $e->getMessage() + ], 400); + } + } + + /** + * 禁用插件 + */ + public function disable(Request $request) + { + $request->validate([ + 'code' => 'required|string' + ]); + + try { + $this->pluginManager->disable($request->input('code')); + return response()->json([ + 'message' => '插件禁用成功' + ]); + } catch (\Exception $e) { + return response()->json([ + 'message' => '插件禁用失败:' . $e->getMessage() + ], 400); + } + } + + /** + * 获取插件配置 + */ + public function getConfig(Request $request) + { + $request->validate([ + 'code' => 'required|string' + ]); + + try { + $config = $this->configService->getConfig($request->input('code')); + return response()->json([ + 'data' => $config + ]); + } catch (\Exception $e) { + return response()->json([ + 'message' => '获取配置失败:' . $e->getMessage() + ], 400); + } + } + + /** + * 更新插件配置 + */ + public function updateConfig(Request $request) + { + $request->validate([ + 'code' => 'required|string', + 'config' => 'required|array' + ]); + + try { + $this->configService->updateConfig( + $request->input('code'), + $request->input('config') + ); + + return response()->json([ + 'message' => '配置更新成功' + ]); + } catch (\Exception $e) { + return response()->json([ + 'message' => '配置更新失败:' . $e->getMessage() + ], 400); + } + } +} \ No newline at end of file diff --git a/app/Http/Controllers/V2/Admin/Server/GroupController.php b/app/Http/Controllers/V2/Admin/Server/GroupController.php new file mode 100644 index 0000000..a8c96fc --- /dev/null +++ b/app/Http/Controllers/V2/Admin/Server/GroupController.php @@ -0,0 +1,66 @@ +orderByDesc('id') + ->withCount('users') + ->get() + ->transform(function ($group) { + $group->server_count = $group->servers()->count(); + return $group; + }); + + return $this->success($serverGroups); + } + + public function save(Request $request) + { + if (empty($request->input('name'))) { + return $this->fail([422, '组名不能为空']); + } + + if ($request->input('id')) { + $serverGroup = ServerGroup::find($request->input('id')); + } else { + $serverGroup = new ServerGroup(); + } + + $serverGroup->name = $request->input('name'); + return $this->success($serverGroup->save()); + } + + public function drop(Request $request) + { + $groupId = $request->input('id'); + + $serverGroup = ServerGroup::find($groupId); + if (!$serverGroup) { + return $this->fail([400202, '组不存在']); + } + if (Server::whereJsonContains('group_ids', $groupId)->exists()) { + return $this->fail([400, '该组已被节点所使用,无法删除']); + } + + if (Plan::where('group_id', $groupId)->exists()) { + return $this->fail([400, '该组已被订阅所使用,无法删除']); + } + if (User::where('group_id', $groupId)->exists()) { + return $this->fail([400, '该组已被用户所使用,无法删除']); + } + return $this->success($serverGroup->delete()); + } +} diff --git a/app/Http/Controllers/V2/Admin/Server/ManageController.php b/app/Http/Controllers/V2/Admin/Server/ManageController.php new file mode 100644 index 0000000..2def3af --- /dev/null +++ b/app/Http/Controllers/V2/Admin/Server/ManageController.php @@ -0,0 +1,125 @@ +map(function ($item) { + $item['groups'] = ServerGroup::whereIn('id', $item['group_ids'])->get(['name', 'id']); + $item['parent'] = $item->parent; + return $item; + }); + return $this->success($servers); + } + + public function sort(Request $request) + { + ini_set('post_max_size', '1m'); + $params = $request->validate([ + '*.id' => 'numeric', + '*.order' => 'numeric' + ]); + + try { + DB::beginTransaction(); + collect($params)->each(function ($item) { + if (isset($item['id']) && isset($item['order'])) { + Server::where('id', $item['id'])->update(['sort' => $item['order']]); + } + }); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + \Log::error($e); + return $this->fail([500, '保存失败']); + + } + return $this->success(true); + } + + public function save(ServerSave $request) + { + $params = $request->validated(); + if ($request->input('id')) { + $server = Server::find($request->input('id')); + if (!$server) { + return $this->fail([400202, '服务器不存在']); + } + try { + $server->update($params); + return $this->success(true); + } catch (\Exception $e) { + \Log::error($e); + return $this->fail([500, '保存失败']); + } + } + + try { + Server::create($params); + return $this->success(true); + } catch (\Exception $e) { + \Log::error($e); + return $this->fail([500, '创建失败']); + } + + + } + + public function update(Request $request) + { + $request->validate([ + 'id' => 'required|integer', + 'show' => 'integer', + ]); + + if (Server::where('id', $request->id)->update(['show' => $request->show]) === false) { + return $this->fail([500, '保存失败']); + } + return $this->success(true); + } + + /** + * 删除 + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ + public function drop(Request $request) + { + $request->validate([ + 'id' => 'required|integer', + ]); + if (Server::where('id', $request->id)->delete() === false) { + return $this->fail([500, '删除失败']); + } + return $this->success(true); + } + + + /** + * 复制节点 + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ + public function copy(Request $request) + { + $server = Server::find($request->input('id')); + $server->show = 0; + $server->code = null; + if (!$server) { + return $this->fail([400202, '服务器不存在']); + } + Server::create($server->toArray()); + return $this->success(true); + } +} diff --git a/app/Http/Controllers/V1/Admin/Server/RouteController.php b/app/Http/Controllers/V2/Admin/Server/RouteController.php similarity index 97% rename from app/Http/Controllers/V1/Admin/Server/RouteController.php rename to app/Http/Controllers/V2/Admin/Server/RouteController.php index 3cea539..b15397a 100644 --- a/app/Http/Controllers/V1/Admin/Server/RouteController.php +++ b/app/Http/Controllers/V2/Admin/Server/RouteController.php @@ -1,6 +1,6 @@ validate([ - 'start_at' => '', - 'end_at' => '' + $this->service = $service; + } + public function getOverride(Request $request) + { + // 获取在线节点数 + $onlineNodes = Server::all()->filter(function ($server) { + $server->loadServerStatus(); + return $server->is_online; + })->count(); + // 获取在线设备数和在线用户数 + $onlineDevices = User::where('t', '>=', time() - 600) + ->sum('online_count'); + $onlineUsers = User::where('t', '>=', time() - 600) + ->count(); + + // 获取今日流量统计 + $todayStart = strtotime('today'); + $todayTraffic = StatServer::where('record_at', '>=', $todayStart) + ->where('record_at', '<', time()) + ->selectRaw('SUM(u) as upload, SUM(d) as download, SUM(u + d) as total') + ->first(); + + // 获取本月流量统计 + $monthStart = strtotime(date('Y-m-1')); + $monthTraffic = StatServer::where('record_at', '>=', $monthStart) + ->where('record_at', '<', time()) + ->selectRaw('SUM(u) as upload, SUM(d) as download, SUM(u + d) as total') + ->first(); + + // 获取总流量统计 + $totalTraffic = StatServer::selectRaw('SUM(u) as upload, SUM(d) as download, SUM(u + d) as total') + ->first(); + + return [ + 'data' => [ + 'month_income' => Order::where('created_at', '>=', strtotime(date('Y-m-1'))) + ->where('created_at', '<', time()) + ->whereNotIn('status', [0, 2]) + ->sum('total_amount'), + 'month_register_total' => User::where('created_at', '>=', strtotime(date('Y-m-1'))) + ->where('created_at', '<', time()) + ->count(), + 'ticket_pending_total' => Ticket::where('status', 0) + ->count(), + 'commission_pending_total' => Order::where('commission_status', 0) + ->where('invite_user_id', '!=', NULL) + ->whereNotIn('status', [0, 2]) + ->where('commission_balance', '>', 0) + ->count(), + 'day_income' => Order::where('created_at', '>=', strtotime(date('Y-m-d'))) + ->where('created_at', '<', time()) + ->whereNotIn('status', [0, 2]) + ->sum('total_amount'), + 'last_month_income' => Order::where('created_at', '>=', strtotime('-1 month', strtotime(date('Y-m-1')))) + ->where('created_at', '<', strtotime(date('Y-m-1'))) + ->whereNotIn('status', [0, 2]) + ->sum('total_amount'), + 'commission_month_payout' => CommissionLog::where('created_at', '>=', strtotime(date('Y-m-1'))) + ->where('created_at', '<', time()) + ->sum('get_amount'), + 'commission_last_month_payout' => CommissionLog::where('created_at', '>=', strtotime('-1 month', strtotime(date('Y-m-1')))) + ->where('created_at', '<', strtotime(date('Y-m-1'))) + ->sum('get_amount'), + // 新增统计数据 + 'online_nodes' => $onlineNodes, + 'online_devices' => $onlineDevices, + 'online_users' => $onlineUsers, + 'today_traffic' => [ + 'upload' => $todayTraffic->upload ?? 0, + 'download' => $todayTraffic->download ?? 0, + 'total' => $todayTraffic->total ?? 0 + ], + 'month_traffic' => [ + 'upload' => $monthTraffic->upload ?? 0, + 'download' => $monthTraffic->download ?? 0, + 'total' => $monthTraffic->total ?? 0 + ], + 'total_traffic' => [ + 'upload' => $totalTraffic->upload ?? 0, + 'download' => $totalTraffic->download ?? 0, + 'total' => $totalTraffic->total ?? 0 + ] + ] + ]; + } + + /** + * Get order statistics with filtering and pagination + * + * @param Request $request + * @return array + */ + public function getOrder(Request $request) + { + $request->validate([ + 'start_date' => 'nullable|date_format:Y-m-d', + 'end_date' => 'nullable|date_format:Y-m-d', + 'type' => 'nullable|in:paid_total,paid_count,commission_total,commission_count', ]); - if (isset($params['start_at']) && isset($params['end_at'])) { - $stats = Stat::where('record_at', '>=', $params['start_at']) - ->where('record_at', '<', $params['end_at']) + $query = Stat::where('record_type', 'd'); + + // Apply date filters + if ($request->input('start_date')) { + $query->where('record_at', '>=', strtotime($request->input('start_date'))); + } + if ($request->input('end_date')) { + $query->where('record_at', '<=', strtotime($request->input('end_date') . ' 23:59:59')); + } + + $statistics = $query->orderBy('record_at', 'DESC') + ->get(); + + $summary = [ + 'paid_total' => 0, + 'paid_count' => 0, + 'commission_total' => 0, + 'commission_count' => 0, + 'start_date' => $request->input('start_date', date('Y-m-d', $statistics->last()?->record_at)), + 'end_date' => $request->input('end_date', date('Y-m-d', $statistics->first()?->record_at)), + 'avg_paid_amount' => 0, + 'avg_commission_amount' => 0 + ]; + + $dailyStats = []; + foreach ($statistics as $statistic) { + $date = date('Y-m-d', $statistic['record_at']); + + // Update summary + $summary['paid_total'] += $statistic['paid_total']; + $summary['paid_count'] += $statistic['paid_count']; + $summary['commission_total'] += $statistic['commission_total']; + $summary['commission_count'] += $statistic['commission_count']; + + // Calculate daily stats + $dailyData = [ + 'date' => $date, + 'paid_total' => $statistic['paid_total'], + 'paid_count' => $statistic['paid_count'], + 'commission_total' => $statistic['commission_total'], + 'commission_count' => $statistic['commission_count'], + 'avg_order_amount' => $statistic['paid_count'] > 0 ? round($statistic['paid_total'] / $statistic['paid_count'], 2) : 0, + 'avg_commission_amount' => $statistic['commission_count'] > 0 ? round($statistic['commission_total'] / $statistic['commission_count'], 2) : 0 + ]; + + if ($request->input('type')) { + $dailyStats[] = [ + 'date' => $date, + 'value' => $statistic[$request->input('type')], + 'type' => $this->getTypeLabel($request->input('type')) + ]; + } else { + $dailyStats[] = $dailyData; + } + } + + // Calculate averages for summary + if ($summary['paid_count'] > 0) { + $summary['avg_paid_amount'] = round($summary['paid_total'] / $summary['paid_count'], 2); + } + if ($summary['commission_count'] > 0) { + $summary['avg_commission_amount'] = round($summary['commission_total'] / $summary['commission_count'], 2); + } + + // Add percentage calculations to summary + $summary['commission_rate'] = $summary['paid_total'] > 0 + ? round(($summary['commission_total'] / $summary['paid_total']) * 100, 2) + : 0; + + return [ + 'code' => 0, + 'message' => 'success', + 'data' => [ + 'list' => array_reverse($dailyStats), + 'summary' => $summary, + ] + ]; + } + + /** + * Get human readable label for statistic type + * + * @param string $type + * @return string + */ + private function getTypeLabel(string $type): string + { + return match ($type) { + 'paid_total' => '收款金额', + 'paid_count' => '收款笔数', + 'commission_total' => '佣金金额(已发放)', + 'commission_count' => '佣金笔数(已发放)', + default => $type + }; + } + + // 获取当日实时流量排行 + public function getServerLastRank() + { + $data = $this->service->getServerRank(); + return $this->success(data: $data); + } + // 获取昨日节点流量排行 + public function getServerYesterdayRank() + { + $data = $this->service->getServerRank('yesterday'); + return $this->success($data); + } + + public function getStatUser(Request $request) + { + $request->validate([ + 'user_id' => 'required|integer' + ]); + + $pageSize = $request->input('pageSize', 10); + $records = StatUser::orderBy('record_at', 'DESC') + ->where('user_id', $request->input('user_id')) + ->paginate($pageSize); + + $data = $records->items(); + return [ + 'data' => $data, + 'total' => $records->total(), + ]; + } + + public function getStatRecord(Request $request) + { + return [ + 'data' => $this->service->getStatRecord($request->input('type')) + ]; + } + + /** + * Get comprehensive statistics data including income, users, and growth rates + */ + public function getStats() + { + $currentMonthStart = strtotime(date('Y-m-01')); + $lastMonthStart = strtotime('-1 month', $currentMonthStart); + $twoMonthsAgoStart = strtotime('-2 month', $currentMonthStart); + + // Today's start timestamp + $todayStart = strtotime('today'); + $yesterdayStart = strtotime('-1 day', $todayStart); + + // 获取在线节点数 + $onlineNodes = Server::all()->filter(function ($server) { + $server->loadServerStatus(); + return $server->is_online; + })->count(); + + // 获取在线设备数和在线用户数 + $onlineDevices = User::where('t', '>=', time() - 600) + ->sum('online_count'); + $onlineUsers = User::where('t', '>=', time() - 600) + ->count(); + + // 获取今日流量统计 + $todayTraffic = StatServer::where('record_at', '>=', $todayStart) + ->where('record_at', '<', time()) + ->selectRaw('SUM(u) as upload, SUM(d) as download, SUM(u + d) as total') + ->first(); + + // 获取本月流量统计 + $monthTraffic = StatServer::where('record_at', '>=', $currentMonthStart) + ->where('record_at', '<', time()) + ->selectRaw('SUM(u) as upload, SUM(d) as download, SUM(u + d) as total') + ->first(); + + // 获取总流量统计 + $totalTraffic = StatServer::selectRaw('SUM(u) as upload, SUM(d) as download, SUM(u + d) as total') + ->first(); + + // Today's income + $todayIncome = Order::where('created_at', '>=', $todayStart) + ->where('created_at', '<', time()) + ->whereNotIn('status', [0, 2]) + ->sum('total_amount'); + + // Yesterday's income for day growth calculation + $yesterdayIncome = Order::where('created_at', '>=', $yesterdayStart) + ->where('created_at', '<', $todayStart) + ->whereNotIn('status', [0, 2]) + ->sum('total_amount'); + + // Current month income + $currentMonthIncome = Order::where('created_at', '>=', $currentMonthStart) + ->where('created_at', '<', time()) + ->whereNotIn('status', [0, 2]) + ->sum('total_amount'); + + // Last month income + $lastMonthIncome = Order::where('created_at', '>=', $lastMonthStart) + ->where('created_at', '<', $currentMonthStart) + ->whereNotIn('status', [0, 2]) + ->sum('total_amount'); + + // Last month commission payout + $lastMonthCommissionPayout = CommissionLog::where('created_at', '>=', $lastMonthStart) + ->where('created_at', '<', $currentMonthStart) + ->sum('get_amount'); + + // Current month commission payout + $currentMonthCommissionPayout = CommissionLog::where('created_at', '>=', $currentMonthStart) + ->where('created_at', '<', time()) + ->sum('get_amount'); + + // Current month new users + $currentMonthNewUsers = User::where('created_at', '>=', $currentMonthStart) + ->where('created_at', '<', time()) + ->count(); + + // Total users + $totalUsers = User::count(); + + // Active users (users with valid subscription) + $activeUsers = User::where(function ($query) { + $query->where('expired_at', '>=', time()) + ->orWhere('expired_at', NULL); + })->count(); + + // Previous month income for growth calculation + $twoMonthsAgoIncome = Order::where('created_at', '>=', $twoMonthsAgoStart) + ->where('created_at', '<', $lastMonthStart) + ->whereNotIn('status', [0, 2]) + ->sum('total_amount'); + + // Previous month commission for growth calculation + $twoMonthsAgoCommission = CommissionLog::where('created_at', '>=', $twoMonthsAgoStart) + ->where('created_at', '<', $lastMonthStart) + ->sum('get_amount'); + + // Previous month users for growth calculation + $lastMonthNewUsers = User::where('created_at', '>=', $lastMonthStart) + ->where('created_at', '<', $currentMonthStart) + ->count(); + + // Calculate growth rates + $monthIncomeGrowth = $lastMonthIncome > 0 ? round(($currentMonthIncome - $lastMonthIncome) / $lastMonthIncome * 100, 1) : 0; + $lastMonthIncomeGrowth = $twoMonthsAgoIncome > 0 ? round(($lastMonthIncome - $twoMonthsAgoIncome) / $twoMonthsAgoIncome * 100, 1) : 0; + $commissionGrowth = $twoMonthsAgoCommission > 0 ? round(($lastMonthCommissionPayout - $twoMonthsAgoCommission) / $twoMonthsAgoCommission * 100, 1) : 0; + $userGrowth = $lastMonthNewUsers > 0 ? round(($currentMonthNewUsers - $lastMonthNewUsers) / $lastMonthNewUsers * 100, 1) : 0; + $dayIncomeGrowth = $yesterdayIncome > 0 ? round(($todayIncome - $yesterdayIncome) / $yesterdayIncome * 100, 1) : 0; + + // 获取待处理工单和佣金数据 + $ticketPendingTotal = Ticket::where('status', 0)->count(); + $commissionPendingTotal = Order::where('commission_status', 0) + ->where('invite_user_id', '!=', NULL) + ->whereIn('status', [Order::STATUS_COMPLETED]) + ->where('commission_balance', '>', 0) + ->count(); + + return [ + 'data' => [ + // 收入相关 + 'todayIncome' => $todayIncome, + 'dayIncomeGrowth' => $dayIncomeGrowth, + 'currentMonthIncome' => $currentMonthIncome, + 'lastMonthIncome' => $lastMonthIncome, + 'monthIncomeGrowth' => $monthIncomeGrowth, + 'lastMonthIncomeGrowth' => $lastMonthIncomeGrowth, + + // 佣金相关 + 'currentMonthCommissionPayout' => $currentMonthCommissionPayout, + 'lastMonthCommissionPayout' => $lastMonthCommissionPayout, + 'commissionGrowth' => $commissionGrowth, + 'commissionPendingTotal' => $commissionPendingTotal, + + // 用户相关 + 'currentMonthNewUsers' => $currentMonthNewUsers, + 'totalUsers' => $totalUsers, + 'activeUsers' => $activeUsers, + 'userGrowth' => $userGrowth, + 'onlineUsers' => $onlineUsers, + 'onlineDevices' => $onlineDevices, + + // 工单相关 + 'ticketPendingTotal' => $ticketPendingTotal, + + // 节点相关 + 'onlineNodes' => $onlineNodes, + + // 流量统计 + 'todayTraffic' => [ + 'upload' => $todayTraffic->upload ?? 0, + 'download' => $todayTraffic->download ?? 0, + 'total' => $todayTraffic->total ?? 0 + ], + 'monthTraffic' => [ + 'upload' => $monthTraffic->upload ?? 0, + 'download' => $monthTraffic->download ?? 0, + 'total' => $monthTraffic->total ?? 0 + ], + 'totalTraffic' => [ + 'upload' => $totalTraffic->upload ?? 0, + 'download' => $totalTraffic->download ?? 0, + 'total' => $totalTraffic->total ?? 0 + ] + ] + ]; + } + + /** + * Get traffic ranking data for nodes or users + * + * @param Request $request + * @return array + */ + public function getTrafficRank(Request $request) + { + $request->validate([ + 'type' => 'required|in:node,user', + 'start_time' => 'nullable|integer|min:1000000000|max:9999999999', + 'end_time' => 'nullable|integer|min:1000000000|max:9999999999' + ]); + + $type = $request->input('type'); + $startDate = $request->input('start_time', strtotime('-7 days')); + $endDate = $request->input('end_time', time()); + $previousStartDate = $startDate - ($endDate - $startDate); + $previousEndDate = $startDate; + + if ($type === 'node') { + // Get node traffic data + $currentData = StatServer::selectRaw('server_id as id, SUM(u + d) as value') + ->where('record_at', '>=', $startDate) + ->where('record_at', '<=', $endDate) + ->groupBy('server_id') + ->orderBy('value', 'DESC') + ->limit(10) + ->get(); + + // Get previous period data for comparison + $previousData = StatServer::selectRaw('server_id as id, SUM(u + d) as value') + ->where('record_at', '>=', $previousStartDate) + ->where('record_at', '<', $previousEndDate) + ->whereIn('server_id', $currentData->pluck('id')) + ->groupBy('server_id') ->get() - ->makeHidden(['record_at', 'created_at', 'updated_at', 'id', 'record_type']) - ->toArray(); + ->keyBy('id'); + } else { - $statisticalService = new StatisticalService(); - return [ - 'data' => $statisticalService->generateStatData() + // Get user traffic data + $currentData = StatUser::selectRaw('user_id as id, SUM(u + d) as value') + ->where('record_at', '>=', $startDate) + ->where('record_at', '<=', $endDate) + ->groupBy('user_id') + ->orderBy('value', 'DESC') + ->limit(10) + ->get(); + + // Get previous period data for comparison + $previousData = StatUser::selectRaw('user_id as id, SUM(u + d) as value') + ->where('record_at', '>=', $previousStartDate) + ->where('record_at', '<', $previousEndDate) + ->whereIn('user_id', $currentData->pluck('id')) + ->groupBy('user_id') + ->get() + ->keyBy('id'); + } + + $result = []; + foreach ($currentData as $data) { + $previousValue = isset($previousData[$data->id]) ? $previousData[$data->id]->value : 0; + $change = $previousValue > 0 ? round(($data->value - $previousValue) / $previousValue * 100, 1) : 0; + + $name = $type === 'node' + ? optional(Server::find($data->id))->name ?? "Node {$data->id}" + : optional(User::find($data->id))->email ?? "User {$data->id}"; + + $result[] = [ + 'id' => (string) $data->id, + 'name' => $name, + 'value' => $data->value, // Convert to GB + 'previousValue' => $previousValue, // Convert to GB + 'change' => $change, + 'timestamp' => date('c', $endDate) ]; } - $stats = array_reduce($stats, function($carry, $item) { - foreach($item as $key => $value) { - if(isset($carry[$key]) && $carry[$key]) { - $carry[$key] += $value; - } else { - $carry[$key] = $value; - } - } - return $carry; - }, []); - return [ - 'data' => $stats - ]; - } - - public function record(Request $request) - { - $request->validate([ - 'type' => 'required|in:paid_total,commission_total,register_count', - 'start_at' => '', - 'end_at' => '' - ]); - - $statisticalService = new StatisticalService(); - $statisticalService->setStartAt($request->input('start_at')); - $statisticalService->setEndAt($request->input('end_at')); - return [ - 'data' => $statisticalService->getStatRecord($request->input('type')) - ]; - } - - public function ranking(Request $request) - { - $request->validate([ - 'type' => 'required|in:server_traffic_rank,user_consumption_rank,invite_rank', - 'start_at' => '', - 'end_at' => '', - 'limit' => 'nullable|integer' - ]); - - $statisticalService = new StatisticalService(); - $statisticalService->setStartAt($request->input('start_at')); - $statisticalService->setEndAt($request->input('end_at')); - return [ - 'data' => $statisticalService->getRanking($request->input('type'), $request->input('limit') ?? 20) + 'timestamp' => date('c'), + 'data' => $result ]; } } - diff --git a/app/Http/Controllers/V1/Admin/SystemController.php b/app/Http/Controllers/V2/Admin/SystemController.php similarity index 97% rename from app/Http/Controllers/V1/Admin/SystemController.php rename to app/Http/Controllers/V2/Admin/SystemController.php index 8c2f8f1..e6f0b64 100644 --- a/app/Http/Controllers/V1/Admin/SystemController.php +++ b/app/Http/Controllers/V2/Admin/SystemController.php @@ -1,14 +1,12 @@ themeService = $themeService; + } + + /** + * 上传新主题 + * + * @throws ApiException + */ + public function upload(Request $request) + { + $request->validate([ + 'file' => [ + 'required', + 'file', + 'mimes:zip', + 'max:10240', // 最大10MB + ] + ], [ + 'file.required' => '请选择主题包文件', + 'file.file' => '无效的文件类型', + 'file.mimes' => '主题包必须是zip格式', + 'file.max' => '主题包大小不能超过10MB' + ]); + + try { + // 检查上传目录权限 + $uploadPath = storage_path('tmp'); + if (!File::exists($uploadPath)) { + File::makeDirectory($uploadPath, 0755, true); + } + + if (!is_writable($uploadPath)) { + throw new ApiException('上传目录无写入权限'); + } + + // 检查主题目录权限 + $themePath = base_path('theme'); + if (!is_writable($themePath)) { + throw new ApiException('主题目录无写入权限'); + } + + $file = $request->file('file'); + + // 检查文件MIME类型 + $mimeType = $file->getMimeType(); + if (!in_array($mimeType, ['application/zip', 'application/x-zip-compressed'])) { + throw new ApiException('无效的文件类型,仅支持ZIP格式'); + } + + // 检查文件名安全性 + $originalName = $file->getClientOriginalName(); + if (!preg_match('/^[a-zA-Z0-9\-\_\.]+\.zip$/', $originalName)) { + throw new ApiException('主题包文件名只能包含字母、数字、下划线、中划线和点'); + } + + $this->themeService->upload($file); + return $this->success(true); + + } catch (ApiException $e) { + throw $e; + } catch (\Exception $e) { + \Log::error('Theme upload failed', [ + 'error' => $e->getMessage(), + 'file' => $request->file('file')?->getClientOriginalName() + ]); + throw new ApiException('主题上传失败:' . $e->getMessage()); + } + } + + /** + * 删除主题 + */ + public function delete(Request $request) + { + $payload = $request->validate([ + 'name' => 'required' + ]); + $this->themeService->delete($payload['name']); + return $this->success(true); + } + + /** + * 获取所有主题和其配置列 + * + * @return \Illuminate\Http\JsonResponse + */ + public function getThemes() + { + $data = [ + 'themes' => $this->themeService->getList(), + 'active' => admin_setting('frontend_theme', 'Xboard') + ]; + return $this->success($data); + } + + /** + * 切换主题 + */ + public function switchTheme(Request $request) + { + $payload = $request->validate([ + 'name' => 'required' + ]); + $this->themeService->switch($payload['name']); + return $this->success(true); + } + + /** + * 获取主题配置 + */ + public function getThemeConfig(Request $request) + { + $payload = $request->validate([ + 'name' => 'required' + ]); + $data = $this->themeService->getConfig($payload['name']); + return $this->success($data); + } + + /** + * 保存主题配置 + */ + public function saveThemeConfig(Request $request) + { + $payload = $request->validate([ + 'name' => 'required', + 'config' => 'required' + ]); + $this->themeService->updateConfig($payload['name'], $payload['config']); + $config = $this->themeService->getConfig($payload['name']); + return $this->success($config); + } +} diff --git a/app/Http/Controllers/V2/Admin/TicketController.php b/app/Http/Controllers/V2/Admin/TicketController.php new file mode 100644 index 0000000..fc51d39 --- /dev/null +++ b/app/Http/Controllers/V2/Admin/TicketController.php @@ -0,0 +1,132 @@ +has('filter')) { + collect($request->input('filter'))->each(function ($filter) use ($builder) { + $key = $filter['id']; + $value = $filter['value']; + $builder->where(function ($query) use ($key, $value) { + if (is_array($value)) { + $query->whereIn($key, $value); + } else { + $query->where($key, 'like', "%{$value}%"); + } + }); + }); + } + + if ($request->has('sort')) { + collect($request->input('sort'))->each(function ($sort) use ($builder) { + $key = $sort['id']; + $value = $sort['desc'] ? 'DESC' : 'ASC'; + $builder->orderBy($key, $value); + }); + } + } + public function fetch(Request $request) + { + if ($request->input('id')) { + return $this->fetchTicketById($request); + } else { + return $this->fetchTickets($request); + } + } + + /** + * Summary of fetchTicketById + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ + private function fetchTicketById(Request $request) + { + $ticket = Ticket::with('messages', 'user')->find($request->input('id')); + + if (!$ticket) { + return $this->fail([400202, '工单不存在']); + } + + $ticket->messages->each(function ($message) use ($ticket) { + $message->is_me = $message->user_id !== $ticket->user_id; + }); + + return $this->success($ticket); + } + + /** + * Summary of fetchTickets + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response + */ + private function fetchTickets(Request $request) + { + $ticketModel = Ticket::query() + ->when($request->has('status'), function ($query) use ($request) { + $query->where('status', $request->input('status')); + }) + ->when($request->has('reply_status'), function ($query) use ($request) { + $query->whereIn('reply_status', $request->input('reply_status')); + }) + ->when($request->has('email'), function ($query) use ($request) { + $query->whereHas('user', function ($q) use ($request) { + $q->where('email', $request->input('email')); + }); + }); + + $this->applyFiltersAndSorts($request, $ticketModel); + + return response()->json($ticketModel + ->latest('updated_at') + ->paginate( + perPage: $request->integer('pageSize', 10), + page: $request->integer('current', 1) + )); + } + + public function reply(Request $request) + { + $request->validate([ + 'id' => 'required|numeric', + 'message' => 'required|string' + ], [ + 'id.required' => '工单ID不能为空', + 'message.required' => '消息不能为空' + ]); + $ticketService = new TicketService(); + $ticketService->replyByAdmin( + $request->input('id'), + $request->input('message'), + $request->user()->id + ); + return $this->success(true); + } + + public function close(Request $request) + { + $request->validate([ + 'id' => 'required|numeric' + ], [ + 'id.required' => '工单ID不能为空' + ]); + try { + $ticket = Ticket::findOrFail($request->input('id')); + $ticket->status = Ticket::STATUS_CLOSED; + $ticket->save(); + return $this->success(true); + } catch (ModelNotFoundException $e) { + return $this->fail([400202, '工单不存在']); + } catch (\Exception $e) { + return $this->fail([500101, '关闭失败']); + } + } +} diff --git a/app/Http/Controllers/V1/Admin/UserController.php b/app/Http/Controllers/V2/Admin/UserController.php similarity index 54% rename from app/Http/Controllers/V1/Admin/UserController.php rename to app/Http/Controllers/V2/Admin/UserController.php index 8117aa1..23ed4dd 100644 --- a/app/Http/Controllers/V1/Admin/UserController.php +++ b/app/Http/Controllers/V2/Admin/UserController.php @@ -1,10 +1,8 @@ input('id')); - if (!$user) return $this->fail([400202,'用户不存在']); + if (!$user) + return $this->fail([400202, '用户不存在']); $user->token = Helper::guid(); $user->uuid = Helper::guid(true); return $this->success($user->save()); } - private function filter(Request $request, $builder) + /** + * Apply filters and sorts to the query builder + * + * @param Request $request + * @param Builder $builder + * @return void + */ + private function applyFiltersAndSorts(Request $request, Builder $builder): void { - $filters = $request->input('filter'); - if ($filters) { - foreach ($filters as $k => $filter) { - if ($filter['condition'] === '模糊') { - $filter['condition'] = 'like'; - $filter['value'] = "%{$filter['value']}%"; - } - if ($filter['key'] === 'd' || $filter['key'] === 'transfer_enable') { - $filter['value'] = $filter['value'] * 1073741824; - } - if ($filter['key'] === 'invite_by_email') { - $user = User::where('email', $filter['condition'], $filter['value'])->first(); - $inviteUserId = isset($user->id) ? $user->id : 0; - $builder->where('invite_user_id', $inviteUserId); - unset($filters[$k]); - continue; - } - $builder->where($filter['key'], $filter['condition'], $filter['value']); - } - } + $this->applyFilters($request, $builder); + $this->applySorting($request, $builder); } - public function fetch(UserFetch $request) + /** + * Apply filters to the query builder + * + * @param Request $request + * @param Builder $builder + * @return void + */ + private function applyFilters(Request $request, Builder $builder): void { - $current = $request->input('current') ? $request->input('current') : 1; - $pageSize = $request->input('pageSize') >= 10 ? $request->input('pageSize') : 10; - $sortType = in_array($request->input('sort_type'), ['ASC', 'DESC']) ? $request->input('sort_type') : 'DESC'; - $sort = $request->input('sort') ? $request->input('sort') : 'created_at'; - $userModel = User::select( - DB::raw('*'), - DB::raw('(u+d) as total_used') - ) - ->orderBy($sort, $sortType); - $this->filter($request, $userModel); - $total = $userModel->count(); - $res = $userModel->forPage($current, $pageSize) - ->get(); - $plan = Plan::get(); - for ($i = 0; $i < count($res); $i++) { - for ($k = 0; $k < count($plan); $k++) { - if ($plan[$k]['id'] == $res[$i]['plan_id']) { - $res[$i]['plan_name'] = $plan[$k]['name']; - } - } - $res[$i]['subscribe_url'] = Helper::getSubscribeUrl( $res[$i]['token']); + if (!$request->has('filter')) { + return; } + + collect($request->input('filter'))->each(function ($filter) use ($builder) { + $field = $filter['id']; + $value = $filter['value']; + + $builder->where(function ($query) use ($field, $value) { + $this->buildFilterQuery($query, $field, $value); + }); + }); + } + + /** + * Build the filter query based on field and value + * + * @param Builder $query + * @param string $field + * @param mixed $value + * @return void + */ + private function buildFilterQuery(Builder $query, string $field, mixed $value): void + { + // Handle array values for 'in' operations + if (is_array($value)) { + $query->whereIn($field === 'group_ids' ? 'group_id' : $field, $value); + return; + } + + // Handle operator-based filtering + if (!is_string($value) || !str_contains($value, ':')) { + $query->where($field, 'like', "%{$value}%"); + return; + } + + [$operator, $filterValue] = explode(':', $value, 2); + + // Convert numeric strings to appropriate type + if (is_numeric($filterValue)) { + $filterValue = strpos($filterValue, '.') !== false + ? (float) $filterValue + : (int) $filterValue; + } + + // Handle computed fields + $queryField = match ($field) { + 'total_used' => DB::raw('(u + d)'), + default => $field + }; + + // Apply operator + $query->where($queryField, match (strtolower($operator)) { + 'eq' => '=', + 'gt' => '>', + 'gte' => '>=', + 'lt' => '<', + 'lte' => '<=', + 'like' => 'like', + 'notlike' => 'not like', + 'null' => static fn($q) => $q->whereNull($queryField), + 'notnull' => static fn($q) => $q->whereNotNull($queryField), + default => 'like' + }, match (strtolower($operator)) { + 'like', 'notlike' => "%{$filterValue}%", + 'null', 'notnull' => null, + default => $filterValue + }); + } + + /** + * Apply sorting to the query builder + * + * @param Request $request + * @param Builder $builder + * @return void + */ + private function applySorting(Request $request, Builder $builder): void + { + if (!$request->has('sort')) { + return; + } + + collect($request->input('sort'))->each(function ($sort) use ($builder) { + $field = $sort['id']; + $direction = $sort['desc'] ? 'DESC' : 'ASC'; + $builder->orderBy($field, $direction); + }); + } + + /** + * Fetch paginated user list with filters and sorting + * + * @param Request $request + * @return \Illuminate\Http\Response + */ + public function fetch(Request $request) + { + $current = $request->input('current', 1); + $pageSize = $request->input('pageSize', 10); + + $userModel = User::with(['plan:id,name', 'invite_user:id,email', 'group:id,name']) + ->select(DB::raw('*, (u+d) as total_used')); + + $this->applyFiltersAndSorts($request, $userModel); + + $users = $userModel->orderBy('id', 'desc') + ->paginate($pageSize, ['*'], 'page', $current); + + $users->getCollection()->transform(function ($user) { + return $this->transformUserData($user); + }); + return response([ - 'data' => $res, - 'total' => $total + 'data' => $users->items(), + 'total' => $users->total() ]); } + /** + * Transform user data for response + * + * @param User $user + * @return User + */ + private function transformUserData(User $user): User + { + $user->subscribe_url = Helper::getSubscribeUrl($user->token); + $user->balance = $user->balance / 100; + $user->commission_balance = $user->commission_balance / 100; + return $user; + } + public function getUserInfoById(Request $request) { $request->validate([ - 'id'=> 'required|numeric' - ],[ + 'id' => 'required|numeric' + ], [ 'id.required' => '用户ID不能为空' ]); $user = User::find($request->input('id'))->load('invite_user'); @@ -117,6 +218,7 @@ class UserController extends Controller if (!$plan) { return $this->fail([400202, '订阅计划不存在']); } + // return json_encode($plan); $params['group_id'] = $plan->group_id; } // 处理邀请用户 @@ -126,16 +228,22 @@ class UserController extends Controller $params['invite_user_id'] = null; } - if (isset($params['banned']) && (int)$params['banned'] === 1) { + if (isset($params['banned']) && (int) $params['banned'] === 1) { $authService = new AuthService($user); - $authService->removeAllSession(); + $authService->removeSession(); + } + if (isset($params['balance'])) { + $params['balance'] = $params['balance'] * 100; + } + if (isset($params['commission_balance'])) { + $params['commission_balance'] = $params['commission_balance'] * 100; } try { $user->update($params); } catch (\Exception $e) { \Log::error($e); - return $this->fail([500,'保存失败']); + return $this->fail([500, '保存失败']); } return $this->success(true); } @@ -155,14 +263,14 @@ class UserController extends Controller } $data = "邮箱,余额,推广佣金,总流量,剩余流量,套餐到期时间,订阅计划,订阅地址\r\n"; - foreach($res as $user) { + foreach ($res as $user) { $expireDate = $user['expired_at'] === NULL ? '长期有效' : date('Y-m-d H:i:s', $user['expired_at']); $balance = $user['balance'] / 100; $commissionBalance = $user['commission_balance'] / 100; $transferEnable = $user['transfer_enable'] ? $user['transfer_enable'] / 1073741824 : 0; $notUseFlow = (($user['transfer_enable'] - ($user['u'] + $user['d'])) / 1073741824) ?? 0; $planName = $user['plan_name'] ?? '无订阅'; - $subscribeUrl = Helper::getSubscribeUrl($user['token']); + $subscribeUrl = Helper::getSubscribeUrl('/api/v1/client/subscribe?token=' . $user['token']); $data .= "{$user['email']},{$balance},{$commissionBalance},{$transferEnable},{$notUseFlow},{$expireDate},{$planName},{$subscribeUrl}\r\n"; } echo "\xEF\xBB\xBF" . $data; @@ -174,7 +282,7 @@ class UserController extends Controller if ($request->input('plan_id')) { $plan = Plan::find($request->input('plan_id')); if (!$plan) { - return $this->fail([400202,'订阅计划不存在']); + return $this->fail([400202, '订阅计划不存在']); } } $user = [ @@ -187,11 +295,11 @@ class UserController extends Controller 'token' => Helper::guid() ]; if (User::where('email', $user['email'])->first()) { - return $this->fail([400201,'邮箱已存在于系统中']); + return $this->fail([400201, '邮箱已存在于系统中']); } $user['password'] = password_hash($request->input('password') ?? $user['email'], PASSWORD_DEFAULT); if (!User::create($user)) { - return $this->fail([500,'生成失败']); + return $this->fail([500, '生成失败']); } return $this->success(true); } @@ -205,11 +313,11 @@ class UserController extends Controller if ($request->input('plan_id')) { $plan = Plan::find($request->input('plan_id')); if (!$plan) { - return $this->fail([400202,'订阅计划不存在']); + return $this->fail([400202, '订阅计划不存在']); } } $users = []; - for ($i = 0;$i < $request->input('generate_count');$i++) { + for ($i = 0; $i < $request->input('generate_count'); $i++) { $user = [ 'email' => Helper::randomChar(6) . '@' . $request->input('email_suffix'), 'plan_id' => isset($plan->id) ? $plan->id : NULL, @@ -224,23 +332,23 @@ class UserController extends Controller $user['password'] = password_hash($request->input('password') ?? $user['email'], PASSWORD_DEFAULT); array_push($users, $user); } - try{ + try { DB::beginTransaction(); if (!User::insert($users)) { throw new \Exception(); } DB::commit(); - }catch(\Exception $e){ + } catch (\Exception $e) { DB::rollBack(); \Log::error($e); - return $this->fail([500,'生成失败']); + return $this->fail([500, '生成失败']); } $data = "账号,密码,过期时间,UUID,创建时间,订阅地址\r\n"; - foreach($users as $user) { + foreach ($users as $user) { $expireDate = $user['expired_at'] === NULL ? '长期有效' : date('Y-m-d H:i:s', $user['expired_at']); $createDate = date('Y-m-d H:i:s', $user['created_at']); $password = $request->input('password') ?? $user['email']; - $subscribeUrl = Helper::getSubscribeUrl($user['token']); + $subscribeUrl = Helper::getSubscribeUrl('/api/v1/client/subscribe?token=' . $user['token']); $data .= "{$user['email']},{$password},{$expireDate},{$user['uuid']},{$createDate},{$subscribeUrl}\r\n"; } echo $data; @@ -254,17 +362,19 @@ class UserController extends Controller $this->filter($request, $builder); $users = $builder->get(); foreach ($users as $user) { - SendEmailJob::dispatch([ - 'email' => $user->email, - 'subject' => $request->input('subject'), - 'template_name' => 'notify', - 'template_value' => [ - 'name' => admin_setting('app_name', 'XBoard'), - 'url' => admin_setting('app_url'), - 'content' => $request->input('content') - ] - ], - 'send_email_mass'); + SendEmailJob::dispatch( + [ + 'email' => $user->email, + 'subject' => $request->input('subject'), + 'template_name' => 'notify', + 'template_value' => [ + 'name' => admin_setting('app_name', 'XBoard'), + 'url' => admin_setting('app_url'), + 'content' => $request->input('content') + ] + ], + 'send_email_mass' + ); } return $this->success(true); @@ -282,7 +392,7 @@ class UserController extends Controller ]); } catch (\Exception $e) { \Log::error($e); - return $this->fail([500,'处理失败']); + return $this->fail([500, '处理失败']); } return $this->success(true); diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index b9b061f..45138c0 100755 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -29,7 +29,7 @@ class Kernel extends HttpKernel */ protected $middlewareGroups = [ 'web' => [ -// \App\Http\Middleware\EncryptCookies::class, + // \App\Http\Middleware\EncryptCookies::class, // \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, // \Illuminate\Session\Middleware\StartSession::class, // \Illuminate\Session\Middleware\AuthenticateSession::class, @@ -39,9 +39,12 @@ class Kernel extends HttpKernel ], 'api' => [ -// \App\Http\Middleware\EncryptCookies::class, + // \App\Http\Middleware\EncryptCookies::class, // \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, // \Illuminate\Session\Middleware\StartSession::class, + // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, + // \Illuminate\Routing\Middleware\ThrottleRequests::class . ':api', + // \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\ForceJson::class, \App\Http\Middleware\Language::class, 'bindings', @@ -56,6 +59,7 @@ class Kernel extends HttpKernel * @var array */ protected $middlewareAliases = [ + 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, @@ -70,6 +74,8 @@ class Kernel extends HttpKernel 'staff' => \App\Http\Middleware\Staff::class, 'log' => \App\Http\Middleware\RequestLog::class, 'server' => \App\Http\Middleware\Server::class, + 'abilities' => \Laravel\Sanctum\Http\Middleware\CheckAbilities::class, + 'ability' => \Laravel\Sanctum\Http\Middleware\CheckForAnyAbility::class, ]; /** diff --git a/app/Http/Middleware/Admin.php b/app/Http/Middleware/Admin.php index a5a8d86..b39f49d 100755 --- a/app/Http/Middleware/Admin.php +++ b/app/Http/Middleware/Admin.php @@ -3,9 +3,8 @@ namespace App\Http\Middleware; use App\Exceptions\ApiException; -use App\Services\AuthService; +use Illuminate\Support\Facades\Auth; use Closure; -use Illuminate\Support\Facades\Cache; class Admin { @@ -18,14 +17,15 @@ class Admin */ public function handle($request, Closure $next) { - $authorization = $request->input('auth_data') ?? $request->header('authorization'); - if (!$authorization) throw new ApiException('未登录或登陆已过期', 403); + if (!Auth::guard('sanctum')->check()) { + throw new ApiException('未登录或登陆已过期', 403); + } + + $user = Auth::guard('sanctum')->user(); + if (!$user->is_admin) { + throw new ApiException('无管理员权限', 403); + } - $user = AuthService::decryptAuthData($authorization); - if (!$user || !$user['is_admin']) throw new ApiException('未登录或登陆已过期',403); - $request->merge([ - 'user' => $user - ]); return $next($request); } } diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php new file mode 100644 index 0000000..8501009 --- /dev/null +++ b/app/Http/Middleware/Authenticate.php @@ -0,0 +1,17 @@ +expectsJson() ? null : null; + } +} diff --git a/app/Http/Middleware/Client.php b/app/Http/Middleware/Client.php index fd4086e..77645e0 100755 --- a/app/Http/Middleware/Client.php +++ b/app/Http/Middleware/Client.php @@ -3,10 +3,9 @@ namespace App\Http\Middleware; use App\Exceptions\ApiException; -use App\Utils\CacheKey; use Closure; use App\Models\User; -use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Auth; class Client { @@ -19,7 +18,7 @@ class Client */ public function handle($request, Closure $next) { - $token = $request->input('token'); + $token = $request->input('token', $request->route('token')); if (empty($token)) { throw new ApiException('token is null',403); } @@ -27,9 +26,8 @@ class Client if (!$user) { throw new ApiException('token is error',403); } - $request->merge([ - 'user' => $user - ]); + + Auth::setUser($user); return $next($request); } } diff --git a/app/Http/Middleware/Server.php b/app/Http/Middleware/Server.php index 3dcb858..5ae86fd 100644 --- a/app/Http/Middleware/Server.php +++ b/app/Http/Middleware/Server.php @@ -1,54 +1,55 @@ validateRequest($request); + + $serverInfo = ServerService::getServer( + $request->input('node_id'), + $request->input('node_type') ?? $nodeType + ); + if (!$serverInfo) { + throw new ApiException('Server does not exist'); + } + + $request->merge(['node_info' => $serverInfo]); + return $next($request); + } + + private function validateRequest(Request $request): void { - // alias - $aliasTypes = [ - 'v2ray' => 'vmess', - 'hysteria2' => 'hysteria' - ]; $request->validate([ 'token' => [ - "string", - "required", + 'string', + 'required', function ($attribute, $value, $fail) { if ($value !== admin_setting('server_token')) { - $fail('The ' . $attribute . ' is invalid.'); + $fail("Invalid {$attribute}"); } }, ], 'node_id' => 'required', 'node_type' => [ - 'required', 'nullable', - 'regex:/^(?i)(hysteria|hysteria2|vless|trojan|vmess|v2ray|tuic|shadowsocks|shadowsocks-plugin)$/', - function ($attribute, $value, $fail) use ($aliasTypes, $request) { - $request->merge([$attribute => strtolower(isset($aliasTypes[$value]) ? $aliasTypes[$value] : $value)]); + function ($attribute, $value, $fail) use ($request) { + if (!ServerModel::isValidType($value)) { + $fail("Invalid node type specified"); + return; + } + $request->merge([$attribute => ServerModel::normalizeType($value)]); }, ] - ], [ - 'node_type.regex' => 'node_type is error!' ]); - $nodeInfo = ServerService::getServer($request->input('node_id'), $request->input('node_type') ?? $node_type); - if (!$nodeInfo) - throw new ApiException('server is not exist!'); - $request->merge(['node_info' => $nodeInfo]); - return $next($request); } } diff --git a/app/Http/Middleware/User.php b/app/Http/Middleware/User.php index b0483d6..14f3049 100755 --- a/app/Http/Middleware/User.php +++ b/app/Http/Middleware/User.php @@ -4,6 +4,7 @@ namespace App\Http\Middleware; use App\Exceptions\ApiException; use App\Services\AuthService; +use Auth; use Closure; use Illuminate\Support\Facades\Cache; @@ -18,14 +19,9 @@ class User */ public function handle($request, Closure $next) { - $authorization = $request->input('auth_data') ?? $request->header('authorization'); - if (!$authorization) throw new ApiException( '未登录或登陆已过期', 403); - - $user = AuthService::decryptAuthData($authorization); - if (!$user) throw new ApiException('未登录或登陆已过期', 403); - $request->merge([ - 'user' => $user - ]); + if (!Auth::guard('sanctum')->check()) { + throw new ApiException('未登录或登陆已过期', 403); + } return $next($request); } } diff --git a/app/Http/Requests/Admin/ConfigSave.php b/app/Http/Requests/Admin/ConfigSave.php index c5dd5fc..0c80206 100755 --- a/app/Http/Requests/Admin/ConfigSave.php +++ b/app/Http/Requests/Admin/ConfigSave.php @@ -8,46 +8,48 @@ class ConfigSave extends FormRequest { const RULES = [ // invite & commission - 'invite_force' => 'in:0,1', - 'invite_commission' => 'integer', - 'invite_gen_limit' => 'integer', - 'invite_never_expire' => 'in:0,1', - 'commission_first_time_enable' => 'in:0,1', - 'commission_auto_check_enable' => 'in:0,1', + 'invite_force' => '', + 'invite_commission' => 'integer|nullable', + 'invite_gen_limit' => 'integer|nullable', + 'invite_never_expire' => '', + 'commission_first_time_enable' => '', + 'commission_auto_check_enable' => '', 'commission_withdraw_limit' => 'nullable|numeric', 'commission_withdraw_method' => 'nullable|array', - 'withdraw_close_enable' => 'in:0,1', - 'commission_distribution_enable' => 'in:0,1', + 'withdraw_close_enable' => '', + 'commission_distribution_enable' => '', 'commission_distribution_l1' => 'nullable|numeric', 'commission_distribution_l2' => 'nullable|numeric', 'commission_distribution_l3' => 'nullable|numeric', // site 'logo' => 'nullable|url', - 'force_https' => 'in:0,1', - 'stop_register' => 'in:0,1', + 'force_https' => '', + 'stop_register' => '', 'app_name' => '', 'app_description' => '', 'app_url' => 'nullable|url', 'subscribe_url' => 'nullable', - 'try_out_enable' => 'in:0,1', + 'try_out_enable' => '', 'try_out_plan_id' => 'integer', 'try_out_hour' => 'numeric', 'tos_url' => 'nullable|url', 'currency' => '', 'currency_symbol' => '', // subscribe - 'plan_change_enable' => 'in:0,1', + 'plan_change_enable' => '', 'reset_traffic_method' => 'in:0,1,2,3,4', - 'surplus_enable' => 'in:0,1', - 'new_order_event_id' => 'in:0,1', - 'renew_order_event_id' => 'in:0,1', - 'change_order_event_id' => 'in:0,1', - 'show_info_to_server_enable' => 'in:0,1', - 'show_protocol_to_server_enable' => 'in:0,1', + 'surplus_enable' => '', + 'new_order_event_id' => '', + 'renew_order_event_id' => '', + 'change_order_event_id' => '', + 'show_info_to_server_enable' => '', + 'show_protocol_to_server_enable' => '', + 'subscribe_path' => '', // server 'server_token' => 'nullable|min:16', 'server_pull_interval' => 'integer', 'server_push_interval' => 'integer', + 'device_limit_mode' => 'integer', // frontend 'frontend_theme' => '', 'frontend_theme_sidebar' => 'nullable|in:dark,light', @@ -62,8 +64,9 @@ class ConfigSave extends FormRequest 'email_password' => '', 'email_encryption' => '', 'email_from_address' => '', + 'remind_mail_enable' => '', // telegram - 'telegram_bot_enable' => 'in:0,1', + 'telegram_bot_enable' => '', 'telegram_bot_token' => '', 'telegram_discuss_id' => '', 'telegram_channel_id' => '', @@ -76,23 +79,23 @@ class ConfigSave extends FormRequest 'android_version' => '', 'android_download_url' => '', // safe - 'email_whitelist_enable' => 'in:0,1', + 'email_whitelist_enable' => 'boolean', 'email_whitelist_suffix' => 'nullable|array', - 'email_gmail_limit_enable' => 'in:0,1', - 'recaptcha_enable' => 'in:0,1', + 'email_gmail_limit_enable' => 'boolean', + 'recaptcha_enable' => 'boolean', 'recaptcha_key' => '', 'recaptcha_site_key' => '', - 'email_verify' => 'in:0,1', - 'safe_mode_enable' => 'in:0,1', - 'register_limit_by_ip_enable' => 'in:0,1', + 'email_verify' => 'bool', + 'safe_mode_enable' => 'boolean', + 'register_limit_by_ip_enable' => 'boolean', 'register_limit_count' => 'integer', 'register_limit_expire' => 'integer', 'secure_path' => 'min:8|regex:/^[\w-]*$/', - 'password_limit_enable' => 'in:0,1', + 'password_limit_enable' => 'boolean', 'password_limit_count' => 'integer', 'password_limit_expire' => 'integer', - 'default_remind_expire' => 'integer', - 'default_remind_traffic' => 'integer' + 'default_remind_expire' => 'boolean', + 'default_remind_traffic' => 'boolean' ]; /** * Get the validation rules that apply to the request. diff --git a/app/Http/Requests/Admin/ServerSave.php b/app/Http/Requests/Admin/ServerSave.php new file mode 100644 index 0000000..4587519 --- /dev/null +++ b/app/Http/Requests/Admin/ServerSave.php @@ -0,0 +1,115 @@ + [ + 'cipher' => 'required|string', + 'obfs' => 'nullable|string', + 'obfs_settings.path' => 'nullable|string', + 'obfs_settings.host' => 'nullable|string', + ], + 'vmess' => [ + 'tls' => 'required|integer', + 'network' => 'required|string', + 'network_settings' => 'nullable|array', + 'tls_settings.server_name' => 'nullable|string', + 'tls_settings.allow_insecure' => 'nullable|boolean', + ], + 'trojan' => [ + 'network' => 'required|string', + 'network_settings' => 'nullable|array', + 'server_name' => 'nullable|string', + 'allow_insecure' => 'nullable|boolean', + ], + 'hysteria' => [ + 'version' => 'required|integer', + 'alpn' => 'nullable|string', + 'obfs.open' => 'nullable|boolean', + 'obfs.type' => 'string|nullable', + 'obfs.password' => 'string|nullable', + 'tls.server_name' => 'nullable|string', + 'tls.allow_insecure' => 'nullable|boolean', + 'bandwidth.up' => 'nullable|integer', + 'bandwidth.down' => 'nullable|integer', + ], + 'vless' => [ + 'tls' => 'required|integer', + 'network' => 'required|string', + 'network_settings' => 'nullable|array', + 'flow' => 'nullable|string', + 'tls_settings.server_name' => 'nullable|string', + 'tls_settings.allow_insecure' => 'nullable|boolean', + 'reality_settings.allow_insecure' => 'nullable|boolean', + 'reality_settings.server_name' => 'nullable|string', + 'reality_settings.server_port' => 'nullable|integer', + 'reality_settings.public_key' => 'nullable|string', + 'reality_settings.private_key' => 'nullable|string', + 'reality_settings.short_id' => 'nullable|string', + ] + ]; + + private function getBaseRules(): array + { + return [ + 'type' => 'required|in:' . implode(',', Server::VALID_TYPES), + 'spectific_key' => 'nullable|string', + 'code' => 'nullable|string', + 'show' => '', + 'name' => 'required|string', + 'group_ids' => 'nullable|array', + 'route_ids' => 'nullable|array', + 'parent_id' => 'nullable|integer', + 'host' => 'required', + 'port' => 'required', + 'server_port' => 'required', + 'tags' => 'nullable|array', + 'excludes' => 'nullable|array', + 'ips' => 'nullable|array', + 'rate' => 'required|numeric', + 'protocol_settings' => 'array', + ]; + } + + public function rules(): array + { + $type = $this->input('type'); + $rules = $this->getBaseRules(); + + foreach (self::PROTOCOL_RULES[$type] ?? [] as $field => $rule) { + $rules['protocol_settings.' . $field] = $rule; + } + + return $rules; + } + + public function messages() + { + return [ + 'name.required' => '节点名称不能为空', + 'group_ids.required' => '权限组不能为空', + 'group_ids.array' => '权限组格式不正确', + 'route_ids.array' => '路由组格式不正确', + 'parent_id.integer' => '父ID格式不正确', + 'host.required' => '节点地址不能为空', + 'port.required' => '连接端口不能为空', + 'server_port.required' => '后端服务端口不能为空', + 'tls.required' => 'TLS不能为空', + 'tags.array' => '标签格式不正确', + 'rate.required' => '倍率不能为空', + 'rate.numeric' => '倍率格式不正确', + 'network.required' => '传输协议不能为空', + 'network.in' => '传输协议格式不正确', + 'networkSettings.array' => '传输协议配置有误', + 'ruleSettings.array' => '规则配置有误', + 'tlsSettings.array' => 'tls配置有误', + 'dnsSettings.array' => 'dns配置有误' + ]; + } +} diff --git a/app/Http/Requests/Admin/ServerShadowsocksSave.php b/app/Http/Requests/Admin/ServerShadowsocksSave.php deleted file mode 100644 index ab4ee48..0000000 --- a/app/Http/Requests/Admin/ServerShadowsocksSave.php +++ /dev/null @@ -1,54 +0,0 @@ - '', - 'name' => 'required', - 'group_id' => 'required|array', - 'parent_id' => 'nullable|integer', - 'route_id' => 'nullable|array', - 'host' => 'required', - 'port' => 'required', - 'server_port' => 'required', - 'cipher' => 'required|in:aes-128-gcm,aes-192-gcm,aes-256-gcm,chacha20-ietf-poly1305,2022-blake3-aes-128-gcm,2022-blake3-aes-256-gcm', - 'obfs' => 'nullable|in:http', - 'obfs_settings' => 'nullable|array', - 'tags' => 'nullable|array', - 'excludes' => 'nullable|array', - 'ips' => 'nullable|array', - 'rate' => 'required|numeric' - ]; - } - - public function messages() - { - return [ - 'name.required' => '节点名称不能为空', - 'group_id.required' => '权限组不能为空', - 'group_id.array' => '权限组格式不正确', - 'route_id.array' => '路由组格式不正确', - 'parent_id.integer' => '父节点格式不正确', - 'host.required' => '节点地址不能为空', - 'port.required' => '连接端口不能为空', - 'server_port.required' => '后端服务端口不能为空', - 'cipher.required' => '加密方式不能为空', - 'tags.array' => '标签格式不正确', - 'rate.required' => '倍率不能为空', - 'rate.numeric' => '倍率格式不正确', - 'obfs.in' => '混淆格式不正确', - 'obfs_settings.array' => '混淆设置格式不正确' - ]; - } -} diff --git a/app/Http/Requests/Admin/ServerShadowsocksUpdate.php b/app/Http/Requests/Admin/ServerShadowsocksUpdate.php deleted file mode 100755 index 4de0d09..0000000 --- a/app/Http/Requests/Admin/ServerShadowsocksUpdate.php +++ /dev/null @@ -1,28 +0,0 @@ - 'in:0,1' - ]; - } - - public function messages() - { - return [ - 'show.in' => '显示状态格式不正确' - ]; - } -} diff --git a/app/Http/Requests/Admin/ServerTrojanSave.php b/app/Http/Requests/Admin/ServerTrojanSave.php deleted file mode 100644 index af008e0..0000000 --- a/app/Http/Requests/Admin/ServerTrojanSave.php +++ /dev/null @@ -1,54 +0,0 @@ - '', - 'name' => 'required', - 'network' => 'required', - 'networkSettings' => 'nullable', - 'group_id' => 'required|array', - 'route_id' => 'nullable|array', - 'parent_id' => 'nullable|integer', - 'host' => 'required', - 'port' => 'required', - 'server_port' => 'required', - 'allow_insecure' => 'nullable|in:0,1', - 'server_name' => 'nullable', - 'tags' => 'nullable|array', - 'excludes' => 'nullable|array', - 'ips' => 'nullable|array', - 'rate' => 'required|numeric' - ]; - } - - public function messages() - { - return [ - 'name.required' => '节点名称不能为空', - 'network.required' => '传输协议不能为空', - 'group_id.required' => '权限组不能为空', - 'group_id.array' => '权限组格式不正确', - 'route_id.array' => '路由组格式不正确', - 'parent_id.integer' => '父节点格式不正确', - 'host.required' => '节点地址不能为空', - 'port.required' => '连接端口不能为空', - 'server_port.required' => '后端服务端口不能为空', - 'allow_insecure.in' => '允许不安全格式不正确', - 'tags.array' => '标签格式不正确', - 'rate.required' => '倍率不能为空', - 'rate.numeric' => '倍率格式不正确' - ]; - } -} diff --git a/app/Http/Requests/Admin/ServerTrojanUpdate.php b/app/Http/Requests/Admin/ServerTrojanUpdate.php deleted file mode 100755 index fe1786d..0000000 --- a/app/Http/Requests/Admin/ServerTrojanUpdate.php +++ /dev/null @@ -1,28 +0,0 @@ - 'in:0,1' - ]; - } - - public function messages() - { - return [ - 'show.in' => '显示状态格式不正确' - ]; - } -} diff --git a/app/Http/Requests/Admin/ServerVmessSave.php b/app/Http/Requests/Admin/ServerVmessSave.php deleted file mode 100755 index c3d08f2..0000000 --- a/app/Http/Requests/Admin/ServerVmessSave.php +++ /dev/null @@ -1,61 +0,0 @@ - '', - 'name' => 'required', - 'group_id' => 'required|array', - 'route_id' => 'nullable|array', - 'parent_id' => 'nullable|integer', - 'host' => 'required', - 'port' => 'required', - 'server_port' => 'required', - 'tls' => 'required', - 'tags' => 'nullable|array', - 'excludes' => 'nullable|array', - 'ips' => 'nullable|array', - 'rate' => 'required|numeric', - 'network' => 'required|in:tcp,kcp,ws,http,domainsocket,quic,grpc', - 'networkSettings' => 'nullable|array', - 'ruleSettings' => 'nullable|array', - 'tlsSettings' => 'nullable|array', - 'dnsSettings' => 'nullable|array' - ]; - } - - public function messages() - { - return [ - 'name.required' => '节点名称不能为空', - 'group_id.required' => '权限组不能为空', - 'group_id.array' => '权限组格式不正确', - 'route_id.array' => '路由组格式不正确', - 'parent_id.integer' => '父ID格式不正确', - 'host.required' => '节点地址不能为空', - 'port.required' => '连接端口不能为空', - 'server_port.required' => '后端服务端口不能为空', - 'tls.required' => 'TLS不能为空', - 'tags.array' => '标签格式不正确', - 'rate.required' => '倍率不能为空', - 'rate.numeric' => '倍率格式不正确', - 'network.required' => '传输协议不能为空', - 'network.in' => '传输协议格式不正确', - 'networkSettings.array' => '传输协议配置有误', - 'ruleSettings.array' => '规则配置有误', - 'tlsSettings.array' => 'tls配置有误', - 'dnsSettings.array' => 'dns配置有误' - ]; - } -} diff --git a/app/Http/Requests/Admin/ServerVmessUpdate.php b/app/Http/Requests/Admin/ServerVmessUpdate.php deleted file mode 100755 index 607d74d..0000000 --- a/app/Http/Requests/Admin/ServerVmessUpdate.php +++ /dev/null @@ -1,28 +0,0 @@ - 'in:0,1' - ]; - } - - public function messages() - { - return [ - 'show.in' => '显示状态格式不正确' - ]; - } -} diff --git a/app/Http/Requests/Admin/UserUpdate.php b/app/Http/Requests/Admin/UserUpdate.php index c175f33..793606d 100644 --- a/app/Http/Requests/Admin/UserUpdate.php +++ b/app/Http/Requests/Admin/UserUpdate.php @@ -18,7 +18,7 @@ class UserUpdate extends FormRequest 'password' => 'nullable|min:8', 'transfer_enable' => 'numeric', 'expired_at' => 'nullable|integer', - 'banned' => 'required|in:0,1', + 'banned' => 'in:0,1', 'plan_id' => 'nullable|integer', 'commission_rate' => 'nullable|integer|min:0|max:100', 'discount' => 'nullable|integer|min:0|max:100', @@ -26,11 +26,12 @@ class UserUpdate extends FormRequest 'is_staff' => 'required|in:0,1', 'u' => 'integer', 'd' => 'integer', - 'balance' => 'integer', + 'balance' => 'numeric', 'commission_type' => 'integer', - 'commission_balance' => 'integer', + 'commission_balance' => 'numeric', 'remarks' => 'nullable', - 'speed_limit' => 'nullable|integer' + 'speed_limit' => 'nullable|integer', + 'device_limit' => 'nullable|integer' ]; } @@ -41,7 +42,6 @@ class UserUpdate extends FormRequest 'email.email' => '邮箱格式不正确', 'transfer_enable.numeric' => '流量格式不正确', 'expired_at.integer' => '到期时间格式不正确', - 'banned.required' => '是否封禁不能为空', 'banned.in' => '是否封禁格式不正确', 'is_admin.required' => '是否管理员不能为空', 'is_admin.in' => '是否管理员格式不正确', @@ -61,7 +61,8 @@ class UserUpdate extends FormRequest 'balance.integer' => '余额格式不正确', 'commission_balance.integer' => '佣金格式不正确', 'password.min' => '密码长度最小8位', - 'speed_limit.integer' => '限速格式不正确' + 'speed_limit.integer' => '限速格式不正确', + 'device_limit.integer' => '设备数量格式不正确' ]; } } diff --git a/app/Http/Resources/OrderResource.php b/app/Http/Resources/OrderResource.php new file mode 100644 index 0000000..d2d5ff8 --- /dev/null +++ b/app/Http/Resources/OrderResource.php @@ -0,0 +1,24 @@ + + */ + public function toArray(Request $request): array + { + return [ + ...parent::toArray($request), + 'period' => PlanService::getLegacyPeriod($this->period), + 'plan' => PlanResource::make($this->plan), + ]; + } +} diff --git a/app/Http/Resources/PlanResource.php b/app/Http/Resources/PlanResource.php new file mode 100644 index 0000000..079d96e --- /dev/null +++ b/app/Http/Resources/PlanResource.php @@ -0,0 +1,75 @@ + + */ + public function toArray(Request $request): array + { + return [ + 'id' => $this->resource['id'], + 'group_id' => $this->resource['group_id'], + 'name' => $this->resource['name'], + 'content' => $this->resource['content'], + ...$this->getPeriodPrices(), + 'capacity_limit' => $this->getFormattedCapacityLimit(), + 'transfer_enable' => $this->resource['transfer_enable'], + 'speed_limit' => $this->resource['speed_limit'], + 'show' => (bool) $this->resource['show'], + 'sell' => (bool) $this->resource['sell'], + 'renew' => (bool) $this->resource['renew'], + 'reset_traffic_method' => $this->resource['reset_traffic_method'], + 'sort' => $this->resource['sort'], + 'created_at' => $this->resource['created_at'], + 'updated_at' => $this->resource['updated_at'] + ]; + } + + /** + * Get transformed period prices using Plan mapping + * + * @return array + */ + protected function getPeriodPrices(): array + { + return collect(Plan::LEGACY_PERIOD_MAPPING) + ->mapWithKeys(function (string $newPeriod, string $legacyPeriod): array { + $price = $this->resource['prices'][$newPeriod] ?? null; + return [ + $legacyPeriod => $price !== null + ? (float) $price * self::PRICE_MULTIPLIER + : null + ]; + }) + ->all(); + } + + /** + * Get formatted capacity limit value + * + * @return int|string|null + */ + protected function getFormattedCapacityLimit(): int|string|null + { + $limit = $this->resource['capacity_limit']; + + return match (true) { + $limit === null => null, + $limit <= 0 => __('Sold out'), + default => (int) $limit, + }; + } +} \ No newline at end of file diff --git a/app/Http/Routes/V1/AdminRoute.php b/app/Http/Routes/V1/AdminRoute.php deleted file mode 100644 index c03a56d..0000000 --- a/app/Http/Routes/V1/AdminRoute.php +++ /dev/null @@ -1,144 +0,0 @@ -group([ - 'prefix' => admin_setting('secure_path', admin_setting('frontend_admin_path', hash('crc32b', config('app.key')))), - 'middleware' => ['admin', 'log'], - ], function ($router) { - // Config - $router->get ('/config/fetch', 'V1\\Admin\\ConfigController@fetch'); - $router->post('/config/save', 'V1\\Admin\\ConfigController@save'); - $router->get ('/config/getEmailTemplate', 'V1\\Admin\\ConfigController@getEmailTemplate'); - $router->get ('/config/getThemeTemplate', 'V1\\Admin\\ConfigController@getThemeTemplate'); - $router->post('/config/setTelegramWebhook', 'V1\\Admin\\ConfigController@setTelegramWebhook'); - $router->post('/config/testSendMail', 'V1\\Admin\\ConfigController@testSendMail'); - // Plan - $router->get ('/plan/fetch', 'V1\\Admin\\PlanController@fetch'); - $router->post('/plan/save', 'V1\\Admin\\PlanController@save'); - $router->post('/plan/drop', 'V1\\Admin\\PlanController@drop'); - $router->post('/plan/update', 'V1\\Admin\\PlanController@update'); - $router->post('/plan/sort', 'V1\\Admin\\PlanController@sort'); - // Server - $router->get ('/server/group/fetch', 'V1\\Admin\\Server\\GroupController@fetch'); - $router->post('/server/group/save', 'V1\\Admin\\Server\\GroupController@save'); - $router->post('/server/group/drop', 'V1\\Admin\\Server\\GroupController@drop'); - $router->get ('/server/route/fetch', 'V1\\Admin\\Server\\RouteController@fetch'); - $router->post('/server/route/save', 'V1\\Admin\\Server\\RouteController@save'); - $router->post('/server/route/drop', 'V1\\Admin\\Server\\RouteController@drop'); - $router->get ('/server/manage/getNodes', 'V1\\Admin\\Server\\ManageController@getNodes'); - $router->post('/server/manage/sort', 'V1\\Admin\\Server\\ManageController@sort'); - $router->group([ - 'prefix' => 'server/trojan' - ], function ($router) { - $router->post('save', 'V1\\Admin\\Server\\TrojanController@save'); - $router->post('drop', 'V1\\Admin\\Server\\TrojanController@drop'); - $router->post('update', 'V1\\Admin\\Server\\TrojanController@update'); - $router->post('copy', 'V1\\Admin\\Server\\TrojanController@copy'); - }); - $router->group([ - 'prefix' => 'server/vmess' - ], function ($router) { - $router->post('save', 'V1\\Admin\\Server\\VmessController@save'); - $router->post('drop', 'V1\\Admin\\Server\\VmessController@drop'); - $router->post('update', 'V1\\Admin\\Server\\VmessController@update'); - $router->post('copy', 'V1\\Admin\\Server\\VmessController@copy'); - }); - $router->group([ - 'prefix' => 'server/shadowsocks' - ], function ($router) { - $router->post('save', 'V1\\Admin\\Server\\ShadowsocksController@save'); - $router->post('drop', 'V1\\Admin\\Server\\ShadowsocksController@drop'); - $router->post('update', 'V1\\Admin\\Server\\ShadowsocksController@update'); - $router->post('copy', 'V1\\Admin\\Server\\ShadowsocksController@copy'); - }); - $router->group([ - 'prefix' => 'server/hysteria' - ], function ($router) { - $router->post('save', 'V1\\Admin\\Server\\HysteriaController@save'); - $router->post('drop', 'V1\\Admin\\Server\\HysteriaController@drop'); - $router->post('update', 'V1\\Admin\\Server\\HysteriaController@update'); - $router->post('copy', 'V1\\Admin\\Server\\HysteriaController@copy'); - }); - $router->group([ - 'prefix' => 'server/vless' - ], function ($router) { - $router->post('save', 'V1\\Admin\\Server\\VlessController@save'); - $router->post('drop', 'V1\\Admin\\Server\\VlessController@drop'); - $router->post('update', 'V1\\Admin\\Server\\VlessController@update'); - $router->post('copy', 'V1\\Admin\\Server\\VlessController@copy'); - }); - // Order - $router->get ('/order/fetch', 'V1\\Admin\\OrderController@fetch'); - $router->post('/order/update', 'V1\\Admin\\OrderController@update'); - $router->post('/order/assign', 'V1\\Admin\\OrderController@assign'); - $router->post('/order/paid', 'V1\\Admin\\OrderController@paid'); - $router->post('/order/cancel', 'V1\\Admin\\OrderController@cancel'); - $router->post('/order/detail', 'V1\\Admin\\OrderController@detail'); - // User - $router->get ('/user/fetch', 'V1\\Admin\\UserController@fetch'); - $router->post('/user/update', 'V1\\Admin\\UserController@update'); - $router->get ('/user/getUserInfoById', 'V1\\Admin\\UserController@getUserInfoById'); - $router->post('/user/generate', 'V1\\Admin\\UserController@generate'); - $router->post('/user/dumpCSV', 'V1\\Admin\\UserController@dumpCSV'); - $router->post('/user/sendMail', 'V1\\Admin\\UserController@sendMail'); - $router->post('/user/ban', 'V1\\Admin\\UserController@ban'); - $router->post('/user/resetSecret', 'V1\\Admin\\UserController@resetSecret'); - $router->post('/user/setInviteUser', 'V1\\Admin\\UserController@setInviteUser'); - // Stat - $router->get ('/stat/getStat', 'V1\\Admin\\StatController@getStat'); - $router->get ('/stat/getOverride', 'V1\\Admin\\StatController@getOverride'); - $router->get ('/stat/getServerLastRank', 'V1\\Admin\\StatController@getServerLastRank'); - $router->get ('/stat/getServerYesterdayRank', 'V1\\Admin\\StatController@getServerYesterdayRank'); - $router->get ('/stat/getOrder', 'V1\\Admin\\StatController@getOrder'); - $router->get ('/stat/getStatUser', 'V1\\Admin\\StatController@getStatUser'); - $router->get ('/stat/getRanking', 'V1\\Admin\\StatController@getRanking'); - $router->get ('/stat/getStatRecord', 'V1\\Admin\\StatController@getStatRecord'); - // Notice - $router->get ('/notice/fetch', 'V1\\Admin\\NoticeController@fetch'); - $router->post('/notice/save', 'V1\\Admin\\NoticeController@save'); - $router->post('/notice/update', 'V1\\Admin\\NoticeController@update'); - $router->post('/notice/drop', 'V1\\Admin\\NoticeController@drop'); - $router->post('/notice/show', 'V1\\Admin\\NoticeController@show'); - // Ticket - $router->get ('/ticket/fetch', 'V1\\Admin\\TicketController@fetch'); - $router->post('/ticket/reply', 'V1\\Admin\\TicketController@reply'); - $router->post('/ticket/close', 'V1\\Admin\\TicketController@close'); - // Coupon - $router->get ('/coupon/fetch', 'V1\\Admin\\CouponController@fetch'); - $router->post('/coupon/generate', 'V1\\Admin\\CouponController@generate'); - $router->post('/coupon/drop', 'V1\\Admin\\CouponController@drop'); - $router->post('/coupon/show', 'V1\\Admin\\CouponController@show'); - // Knowledge - $router->get ('/knowledge/fetch', 'V1\\Admin\\KnowledgeController@fetch'); - $router->get ('/knowledge/getCategory', 'V1\\Admin\\KnowledgeController@getCategory'); - $router->post('/knowledge/save', 'V1\\Admin\\KnowledgeController@save'); - $router->post('/knowledge/show', 'V1\\Admin\\KnowledgeController@show'); - $router->post('/knowledge/drop', 'V1\\Admin\\KnowledgeController@drop'); - $router->post('/knowledge/sort', 'V1\\Admin\\KnowledgeController@sort'); - // Payment - $router->get ('/payment/fetch', 'V1\\Admin\\PaymentController@fetch'); - $router->get ('/payment/getPaymentMethods', 'V1\\Admin\\PaymentController@getPaymentMethods'); - $router->post('/payment/getPaymentForm', 'V1\\Admin\\PaymentController@getPaymentForm'); - $router->post('/payment/save', 'V1\\Admin\\PaymentController@save'); - $router->post('/payment/drop', 'V1\\Admin\\PaymentController@drop'); - $router->post('/payment/show', 'V1\\Admin\\PaymentController@show'); - $router->post('/payment/sort', 'V1\\Admin\\PaymentController@sort'); - // System - $router->get ('/system/getSystemStatus', 'V1\\Admin\\SystemController@getSystemStatus'); - $router->get ('/system/getQueueStats', 'V1\\Admin\\SystemController@getQueueStats'); - $router->get ('/system/getQueueWorkload', 'V1\\Admin\\SystemController@getQueueWorkload'); - $router->get ('/system/getQueueMasters', '\\Laravel\\Horizon\\Http\\Controllers\\MasterSupervisorController@index'); - $router->get ('/system/getSystemLog', 'V1\\Admin\\SystemController@getSystemLog'); - // Theme - $router->get ('/theme/getThemes', 'V1\\Admin\\ThemeController@getThemes'); - $router->post('/theme/saveThemeConfig', 'V1\\Admin\\ThemeController@saveThemeConfig'); - $router->post('/theme/getThemeConfig', 'V1\\Admin\\ThemeController@getThemeConfig'); - }); - } -} diff --git a/app/Http/Routes/V1/ClientRoute.php b/app/Http/Routes/V1/ClientRoute.php index ef5e4d1..8c38cfb 100644 --- a/app/Http/Routes/V1/ClientRoute.php +++ b/app/Http/Routes/V1/ClientRoute.php @@ -12,7 +12,7 @@ class ClientRoute 'middleware' => 'client' ], function ($router) { // Client - $router->get('/subscribe', 'V1\\Client\\ClientController@subscribe')->name('client.subscribe'); + $router->get('/subscribe', 'V1\\Client\\ClientController@subscribe')->name('client.subscribe.legacy'); // App $router->get('/app/getConfig', 'V1\\Client\\AppController@getConfig'); $router->get('/app/getVersion', 'V1\\Client\\AppController@getVersion'); diff --git a/app/Http/Routes/V1/GuestRoute.php b/app/Http/Routes/V1/GuestRoute.php index 1f21c0b..3c4f571 100644 --- a/app/Http/Routes/V1/GuestRoute.php +++ b/app/Http/Routes/V1/GuestRoute.php @@ -1,6 +1,10 @@ 'guest' ], function ($router) { // Plan - $router->get ('/plan/fetch', 'V1\\Guest\\PlanController@fetch'); + $router->get('/plan/fetch', [PlanController::class, 'fetch']); // Telegram - $router->post('/telegram/webhook', 'V1\\Guest\\TelegramController@webhook'); + $router->post('/telegram/webhook', [TelegramController::class, 'webhook']); // Payment - $router->match(['get', 'post'], '/payment/notify/{method}/{uuid}', 'V1\\Guest\\PaymentController@notify'); + $router->match(['get', 'post'], '/payment/notify/{method}/{uuid}', [PaymentController::class, 'notify']); // Comm - $router->get ('/comm/config', 'V1\\Guest\\CommController@config'); + $router->get('/comm/config', [CommController::class, 'config']); }); } } diff --git a/app/Http/Routes/V1/ServerRoute.php b/app/Http/Routes/V1/ServerRoute.php index 77070b3..29973dc 100644 --- a/app/Http/Routes/V1/ServerRoute.php +++ b/app/Http/Routes/V1/ServerRoute.php @@ -17,19 +17,12 @@ class ServerRoute $router->group([ 'prefix' => 'UniProxy', 'middleware' => 'server' - ] ,function ($route) { + ], function ($route) { $route->get('config', [UniProxyController::class, 'config']); $route->get('user', [UniProxyController::class, 'user']); $route->post('push', [UniProxyController::class, 'push']); $route->post('alive', [UniProxyController::class, 'alive']); - }); - $router->group([ - 'prefix' => 'Deepbwork', - 'middleware' => 'server:vmess' - ], function ($route) { - $route->get('config', [DeepbworkController::class, 'config']); - $route->get('user', [DeepbworkController::class, 'user']); - $route->post('submit', [DeepbworkController::class, 'submit']); + $route->get('alivelist', [UniProxyController::class, 'alivelist']); }); $router->group([ 'prefix' => 'ShadowsocksTidalab', diff --git a/app/Http/Routes/V1/StaffRoute.php b/app/Http/Routes/V1/StaffRoute.php index 42e656b..3889bee 100644 --- a/app/Http/Routes/V1/StaffRoute.php +++ b/app/Http/Routes/V1/StaffRoute.php @@ -12,21 +12,21 @@ class StaffRoute 'middleware' => 'staff' ], function ($router) { // Ticket - $router->get ('/ticket/fetch', 'V1\\Staff\\TicketController@fetch'); - $router->post('/ticket/reply', 'V1\\Staff\\TicketController@reply'); - $router->post('/ticket/close', 'V1\\Staff\\TicketController@close'); - // User - $router->post('/user/update', 'V1\\Staff\\UserController@update'); - $router->get ('/user/getUserInfoById', 'V1\\Staff\\UserController@getUserInfoById'); - $router->post('/user/sendMail', 'V1\\Staff\\UserController@sendMail'); - $router->post('/user/ban', 'V1\\Staff\\UserController@ban'); - // Plan - $router->get ('/plan/fetch', 'V1\\Staff\\PlanController@fetch'); - // Notice - $router->get ('/notice/fetch', 'V1\\Admin\\NoticeController@fetch'); - $router->post('/notice/save', 'V1\\Admin\\NoticeController@save'); - $router->post('/notice/update', 'V1\\Admin\\NoticeController@update'); - $router->post('/notice/drop', 'V1\\Admin\\NoticeController@drop'); + // $router->get ('/ticket/fetch', 'V1\\Staff\\TicketController@fetch'); + // $router->post('/ticket/reply', 'V1\\Staff\\TicketController@reply'); + // $router->post('/ticket/close', 'V1\\Staff\\TicketController@close'); + // // User + // $router->post('/user/update', 'V1\\Staff\\UserController@update'); + // $router->get ('/user/getUserInfoById', 'V1\\Staff\\UserController@getUserInfoById'); + // $router->post('/user/sendMail', 'V1\\Staff\\UserController@sendMail'); + // $router->post('/user/ban', 'V1\\Staff\\UserController@ban'); + // // Plan + // $router->get ('/plan/fetch', 'V1\\Staff\\PlanController@fetch'); + // // Notice + // $router->get ('/notice/fetch', 'V1\\Admin\\NoticeController@fetch'); + // $router->post('/notice/save', 'V1\\Admin\\NoticeController@save'); + // $router->post('/notice/update', 'V1\\Admin\\NoticeController@update'); + // $router->post('/notice/drop', 'V1\\Admin\\NoticeController@drop'); }); } } diff --git a/app/Http/Routes/V2/AdminRoute.php b/app/Http/Routes/V2/AdminRoute.php index ce23ca0..6e48edd 100644 --- a/app/Http/Routes/V2/AdminRoute.php +++ b/app/Http/Routes/V2/AdminRoute.php @@ -1,7 +1,23 @@ admin_setting('secure_path', admin_setting('frontend_admin_path', hash('crc32b', config('app.key')))), 'middleware' => ['admin', 'log'], ], function ($router) { + // Config + $router->group([ + 'prefix' => 'config' + ], function ($router) { + $router->get('/fetch', [ConfigController::class, 'fetch']); + $router->post('/save', [ConfigController::class, 'save']); + $router->get('/getEmailTemplate', [ConfigController::class, 'getEmailTemplate']); + $router->get('/getThemeTemplate', [ConfigController::class, 'getThemeTemplate']); + $router->post('/setTelegramWebhook', [ConfigController::class, 'setTelegramWebhook']); + $router->post('/testSendMail', [ConfigController::class, 'testSendMail']); + }); + + // Plan + $router->group([ + 'prefix' => 'plan' + ], function ($router) { + $router->get('/fetch', [PlanController::class, 'fetch']); + $router->post('/save', [PlanController::class, 'save']); + $router->post('/drop', [PlanController::class, 'drop']); + $router->post('/update', [PlanController::class, 'update']); + $router->post('/sort', [PlanController::class, 'sort']); + }); + + // Server + $router->group([ + 'prefix' => 'server/group' + ], function ($router) { + $router->get('/fetch', [GroupController::class, 'fetch']); + $router->post('/save', [GroupController::class, 'save']); + $router->post('/drop', [GroupController::class, 'drop']); + }); + $router->group([ + 'prefix' => 'server/route' + ], function ($router) { + $router->get('/fetch', [RouteController::class, 'fetch']); + $router->post('/save', [RouteController::class, 'save']); + $router->post('/drop', [RouteController::class, 'drop']); + }); + $router->group([ + 'prefix' => 'server/manage' + ], function ($router) { + $router->get('/getNodes', [ManageController::class, 'getNodes']); + $router->post('/sort', [ManageController::class, 'sort']); + }); + + // 节点更新接口 + $router->group([ + 'prefix' => 'server/manage' + ], function ($router) { + $router->post('/update', [ManageController::class, 'update']); + $router->post('/save', [ManageController::class, 'save']); + $router->post('/drop', [ManageController::class, 'drop']); + $router->post('/copy', [ManageController::class, 'copy']); + $router->post('/sort', [ManageController::class, 'sort']); + }); + + // Order + $router->group([ + 'prefix' => 'order' + ], function ($router) { + $router->any('/fetch', [OrderController::class, 'fetch']); + $router->post('/update', [OrderController::class, 'update']); + $router->post('/assign', [OrderController::class, 'assign']); + $router->post('/paid', [OrderController::class, 'paid']); + $router->post('/cancel', [OrderController::class, 'cancel']); + $router->post('/detail', [OrderController::class, 'detail']); + }); + + // User + $router->group([ + 'prefix' => 'user' + ], function ($router) { + $router->any('/fetch', [UserController::class, 'fetch']); + $router->post('/update', [UserController::class, 'update']); + $router->get('/getUserInfoById', [UserController::class, 'getUserInfoById']); + $router->post('/generate', [UserController::class, 'generate']); + $router->post('/dumpCSV', [UserController::class, 'dumpCSV']); + $router->post('/user/sendMail', [UserController::class, 'sendMail']); + $router->post('/ban', [UserController::class, 'ban']); + $router->post('/resetSecret', [UserController::class, 'resetSecret']); + $router->post('/setInviteUser', [UserController::class, 'setInviteUser']); + }); + // Stat - $router->get ('/stat/override', 'V2\\Admin\\StatController@override'); - $router->get ('/stat/record', 'V2\\Admin\\StatController@record'); - $router->get ('/stat/ranking', 'V2\\Admin\\StatController@ranking'); + $router->group([ + 'prefix' => 'stat' + ], function ($router) { + $router->get('/getOverride', [StatController::class, 'getOverride']); + $router->get('/getStats', [StatController::class, 'getStats']); + $router->get('/getServerLastRank', [StatController::class, 'getServerLastRank']); + $router->get('/getServerYesterdayRank', [StatController::class, 'getServerYesterdayRank']); + $router->get('/getOrder', [StatController::class, 'getOrder']); + $router->any('/getStatUser', [StatController::class, 'getStatUser']); + $router->get('/getRanking', [StatController::class, 'getRanking']); + $router->get('/getStatRecord', [StatController::class, 'getStatRecord']); + $router->get('/getTrafficRank', [StatController::class, 'getTrafficRank']); + }); + + // Notice + $router->group([ + 'prefix' => 'notice' + ], function ($router) { + $router->get('/fetch', [NoticeController::class, 'fetch']); + $router->post('/save', [NoticeController::class, 'save']); + $router->post('/update', [NoticeController::class, 'update']); + $router->post('/drop', [NoticeController::class, 'drop']); + $router->post('/show', [NoticeController::class, 'show']); + $router->post('/sort', [NoticeController::class, 'sort']); + }); + + // Ticket + $router->group([ + 'prefix' => 'ticket' + ], function ($router) { + $router->any('/fetch', [TicketController::class, 'fetch']); + $router->post('/reply', [TicketController::class, 'reply']); + $router->post('/close', [TicketController::class, 'close']); + }); + + // Coupon + $router->group([ + 'prefix' => 'coupon' + ], function ($router) { + $router->any('/fetch', [CouponController::class, 'fetch']); + $router->post('/generate', [CouponController::class, 'generate']); + $router->post('/drop', [CouponController::class, 'drop']); + $router->post('/show', [CouponController::class, 'show']); + $router->post('/update', [CouponController::class, 'update']); + }); + + // Knowledge + $router->group([ + 'prefix' => 'knowledge' + ], function ($router) { + $router->get('/fetch', [KnowledgeController::class, 'fetch']); + $router->get('/getCategory', [KnowledgeController::class, 'getCategory']); + $router->post('/save', [KnowledgeController::class, 'save']); + $router->post('/show', [KnowledgeController::class, 'show']); + $router->post('/drop', [KnowledgeController::class, 'drop']); + $router->post('/sort', [KnowledgeController::class, 'sort']); + }); + + // Payment + $router->group([ + 'prefix' => 'payment' + ], function ($router) { + $router->get('/fetch', [PaymentController::class, 'fetch']); + $router->get('/getPaymentMethods', [PaymentController::class, 'getPaymentMethods']); + $router->post('/getPaymentForm', [PaymentController::class, 'getPaymentForm']); + $router->post('/save', [PaymentController::class, 'save']); + $router->post('/drop', [PaymentController::class, 'drop']); + $router->post('/show', [PaymentController::class, 'show']); + $router->post('/sort', [PaymentController::class, 'sort']); + }); + + // System + $router->group([ + 'prefix' => 'system' + ], function ($router) { + $router->get('/getSystemStatus', [SystemController::class, 'getSystemStatus']); + $router->get('/getQueueStats', [SystemController::class, 'getQueueStats']); + $router->get('/getQueueWorkload', [SystemController::class, 'getQueueWorkload']); + $router->get('/getQueueMasters', '\\Laravel\\Horizon\\Http\\Controllers\\MasterSupervisorController@index'); + $router->get('/getSystemLog', [SystemController::class, 'getSystemLog']); + }); + + // Theme + $router->group([ + 'prefix' => 'theme' + ], function ($router) { + $router->get('/getThemes', [ThemeController::class, 'getThemes']); + $router->post('/upload', [ThemeController::class, 'upload']); + $router->post('/delete', [ThemeController::class, 'delete']); + $router->post('/saveThemeConfig', [ThemeController::class, 'saveThemeConfig']); + $router->post('/getThemeConfig', [ThemeController::class, 'getThemeConfig']); + }); + + // Plugin + $router->group([ + 'prefix' => 'plugin' + ], function ($router) { + $router->get('/getPlugins', [\App\Http\Controllers\V2\Admin\PluginController::class, 'index']); + $router->post('install', [\App\Http\Controllers\V2\Admin\PluginController::class, 'install']); + $router->post('uninstall', [\App\Http\Controllers\V2\Admin\PluginController::class, 'uninstall']); + $router->post('enable', [\App\Http\Controllers\V2\Admin\PluginController::class, 'enable']); + $router->post('disable', [\App\Http\Controllers\V2\Admin\PluginController::class, 'disable']); + $router->get('config', [\App\Http\Controllers\V2\Admin\PluginController::class, 'getConfig']); + $router->post('config', [\App\Http\Controllers\V2\Admin\PluginController::class, 'updateConfig']); + }); }); + } } diff --git a/app/Http/Routes/V2/PassportRoute.php b/app/Http/Routes/V2/PassportRoute.php new file mode 100644 index 0000000..d45fc65 --- /dev/null +++ b/app/Http/Routes/V2/PassportRoute.php @@ -0,0 +1,25 @@ +group([ + 'prefix' => 'passport' + ], function ($router) { + // Auth + $router->post('/auth/register', 'V1\\Passport\\AuthController@register'); + $router->post('/auth/login', 'V1\\Passport\\AuthController@login'); + $router->get ('/auth/token2Login', 'V1\\Passport\\AuthController@token2Login'); + $router->post('/auth/forget', 'V1\\Passport\\AuthController@forget'); + $router->post('/auth/getQuickLoginUrl', 'V1\\Passport\\AuthController@getQuickLoginUrl'); + $router->post('/auth/loginWithMailLink', 'V1\\Passport\\AuthController@loginWithMailLink'); + // Comm + $router->post('/comm/sendEmailVerify', 'V1\\Passport\\CommController@sendEmailVerify'); + $router->post('/comm/pv', 'V1\\Passport\\CommController@pv'); + }); + } +} diff --git a/app/Http/Routes/V2/UserRoute.php b/app/Http/Routes/V2/UserRoute.php new file mode 100644 index 0000000..ceed9bc --- /dev/null +++ b/app/Http/Routes/V2/UserRoute.php @@ -0,0 +1,19 @@ +group([ + 'prefix' => 'user', + 'middleware' => 'user' + ], function ($router) { + // User + $router->get('/resetSecurity', 'V1\\User\\UserController@resetSecurity'); + $router->get('/info', 'V1\\User\\UserController@info'); + }); + } +} diff --git a/app/Jobs/BatchTrafficFetchJob.php b/app/Jobs/BatchTrafficFetchJob.php deleted file mode 100644 index 18a456f..0000000 --- a/app/Jobs/BatchTrafficFetchJob.php +++ /dev/null @@ -1,52 +0,0 @@ -onQueue('batch_traffic_fetch'); - $this->server = $server; - $this->data = $data; - $this->protocol = $protocol; - $this->timestamp = $timestamp; - $this->childServer = $childServer; - } - - public function handle(): void - { - $targetServer = $this->childServer ?? $this->server; - foreach ($this->data as $uid => $v) { - User::where('id', $uid) - ->incrementEach( - [ - 'u' => $v[0] * $targetServer['rate'], - 'd' => $v[1] * $targetServer['rate'], - ], - ['t' => time()] - ); - } - } -} diff --git a/app/Jobs/StatServerJob.php b/app/Jobs/StatServerJob.php new file mode 100644 index 0000000..6dfc793 --- /dev/null +++ b/app/Jobs/StatServerJob.php @@ -0,0 +1,78 @@ +onQueue('stat'); + $this->data = $data; + $this->server = $server; + $this->protocol = $protocol; + $this->recordType = $recordType; + } + + /** + * Execute the job. + */ + public function handle(): void + { + // Calculate record timestamp + $recordAt = $this->recordType === 'm' + ? strtotime(date('Y-m-01')) + : strtotime(date('Y-m-d')); + + // Aggregate traffic data + $u = $d = 0; + foreach ($this->data as $traffic) { + $u += $traffic[0]; + $d += $traffic[1]; + } + DB::transaction(function () use ($u, $d, $recordAt) { + $stat = StatServer::lockForUpdate() + ->where('record_at', $recordAt) + ->where('server_id', $this->server['id']) + ->where('server_type', $this->protocol) + ->where('record_type', $this->recordType) + ->first(); + + if ($stat) { + $stat->u += $u; + $stat->d += $d; + $stat->save(); + } else { + StatServer::create([ + 'record_at' => $recordAt, + 'server_id' => $this->server['id'], + 'server_type' => $this->protocol, + 'record_type' => $this->recordType, + 'u' => $u, + 'd' => $d, + ]); + } + }); + } +} diff --git a/app/Jobs/StatUserJob.php b/app/Jobs/StatUserJob.php new file mode 100644 index 0000000..950421b --- /dev/null +++ b/app/Jobs/StatUserJob.php @@ -0,0 +1,73 @@ +onQueue('stat'); + $this->data = $data; + $this->server = $server; + $this->protocol = $protocol; + $this->recordType = $recordType; + } + + /** + * Execute the job. + */ + public function handle(): void + { + // Calculate record timestamp + $recordAt = $this->recordType === 'm' + ? strtotime(date('Y-m-01')) + : strtotime(date('Y-m-d')); + + foreach ($this->data as $uid => $v) { + DB::transaction(function () use ($uid, $v, $recordAt) { + $stat = StatUser::lockForUpdate() + ->where('user_id', $uid) + ->where('server_rate', $this->server['rate']) + ->where('record_at', $recordAt) + ->where('record_type', $this->recordType) + ->first(); + if ($stat) { + $stat->u += ($v[0] * $this->server['rate']); + $stat->d += ($v[1] * $this->server['rate']); + $stat->save(); + } else { + StatUser::create([ + 'user_id' => $uid, + 'server_rate' => $this->server['rate'], + 'record_at' => $recordAt, + 'record_type' => $this->recordType, + 'u' => ($v[0] * $this->server['rate']), + 'd' => ($v[1] * $this->server['rate']), + ]); + } + }); + } + } +} \ No newline at end of file diff --git a/app/Jobs/SyncUserOnlineStatusJob.php b/app/Jobs/SyncUserOnlineStatusJob.php new file mode 100644 index 0000000..32d463b --- /dev/null +++ b/app/Jobs/SyncUserOnlineStatusJob.php @@ -0,0 +1,69 @@ +updates)) { + return; + } + collect($this->updates) + ->chunk(1000) + ->each(function (Collection $chunk) { + $userIds = $chunk->pluck('id')->all(); + User::query() + ->whereIn('id', $userIds) + ->each(function (User $user) use ($chunk) { + $update = $chunk->firstWhere('id', $user->id); + if ($update) { + $user->update([ + 'online_count' => $update['count'], + 'last_online_at' => now(), + ]); + } + }); + }); + } + + /** + * 任务失败的处理 + */ + public function failed(\Throwable $exception): void + { + \Log::error('Failed to sync user online status', [ + 'error' => $exception->getMessage(), + 'updates_count' => count($this->updates) + ]); + } +} \ No newline at end of file diff --git a/app/Jobs/TrafficFetchJob.php b/app/Jobs/TrafficFetchJob.php index f569c11..9a01508 100644 --- a/app/Jobs/TrafficFetchJob.php +++ b/app/Jobs/TrafficFetchJob.php @@ -12,47 +12,38 @@ use Illuminate\Queue\SerializesModels; class TrafficFetchJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; - protected $u; - protected $d; - protected $userId; + protected $data; protected $server; protected $protocol; - - public $tries = 3; - public $timeout = 10; + protected $timestamp; + public $tries = 1; + public $timeout = 20; /** * Create a new job instance. * * @return void */ - public function __construct($u, $d, $userId, array $server, $protocol) + public function __construct(array $server, array $data, $protocol, int $timestamp) { $this->onQueue('traffic_fetch'); - $this->u = $u; - $this->d = $d; - $this->userId = $userId; $this->server = $server; + $this->data = $data; $this->protocol = $protocol; + $this->timestamp = $timestamp; } - /** - * Execute the job. - * - * @return void - */ - public function handle() + public function handle(): void { - \DB::transaction(function () { - $user = User::lockForUpdate()->find($this->userId); - if (!$user) - return; - $user->t = time(); - $user->u = $user->u + ($this->u * $this->server['rate']); - $user->d = $user->d + ($this->d * $this->server['rate']); - if (!$user->save()) { - info("流量更新失败\n未记录用户ID:{$this->userId}\n未记录上行:{$user->u}\n未记录下行:{$user->d}"); - } - }); + foreach ($this->data as $uid => $v) { + User::where('id', $uid) + ->incrementEach( + [ + 'u' => $v[0] * $this->server['rate'], + 'd' => $v[1] * $this->server['rate'], + ], + ['t' => time()] + ); + } } -} \ No newline at end of file +} diff --git a/app/Models/Knowledge.php b/app/Models/Knowledge.php index d24f46c..91e7736 100644 --- a/app/Models/Knowledge.php +++ b/app/Models/Knowledge.php @@ -10,7 +10,8 @@ class Knowledge extends Model protected $dateFormat = 'U'; protected $guarded = ['id']; protected $casts = [ + 'show' => 'boolean', 'created_at' => 'timestamp', - 'updated_at' => 'timestamp' + 'updated_at' => 'timestamp', ]; } diff --git a/app/Models/Notice.php b/app/Models/Notice.php index dcab6e7..3ae0cb0 100644 --- a/app/Models/Notice.php +++ b/app/Models/Notice.php @@ -12,6 +12,7 @@ class Notice extends Model protected $casts = [ 'created_at' => 'timestamp', 'updated_at' => 'timestamp', - 'tags' => 'array' + 'tags' => 'array', + 'show' => 'boolean', ]; } diff --git a/app/Models/Order.php b/app/Models/Order.php index 62f38ce..593c9a1 100755 --- a/app/Models/Order.php +++ b/app/Models/Order.php @@ -40,4 +40,22 @@ class Order extends Model self::TYPE_RESET_TRAFFIC => '流量重置', ]; + public function payment() + { + return $this->belongsTo(Payment::class, 'payment_id', 'id'); + } + + public function user() + { + return $this->belongsTo(User::class, 'user_id', 'id'); + } + public function plan() + { + return $this->belongsTo(Plan::class); + } + + public function commission_log() + { + return $this->hasMany(CommissionLog::class, 'trade_no', 'trade_no'); + } } diff --git a/app/Models/Plan.php b/app/Models/Plan.php index 4684396..ba48ef1 100755 --- a/app/Models/Plan.php +++ b/app/Models/Plan.php @@ -3,14 +3,385 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\HasMany; +use InvalidArgumentException; +use Carbon\Carbon; class Plan extends Model { + use HasFactory; + protected $table = 'v2_plan'; protected $dateFormat = 'U'; - protected $guarded = ['id']; - protected $casts = [ - 'created_at' => 'timestamp', - 'updated_at' => 'timestamp' + + // 定义流量重置方式 + public const RESET_TRAFFIC_FOLLOW_SYSTEM = 0; // 跟随系统设置 + public const RESET_TRAFFIC_FIRST_DAY_MONTH = 1; // 每月1号 + public const RESET_TRAFFIC_MONTHLY = 2; // 按月重置 + public const RESET_TRAFFIC_NEVER = 3; // 不重置 + public const RESET_TRAFFIC_FIRST_DAY_YEAR = 4; // 每年1月1日 + public const RESET_TRAFFIC_YEARLY = 5; // 按年重置 + + // 定义价格类型 + public const PRICE_TYPE_RESET_TRAFFIC = 'reset_traffic'; // 重置流量价格 + + // 定义可用的订阅周期 + public const PERIOD_MONTHLY = 'monthly'; + public const PERIOD_QUARTERLY = 'quarterly'; + public const PERIOD_HALF_YEARLY = 'half_yearly'; + public const PERIOD_YEARLY = 'yearly'; + public const PERIOD_TWO_YEARLY = 'two_yearly'; + public const PERIOD_THREE_YEARLY = 'three_yearly'; + public const PERIOD_ONETIME = 'onetime'; + public const PERIOD_RESET_TRAFFIC = 'reset_traffic'; + + // 定义旧版周期映射 + public const LEGACY_PERIOD_MAPPING = [ + 'month_price' => self::PERIOD_MONTHLY, + 'quarter_price' => self::PERIOD_QUARTERLY, + 'half_year_price' => self::PERIOD_HALF_YEARLY, + 'year_price' => self::PERIOD_YEARLY, + 'two_year_price' => self::PERIOD_TWO_YEARLY, + 'three_year_price' => self::PERIOD_THREE_YEARLY, + 'onetime_price' => self::PERIOD_ONETIME, + 'reset_price' => self::PERIOD_RESET_TRAFFIC ]; -} + + protected $fillable = [ + 'group_id', + 'transfer_enable', + 'name', + 'speed_limit', + 'show', + 'sort', + 'renew', + 'content', + 'prices', + 'reset_traffic_method', + 'capacity_limit', + 'sell', + 'device_limit' + ]; + + protected $casts = [ + 'show' => 'boolean', + 'renew' => 'boolean', + 'created_at' => 'timestamp', + 'updated_at' => 'timestamp', + 'group_id' => 'integer', + 'prices' => 'array', + 'reset_traffic_method' => 'integer', + ]; + + /** + * 获取所有可用的流量重置方式 + * + * @return array + */ + public static function getResetTrafficMethods(): array + { + return [ + self::RESET_TRAFFIC_FOLLOW_SYSTEM => '跟随系统设置', + self::RESET_TRAFFIC_FIRST_DAY_MONTH => '每月1号', + self::RESET_TRAFFIC_MONTHLY => '按月重置', + self::RESET_TRAFFIC_NEVER => '不重置', + self::RESET_TRAFFIC_FIRST_DAY_YEAR => '每年1月1日', + self::RESET_TRAFFIC_YEARLY => '按年重置', + ]; + } + + /** + * 获取下一次流量重置时间 + * + * @param Carbon|null $from 计算起始时间,默认为当前时间 + * @return Carbon|null 下次重置时间,如果不重置则返回null + */ + public function getNextResetTime(?Carbon $from = null): ?Carbon + { + $from = $from ?? Carbon::now(); + + switch ($this->reset_traffic_method) { + case self::RESET_TRAFFIC_FIRST_DAY_MONTH: + return $from->copy()->addMonth()->startOfMonth(); + + case self::RESET_TRAFFIC_MONTHLY: + return $from->copy()->addMonth()->startOfDay(); + + case self::RESET_TRAFFIC_FIRST_DAY_YEAR: + return $from->copy()->addYear()->startOfYear(); + + case self::RESET_TRAFFIC_YEARLY: + return $from->copy()->addYear()->startOfDay(); + + case self::RESET_TRAFFIC_NEVER: + return null; + + case self::RESET_TRAFFIC_FOLLOW_SYSTEM: + default: + // 这里需要实现获取系统设置的逻辑 + // 可以通过系统配置或其他方式获取 + return null; + } + } + + /** + * 检查是否需要重置流量 + * + * @param Carbon|null $checkTime 检查时间点,默认为当前时间 + * @return bool + */ + public function shouldResetTraffic(?Carbon $checkTime = null): bool + { + if ($this->reset_traffic_method === self::RESET_TRAFFIC_NEVER) { + return false; + } + + $checkTime = $checkTime ?? Carbon::now(); + $nextResetTime = $this->getNextResetTime($checkTime); + + if ($nextResetTime === null) { + return false; + } + + return $checkTime->greaterThanOrEqualTo($nextResetTime); + } + + /** + * 获取流量重置方式的描述 + * + * @return string + */ + public function getResetTrafficMethodName(): string + { + return self::getResetTrafficMethods()[$this->reset_traffic_method] ?? '未知'; + } + + /** + * 获取所有可用的订阅周期 + * + * @return array + */ + public static function getAvailablePeriods(): array + { + return [ + self::PERIOD_MONTHLY => [ + 'name' => '月付', + 'days' => 30, + 'value' => 1 + ], + self::PERIOD_QUARTERLY => [ + 'name' => '季付', + 'days' => 90, + 'value' => 3 + ], + self::PERIOD_HALF_YEARLY => [ + 'name' => '半年付', + 'days' => 180, + 'value' => 6 + ], + self::PERIOD_YEARLY => [ + 'name' => '年付', + 'days' => 365, + 'value' => 12 + ], + self::PERIOD_TWO_YEARLY => [ + 'name' => '两年付', + 'days' => 730, + 'value' => 24 + ], + self::PERIOD_THREE_YEARLY => [ + 'name' => '三年付', + 'days' => 1095, + 'value' => 36 + ], + self::PERIOD_ONETIME => [ + 'name' => '一次性', + 'days' => -1, + 'value' => -1 + ], + self::PERIOD_RESET_TRAFFIC => [ + 'name' => '重置流量', + 'days' => -1, + 'value' => -1 + ], + ]; + } + + /** + * 获取指定周期的价格 + * + * @param string $period + * @return int|null + */ + public function getPriceByPeriod(string $period): ?int + { + return $this->prices[$period] ?? null; + } + + /** + * 获取所有已设置价格的周期 + * + * @return array + */ + public function getActivePeriods(): array + { + return array_filter( + self::getAvailablePeriods(), + fn($period) => isset($this->prices[$period]) + && $this->prices[$period] > 0, + ARRAY_FILTER_USE_KEY + ); + } + + /** + * 设置指定周期的价格 + * + * @param string $period + * @param int $price + * @return void + * @throws InvalidArgumentException + */ + public function setPeriodPrice(string $period, int $price): void + { + if (!array_key_exists($period, self::getAvailablePeriods())) { + throw new InvalidArgumentException("Invalid period: {$period}"); + } + + $prices = $this->prices ?? []; + $prices[$period] = $price; + $this->prices = $prices; + } + + /** + * 移除指定周期的价格 + * + * @param string $period + * @return void + */ + public function removePeriodPrice(string $period): void + { + $prices = $this->prices ?? []; + unset($prices[$period]); + $this->prices = $prices; + } + + /** + * 获取所有价格及其对应的周期信息 + * + * @return array + */ + public function getPriceList(): array + { + $prices = $this->prices ?? []; + $periods = self::getAvailablePeriods(); + + $priceList = []; + foreach ($prices as $period => $price) { + if (isset($periods[$period]) && $price > 0) { + $priceList[$period] = [ + 'period' => $periods[$period], + 'price' => $price, + 'average_price' => $periods[$period]['value'] > 0 + ? round($price / $periods[$period]['value'], 2) + : $price + ]; + } + } + + return $priceList; + } + + /** + * 检查是否可以重置流量 + * + * @return bool + */ + public function canResetTraffic(): bool + { + return $this->reset_traffic_method !== self::RESET_TRAFFIC_NEVER + && $this->getResetTrafficPrice() > 0; + } + + /** + * 获取重置流量的价格 + * + * @return int + */ + public function getResetTrafficPrice(): int + { + return $this->prices[self::PRICE_TYPE_RESET_TRAFFIC] ?? 0; + } + + /** + * 计算指定周期的有效天数 + * + * @param string $period + * @return int -1表示永久有效 + * @throws InvalidArgumentException + */ + public static function getPeriodDays(string $period): int + { + $periods = self::getAvailablePeriods(); + if (!isset($periods[$period])) { + throw new InvalidArgumentException("Invalid period: {$period}"); + } + + return $periods[$period]['days']; + } + + /** + * 检查周期是否有效 + * + * @param string $period + * @return bool + */ + public static function isValidPeriod(string $period): bool + { + return array_key_exists($period, self::getAvailablePeriods()); + } + + public function users(): HasMany + { + return $this->hasMany(User::class); + } + + public function group() + { + return $this->hasOne(ServerGroup::class, 'id', 'group_id'); + } + + public function orders(): HasMany + { + return $this->hasMany(Order::class); + } + + /** + * 设置流量重置方式 + * + * @param int $method + * @return void + * @throws InvalidArgumentException + */ + public function setResetTrafficMethod(int $method): void + { + if (!array_key_exists($method, self::getResetTrafficMethods())) { + throw new InvalidArgumentException("Invalid reset traffic method: {$method}"); + } + + $this->reset_traffic_method = $method; + } + + /** + * 设置重置流量价格 + * + * @param int $price + * @return void + */ + public function setResetTrafficPrice(int $price): void + { + $prices = $this->prices ?? []; + $prices[self::PRICE_TYPE_RESET_TRAFFIC] = max(0, $price); + $this->prices = $prices; + } +} \ No newline at end of file diff --git a/app/Models/Plugin.php b/app/Models/Plugin.php new file mode 100644 index 0000000..4926c42 --- /dev/null +++ b/app/Models/Plugin.php @@ -0,0 +1,16 @@ + [ + 'serverKeySize' => 16, + 'userKeySize' => 16, + ], + '2022-blake3-aes-256-gcm' => [ + 'serverKeySize' => 32, + 'userKeySize' => 32, + ], + '2022-blake3-chacha20-poly1305' => [ + 'serverKeySize' => 32, + 'userKeySize' => 32, + ] + ]; + + public const TYPE_ALIASES = [ + 'v2ray' => self::TYPE_VMESS, + 'hysteria2' => self::TYPE_HYSTERIA, + ]; + + public const VALID_TYPES = [ + self::TYPE_HYSTERIA, + self::TYPE_VLESS, + self::TYPE_TROJAN, + self::TYPE_VMESS, + self::TYPE_TUIC, + self::TYPE_SHADOWSOCKS, + ]; + + protected $table = 'v2_server'; + + protected $guarded = ['id']; + protected $casts = [ + 'group_ids' => 'array', + 'route_ids' => 'array', + 'tags' => 'array', + 'protocol_settings' => 'array', + 'last_check_at' => 'integer', + 'last_push_at' => 'integer', + 'created_at' => 'timestamp', + 'updated_at' => 'timestamp' + ]; + + private const PROTOCOL_CONFIGURATIONS = [ + self::TYPE_TROJAN => [ + 'allow_insecure' => ['type' => 'boolean', 'default' => false], + 'server_name' => ['type' => 'string', 'default' => null], + 'network' => ['type' => 'string', 'default' => null], + 'network_settings' => ['type' => 'array', 'default' => null] + ], + self::TYPE_VMESS => [ + 'tls' => ['type' => 'integer', 'default' => 0], + 'network' => ['type' => 'string', 'default' => null], + 'rules' => ['type' => 'array', 'default' => null], + 'network_settings' => ['type' => 'array', 'default' => null], + 'tls_settings' => ['type' => 'array', 'default' => null] + ], + self::TYPE_VLESS => [ + 'tls' => ['type' => 'integer', 'default' => 0], + 'tls_settings' => ['type' => 'array', 'default' => null], + 'flow' => ['type' => 'string', 'default' => null], + 'network' => ['type' => 'string', 'default' => null], + 'network_settings' => ['type' => 'array', 'default' => null], + 'reality_settings' => [ + 'type' => 'object', + 'fields' => [ + 'allow_insecure' => ['type' => 'boolean', 'default' => false], + 'server_port' => ['type' => 'string', 'default' => null], + 'server_name' => ['type' => 'string', 'default' => null], + 'public_key' => ['type' => 'string', 'default' => null], + 'private_key' => ['type' => 'string', 'default' => null], + 'short_id' => ['type' => 'string', 'default' => null] + ] + ] + ], + self::TYPE_SHADOWSOCKS => [ + 'cipher' => ['type' => 'string', 'default' => null], + 'obfs' => ['type' => 'string', 'default' => null], + 'obfs_settings' => ['type' => 'array', 'default' => null] + ], + self::TYPE_HYSTERIA => [ + 'version' => ['type' => 'integer', 'default' => 2], + 'bandwidth' => [ + 'type' => 'object', + 'fields' => [ + 'up' => ['type' => 'integer', 'default' => null], + 'down' => ['type' => 'integer', 'default' => null] + ] + ], + 'obfs' => [ + 'type' => 'object', + 'fields' => [ + 'open' => ['type' => 'boolean', 'default' => false], + 'type' => ['type' => 'string', 'default' => 'salamander'], + 'password' => ['type' => 'string', 'default' => null] + ] + ], + 'tls' => [ + 'type' => 'object', + 'fields' => [ + 'server_name' => ['type' => 'string', 'default' => null], + 'allow_insecure' => ['type' => 'boolean', 'default' => false] + ] + ] + ], + self::TYPE_TUIC => [ + 'congestion_control' => ['type' => 'string', 'default' => 'cubic'], + 'alpn' => ['type' => 'array', 'default' => ['h3']], + 'udp_relay_mode' => ['type' => 'string', 'default' => 'native'], + 'allow_insecure' => ['type' => 'boolean', 'default' => false], + 'tls_settings' => ['type' => 'array', 'default' => null] + ] + ]; + + private function castValueWithConfig($value, array $config) + { + if ($value === null && $config['type'] !== 'object') { + return $config['default'] ?? null; + } + + return match ($config['type']) { + 'integer' => (int) $value, + 'boolean' => (bool) $value, + 'string' => (string) $value, + 'array' => (array) $value, + 'object' => is_array($value) ? + $this->castSettingsWithConfig($value, $config['fields']) : + $config['default'] ?? null, + default => $value + }; + } + + private function castSettingsWithConfig(array $settings, array $configs): array + { + $result = []; + foreach ($configs as $key => $config) { + $value = $settings[$key] ?? null; + $result[$key] = $this->castValueWithConfig($value, $config); + } + return $result; + } + + private function getDefaultSettings(array $configs): array + { + $defaults = []; + foreach ($configs as $key => $config) { + if ($config['type'] === 'object') { + $defaults[$key] = $this->getDefaultSettings($config['fields']); + } else { + $defaults[$key] = $config['default']; + } + } + return $defaults; + } + + public function getProtocolSettingsAttribute($value) + { + $settings = json_decode($value, true) ?? []; + $configs = self::PROTOCOL_CONFIGURATIONS[$this->type] ?? []; + return $this->castSettingsWithConfig($settings, $configs); + } + + public function setProtocolSettingsAttribute($value) + { + if (is_string($value)) { + $value = json_decode($value, true); + } + + $configs = self::PROTOCOL_CONFIGURATIONS[$this->type] ?? []; + $castedSettings = $this->castSettingsWithConfig($value ?? [], $configs); + + $this->attributes['protocol_settings'] = json_encode($castedSettings); + } + + public function loadParentCreatedAt(): void + { + if ($this->parent_id) { + $this->created_at = $this->parent()->value('created_at'); + } + } + + public function loadServerStatus(): void + { + $type = strtoupper($this->type); + $serverId = $this->parent_id ?: $this->id; + + $this->last_check_at = Cache::get(CacheKey::get("SERVER_{$type}_LAST_CHECK_AT", $serverId)); + $this->last_push_at = Cache::get(CacheKey::get("SERVER_{$type}_LAST_PUSH_AT", $serverId)); + $this->online = Cache::get(CacheKey::get("SERVER_{$type}_ONLINE_USER", $serverId)) ?? 0; + $this->is_online = (time() - 300 > $this->last_check_at) ? 0 : 1; + $this->available_status = $this->getAvailableStatus(); + $this->cache_key = "{$this->type}-{$this->id}-{$this->updated_at}-{$this->is_online}"; + } + + public function handlePortAllocation(): void + { + if (strpos($this->port, '-') !== false) { + $this->ports = $this->port; + $this->port = Helper::randomPort($this->port); + } else { + $this->port = (int) $this->port; + } + } + + public function generateShadowsocksPassword(User $user): void + { + if ($this->type !== self::TYPE_SHADOWSOCKS) { + return; + } + + $this->password = $user->uuid; + + $cipher = data_get($this, 'protocol_settings.cipher'); + if (!$cipher || !isset(self::CIPHER_CONFIGURATIONS[$cipher])) { + return; + } + + $config = self::CIPHER_CONFIGURATIONS[$cipher]; + $serverKey = Helper::getServerKey($this->created_at, $config['serverKeySize']); + $userKey = Helper::uuidToBase64($user->uuid, $config['userKeySize']); + $this->password = "{$serverKey}:{$userKey}"; + } + + public static function normalizeType(string $type): string + { + return strtolower(self::TYPE_ALIASES[$type] ?? $type); + } + + public static function isValidType(string $type): bool + { + return in_array(self::normalizeType($type), self::VALID_TYPES, true); + } + + public function getAvailableStatus(): int + { + $now = time(); + if (!$this->last_check_at || ($now - self::CHECK_INTERVAL) >= $this->last_check_at) { + return self::STATUS_OFFLINE; + } + if (!$this->last_push_at || ($now - self::CHECK_INTERVAL) >= $this->last_push_at) { + return self::STATUS_ONLINE_NO_PUSH; + } + return self::STATUS_ONLINE; + } + + public function parent(): BelongsTo + { + return $this->belongsTo(self::class, 'parent_id', 'id'); + } + + public function stats(): HasMany + { + return $this->hasMany(StatServer::class, 'server_id', 'id'); + } + + public function groups() + { + return ServerGroup::whereIn('id', $this->group_ids)->get(); + } + + public function routes() + { + return ServerRoute::whereIn('id', $this->route_ids)->get(); + } + +} diff --git a/app/Models/ServerGroup.php b/app/Models/ServerGroup.php index 24d38bf..3a47144 100755 --- a/app/Models/ServerGroup.php +++ b/app/Models/ServerGroup.php @@ -3,6 +3,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\HasMany; class ServerGroup extends Model { @@ -12,4 +13,14 @@ class ServerGroup extends Model 'created_at' => 'timestamp', 'updated_at' => 'timestamp' ]; + + public function users(): HasMany + { + return $this->hasMany(User::class, 'group_id', 'id'); + } + + public function servers() + { + return Server::whereJsonContains('group_ids', (string) $this->id)->get(); + } } diff --git a/app/Models/ServerHysteria.php b/app/Models/ServerHysteria.php deleted file mode 100755 index 35c7e90..0000000 --- a/app/Models/ServerHysteria.php +++ /dev/null @@ -1,35 +0,0 @@ - 'timestamp', - 'updated_at' => 'timestamp', - 'group_id' => 'array', - 'route_id' => 'array', - 'tags' => 'array', - 'ips' => 'array', - 'excludes' => 'array' - ]; - - // ALPN映射表 - public static $alpnMap = [ - 0 => 'hysteria', - 1 => 'http/1.1', - 2 => 'h2', - 3 => 'h3' - ]; - - public function parent(): BelongsTo - { - return $this->belongsTo(self::class, 'parent_id', 'id'); - } -} diff --git a/app/Models/ServerShadowsocks.php b/app/Models/ServerShadowsocks.php deleted file mode 100644 index 1215fb0..0000000 --- a/app/Models/ServerShadowsocks.php +++ /dev/null @@ -1,28 +0,0 @@ - 'timestamp', - 'updated_at' => 'timestamp', - 'group_id' => 'array', - 'route_id' => 'array', - 'tags' => 'array', - 'excludes' => 'array', - 'obfs_settings' => 'array', - 'ips' => 'array' - ]; - - public function parent(): BelongsTo - { - return $this->belongsTo(self::class, 'parent_id', 'id'); - } -} diff --git a/app/Models/ServerTrojan.php b/app/Models/ServerTrojan.php deleted file mode 100644 index 59e327b..0000000 --- a/app/Models/ServerTrojan.php +++ /dev/null @@ -1,28 +0,0 @@ - 'timestamp', - 'updated_at' => 'timestamp', - 'group_id' => 'array', - 'route_id' => 'array', - 'networkSettings' => 'array', - 'tags' => 'array', - 'excludes' => 'array', - 'ips' => 'array' - ]; - - public function parent(): BelongsTo - { - return $this->belongsTo(self::class, 'parent_id', 'id'); - } -} diff --git a/app/Models/ServerVless.php b/app/Models/ServerVless.php deleted file mode 100755 index a84b4a8..0000000 --- a/app/Models/ServerVless.php +++ /dev/null @@ -1,29 +0,0 @@ - 'timestamp', - 'updated_at' => 'timestamp', - 'group_id' => 'array', - 'route_id' => 'array', - 'tls_settings' => 'array', - 'network_settings' => 'array', - 'tags' => 'array', - 'excludes' => 'array', - 'ips' => 'array' - ]; - - public function parent(): BelongsTo - { - return $this->belongsTo(self::class, 'parent_id', 'id'); - } -} diff --git a/app/Models/ServerVmess.php b/app/Models/ServerVmess.php deleted file mode 100755 index 2aaba10..0000000 --- a/app/Models/ServerVmess.php +++ /dev/null @@ -1,31 +0,0 @@ - 'timestamp', - 'updated_at' => 'timestamp', - 'group_id' => 'array', - 'route_id' => 'array', - 'tlsSettings' => 'array', - 'networkSettings' => 'array', - 'dnsSettings' => 'array', - 'ruleSettings' => 'array', - 'tags' => 'array', - 'excludes' => 'array', - 'ips' => 'array' - ]; - - public function parent(): BelongsTo - { - return $this->belongsTo(self::class, 'parent_id', 'id'); - } -} diff --git a/app/Models/StatServer.php b/app/Models/StatServer.php index 4ffa9b1..fc4cbd1 100644 --- a/app/Models/StatServer.php +++ b/app/Models/StatServer.php @@ -13,4 +13,9 @@ class StatServer extends Model 'created_at' => 'timestamp', 'updated_at' => 'timestamp' ]; + + public function server() + { + return $this->belongsTo(Server::class, 'server_id'); + } } diff --git a/app/Models/Ticket.php b/app/Models/Ticket.php index 5f50b48..b92a5e9 100644 --- a/app/Models/Ticket.php +++ b/app/Models/Ticket.php @@ -21,6 +21,15 @@ class Ticket extends Model self::STATUS_CLOSED => '关闭' ]; + public function user() + { + return $this->belongsTo(User::class, 'user_id', 'id'); + } + public function messages() + { + return $this->hasMany(TicketMessage::class, 'ticket_id', 'id'); + } + // 即将删除 public function message() { return $this->hasMany(TicketMessage::class, 'ticket_id', 'id'); diff --git a/app/Models/User.php b/app/Models/User.php index 15cd4c3..7bb66a3 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -3,10 +3,12 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use Illuminate\Foundation\Auth\User as Authenticatable; use Laravel\Sanctum\HasApiTokens; -class User extends Model +class User extends Authenticatable { + use HasApiTokens; protected $table = 'v2_user'; protected $dateFormat = 'U'; protected $guarded = ['id']; @@ -14,6 +16,7 @@ class User extends Model 'created_at' => 'timestamp', 'updated_at' => 'timestamp' ]; + protected $hidden = ['password']; // 获取邀请人信息 @@ -28,6 +31,11 @@ class User extends Model return $this->belongsTo(Plan::class, 'plan_id', 'id'); } + public function group() + { + return $this->belongsTo(ServerGroup::class, 'group_id', 'id'); + } + // 获取用户邀请码列表 public function codes() { @@ -39,4 +47,9 @@ class User extends Model { return $this->hasMany(Ticket::class, 'user_id', 'id'); } + + public function parent() + { + return $this->belongsTo(self::class, 'parent_id', 'id'); + } } diff --git a/app/Payments/AlipayF2F.php b/app/Payments/AlipayF2F.php index 5fba829..f7fbc13 100644 --- a/app/Payments/AlipayF2F.php +++ b/app/Payments/AlipayF2F.php @@ -4,16 +4,18 @@ * 自己写别抄,抄NMB抄 */ namespace App\Payments; +use App\Contracts\PaymentInterface; use App\Exceptions\ApiException; -class AlipayF2F { +class AlipayF2F implements PaymentInterface +{ protected $config; public function __construct($config) { $this->config = $config; } - public function form() + public function form(): array { return [ 'app_id' => [ @@ -39,7 +41,7 @@ class AlipayF2F { ]; } - public function pay($order) + public function pay($order): array { try { $gateway = new \Library\AlipayF2F(); @@ -66,7 +68,8 @@ class AlipayF2F { public function notify($params) { - if ($params['trade_status'] !== 'TRADE_SUCCESS') return false; + if ($params['trade_status'] !== 'TRADE_SUCCESS') + return false; $gateway = new \Library\AlipayF2F(); $gateway->setAppId($this->config['app_id']); $gateway->setPrivateKey($this->config['private_key']); // 可以是路径,也可以是密钥内容 diff --git a/app/Payments/BTCPay.php b/app/Payments/BTCPay.php index f2db1d1..00a3cea 100644 --- a/app/Payments/BTCPay.php +++ b/app/Payments/BTCPay.php @@ -3,9 +3,9 @@ namespace App\Payments; use App\Exceptions\ApiException; +use App\Contracts\PaymentInterface; - -class BTCPay +class BTCPay implements PaymentInterface { protected $config; public function __construct($config) @@ -13,7 +13,7 @@ class BTCPay $this->config = $config; } - public function form() + public function form(): array { return [ 'btcpay_url' => [ @@ -39,7 +39,7 @@ class BTCPay ]; } - public function pay($order) + public function pay($order): array { $params = [ @@ -66,9 +66,9 @@ class BTCPay ]; } - public function notify($params) + public function notify($params): array|bool { - $payload = trim(get_request_content()); + $payload = trim(request()->getContent()); $headers = getallheaders(); diff --git a/app/Payments/CoinPayments.php b/app/Payments/CoinPayments.php index 93cbe47..c3a7fdc 100644 --- a/app/Payments/CoinPayments.php +++ b/app/Payments/CoinPayments.php @@ -2,9 +2,10 @@ namespace App\Payments; +use App\Contracts\PaymentInterface; use App\Exceptions\ApiException; -class CoinPayments +class CoinPayments implements PaymentInterface { protected $config; public function __construct($config) @@ -12,7 +13,7 @@ class CoinPayments $this->config = $config; } - public function form() + public function form(): array { return [ 'coinpayments_merchant_id' => [ @@ -33,7 +34,7 @@ class CoinPayments ]; } - public function pay($order) + public function pay($order): array { // IPN notifications are slow, when the transaction is successful, we should return to the user center to avoid user confusion @@ -59,7 +60,7 @@ class CoinPayments return [ 'type' => 1, // Redirect to url - 'data' => 'https://www.coinpayments.net/index.php?' . $params_string + 'data' => 'https://www.coinpayments.net/index.php?' . $params_string ]; } diff --git a/app/Payments/Coinbase.php b/app/Payments/Coinbase.php index 5ceffda..bb5c3bb 100644 --- a/app/Payments/Coinbase.php +++ b/app/Payments/Coinbase.php @@ -2,9 +2,10 @@ namespace App\Payments; +use App\Contracts\PaymentInterface; use App\Exceptions\ApiException; -class Coinbase +class Coinbase implements PaymentInterface { protected $config; public function __construct($config) @@ -12,7 +13,7 @@ class Coinbase $this->config = $config; } - public function form() + public function form(): array { return [ 'coinbase_url' => [ @@ -33,7 +34,7 @@ class Coinbase ]; } - public function pay($order) + public function pay($order): array { $params = [ @@ -64,10 +65,10 @@ class Coinbase ]; } - public function notify($params) + public function notify($params): array { - $payload = trim(get_request_content()); + $payload = trim(request()->getContent()); $json_param = json_decode($payload, true); diff --git a/app/Payments/EPay.php b/app/Payments/EPay.php index 2835c3f..21a33f4 100644 --- a/app/Payments/EPay.php +++ b/app/Payments/EPay.php @@ -2,7 +2,9 @@ namespace App\Payments; -class EPay +use App\Contracts\PaymentInterface; + +class EPay implements PaymentInterface { protected $config; public function __construct($config) @@ -10,7 +12,7 @@ class EPay $this->config = $config; } - public function form() + public function form(): array { return [ 'url' => [ @@ -36,7 +38,7 @@ class EPay ]; } - public function pay($order) + public function pay($order): array { $params = [ 'money' => $order['total_amount'] / 100, @@ -46,7 +48,7 @@ class EPay 'out_trade_no' => $order['trade_no'], 'pid' => $this->config['pid'] ]; - if(optional($this->config)['type']){ + if (optional($this->config)['type']) { $params['type'] = $this->config['type']; } ksort($params); @@ -60,7 +62,7 @@ class EPay ]; } - public function notify($params) + public function notify($params): array|bool { $sign = $params['sign']; unset($params['sign']); diff --git a/app/Payments/MGate.php b/app/Payments/MGate.php index 9c359b9..312c09b 100644 --- a/app/Payments/MGate.php +++ b/app/Payments/MGate.php @@ -7,8 +7,9 @@ namespace App\Payments; use App\Exceptions\ApiException; use \Curl\Curl; - -class MGate { +use App\Contracts\PaymentInterface; +class MGate implements PaymentInterface +{ private $config; public function __construct($config) @@ -16,7 +17,7 @@ class MGate { $this->config = $config; } - public function form() + public function form(): array { return [ 'mgate_url' => [ @@ -42,7 +43,7 @@ class MGate { ]; } - public function pay($order) + public function pay($order): array { $params = [ 'out_trade_no' => $order['trade_no'], @@ -67,7 +68,7 @@ class MGate { } if ($curl->error) { if (isset($result->errors)) { - $errors = (array)$result->errors; + $errors = (array) $result->errors; throw new ApiException($errors[array_keys($errors)[0]][0]); } if (isset($result->message)) { @@ -85,7 +86,7 @@ class MGate { ]; } - public function notify($params) + public function notify($params): array|bool { $sign = $params['sign']; unset($params['sign']); diff --git a/app/Plugins/Telegram/Commands/Bind.php b/app/Plugins/Telegram/Commands/Bind.php index 93b62b8..303b778 100644 --- a/app/Plugins/Telegram/Commands/Bind.php +++ b/app/Plugins/Telegram/Commands/Bind.php @@ -17,8 +17,19 @@ class Bind extends Telegram { } $subscribeUrl = $message->args[0]; $subscribeUrl = parse_url($subscribeUrl); - parse_str($subscribeUrl['query'], $query); - $token = $query['token']; + + // 首先尝试从查询参数获取token + $token = null; + if (isset($subscribeUrl['query'])) { + parse_str($subscribeUrl['query'], $query); + $token = $query['token'] ?? null; + } + + if (!$token && isset($subscribeUrl['path'])) { + $pathParts = explode('/', trim($subscribeUrl['path'], '/')); + $token = end($pathParts); + } + if (!$token) { throw new ApiException('订阅地址无效'); } diff --git a/app/Protocols/Clash.php b/app/Protocols/Clash.php index 2374063..79627b5 100644 --- a/app/Protocols/Clash.php +++ b/app/Protocols/Clash.php @@ -2,13 +2,13 @@ namespace App\Protocols; +use App\Contracts\ProtocolInterface; use App\Utils\Helper; -use phpDocumentor\Reflection\Types\Self_; use Symfony\Component\Yaml\Yaml; -class Clash +class Clash implements ProtocolInterface { - public $flag = 'clash'; + public $flags = ['clash']; private $servers; private $user; @@ -18,6 +18,11 @@ class Clash $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $servers = $this->servers; @@ -35,8 +40,9 @@ class Clash foreach ($servers as $item) { - if ($item['type'] === 'shadowsocks' - && in_array($item['cipher'], [ + if ( + $item['type'] === 'shadowsocks' + && in_array(data_get($item['protocol_settings'], 'cipher'), [ 'aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm', @@ -58,28 +64,32 @@ class Clash $config['proxies'] = array_merge($config['proxies'] ? $config['proxies'] : [], $proxy); foreach ($config['proxy-groups'] as $k => $v) { - if (!is_array($config['proxy-groups'][$k]['proxies'])) $config['proxy-groups'][$k]['proxies'] = []; + if (!is_array($config['proxy-groups'][$k]['proxies'])) + $config['proxy-groups'][$k]['proxies'] = []; $isFilter = false; foreach ($config['proxy-groups'][$k]['proxies'] as $src) { foreach ($proxies as $dst) { - if (!$this->isRegex($src)) continue; + if (!$this->isRegex($src)) + continue; $isFilter = true; $config['proxy-groups'][$k]['proxies'] = array_values(array_diff($config['proxy-groups'][$k]['proxies'], [$src])); if ($this->isMatch($src, $dst)) { array_push($config['proxy-groups'][$k]['proxies'], $dst); } } - if ($isFilter) continue; + if ($isFilter) + continue; } - if ($isFilter) continue; + if ($isFilter) + continue; $config['proxy-groups'][$k]['proxies'] = array_merge($config['proxy-groups'][$k]['proxies'], $proxies); } - $config['proxy-groups'] = array_filter($config['proxy-groups'], function($group) { + $config['proxy-groups'] = array_filter($config['proxy-groups'], function ($group) { return $group['proxies']; }); $config['proxy-groups'] = array_values($config['proxy-groups']); - + $config = $this->buildRules($config); @@ -103,10 +113,10 @@ class Clash array_unshift($config['rules'], "DOMAIN,{$subsDomain},DIRECT"); } // Force the nodes ip to be a direct rule - collect($this->servers)->pluck('host')->map(function($host){ + collect($this->servers)->pluck('host')->map(function ($host) { $host = trim($host); return filter_var($host, FILTER_VALIDATE_IP) ? [$host] : Helper::getIpByDomainName($host); - })->flatten()->unique()->each(function($nodeIP) use ( &$config ) { + })->flatten()->unique()->each(function ($nodeIP) use (&$config) { array_unshift($config['rules'], "IP-CIDR,{$nodeIP}/32,DIRECT,no-resolve"); }); @@ -115,12 +125,13 @@ class Clash public static function buildShadowsocks($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $array = []; $array['name'] = $server['name']; $array['type'] = 'ss'; $array['server'] = $server['host']; $array['port'] = $server['port']; - $array['cipher'] = $server['cipher']; + $array['cipher'] = data_get($protocol_settings, 'cipher'); $array['password'] = $uuid; $array['udp'] = true; return $array; @@ -128,6 +139,7 @@ class Clash public static function buildVmess($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $array = []; $array['name'] = $server['name']; $array['type'] = 'vmess'; @@ -138,58 +150,45 @@ class Clash $array['cipher'] = 'auto'; $array['udp'] = true; - if ($server['tls']) { + if (data_get($protocol_settings, 'tls')) { $array['tls'] = true; - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['allowInsecure']) && !empty($tlsSettings['allowInsecure'])) - $array['skip-cert-verify'] = ($tlsSettings['allowInsecure'] ? true : false); - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $array['servername'] = $tlsSettings['serverName']; - } - } - if ($server['network'] === 'tcp') { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type'])) $array['network'] = $tcpSettings['header']['type']; - - if (isset($tcpSettings['header']['request']['headers'])){ - $headers = $$tcpSettings['header']['request']['headers']; - $array['http-opts']['headers'] = $headers; - } - if (isset($tcpSettings['header']['request']['path'][0])){ - $paths = $tcpSettings['header']['request']['path']; - $array['http-opts']['path'] = $paths; - } - } - if ($server['network'] === 'ws') { - $array['network'] = 'ws'; - if ($server['networkSettings']) { - $wsSettings = $server['networkSettings']; - $array['ws-opts'] = []; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['ws-opts']['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['ws-opts']['headers'] = ['Host' => $wsSettings['headers']['Host']]; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['ws-path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['ws-headers'] = ['Host' => $wsSettings['headers']['Host']]; - } - } - if ($server['network'] === 'grpc') { - $array['network'] = 'grpc'; - if ($server['networkSettings']) { - $grpcSettings = $server['networkSettings']; - $array['grpc-opts'] = []; - if (isset($grpcSettings['serviceName'])) $array['grpc-opts']['grpc-service-name'] = $grpcSettings['serviceName']; + $array['skip-cert-verify'] = (bool) data_get($protocol_settings, 'tls_settings.allow_insecure'); + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $array['servername'] = $serverName; } } + switch (data_get($protocol_settings, 'network')) { + case 'tcp': + $array['network'] = data_get($protocol_settings, 'network_settings.header.type'); + if (data_get($protocol_settings, 'network_settings.header.type', 'none') !== 'none') { + $array['http-opts'] = [ + 'headers' => data_get($protocol_settings, 'network_settings.header.request.headers'), + 'path' => \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/'])) + ]; + } + break; + case 'ws': + $array['network'] = 'ws'; + if ($path = data_get($protocol_settings, 'network_settings.path')) + $array['ws-opts']['path'] = $path; + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) + $array['ws-opts']['headers'] = ['Host' => $host]; + break; + case 'grpc': + $array['network'] = 'grpc'; + if ($serviceName = data_get($protocol_settings, 'network_settings.serviceName')) + $array['grpc-opts']['grpc-service-name'] = $serviceName; + break; + default: + break; + } return $array; } public static function buildTrojan($password, $server) { + $protocol_settings = $server['protocol_settings']; $array = []; $array['name'] = $server['name']; $array['type'] = 'trojan'; @@ -197,23 +196,31 @@ class Clash $array['port'] = $server['port']; $array['password'] = $password; $array['udp'] = true; - if (!empty($server['server_name'])) $array['sni'] = $server['server_name']; - if (!empty($server['allow_insecure'])) $array['skip-cert-verify'] = ($server['allow_insecure'] ? true : false); - // trojan-go配置 - if(in_array($server['network'], ["grpc", "ws"])){ - $array['network'] = $server['network']; - // grpc配置 - if($server['network'] === "grpc" && isset($server['networkSettings']['serviceName'])) $array['grpc-opts']['grpc-service-name'] = $server['networkSettings']['serviceName']; - // ws配置 - if($server['network'] === "ws") { - if(isset($server['networkSettings']['path'])) { - $array['ws-opts']['path'] = $server['networkSettings']['path']; - } - if(isset($server['networkSettings']['headers']['Host'])){ - $array['ws-opts']['headers']['Host'] = $server['networkSettings']['headers']['Host']; - } - } - }; + if ($serverName = data_get($protocol_settings, 'server_name')) { + $array['sni'] = $serverName; + } + $array['skip-cert-verify'] = (bool) data_get($protocol_settings, 'allow_insecure'); + + switch (data_get($protocol_settings, 'network')) { + case 'tcp': + $array['network'] = 'tcp'; + break; + case 'ws': + $array['network'] = 'ws'; + if ($path = data_get($protocol_settings, 'network_settings.path')) + $array['ws-opts']['path'] = $path; + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) + $array['ws-opts']['headers'] = ['Host' => $host]; + break; + case 'grpc': + $array['network'] = 'grpc'; + if ($serviceName = data_get($protocol_settings, 'network_settings.serviceName')) + $array['grpc-opts']['grpc-service-name'] = $serviceName; + break; + default: + $array['network'] = 'tcp'; + break; + } return $array; } @@ -224,6 +231,9 @@ class Clash private function isRegex($exp) { - return @preg_match($exp, null) !== false; + if (empty($exp)) { + return false; + } + return @preg_match((string) $exp, '') !== false; } } diff --git a/app/Protocols/ClashMeta.php b/app/Protocols/ClashMeta.php index 7b9fa1c..a144622 100644 --- a/app/Protocols/ClashMeta.php +++ b/app/Protocols/ClashMeta.php @@ -2,13 +2,14 @@ namespace App\Protocols; +use App\Contracts\ProtocolInterface; use App\Models\ServerHysteria; use App\Utils\Helper; use Symfony\Component\Yaml\Yaml; -class ClashMeta +class ClashMeta implements ProtocolInterface { - public $flag = 'meta,verge'; + public $flags = ['meta', 'verge', 'flclash']; private $servers; private $user; @@ -18,6 +19,11 @@ class ClashMeta $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $servers = $this->servers; @@ -28,15 +34,16 @@ class ClashMeta $customConfig = base_path() . '/resources/rules/custom.clashmeta.yaml'; if (\File::exists($customConfig)) { $config = Yaml::parseFile($customConfig); - } elseif(\File::exists($customClashConfig)) { + } elseif (\File::exists($customClashConfig)) { $config = Yaml::parseFile($customClashConfig); - } else{ + } else { $config = Yaml::parseFile($defaultConfig); } $proxy = []; $proxies = []; foreach ($servers as $item) { + $protocol_settings = $item['protocol_settings']; if ($item['type'] === 'shadowsocks') { array_push($proxy, self::buildShadowsocks($item['password'], $item)); array_push($proxies, $item['name']); @@ -49,7 +56,10 @@ class ClashMeta array_push($proxy, self::buildTrojan($user['uuid'], $item)); array_push($proxies, $item['name']); } - if ($item['type'] === 'vless') { + if ( + $item['type'] === 'vless' + && in_array(data_get($protocol_settings, 'network'), ['tcp', 'ws', 'grpc', 'http', 'h2']) + ) { array_push($proxy, self::buildVless($user['uuid'], $item)); array_push($proxies, $item['name']); } @@ -61,23 +71,27 @@ class ClashMeta $config['proxies'] = array_merge($config['proxies'] ? $config['proxies'] : [], $proxy); foreach ($config['proxy-groups'] as $k => $v) { - if (!is_array($config['proxy-groups'][$k]['proxies'])) $config['proxy-groups'][$k]['proxies'] = []; + if (!is_array($config['proxy-groups'][$k]['proxies'])) + $config['proxy-groups'][$k]['proxies'] = []; $isFilter = false; foreach ($config['proxy-groups'][$k]['proxies'] as $src) { foreach ($proxies as $dst) { - if (!$this->isRegex($src)) continue; + if (!$this->isRegex($src)) + continue; $isFilter = true; $config['proxy-groups'][$k]['proxies'] = array_values(array_diff($config['proxy-groups'][$k]['proxies'], [$src])); if ($this->isMatch($src, $dst)) { array_push($config['proxy-groups'][$k]['proxies'], $dst); } } - if ($isFilter) continue; + if ($isFilter) + continue; } - if ($isFilter) continue; + if ($isFilter) + continue; $config['proxy-groups'][$k]['proxies'] = array_merge($config['proxy-groups'][$k]['proxies'], $proxies); } - $config['proxy-groups'] = array_filter($config['proxy-groups'], function($group) { + $config['proxy-groups'] = array_filter($config['proxy-groups'], function ($group) { return $group['proxies']; }); $config['proxy-groups'] = array_values($config['proxy-groups']); @@ -102,10 +116,10 @@ class ClashMeta array_unshift($config['rules'], "DOMAIN,{$subsDomain},DIRECT"); } // Force the nodes ip to be a direct rule - collect($this->servers)->pluck('host')->map(function($host){ + collect($this->servers)->pluck('host')->map(function ($host) { $host = trim($host); return filter_var($host, FILTER_VALIDATE_IP) ? [$host] : Helper::getIpByDomainName($host); - })->flatten()->unique()->each(function($nodeIP) use ( &$config ) { + })->flatten()->unique()->each(function ($nodeIP) use (&$config) { array_unshift($config['rules'], "IP-CIDR,{$nodeIP}/32,DIRECT,no-resolve"); }); @@ -119,144 +133,114 @@ class ClashMeta $array['type'] = 'ss'; $array['server'] = $server['host']; $array['port'] = $server['port']; - $array['cipher'] = $server['cipher']; - $array['password'] = $password; + $array['cipher'] = data_get($server['protocol_settings'], 'cipher'); + $array['password'] = data_get($server, 'password', $password); $array['udp'] = true; return $array; } public static function buildVmess($uuid, $server) { - $array = []; - $array['name'] = $server['name']; - $array['type'] = 'vmess'; - $array['server'] = $server['host']; - $array['port'] = $server['port']; - $array['uuid'] = $uuid; - $array['alterId'] = 0; - $array['cipher'] = 'auto'; - $array['udp'] = true; + $protocol_settings = data_get($server, 'protocol_settings', []); + $array = [ + 'name' => $server['name'], + 'type' => 'vmess', + 'server' => $server['host'], + 'port' => $server['port'], + 'uuid' => $uuid, + 'alterId' => 0, + 'cipher' => 'auto', + 'udp' => true + ]; - if ($server['tls']) { + if (data_get($protocol_settings, 'tls')) { $array['tls'] = true; - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['allowInsecure']) && !empty($tlsSettings['allowInsecure'])) - $array['skip-cert-verify'] = ($tlsSettings['allowInsecure'] ? true : false); - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $array['servername'] = $tlsSettings['serverName']; - } + $array['skip-cert-verify'] = (bool) data_get($protocol_settings, 'tls_settings.allow_insecure', false); + $array['servername'] = data_get($protocol_settings, 'tls_settings.server_name'); } - if ($server['network'] === 'tcp') { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type'])) $array['network'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['headers'])){ - $headers = $$tcpSettings['header']['request']['headers']; - $array['http-opts']['headers'] = $headers; - } - if (isset($tcpSettings['header']['request']['path'][0])){ - $paths = $tcpSettings['header']['request']['path']; - $array['http-opts']['path'] = $paths; - } - } - if ($server['network'] === 'ws') { - $array['network'] = 'ws'; - if ($server['networkSettings']) { - $wsSettings = $server['networkSettings']; - $array['ws-opts'] = []; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['ws-opts']['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['ws-opts']['headers'] = ['Host' => $wsSettings['headers']['Host']]; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['ws-path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['ws-headers'] = ['Host' => $wsSettings['headers']['Host']]; - } - } - if ($server['network'] === 'grpc') { - $array['network'] = 'grpc'; - if ($server['networkSettings']) { - $grpcSettings = $server['networkSettings']; - $array['grpc-opts'] = []; - if (isset($grpcSettings['serviceName'])) $array['grpc-opts']['grpc-service-name'] = $grpcSettings['serviceName']; - } + switch (data_get($protocol_settings, 'network')) { + case 'tcp': + $array['network'] = data_get($protocol_settings, 'network_settings.header.type', 'tcp'); + if (data_get($protocol_settings, 'network_settings.header.type', 'none') !== 'none') { + $array['http-opts'] = [ + 'headers' => data_get($protocol_settings, 'network_settings.header.request.headers'), + 'path' => \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/'])) + ]; + } + break; + case 'ws': + $array['network'] = 'ws'; + if ($path = data_get($protocol_settings, 'network_settings.path')) + $array['ws-opts']['path'] = $path; + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) + $array['ws-opts']['headers'] = ['Host' => $host]; + break; + case 'grpc': + $array['network'] = 'grpc'; + if ($serviceName = data_get($protocol_settings, 'network_settings.serviceName')) + $array['grpc-opts']['grpc-service-name'] = $serviceName; + break; + default: + break; } return $array; } - public static function buildVless($password, $server){ - $array = []; - $array['name'] = $server['name']; - $array['type'] = 'vless'; - $array['server'] = $server['host']; - $array['port'] = $server['port']; - $array['uuid'] = $password; - $array['alterId'] = 0; - $array['cipher'] = 'auto'; - $array['udp'] = true; + public static function buildVless($password, $server) + { + $protocol_settings = data_get($server, 'protocol_settings', []); + $array = [ + 'name' => $server['name'], + 'type' => 'vless', + 'server' => $server['host'], + 'port' => $server['port'], + 'uuid' => $password, + 'alterId' => 0, + 'cipher' => 'auto', + 'udp' => true, + 'flow' => data_get($protocol_settings, 'flow'), + 'tls' => false + ]; - // XTLS流控算法 - if($server['flow']) ($array['flow'] = $server['flow']); - - if ($server['tls']) { - switch($server['tls']){ - case 1: //开启TLS - $array['tls'] = true; - if ($server['tls_settings']) { - $tlsSettings = $server['tls_settings']; - if (isset($tlsSettings['allow_insecure']) && !empty($tlsSettings['allow_insecure'])) - $array['skip-cert-verify'] = ($tlsSettings['allow_insecure'] ? true : false); - if (isset($tlsSettings['server_name']) && !empty($tlsSettings['server_name'])) - $array['servername'] = $tlsSettings['server_name']; - } - break; - case 2: //开启reality - $array['tls'] = true; - $tls_settings = $server['tls_settings']; - if (!empty($tls_settings['allowInsecure'])) $array['skip-cert-verify'] = (bool)$tls_settings['allowInsecure']; - - if(($tls_settings['public_key'] ?? null) - && ($tls_settings['short_id'] ?? null) - && ($tls_settings['server_name'] ?? null)){ - $array['servername'] = $tls_settings['server_name']; - $array['reality-opts'] = [ - 'public-key' => $tls_settings['public_key'], - 'short-id' => $tls_settings['short_id'] - ]; - $fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; //随机客户端指纹 - $array['client-fingerprint'] = $fingerprints[rand(0,count($fingerprints) - 1)]; - }; - break; - } + switch (data_get($protocol_settings, 'tls')) { + case 1: + $array['tls'] = true; + $array['skip-cert-verify'] = (bool) data_get($protocol_settings, 'tls_settings.allow_insecure', false); + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $array['servername'] = $serverName; + } + break; + case 2: + $array['tls'] = true; + $array['skip-cert-verify'] = (bool) data_get($protocol_settings, 'reality_settings.allow_insecure', false); + $array['servername'] = data_get($protocol_settings, 'reality_settings.server_name'); + $array['reality-opts'] = [ + 'public-key' => data_get($protocol_settings, 'reality_settings.public_key'), + 'short-id' => data_get($protocol_settings, 'reality_settings.short_id') + ]; + $array['client-fingerprint'] = Helper::getRandFingerprint(); + break; + default: + break; } - if ($server['network'] === 'ws') { - $array['network'] = 'ws'; - if ($server['network_settings']) { - $wsSettings = $server['network_settings']; - $array['ws-opts'] = []; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['ws-opts']['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['ws-opts']['headers'] = ['Host' => $wsSettings['headers']['Host']]; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['ws-path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['ws-headers'] = ['Host' => $wsSettings['headers']['Host']]; - } - } - if ($server['network'] === 'grpc') { - $array['network'] = 'grpc'; - if ($server['network_settings']) { - $grpcSettings = $server['network_settings']; - $array['grpc-opts'] = []; - if (isset($grpcSettings['serviceName'])) { - $array['grpc-opts']['grpc-service-name'] = $grpcSettings['serviceName']; - }; - } + switch (data_get($protocol_settings, 'network')) { + case 'ws': + $array['network'] = 'ws'; + if ($path = data_get($protocol_settings, 'network_settings.path')) + $array['ws-opts']['path'] = $path; + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) + $array['ws-opts']['headers'] = ['Host' => $host]; + break; + case 'grpc': + $array['network'] = 'grpc'; + if ($serviceName = data_get($protocol_settings, 'network_settings.serviceName')) + $array['grpc-opts']['grpc-service-name'] = $serviceName; + break; + default: + break; } return $array; @@ -264,66 +248,80 @@ class ClashMeta public static function buildTrojan($password, $server) { - $array = []; - $array['name'] = $server['name']; - $array['type'] = 'trojan'; - $array['server'] = $server['host']; - $array['port'] = $server['port']; - $array['password'] = $password; - $array['udp'] = true; - if (!empty($server['server_name'])) $array['sni'] = $server['server_name']; - if (!empty($server['allow_insecure'])) $array['skip-cert-verify'] = ($server['allow_insecure'] ? true : false); - // trojan-go配置 - if(in_array($server['network'], ["grpc", "ws"])){ - $array['network'] = $server['network']; - // grpc配置 - if($server['network'] === "grpc" && isset($server['networkSettings']['serviceName'])) $array['grpc-opts']['grpc-service-name'] = $server['networkSettings']['serviceName']; - // ws配置 - if($server['network'] === "ws") { - if(isset($server['networkSettings']['path'])) { - $array['ws-opts']['path'] = $server['networkSettings']['path']; - } - if(isset($server['networkSettings']['headers']['Host'])){ - $array['ws-opts']['headers']['Host'] = $server['networkSettings']['headers']['Host']; - } - } - }; + $protocol_settings = data_get($server, 'protocol_settings', []); + $array = [ + 'name' => $server['name'], + 'type' => 'trojan', + 'server' => $server['host'], + 'port' => $server['port'], + 'password' => $password, + 'udp' => true, + 'skip-cert-verify' => (bool) data_get($protocol_settings, 'allow_insecure', false) + ]; + if ($serverName = data_get($protocol_settings, 'server_name')) { + $array['sni'] = $serverName; + } + + switch (data_get($protocol_settings, 'network')) { + case 'tcp': + $array['network'] = 'tcp'; + break; + case 'ws': + $array['network'] = 'ws'; + if ($path = data_get($protocol_settings, 'network_settings.path')) + $array['ws-opts']['path'] = $path; + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) + $array['ws-opts']['headers'] = ['Host' => $host]; + break; + case 'grpc': + $array['network'] = 'grpc'; + if ($serviceName = data_get($protocol_settings, 'network_settings.serviceName')) + $array['grpc-opts']['grpc-service-name'] = $serviceName; + break; + default: + $array['network'] = 'tcp'; + break; + } + return $array; } public static function buildHysteria($password, $server, $user) { - $array = []; - $array['name'] = $server['name']; - $array['server'] = $server['host']; - $array['port'] = $server['port']; - if($server['server_name']) $array['sni'] = $server['server_name']; - $array['up'] = $user->speed_limit ? min($server['up_mbps'], $user->speed_limit) : $server['up_mbps']; - $array['down'] = $user->speed_limit ? min($server['down_mbps'], $user->speed_limit) : $server['down_mbps']; - $array['skip-cert-verify'] = $server['insecure'] ? true : false; - switch($server['version']){ - case 1: + $protocol_settings = data_get($server, 'protocol_settings', []); + $array = [ + 'name' => $server['name'], + 'server' => $server['host'], + 'port' => $server['port'], + 'sni' => data_get($protocol_settings, 'tls.server_name'), + 'up' => data_get($protocol_settings, 'bandwidth.up'), + 'down' => data_get($protocol_settings, 'bandwidth.down'), + 'skip-cert-verify' => (bool) data_get($protocol_settings, 'tls.allow_insecure', false), + ]; + if (isset($server['ports'])) { + $array['ports'] = $server['ports']; + } + switch (data_get($protocol_settings, 'version')) { + case 1: $array['type'] = 'hysteria'; - // 判断是否开启动态端口 - if(isset($server['ports'])) $array['ports'] = $server['ports']; $array['auth_str'] = $password; - $array['protocol'] = 'udp'; - if($server['is_obfs']) $array['obfs'] = $server['server_key']; + $array['protocol'] = 'udp'; // 支持 udp/wechat-video/faketcp + if (data_get($protocol_settings, 'obfs.open')) { + $array['obfs'] = data_get($protocol_settings, 'obfs.password'); + } $array['fast-open'] = true; - $array['disable_mtu_discovery'] = true; //禁止路径最大传输单元发现 - $array['alpn'] = [ServerHysteria::$alpnMap[$server['alpn']]]; + $array['disable_mtu_discovery'] = true; break; - case 2: + case 2: $array['type'] = 'hysteria2'; $array['password'] = $password; - if($server['is_obfs']) { - $array['obfs'] = 'salamander'; - $array['obfs-password'] = $server['server_key']; + if (data_get($protocol_settings, 'obfs.open')) { + $array['obfs'] = data_get($protocol_settings, 'obfs.type'); + $array['obfs-password'] = data_get($protocol_settings, 'obfs.password'); } - if(isset($server['ports'])) $array['ports'] = $server['ports']; break; } - + return $array; } @@ -334,6 +332,9 @@ class ClashMeta private function isRegex($exp) { - return @preg_match($exp, null) !== false; + if (empty($exp)) { + return false; + } + return @preg_match($exp, '') !== false; } } diff --git a/app/Protocols/General.php b/app/Protocols/General.php index 0a3f2a5..636ee17 100644 --- a/app/Protocols/General.php +++ b/app/Protocols/General.php @@ -3,11 +3,12 @@ namespace App\Protocols; +use App\Contracts\ProtocolInterface; use App\Utils\Helper; -class General +class General implements ProtocolInterface { - public $flag = 'general'; + public $flags = ['general', 'v2rayn', 'v2rayng', 'passwall', 'ssrplus', 'sagernet']; private $servers; private $user; @@ -17,6 +18,11 @@ class General $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $servers = $this->servers; @@ -45,62 +51,66 @@ class General public static function buildShadowsocks($password, $server) { + $protocol_settings = $server['protocol_settings']; $name = rawurlencode($server['name']); + $password = data_get($server, 'password', $password); $str = str_replace( ['+', '/', '='], ['-', '_', ''], - base64_encode("{$server['cipher']}:{$password}") + base64_encode("{$protocol_settings['cipher']}:{$password}") ); return "ss://{$str}@{$server['host']}:{$server['port']}#{$name}\r\n"; } public static function buildVmess($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "v" => "2", "ps" => $server['name'], "add" => $server['host'], - "port" => (string)$server['port'], + "port" => (string) $server['port'], "id" => $uuid, "aid" => '0', - "net" => $server['network'], + "net" => $server['protocol_settings']['network'], "type" => "none", "host" => "", "path" => "", - "tls" => $server['tls'] ? "tls" : "", + "tls" => $protocol_settings['tls'] ? "tls" : "", ]; - if ($server['tls']) { - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $config['sni'] = $tlsSettings['serverName']; - } + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $config['sni'] = $serverName; } - if ((string)$server['network'] === 'tcp') { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['path'][0])){ - $paths = $tcpSettings['header']['request']['path']; - $config['path'] = $paths[array_rand($paths)]; - } - if (isset($tcpSettings['header']['request']['headers']['Host'][0])){ - $hosts = $tcpSettings['header']['request']['headers']['Host']; - $config['host'] = $hosts[array_rand($hosts)]; - } - } - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = $wsSettings['headers']['Host']; - } - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['networkSettings']; - if (isset($grpcSettings['serviceName'])) $config['path'] = $grpcSettings['serviceName']; + + switch ($protocol_settings['network']) { + case 'tcp': + if (data_get($protocol_settings, 'network_settings.header.type', 'none') !== 'none') { + $config['type'] = data_get($protocol_settings, 'network_settings.header.type', 'http'); + $config['path'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/'])); + $config['host'] = data_get($protocol_settings, 'network_settings.headers.Host') ? \Arr::random(data_get($protocol_settings, 'network_settings.headers.Host'), ['/']) : null; + } + break; + case 'ws': + $config['type'] = 'ws'; + if ($path = data_get($protocol_settings, 'network_settings.path')) + $config['path'] = $path; + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) + $config['host'] = $host; + break; + case 'grpc': + $config['type'] = 'grpc'; + if ($path = data_get($protocol_settings, 'network_settings.serviceName')) + $config['path'] = $path; + break; + default: + break; } return "vmess://" . base64_encode(json_encode($config)) . "\r\n"; } - public static function buildVless($uuid, $server){ + public static function buildVless($uuid, $server) + { + $protocol_settings = $server['protocol_settings']; $host = $server['host']; //节点地址 $port = $server['port']; //节点端口 $name = $server['name']; //节点名称 @@ -109,48 +119,57 @@ class General 'mode' => 'multi', //grpc传输模式 'security' => '', //传输层安全 tls/reality 'encryption' => 'none', //加密方式 - 'type' => $server['network'], //传输协议 + 'type' => $server['protocol_settings']['network'], //传输协议 + 'flow' => $protocol_settings['flow'] ? $protocol_settings['flow'] : null, ]; - // 判断是否开启XTLS - if($server['flow']) ($config['flow'] = $server['flow']); - // 如果开启TLS - if ($server['tls']) { - switch($server['tls']){ - case 1: - if ($server['tls_settings']) { - $tlsSettings = $server['tls_settings']; - if (isset($tlsSettings['server_name']) && !empty($tlsSettings['server_name'])) - $config['sni'] = $tlsSettings['server_name']; - $config['security'] = "tls"; - } - break; - case 2: //reality - $config['security'] = "reality"; - $tls_settings = $server['tls_settings']; - if(($tls_settings['public_key'] ?? null) - && ($tls_settings['short_id'] ?? null) - && ($tls_settings['server_name'] ?? null)){ - $config['pbk'] = $tls_settings['public_key']; - $config['sid'] = $tls_settings['short_id']; - $config['sni'] = $tls_settings['server_name']; - $config['servername'] = $tls_settings['server_name']; - $config['spx'] = "/"; - $fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; //随机客户端指纹 - $config['fp'] = $fingerprints[rand(0,count($fingerprints) - 1)]; - }; - break; - } + // 处理TLS + switch ($server['protocol_settings']['tls']) { + case 1: + $config['security'] = "tls"; + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $config['sni'] = $serverName; + } + break; + case 2: //reality + $config['security'] = "reality"; + $config['pbk'] = data_get($protocol_settings, 'reality_settings.public_key'); + $config['sid'] = data_get($protocol_settings, 'reality_settings.short_id'); + $config['sni'] = data_get($protocol_settings, 'reality_settings.server_name'); + $config['servername'] = data_get($protocol_settings, 'reality_settings.server_name'); + $config['spx'] = "/"; + $config['fp'] = Helper::getRandFingerprint(); + break; + default: + break; } - // 如果传输协议为ws - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['network_settings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = $wsSettings['headers']['Host']; - } - // 传输协议为grpc - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['network_settings']; - if (isset($grpcSettings['serviceName'])) $config['serviceName'] = $grpcSettings['serviceName']; + // 处理传输协议 + switch ($server['protocol_settings']['network']) { + case 'ws': + if ($path = data_get($protocol_settings, 'network_settings.path')) + $config['path'] = $path; + if ($wsHost = data_get($protocol_settings, 'network_settings.headers.Host')) + $config['host'] = $wsHost; + break; + case 'grpc': + if ($path = data_get($protocol_settings, 'network_settings.serviceName')) + $config['path'] = $path; + break; + case 'kcp': + if ($path = data_get($protocol_settings, 'network_settings.seed')) + $config['path'] = $path; + $config['type'] = data_get($protocol_settings, 'network_settings.header.type', 'none'); + break; + case 'httpupgrade': + if ($path = data_get($protocol_settings, 'network_settings.path')) + $config['path'] = $path; + $config['host'] = data_get($protocol_settings, 'network_settings.host', $server['host']); + break; + case 'xhttp': + $config['path'] = data_get($protocol_settings, 'network_settings.path'); + $config['host'] = data_get($protocol_settings, 'network_settings.host', $server['host']); + $config['mode'] = data_get($protocol_settings, 'network_settings.mode', 'auto'); + $config['extra'] = json_encode(data_get($protocol_settings, 'network_settings.extra')); + break; } $user = $uuid . '@' . $host . ':' . $port; @@ -162,12 +181,32 @@ class General public static function buildTrojan($password, $server) { + $protocol_settings = $server['protocol_settings']; $name = rawurlencode($server['name']); - $query = http_build_query([ - 'allowInsecure' => $server['allow_insecure'], - 'peer' => $server['server_name'], - 'sni' => $server['server_name'] - ]); + $array = []; + $array['allowInsecure'] = $protocol_settings['allow_insecure']; + if ($serverName = data_get($protocol_settings, 'server_name')) { + $array['peer'] = $serverName; + $array['sni'] = $serverName; + } + switch ($server['protocol_settings']['network']) { + case 'ws': + $array['type'] = 'ws'; + if ($path = data_get($protocol_settings, 'network_settings.path')) + $array['path'] = $path; + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) + $array['host'] = $host; + break; + case 'grpc': + // Follow V2rayN family standards + $array['type'] = 'grpc'; + if ($serviceName = data_get($protocol_settings, 'network_settings.serviceName')) + $array['serviceName'] = $serviceName; + break; + default: + break; + } + $query = http_build_query($array); $uri = "trojan://{$password}@{$server['host']}:{$server['port']}?{$query}#{$name}"; $uri .= "\r\n"; return $uri; @@ -175,23 +214,27 @@ class General public static function buildHysteria($password, $server) { + $protocol_settings = $server['protocol_settings']; $params = []; // Return empty if version is not 2 - if ($server['version'] !== 2) { + if ($server['protocol_settings']['version'] !== 2) { return ''; } - if ($server['server_name']) { - $params['sni'] = $server['server_name']; + if ($serverName = data_get($protocol_settings, 'tls.server_name')) { + $params['sni'] = $serverName; $params['security'] = 'tls'; } - if ($server['is_obfs']) { + if (data_get($protocol_settings, 'obfs.open')) { $params['obfs'] = 'salamander'; - $params['obfs-password'] = $server['server_key']; + $params['obfs-password'] = data_get($protocol_settings, 'obfs.password'); + } + if (isset($server['ports'])) { + $params['mport'] = $server['ports']; } - $params['insecure'] = $server['insecure'] ? 1 : 0; + $params['insecure'] = data_get($protocol_settings, 'tls.allow_insecure'); $query = http_build_query($params); $name = rawurlencode($server['name']); diff --git a/app/Protocols/Loon.php b/app/Protocols/Loon.php index 56290ea..566322d 100644 --- a/app/Protocols/Loon.php +++ b/app/Protocols/Loon.php @@ -2,9 +2,11 @@ namespace App\Protocols; -class Loon +use App\Contracts\ProtocolInterface; + +class Loon implements ProtocolInterface { - public $flag = 'loon'; + public $flags = ['loon']; private $servers; private $user; @@ -14,6 +16,11 @@ class Loon $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $servers = $this->servers; @@ -22,8 +29,9 @@ class Loon $uri = ''; foreach ($servers as $item) { - if ($item['type'] === 'shadowsocks' - && in_array($item['cipher'], [ + if ( + $item['type'] === 'shadowsocks' + && in_array(data_get($item['protocol_settings'], 'cipher'), [ 'aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm', @@ -43,17 +51,18 @@ class Loon } } return response($uri, 200) - ->header('Subscription-Userinfo', "upload={$user['u']}; download={$user['d']}; total={$user['transfer_enable']}; expire={$user['expired_at']}"); + ->header('Subscription-Userinfo', "upload={$user['u']}; download={$user['d']}; total={$user['transfer_enable']}; expire={$user['expired_at']}"); } public static function buildShadowsocks($password, $server) { + $cipher = data_get($server['protocol_settings'], 'cipher'); $config = [ "{$server['name']}=Shadowsocks", "{$server['host']}", "{$server['port']}", - "{$server['cipher']}", + "{$cipher}", "{$password}", 'fast-open=false', 'udp=true' @@ -66,6 +75,7 @@ class Loon public static function buildVmess($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "{$server['name']}=vmess", "{$server['host']}", @@ -77,43 +87,44 @@ class Loon "alterId=0" ]; - if ($server['network'] === 'tcp') { - array_push($config, 'transport=tcp'); - if ($server['networkSettings']) { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type']) && !empty($tcpSettings['header']['type'])) + if (data_get($protocol_settings, 'tls')) { + if (data_get($protocol_settings, 'network') === 'tcp') + $config[] = 'over-tls=true'; + if (data_get($protocol_settings, 'tls_settings')) { + $tls_settings = data_get($protocol_settings, 'tls_settings'); + $config[] = 'skip-cert-verify=' . ($tls_settings['allow_insecure'] ? 'true' : 'false'); + if (data_get($tls_settings, 'server_name')) + $config[] = "tls-name={$tls_settings['server_name']}"; + } + } + + switch (data_get($server['protocol_settings'], 'network')) { + case 'tcp': + $config[] = 'transport=tcp'; + $tcpSettings = data_get($protocol_settings, 'network_settings'); + if (data_get($tcpSettings, 'header.type')) $config = str_replace('transport=tcp', "transport={$tcpSettings['header']['type']}", $config); - if (isset($tcpSettings['header']['request']['path'][0]) && !empty($tcpSettings['header']['request']['path'][0])) - $paths = $tcpSettings['header']['request']['path']; - $path = array_rand(array_rand($paths)); - array_push($config, "path={$path}"); - if (isset($tcpSettings['header']['request']['headers']['Host'][0])){ - $hosts = $tcpSettings['header']['request']['headers']['Host']; - $host = $hosts[array_rand($hosts)]; - array_push($config, "host={$host}"); + if (data_get($tcpSettings, key: 'header.request.path')) { + $paths = data_get($tcpSettings, key: 'header.request.path'); + $path = $paths[array_rand($paths)]; + $config[] = "path={$path}"; } - } - } - if ($server['tls']) { - if ($server['network'] === 'tcp') - array_push($config, 'over-tls=true'); - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['allowInsecure']) && !empty($tlsSettings['allowInsecure'])) - array_push($config, 'skip-cert-verify=' . ($tlsSettings['allowInsecure'] ? 'true' : 'false')); - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - array_push($config, "tls-name={$tlsSettings['serverName']}"); - } - } - if ($server['network'] === 'ws') { - array_push($config, 'transport=ws'); - if ($server['networkSettings']) { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - array_push($config, "path={$wsSettings['path']}"); - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - array_push($config, "host={$wsSettings['headers']['Host']}"); - } + if (data_get($tcpSettings, key: 'header.request.headers.Host')) { + $hosts = data_get($tcpSettings, key: 'header.request.headers.Host'); + $host = $hosts[array_rand($hosts)]; + $config[] = "host={$host}"; + } + break; + case 'ws': + $config[] = 'transport=ws'; + $wsSettings = data_get($protocol_settings, 'network_settings'); + if (data_get($wsSettings, key: 'path')) + $config[] = "path={$wsSettings['path']}"; + if (data_get($wsSettings, key: 'headers.Host')) + $config[] = "host={$wsSettings['headers']['Host']}"; + break; + + } $uri = implode(',', $config); @@ -123,17 +134,18 @@ class Loon public static function buildTrojan($password, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "{$server['name']}=trojan", "{$server['host']}", "{$server['port']}", "{$password}", - $server['server_name'] ? "tls-name={$server['server_name']}" : "", + data_get($protocol_settings, 'server_name') ? "tls-name={$protocol_settings['server_name']}" : "", 'fast-open=false', 'udp=true' ]; - if (!empty($server['allow_insecure'])) { - array_push($config, $server['allow_insecure'] ? 'skip-cert-verify=true' : 'skip-cert-verify=false'); + if (!empty($protocol_settings['allow_insecure'])) { + $config[] = data_get($protocol_settings, 'allow_insecure') ? 'skip-cert-verify=true' : 'skip-cert-verify=false'; } $config = array_filter($config); $uri = implode(',', $config); @@ -141,20 +153,75 @@ class Loon return $uri; } + public static function buildVless($uuid, $server) + { + $protocol_settings = $server['protocol_settings']; + $config = [ + "{$server['name']}=vless", + $server['host'], + $server['port'], + $uuid, + 'fast-open=false', + 'udp=true', + 'alterId=0' + ]; + switch ((int) data_get($protocol_settings, 'tls')) { + case 1: + $config[] = 'over-tls=true'; + $tlsSettings = data_get($protocol_settings, 'tls_settings', []); + if ($tlsSettings) { + $config[] = 'skip-cert-verify=' . (data_get($tlsSettings, 'allow_insecure') ? 'true' : 'false'); + if ($serverName = data_get($tlsSettings, 'server_name')) { + $config[] = "tls-name={$serverName}"; + } + } + break; + case 2: + return ''; + } + $network_settings = data_get($protocol_settings, 'network_settings', []); + switch ((string) data_get($network_settings, 'network')) { + case 'tcp': + $config[] = 'transport=tcp'; + if ($headerType = data_get($network_settings, 'header.type')) { + $config = collect($config)->map(function ($item) use ($headerType) { + return $item === 'transport=tcp' ? "transport={$headerType}" : $item; + })->toArray(); + } + if ($paths = data_get($network_settings, 'header.request.path')) { + $config[] = 'path=' . $paths[array_rand($paths)]; + } + break; + case 'ws': + $config[] = 'transport=ws'; + if ($path = data_get($network_settings, 'path')) { + $config[] = "path={$path}"; + } + + if ($host = data_get($network_settings, 'headers.Host')) { + $config[] = "host={$host}"; + } + break; + } + return implode(',', $config) . "\r\n"; + } + public static function buildHysteria($password, $server, $user) { - if ($server['version'] !== 2){ - return ; + $protocol_settings = $server['protocol_settings']; + if ($protocol_settings['version'] != 2) { + return; } $config = [ "{$server['name']}=Hysteria2", $server['host'], $server['port'], $password, - $server['server_name'] ? "sni={$server['server_name']}" : "(null)" + $protocol_settings['tls']['server_name'] ? "sni={$protocol_settings['tls']['server_name']}" : "(null)" ]; - if ($server['insecure']) $config[] = "skip-cert-verify=true"; - $config[] = "download-bandwidth=" . ($user->speed_limit ? min($server['down_mbps'], $user->speed_limit) : $server['down_mbps']); + if (data_get($protocol_settings, 'tls.allow_insecure')) + $config[] = "skip-cert-verify=true"; + $config[] = "download-bandwidth=" . data_get($protocol_settings, 'bandwidth.download_bandwidth'); $config[] = "udp=true"; $config = array_filter($config); $uri = implode(',', $config); diff --git a/app/Protocols/Passwall.php b/app/Protocols/Passwall.php deleted file mode 100644 index 2799a61..0000000 --- a/app/Protocols/Passwall.php +++ /dev/null @@ -1,174 +0,0 @@ -user = $user; - $this->servers = $servers; - } - - public function handle() - { - $servers = $this->servers; - $user = $this->user; - $uri = ''; - - foreach ($servers as $item) { - if ($item['type'] === 'vmess') { - $uri .= self::buildVmess($user['uuid'], $item); - } - if ($item['type'] === 'vless') { - $uri .= self::buildVless($user['uuid'], $item); - } - if ($item['type'] === 'shadowsocks') { - $uri .= self::buildShadowsocks($item['password'], $item); - } - if ($item['type'] === 'trojan') { - $uri .= self::buildTrojan($user['uuid'], $item); - } - if ($item['type'] === 'hysteria') { - $uri .= General::buildHysteria($user['uuid'], $item); - } - } - return base64_encode($uri); - } - - public static function buildShadowsocks($password, $server) - { - $name = rawurlencode($server['name']); - $str = str_replace( - ['+', '/', '='], - ['-', '_', ''], - base64_encode("{$server['cipher']}:{$password}") - ); - return "ss://{$str}@{$server['host']}:{$server['port']}#{$name}\r\n"; - } - - public static function buildVmess($uuid, $server) - { - $config = [ - "v" => "2", - "ps" => $server['name'], - "add" => $server['host'], - "port" => (string)$server['port'], - "id" => $uuid, - "aid" => '0', - "net" => $server['network'], - "type" => "none", - "host" => "", - "path" => "", - "tls" => $server['tls'] ? "tls" : "", - ]; - if ($server['tls']) { - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $config['sni'] = $tlsSettings['serverName']; - } - } - if ((string)$server['network'] === 'tcp') { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['path'][0])){ - $paths = $tcpSettings['header']['request']['path']; - $config['path'] = $paths[array_rand($paths)]; - } - if (isset($tcpSettings['header']['request']['headers']['Host'][0])){ - $hosts = $tcpSettings['header']['request']['headers']['Host']; - $config['host'] = $hosts[array_rand($hosts)]; - } - } - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = $wsSettings['headers']['Host']; - } - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['networkSettings']; - if (isset($grpcSettings['serviceName'])) $config['path'] = $grpcSettings['serviceName']; - } - return "vmess://" . base64_encode(json_encode($config)) . "\r\n"; - } - - public static function buildVless($uuid, $server){ - $host = $server['host']; //节点地址 - $port = $server['port']; //节点端口 - $name = $server['name']; //节点名称 - - $config = [ - 'mode' => 'multi', //grpc传输模式 - 'security' => '', //传输层安全 tls/reality - 'encryption' => 'none', //加密方式 - 'type' => $server['network'], //传输协议 - ]; - // 判断是否开启XTLS - if($server['flow']) ($config['flow'] = $server['flow']); - // 如果开启TLS - if ($server['tls']) { - switch($server['tls']){ - case 1: - if ($server['tls_settings']) { - $tlsSettings = $server['tls_settings']; - if (isset($tlsSettings['server_name']) && !empty($tlsSettings['server_name'])) - $config['sni'] = $tlsSettings['server_name']; - $config['security'] = "tls"; - } - break; - case 2: //reality - $config['security'] = "reality"; - $tls_settings = $server['tls_settings']; - if(($tls_settings['public_key'] ?? null) - && ($tls_settings['short_id'] ?? null) - && ($tls_settings['server_name'] ?? null)){ - $config['pbk'] = $tls_settings['public_key']; - $config['sid'] = $tls_settings['short_id']; - $config['sni'] = $tls_settings['server_name']; - $config['servername'] = $tls_settings['server_name']; - $config['spx'] = "/"; - $fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; //随机客户端指纹 - $config['fp'] = $fingerprints[rand(0,count($fingerprints) - 1)]; - }; - break; - } - } - // 如果传输协议为ws - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['network_settings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = $wsSettings['headers']['Host']; - } - // 传输协议为grpc - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['network_settings']; - if (isset($grpcSettings['serviceName'])) $config['serviceName'] = $grpcSettings['serviceName']; - } - - $user = $uuid . '@' . $host . ':' . $port; - $query = http_build_query($config); - $fragment = urlencode($name); - $link = sprintf("vless://%s?%s#%s\r\n", $user, $query, $fragment); - return $link; - } - - public static function buildTrojan($password, $server) - { - $name = rawurlencode($server['name']); - $query = http_build_query([ - 'allowInsecure' => $server['allow_insecure'], - 'peer' => $server['server_name'], - 'sni' => $server['server_name'] - ]); - $uri = "trojan://{$password}@{$server['host']}:{$server['port']}?{$query}#{$name}"; - $uri .= "\r\n"; - return $uri; - } - -} diff --git a/app/Protocols/QuantumultX.php b/app/Protocols/QuantumultX.php index b89e03d..25cf6a3 100644 --- a/app/Protocols/QuantumultX.php +++ b/app/Protocols/QuantumultX.php @@ -2,10 +2,11 @@ namespace App\Protocols; +use App\Contracts\ProtocolInterface; -class QuantumultX +class QuantumultX implements ProtocolInterface { - public $flag = 'quantumult%20x'; + public $flags = ['quantumult%20x']; private $servers; private $user; @@ -15,6 +16,11 @@ class QuantumultX $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $servers = $this->servers; @@ -32,14 +38,16 @@ class QuantumultX } } return response(base64_encode($uri), 200) - ->header('subscription-userinfo', "upload={$user['u']}; download={$user['d']}; total={$user['transfer_enable']}; expire={$user['expired_at']}"); + ->header('subscription-userinfo', "upload={$user['u']}; download={$user['d']}; total={$user['transfer_enable']}; expire={$user['expired_at']}"); } public static function buildShadowsocks($password, $server) { + $protocol_settings = $server['protocol_settings']; + $password = data_get($server, 'password', $password); $config = [ "shadowsocks={$server['host']}:{$server['port']}", - "method={$server['cipher']}", + "method={$protocol_settings['cipher']}", "password={$password}", 'fast-open=true', 'udp-relay=true', @@ -53,6 +61,7 @@ class QuantumultX public static function buildVmess($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "vmess={$server['host']}:{$server['port']}", 'method=chacha20-poly1305', @@ -62,28 +71,26 @@ class QuantumultX "tag={$server['name']}" ]; - if ($server['tls']) { - if ($server['network'] === 'tcp') + if (data_get($protocol_settings, 'tls')) { + if (data_get($protocol_settings, 'network') === 'tcp') array_push($config, 'obfs=over-tls'); - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['allowInsecure']) && !empty($tlsSettings['allowInsecure'])) - array_push($config, 'tls-verification=' . ($tlsSettings['allowInsecure'] ? 'false' : 'true')); - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $host = $tlsSettings['serverName']; + if (data_get($protocol_settings, 'tls_settings')) { + if (data_get($protocol_settings, 'tls_settings.allow_insecure')) + array_push($config, 'tls-verification=' . ($protocol_settings['tls_settings']['allow_insecure'] ? 'false' : 'true')); + if (data_get($protocol_settings, 'tls_settings.server_name')) + $host = data_get($protocol_settings, 'tls_settings.server_name'); } } - if ($server['network'] === 'ws') { - if ($server['tls']) + if (data_get($protocol_settings, 'network') === 'ws') { + if (data_get($protocol_settings, 'tls')) array_push($config, 'obfs=wss'); else array_push($config, 'obfs=ws'); - if ($server['networkSettings']) { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - array_push($config, "obfs-uri={$wsSettings['path']}"); - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host']) && !isset($host)) - $host = $wsSettings['headers']['Host']; + if (data_get($protocol_settings, 'network_settings')) { + if (data_get($protocol_settings, 'network_settings.path')) + array_push($config, "obfs-uri={$protocol_settings['network_settings']['path']}"); + if (data_get($protocol_settings, 'network_settings.headers.Host') && !isset($host)) + $host = data_get($protocol_settings, 'network_settings.headers.Host'); } } if (isset($host)) { @@ -97,13 +104,14 @@ class QuantumultX public static function buildTrojan($password, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "trojan={$server['host']}:{$server['port']}", "password={$password}", 'over-tls=true', - $server['server_name'] ? "tls-host={$server['server_name']}" : "", + $protocol_settings['server_name'] ? "tls-host={$protocol_settings['server_name']}" : "", // Tips: allowInsecure=false = tls-verification=true - $server['allow_insecure'] ? 'tls-verification=false' : 'tls-verification=true', + $protocol_settings['allow_insecure'] ? 'tls-verification=false' : 'tls-verification=true', 'fast-open=true', 'udp-relay=true', "tag={$server['name']}" diff --git a/app/Protocols/SSRPlus.php b/app/Protocols/SSRPlus.php deleted file mode 100644 index e2e25b6..0000000 --- a/app/Protocols/SSRPlus.php +++ /dev/null @@ -1,162 +0,0 @@ -user = $user; - $this->servers = $servers; - } - - public function handle() - { - $servers = $this->servers; - $user = $this->user; - $uri = ''; - - foreach ($servers as $item) { - if ($item['type'] === 'vmess') { - $uri .= self::buildVmess($user['uuid'], $item); - } - if ($item['type'] === 'vless') { - $uri .= self::buildVless($user['uuid'], $item); - } - if ($item['type'] === 'shadowsocks') { - $uri .= self::buildShadowsocks($item['password'], $item); - } - if ($item['type'] === 'trojan') { - $uri .= self::buildTrojan($user['uuid'], $item); - } - if ($item['type'] === 'hysteria') { - $uri .= General::buildHysteria($user['uuid'], $item); - } - } - return base64_encode($uri); - } - - public static function buildShadowsocks($password, $server) - { - $name = rawurlencode($server['name']); - $str = str_replace( - ['+', '/', '='], - ['-', '_', ''], - base64_encode("{$server['cipher']}:{$password}") - ); - return "ss://{$str}@{$server['host']}:{$server['port']}#{$name}\r\n"; - } - - public static function buildVmess($uuid, $server) - { - $config = [ - "v" => "2", - "ps" => $server['name'], - "add" => $server['host'], - "port" => (string)$server['port'], - "id" => $uuid, - "aid" => '0', - "net" => $server['network'], - "type" => "none", - "host" => "", - "path" => "", - "tls" => $server['tls'] ? "tls" : "", - ]; - if ($server['tls']) { - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $config['sni'] = $tlsSettings['serverName']; - } - } - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = $wsSettings['headers']['Host']; - } - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['networkSettings']; - if (isset($grpcSettings['serviceName'])) $config['path'] = $grpcSettings['serviceName']; - } - return "vmess://" . base64_encode(json_encode($config)) . "\r\n"; - } - - public static function buildVless($uuid, $server){ - $host = $server['host']; //节点地址 - $port = $server['port']; //节点端口 - $name = $server['name']; //节点名称 - - $config = [ - 'mode' => 'multi', //grpc传输模式 - 'security' => '', //传输层安全 tls/reality - 'encryption' => 'none', //加密方式 - 'type' => $server['network'], //传输协议 - ]; - // 判断是否开启XTLS - if($server['flow']) ($config['flow'] = $server['flow']); - // 如果开启TLS - if ($server['tls']) { - switch($server['tls']){ - case 1: - if ($server['tls_settings']) { - $tlsSettings = $server['tls_settings']; - if (isset($tlsSettings['server_name']) && !empty($tlsSettings['server_name'])) - $config['sni'] = $tlsSettings['server_name']; - $config['security'] = "tls"; - } - break; - case 2: //reality - $config['security'] = "reality"; - $tls_settings = $server['tls_settings']; - if(($tls_settings['public_key'] ?? null) - && ($tls_settings['short_id'] ?? null) - && ($tls_settings['server_name'] ?? null)){ - $config['pbk'] = $tls_settings['public_key']; - $config['sid'] = $tls_settings['short_id']; - $config['sni'] = $tls_settings['server_name']; - $config['servername'] = $tls_settings['server_name']; - $config['spx'] = "/"; - $fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; //随机客户端指纹 - $config['fp'] = $fingerprints[rand(0,count($fingerprints) - 1)]; - }; - break; - } - } - // 如果传输协议为ws - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = $wsSettings['headers']['Host']; - } - // 传输协议为grpc - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['networkSettings']; - if (isset($grpcSettings['serviceName'])) $config['serviceName'] = $grpcSettings['serviceName']; - } - - $user = $uuid . '@' . $host . ':' . $port; - $query = http_build_query($config); - $fragment = urlencode($name); - $link = sprintf("vless://%s?%s#%s\r\n", $user, $query, $fragment); - return $link; - } - - public static function buildTrojan($password, $server) - { - $name = rawurlencode($server['name']); - $query = http_build_query([ - 'allowInsecure' => $server['allow_insecure'], - 'peer' => $server['server_name'], - 'sni' => $server['server_name'] - ]); - $uri = "trojan://{$password}@{$server['host']}:{$server['port']}?{$query}#{$name}"; - $uri .= "\r\n"; - return $uri; - } - -} diff --git a/app/Protocols/SagerNet.php b/app/Protocols/SagerNet.php deleted file mode 100644 index 65f5fdd..0000000 --- a/app/Protocols/SagerNet.php +++ /dev/null @@ -1,104 +0,0 @@ -user = $user; - $this->servers = $servers; - } - - public function handle() - { - $servers = $this->servers; - $user = $this->user; - $uri = ''; - - foreach ($servers as $item) { - if ($item['type'] === 'vmess') { - $uri .= self::buildVmess($user['uuid'], $item); - } - if ($item['type'] === 'shadowsocks') { - $uri .= self::buildShadowsocks($item['password'], $item); - } - if ($item['type'] === 'trojan') { - $uri .= self::buildTrojan($user['uuid'], $item); - } - } - return base64_encode($uri); - } - - public static function buildShadowsocks($uuid, $server) - { - $name = rawurlencode($server['name']); - $str = str_replace( - ['+', '/', '='], - ['-', '_', ''], - base64_encode("{$server['cipher']}:{$uuid}") - ); - return "ss://{$str}@{$server['host']}:{$server['port']}#{$name}\r\n"; - } - - public static function buildShadowsocksSIP008($uuid, $server) - { - $config = [ - "id" => $server['id'], - "remarks" => $server['name'], - "server" => $server['host'], - "server_port" => $server['port'], - "password" => $uuid, - "method" => $server['cipher'] - ]; - return $config; - } - - public static function buildVmess($uuid, $server) - { - $config = [ - "encryption" => "none", - "type" => urlencode($server['network']), - "security" => $server['tls'] ? "tls" : "", - ]; - if ($server['tls']) { - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $config['sni'] = urlencode($tlsSettings['serverName']); - } - } - if ((string)$server['network'] === 'tcp') { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['path'][0])) $config['path'] = $tcpSettings['header']['request']['path'][0]; - } - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = urlencode($wsSettings['headers']['Host']); - } - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['networkSettings']; - if (isset($grpcSettings['serviceName'])) $config['serviceName'] = urlencode($grpcSettings['serviceName']); - } - return "vmess://" . $uuid . "@" . $server['host'] . ":" . $server['port'] . "?" . http_build_query($config) . "#" . urlencode($server['name']) . "\r\n"; - } - - public static function buildTrojan($uuid, $server) - { - $name = rawurlencode($server['name']); - $query = http_build_query([ - 'allowInsecure' => $server['allow_insecure'], - 'peer' => $server['server_name'], - 'sni' => $server['server_name'] - ]); - $uri = "trojan://{$uuid}@{$server['host']}:{$server['port']}?{$query}#{$name}"; - $uri .= "\r\n"; - return $uri; - } -} diff --git a/app/Protocols/Shadowrocket.php b/app/Protocols/Shadowrocket.php index c4cc8db..213db7e 100644 --- a/app/Protocols/Shadowrocket.php +++ b/app/Protocols/Shadowrocket.php @@ -4,10 +4,11 @@ namespace App\Protocols; use App\Models\ServerHysteria; use App\Utils\Helper; +use App\Contracts\ProtocolInterface; -class Shadowrocket +class Shadowrocket implements ProtocolInterface { - public $flag = 'shadowrocket'; + public $flags = ['shadowrocket']; private $servers; private $user; @@ -17,6 +18,11 @@ class Shadowrocket $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $servers = $this->servers; @@ -24,9 +30,9 @@ class Shadowrocket $uri = ''; //display remaining traffic and expire date - $upload = round($user['u'] / (1024*1024*1024), 2); - $download = round($user['d'] / (1024*1024*1024), 2); - $totalTraffic = round($user['transfer_enable'] / (1024*1024*1024), 2); + $upload = round($user['u'] / (1024 * 1024 * 1024), 2); + $download = round($user['d'] / (1024 * 1024 * 1024), 2); + $totalTraffic = round($user['transfer_enable'] / (1024 * 1024 * 1024), 2); $expiredDate = date('Y-m-d', $user['expired_at']); $uri .= "STATUS=🚀↑:{$upload}GB,↓:{$download}GB,TOT:{$totalTraffic}GB💡Expires:{$expiredDate}\r\n"; foreach ($servers as $item) { @@ -52,68 +58,62 @@ class Shadowrocket public static function buildShadowsocks($password, $server) { + $protocol_settings = $server['protocol_settings']; $name = rawurlencode($server['name']); + $password = data_get($server, 'password', $password); $str = str_replace( ['+', '/', '='], ['-', '_', ''], - base64_encode("{$server['cipher']}:{$password}") + base64_encode("{$protocol_settings['cipher']}:{$password}") ); $uri = "ss://{$str}@{$server['host']}:{$server['port']}"; - if ($server['obfs'] == 'http') { - $uri .= "?plugin=obfs-local;obfs=http;obfs-host={$server['obfs-host']};obfs-uri={$server['obfs-path']}"; + if ($protocol_settings['obfs'] == 'http') { + $obfs_host = data_get($protocol_settings, 'obfs_settings.obfs-host'); + $obfs_path = data_get($protocol_settings, 'obfs_settings.obfs-path'); + $uri .= "?plugin=obfs-local;obfs=http;obfs-host={$obfs_host};obfs-uri={$obfs_path}"; } - return $uri."#{$name}\r\n"; + return $uri . "#{$name}\r\n"; } public static function buildVmess($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $userinfo = base64_encode('auto:' . $uuid . '@' . $server['host'] . ':' . $server['port']); $config = [ 'tfo' => 1, 'remark' => $server['name'], 'alterId' => 0 ]; - if ($server['tls']) { + if ($protocol_settings['tls']) { $config['tls'] = 1; - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['allowInsecure']) && !empty($tlsSettings['allowInsecure'])) - $config['allowInsecure'] = (int)$tlsSettings['allowInsecure']; - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $config['peer'] = $tlsSettings['serverName']; + if (data_get($protocol_settings, 'tls_settings')) { + if (data_get($protocol_settings, 'tls_settings.allow_insecure') && !empty(data_get($protocol_settings, 'tls_settings.allow_insecure'))) + $config['allowInsecure'] = (int) data_get($protocol_settings, 'tls_settings.allow_insecure'); + if (data_get($protocol_settings, 'tls_settings.server_name') && !empty(data_get($protocol_settings, 'tls_settings.server_name'))) + $config['peer'] = data_get($protocol_settings, 'tls_settings.server_name'); } } - if ($server['network'] === 'tcp') { - if ($server['networkSettings']) { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type']) && !empty($tcpSettings['header']['type'])) - $config['obfs'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['path'][0]) && !empty($tcpSettings['header']['request']['path'][0])) - $config['path'] = $tcpSettings['header']['request']['path'][0]; - } - } - if ($server['network'] === 'ws') { - $config['obfs'] = "websocket"; - if ($server['networkSettings']) { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $config['obfsParam'] = $wsSettings['headers']['Host']; - } - } - if ($server['network'] === 'grpc') { - $config['obfs'] = "grpc"; - if ($server['networkSettings']) { - $grpcSettings = $server['networkSettings']; - if (isset($grpcSettings['serviceName']) && !empty($grpcSettings['serviceName'])) - $config['path'] = $grpcSettings['serviceName']; - } - if (isset($tlsSettings)) { - $config['host'] = $tlsSettings['serverName']; - } else { - $config['host'] = $server['host']; - } + + switch (data_get($protocol_settings, 'network')) { + case 'tcp': + if (data_get($protocol_settings, 'network_settings.header.type', 'none') !== 'none') { + $config['obfs'] = data_get($protocol_settings, 'network_settings.header.type'); + $config['path'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/'])); + $config['obfsParam'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.headers.Host', ['www.example.com'])); + } + break; + case 'ws': + $config['obfs'] = "websocket"; + $config['path'] = data_get($protocol_settings, 'network_settings.path'); + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) { + $config['obfsParam'] = $host; + } + break; + case 'grpc': + $config['obfs'] = "grpc"; + $config['path'] = data_get($protocol_settings, 'network_settings.serviceName'); + $config['host'] = data_get($protocol_settings, 'tls_settings.server_name') ?? $server['host']; + break; } $query = http_build_query($config, '', '&', PHP_QUERY_RFC3986); $uri = "vmess://{$userinfo}?{$query}"; @@ -123,6 +123,7 @@ class Shadowrocket public static function buildVless($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $userinfo = base64_encode('auto:' . $uuid . '@' . $server['host'] . ':' . $server['port']); $config = [ 'tfo' => 1, @@ -131,82 +132,59 @@ class Shadowrocket ]; // 判断是否开启xtls - if(isset($server['flow']) && !blank($server['flow'])){ + if (data_get($protocol_settings, 'flow')) { $xtlsMap = [ 'none' => 0, 'xtls-rprx-direct' => 1, 'xtls-rprx-vision' => 2 ]; - // 判断 flow 的值是否在 xtlsMap 中存在 - if (array_key_exists($server['flow'], $xtlsMap)) { + if (array_key_exists(data_get($protocol_settings, 'flow'), $xtlsMap)) { $config['tls'] = 1; - $config['xtls'] = $xtlsMap[$server['flow']]; + $config['xtls'] = $xtlsMap[data_get($protocol_settings, 'flow')]; } } - if ($server['tls']) { - switch($server['tls']){ - case 1: - $config['tls'] = 1; - if ($server['tls_settings']) { - $tlsSettings = $server['tls_settings']; - if (isset($tlsSettings['allowInsecure']) && !empty($tlsSettings['allowInsecure'])) - $config['allowInsecure'] = (int)$tlsSettings['allowInsecure']; - if (isset($tlsSettings['server_name']) && !empty($tlsSettings['server_name'])) - $config['peer'] = $tlsSettings['server_name']; - } - break; - case 2: - $config['tls'] = 1; - $tls_settings = $server['tls_settings']; - if(($tls_settings['public_key'] ?? null) - && ($tls_settings['short_id'] ?? null) - && ($tls_settings['server_name'] ?? null)){ - $config['sni'] = $tls_settings['server_name']; - $config['pbk'] = $tls_settings['public_key']; - $config['sid'] = $tls_settings['short_id']; - $fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; //随机客户端指纹 - $config['fp'] = $fingerprints[rand(0,count($fingerprints) - 1)]; - }; - break; - } - - } - if ($server['network'] === 'tcp') { - if ($server['network_settings']) { - $tcpSettings = $server['network_settings']; - if (isset($tcpSettings['header']['type']) && !empty($tcpSettings['header']['type'])) - $config['obfs'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['path'][0]) && !empty($tcpSettings['header']['request']['path'][0])) - $config['path'] = $tcpSettings['header']['request']['path'][0]; - if (isset($tcpSettings['header']['request']['headers']['Host'][0])){ - $hosts = $tcpSettings['header']['request']['headers']['Host']; - $config['obfsParam'] = $hosts[array_rand($hosts)]; + switch (data_get($protocol_settings, 'tls')) { + case 1: + $config['tls'] = 1; + $config['allowInsecure'] = (int) data_get($protocol_settings, 'tls_settings.allow_insecure'); + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $config['peer'] = $serverName; } - } + break; + case 2: + $config['tls'] = 1; + $config['sni'] = data_get($protocol_settings, 'reality_settings.server_name'); + $config['pbk'] = data_get($protocol_settings, 'reality_settings.public_key'); + $config['sid'] = data_get($protocol_settings, 'reality_settings.short_id'); + $config['fp'] = Helper::getRandFingerprint(); + break; + default: + break; } - if ($server['network'] === 'ws') { - $config['obfs'] = "websocket"; - if ($server['network_settings']) { - $wsSettings = $server['network_settings']; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $config['obfsParam'] = $wsSettings['headers']['Host']; - } - } - if ($server['network'] === 'grpc') { - $config['obfs'] = "grpc"; - if ($server['network_settings']) { - $grpcSettings = $server['network_settings']; - if (isset($grpcSettings['serviceName']) && !empty($grpcSettings['serviceName'])) - $config['path'] = $grpcSettings['serviceName']; - } - if (isset($tlsSettings)) { - $config['host'] = $tlsSettings['server_name']; - } else { - $config['host'] = $server['host']; - } + switch (data_get($protocol_settings, 'network')) { + case 'tcp': + if (data_get($protocol_settings, 'network_settings.header.type', 'none') !== 'none') { + $config['obfs'] = data_get($protocol_settings, 'network_settings.header.type'); + $config['path'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/'])); + $config['obfsParam'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.headers.Host', ['www.example.com'])); + } + break; + case 'ws': + $config['obfs'] = "websocket"; + if (data_get($protocol_settings, 'network_settings.path')) { + $config['path'] = data_get($protocol_settings, 'network_settings.path'); + } + + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) { + $config['obfsParam'] = $host; + } + break; + case 'grpc': + $config['obfs'] = "grpc"; + $config['path'] = data_get($protocol_settings, 'network_settings.serviceName'); + $config['host'] = data_get($protocol_settings, 'tls_settings.server_name') ?? $server['host']; + break; } $query = http_build_query($config, '', '&', PHP_QUERY_RFC3986); @@ -217,31 +195,23 @@ class Shadowrocket public static function buildTrojan($password, $server) { + $protocol_settings = $server['protocol_settings']; $name = rawurlencode($server['name']); - $params = [ - 'allowInsecure' => $server['allow_insecure'], - 'peer' => $server['server_name'] - ]; - // trojan-go配置 - if(in_array($server['network'], ["grpc", "ws"])){ - // grpc配置 - if($server['network'] === "grpc" && isset($server['networkSettings']['serviceName'])) { + $params['allowInsecure'] = data_get($protocol_settings, 'allow_insecure'); + if ($serverName = data_get($protocol_settings, 'server_name')) { + $params['peer'] = $serverName; + } + switch (data_get($protocol_settings, 'network')) { + case 'grpc': $params['obfs'] = 'grpc'; - $params['path'] = $server['networkSettings']['serviceName']; - } - // ws配置 - if($server['network'] === "ws") { - $path = ''; - $host = ''; - if(isset($server['networkSettings']['path'])) { - $path = $server['networkSettings']['path']; - } - if(isset($server['networkSettings']['headers']['Host'])){ - $host = $server['networkSettings']['headers']['Host']; - } + $params['path'] = data_get($protocol_settings, 'network_settings.serviceName'); + break; + case 'ws': + $host = data_get($protocol_settings, 'network_settings.headers.Host'); + $path = data_get($protocol_settings, 'network_settings.path'); $params['plugin'] = "obfs-local;obfs=websocket;obfs-host={$host};obfs-uri={$path}"; - } - }; + break; + } $query = http_build_query($params); $uri = "trojan://{$password}@{$server['host']}:{$server['port']}?{$query}&tfo=1#{$name}"; $uri .= "\r\n"; @@ -250,36 +220,45 @@ class Shadowrocket public static function buildHysteria($password, $server) { - switch($server['version']){ + $protocol_settings = $server['protocol_settings']; + switch (data_get($protocol_settings, 'version')) { case 1: $params = [ "auth" => $password, - "upmbps" => $server['up_mbps'], - "downmbps" => $server['down_mbps'], + "upmbps" => data_get($protocol_settings, 'bandwidth.up'), + "downmbps" => data_get($protocol_settings, 'bandwidth.down'), "protocol" => 'udp', - "peer" => $server['server_name'], "fastopen" => 1, - "alpn" => ServerHysteria::$alpnMap[$server['alpn']] ]; - if($server['is_obfs']){ - $params["obfs"] = "xplus"; - $params["obfsParam"] =$server['server_key']; + if ($serverName = data_get($protocol_settings, 'tls.server_name')) { + $params['peer'] = $serverName; } - if($server['insecure']) $params['insecure'] = $server['insecure']; - if(isset($server['ports'])) $params['mport'] = $server['ports']; + if (data_get($protocol_settings, 'obfs.open')) { + $params["obfs"] = "xplus"; + $params["obfsParam"] = data_get($protocol_settings, 'obfs_settings.password'); + } + $params['insecure'] = data_get($protocol_settings, 'tls.allow_insecure'); + if (isset($server['ports'])) + $params['mport'] = $server['ports']; $query = http_build_query($params); $uri = "hysteria://{$server['host']}:{$server['port']}?{$query}#{$server['name']}"; $uri .= "\r\n"; break; case 2: $params = [ - "peer" => $server['server_name'], "obfs" => 'none', "fastopen" => 1 ]; - if($server['is_obfs']) $params['obfs-password'] = $server['server_key']; - if($server['insecure']) $params['insecure'] = $server['insecure']; - if(isset($server['ports'])) $params['mport'] = $server['ports']; + if ($serverName = data_get($protocol_settings, 'tls.server_name')) { + $params['peer'] = $serverName; + } + if (data_get($protocol_settings, 'obfs.open')) { + $params['obfs'] = data_get($protocol_settings, 'obfs.type'); + $params['obfs-password'] = data_get($protocol_settings, 'obfs.password'); + } + $params['insecure'] = data_get($protocol_settings, 'tls.allow_insecure'); + if (isset($server['ports'])) + $params['mport'] = $server['ports']; $query = http_build_query($params); $uri = "hysteria2://{$password}@{$server['host']}:{$server['port']}?{$query}#{$server['name']}"; $uri .= "\r\n"; diff --git a/app/Protocols/Shadowsocks.php b/app/Protocols/Shadowsocks.php index 1cd0022..dd76370 100644 --- a/app/Protocols/Shadowsocks.php +++ b/app/Protocols/Shadowsocks.php @@ -2,9 +2,11 @@ namespace App\Protocols; -class Shadowsocks +use App\Contracts\ProtocolInterface; + +class Shadowsocks implements ProtocolInterface { - public $flag = 'shadowsocks'; + public $flags = ['shadowsocks']; private $servers; private $user; @@ -14,6 +16,11 @@ class Shadowsocks $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $servers = $this->servers; @@ -29,8 +36,9 @@ class Shadowsocks $bytesRemaining = $user['transfer_enable'] - $bytesUsed; foreach ($servers as $item) { - if ($item['type'] === 'shadowsocks' - && in_array($item['cipher'], ['aes-128-gcm', 'aes-256-gcm', 'aes-192-gcm', 'chacha20-ietf-poly1305']) + if ( + $item['type'] === 'shadowsocks' + && in_array(data_get($item, 'protocol_settings.cipher'), ['aes-128-gcm', 'aes-256-gcm', 'aes-192-gcm', 'chacha20-ietf-poly1305']) ) { array_push($configs, self::SIP008($item, $user)); } @@ -41,7 +49,7 @@ class Shadowsocks $subs['bytes_remaining'] = $bytesRemaining; $subs['servers'] = array_merge($subs['servers'] ? $subs['servers'] : [], $configs); - return json_encode($subs, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); + return json_encode($subs, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT); } public static function SIP008($server, $user) @@ -52,7 +60,7 @@ class Shadowsocks "server" => $server['host'], "server_port" => $server['port'], "password" => $user['uuid'], - "method" => $server['cipher'] + "method" => data_get($server, 'protocol_settings.cipher') ]; return $config; } diff --git a/app/Protocols/SingBox.php b/app/Protocols/SingBox.php index 1db6d8c..b5fdf01 100644 --- a/app/Protocols/SingBox.php +++ b/app/Protocols/SingBox.php @@ -2,10 +2,11 @@ namespace App\Protocols; use App\Utils\Helper; +use App\Contracts\ProtocolInterface; -class SingBox +class SingBox implements ProtocolInterface { - public $flag = 'sing-box,hiddify'; + public $flags = ['sing-box', 'hiddify']; private $servers; private $user; private $config; @@ -16,6 +17,11 @@ class SingBox $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $appName = admin_setting('app_name', 'XBoard'); @@ -26,7 +32,7 @@ class SingBox return response() ->json($this->config) - ->header('profile-title', 'base64:'. base64_encode($appName)) + ->header('profile-title', 'base64:' . base64_encode($appName)) ->header('subscription-userinfo', "upload={$user['u']}; download={$user['d']}; total={$user['transfer_enable']}; expire={$user['expired_at']}") ->header('profile-update-interval', '24'); } @@ -45,6 +51,7 @@ class SingBox $outbounds = $this->config['outbounds']; $proxies = []; foreach ($this->servers as $item) { + $protocol_settings = $item['protocol_settings']; if ($item['type'] === 'shadowsocks') { $ssConfig = $this->buildShadowsocks($item['password'], $item); $proxies[] = $ssConfig; @@ -57,12 +64,14 @@ class SingBox $vmessConfig = $this->buildVmess($this->user['uuid'], $item); $proxies[] = $vmessConfig; } - if ($item['type'] === 'vless') { + if ($item['type'] === 'vless' + && in_array(data_get($protocol_settings, 'network'), ['tcp', 'ws', 'grpc', 'http', 'quic', 'httpupgrade']) + ) { $vlessConfig = $this->buildVless($this->user['uuid'], $item); $proxies[] = $vlessConfig; } if ($item['type'] === 'hysteria') { - $hysteriaConfig = $this->buildHysteria($this->user['uuid'], $item, $this->user); + $hysteriaConfig = $this->buildHysteria($this->user['uuid'], $item); $proxies[] = $hysteriaConfig; } } @@ -80,11 +89,12 @@ class SingBox /** * Build rule */ - protected function buildRule(){ + protected function buildRule() + { $rules = $this->config['route']['rules']; // Force the nodes ip to be a direct rule array_unshift($rules, [ - 'ip_cidr' => collect($this->servers)->pluck('host')->map(function($host){ + 'ip_cidr' => collect($this->servers)->pluck('host')->map(function ($host) { return filter_var($host, FILTER_VALIDATE_IP) ? [$host] : Helper::getIpByDomainName($host); })->flatten()->unique()->values(), 'outbound' => 'direct', @@ -99,8 +109,8 @@ class SingBox $array['type'] = 'shadowsocks'; $array['server'] = $server['host']; $array['server_port'] = $server['port']; - $array['method'] = $server['cipher']; - $array['password'] = $password; + $array['method'] = data_get($server, 'protocol_settings.cipher'); + $array['password'] = data_get($server, 'password', $password); return $array; } @@ -108,136 +118,124 @@ class SingBox protected function buildVmess($uuid, $server) { - $array = []; - $array['tag'] = $server['name']; - $array['type'] = 'vmess'; - $array['server'] = $server['host']; - $array['server_port'] = $server['port']; - $array['uuid'] = $uuid; - $array['security'] = 'auto'; - $array['alter_id'] = 0; - $array['transport'] = []; - - if ($server['tls']) { - $tlsConfig = []; - $tlsConfig['enabled'] = true; - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings'] ?? []; - $tlsConfig['insecure'] = $tlsSettings['allowInsecure'] ? true : false; - $tlsConfig['server_name'] = $tlsSettings['serverName'] ?? null; - } - $array['tls'] = $tlsConfig; - } - if ($server['network'] === 'tcp') { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type']) && $tcpSettings['header']['type'] == 'http') - $array['transport']['type'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['path'][0])) { - $paths = $tcpSettings['header']['request']['path']; - $array['transport']['path'] = $paths[array_rand($paths)]; - } - if (isset($tcpSettings['header']['request']['headers']['Host'][0])) { - $hosts = $tcpSettings['header']['request']['headers']['Host']; - $array['transport']['host'] = $hosts; - } - } - if ($server['network'] === 'ws') { - $array['transport']['type'] = 'ws'; - if ($server['networkSettings']) { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['transport']['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['transport']['headers'] = ['Host' => array($wsSettings['headers']['Host'])]; - $array['transport']['max_early_data'] = 2048; - $array['transport']['early_data_header_name'] = 'Sec-WebSocket-Protocol'; - } - } - if ($server['network'] === 'grpc') { - $array['transport']['type'] = 'grpc'; - if ($server['networkSettings']) { - $grpcSettings = $server['networkSettings']; - if (isset($grpcSettings['serviceName'])) - $array['transport']['service_name'] = $grpcSettings['serviceName']; - } + $protocol_settings = $server['protocol_settings']; + $array = [ + 'tag' => $server['name'], + 'type' => 'vmess', + 'server' => $server['host'], + 'server_port' => $server['port'], + 'uuid' => $uuid, + 'security' => 'auto', + 'alter_id' => 0, + 'transport' => [], + 'tls' => $protocol_settings['tls'] ? [ + 'enabled' => true, + 'insecure' => (bool) data_get($protocol_settings, 'tls_settings.allow_insecure'), + ] : null + ]; + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $array['tls']['server_name'] = $serverName; } + $transport = match ($protocol_settings['network']) { + 'tcp' => [ + 'type' => 'http', + 'path' => \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/'])) + ], + 'ws' => [ + 'type' => 'ws', + 'path' => data_get($protocol_settings, 'network_settings.path'), + 'headers' => ($host = data_get($protocol_settings, 'network_settings.headers.Host')) ? ['Host' => $host] : null, + 'max_early_data' => 2048, + 'early_data_header_name' => 'Sec-WebSocket-Protocol' + ], + 'grpc' => [ + 'type' => 'grpc', + 'service_name' => data_get($protocol_settings, 'network_settings.serviceName') + ], + default => null + }; + + if ($transport) { + $array['transport'] = array_filter($transport, fn($value) => !is_null($value)); + } return $array; } protected function buildVless($password, $server) { + $protocol_settings = data_get($server, 'protocol_settings', []); $array = [ "type" => "vless", "tag" => $server['name'], "server" => $server['host'], "server_port" => $server['port'], "uuid" => $password, - "packet_encoding" => "xudp" + "packet_encoding" => "xudp", + 'flow' => data_get($protocol_settings, 'flow', ''), ]; - $tlsSettings = $server['tls_settings'] ?? []; + if ($protocol_settings['tls']) { + $tlsConfig = [ + 'enabled' => true, + 'insecure' => (bool) data_get($protocol_settings, 'tls_settings.allow_insecure'), + 'utls' => [ + 'enabled' => true, + 'fingerprint' => Helper::getRandFingerprint() + ] + ]; - if ($server['tls']) { - $tlsConfig = []; - $tlsConfig['enabled'] = true; - $array['flow'] = !empty($server['flow']) ? $server['flow'] : ""; - $tlsSettings = $server['tls_settings'] ?? []; - if ($server['tls_settings']) { - $tlsConfig['insecure'] = isset($tlsSettings['allow_insecure']) && $tlsSettings['allow_insecure'] == 1 ? true : false; - $tlsConfig['server_name'] = $tlsSettings['server_name'] ?? null; - if ($server['tls'] == 2) { + switch ($protocol_settings['tls']) { + case 1: + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $tlsConfig['server_name'] = $serverName; + } + break; + case 2: + $tlsConfig['server_name'] = data_get($protocol_settings, 'reality_settings.server_name'); $tlsConfig['reality'] = [ 'enabled' => true, - 'public_key' => $tlsSettings['public_key'], - 'short_id' => $tlsSettings['short_id'] + 'public_key' => data_get($protocol_settings, 'reality_settings.public_key'), + 'short_id' => data_get($protocol_settings, 'reality_settings.short_id') ]; - } - $fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; - $tlsConfig['utls'] = [ - "enabled" => true, - "fingerprint" => $fingerprints[array_rand($fingerprints)] - ]; + break; } + $array['tls'] = $tlsConfig; } - if ($server['network'] === 'tcp') { - $tcpSettings = $server['network_settings']; - if (isset($tcpSettings['header']['type']) && $tcpSettings['header']['type'] == 'http') - $array['transport']['type'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['path'])) - $array['transport']['path'] = $tcpSettings['header']['request']['path']; - } - if ($server['network'] === 'ws') { - $array['transport']['type'] = 'ws'; - if ($server['network_settings']) { - $wsSettings = $server['network_settings']; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['transport']['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['transport']['headers'] = ['Host' => array($wsSettings['headers']['Host'])]; - $array['transport']['max_early_data'] = 2048; - $array['transport']['early_data_header_name'] = 'Sec-WebSocket-Protocol'; - } - } - if ($server['network'] === 'grpc') { - $array['transport']['type'] = 'grpc'; - if ($server['network_settings']) { - $grpcSettings = $server['network_settings']; - if (isset($grpcSettings['serviceName'])) - $array['transport']['service_name'] = $grpcSettings['serviceName']; - } - } - if ($server['network'] === 'h2') { - $array['transport']['type'] = 'http'; - if ($server['network_settings']) { - $h2Settings = $server['network_settings']; - if (isset($h2Settings['host'])) - $array['transport']['host'] = array($h2Settings['host']); - if (isset($h2Settings['path'])) - $array['transport']['path'] = $h2Settings['path']; - } + $transport = match ($protocol_settings['network']) { + 'tcp' => data_get($protocol_settings, 'network_settings.header.type') == 'http' ? [ + 'type' => 'http', + 'path' => \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/'])) + ] : null, + 'ws' => array_filter([ + 'type' => 'ws', + 'path' => data_get($protocol_settings, 'network_settings.path'), + 'headers' => ($host = data_get($protocol_settings, 'network_settings.headers.Host')) ? ['Host' => $host] : null, + 'max_early_data' => 2048, + 'early_data_header_name' => 'Sec-WebSocket-Protocol' + ], fn($value) => !is_null($value)), + 'grpc' => [ + 'type' => 'grpc', + 'service_name' => data_get($protocol_settings, 'network_settings.serviceName') + ], + 'h2' => [ + 'type' => 'http', + 'host' => data_get($protocol_settings, 'network_settings.host'), + 'path' => data_get($protocol_settings, 'network_settings.path') + ], + 'httpupgrade' => [ + 'type' => 'httpupgrade', + 'path' => data_get($protocol_settings, 'network_settings.path'), + 'host' => data_get($protocol_settings, 'network_settings.host', $server['host']), + 'headers' => data_get($protocol_settings, 'network_settings.headers') + ], + default => null + }; + + if ($transport) { + $array['transport'] = array_filter($transport, fn($value) => !is_null($value)); } return $array; @@ -245,80 +243,79 @@ class SingBox protected function buildTrojan($password, $server) { - $array = []; - $array['tag'] = $server['name']; - $array['type'] = 'trojan'; - $array['server'] = $server['host']; - $array['server_port'] = $server['port']; - $array['password'] = $password; - - $array['tls'] = [ - 'enabled' => true, - 'insecure' => $server['allow_insecure'] ? true : false, - 'server_name' => $server['server_name'] - ]; - - if (isset($server['network']) && in_array($server['network'], ["grpc", "ws"])) { - $array['transport']['type'] = $server['network']; - // grpc配置 - if ($server['network'] === "grpc" && isset($server['network_settings']['serviceName'])) { - $array['transport']['service_name'] = $server['network_settings']['serviceName']; - } - // ws配置 - if ($server['network'] === "ws") { - if (isset($server['network_settings']['path'])) { - $array['transport']['path'] = $server['network_settings']['path']; - } - if (isset($server['network_settings']['headers']['Host'])) { - $array['transport']['headers'] = ['Host' => array($server['network_settings']['headers']['Host'])]; - } - $array['transport']['max_early_data'] = 2048; - $array['transport']['early_data_header_name'] = 'Sec-WebSocket-Protocol'; - } - } - ; - - return $array; - } - - protected function buildHysteria($password, $server, $user) - { + $protocol_settings = $server['protocol_settings']; $array = [ + 'tag' => $server['name'], + 'type' => 'trojan', 'server' => $server['host'], 'server_port' => $server['port'], + 'password' => $password, 'tls' => [ 'enabled' => true, - 'insecure' => $server['insecure'] ? true : false, - 'server_name' => $server['server_name'] + 'insecure' => (bool) data_get($protocol_settings, 'allow_insecure', false), ] ]; - - if (is_null($server['version']) || $server['version'] == 1) { - $array['auth_str'] = $password; - $array['tag'] = $server['name']; - $array['type'] = 'hysteria'; - $array['up_mbps'] = $user->speed_limit ? min($server['down_mbps'], $user->speed_limit) : $server['down_mbps']; - $array['down_mbps'] = $user->speed_limit ? min($server['up_mbps'], $user->speed_limit) : $server['up_mbps']; - if ($server['is_obfs']) { - $array['obfs'] = $server['server_key']; - } - - $array['disable_mtu_discovery'] = true; - - } elseif ($server['version'] == 2) { - $array['password'] = $password; - $array['tag'] = $server['name']; - $array['type'] = 'hysteria2'; - $array['password'] = $password; - $array['up_mbps'] = $user->speed_limit ? min($server['down_mbps'], $user->speed_limit) : $server['down_mbps']; - $array['down_mbps'] = $user->speed_limit ? min($server['up_mbps'], $user->speed_limit) : $server['up_mbps']; - - if ($server['is_obfs']) { - $array['obfs']['type'] = 'salamander'; - $array['obfs']['password'] = $server['server_key']; - } + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $array['tls']['server_name'] = $serverName; } - + $transport = match (data_get($protocol_settings, 'network')) { + 'grpc' => [ + 'type' => 'grpc', + 'service_name' => data_get($protocol_settings, 'network_settings.serviceName') + ], + 'ws' => [ + 'type' => 'ws', + 'path' => data_get($protocol_settings, 'network_settings.path'), + 'headers' => data_get($protocol_settings, 'network_settings.headers.Host') ? ['Host' => [data_get($protocol_settings, 'network_settings.headers.Host')]] : null, + 'max_early_data' => 2048, + 'early_data_header_name' => 'Sec-WebSocket-Protocol' + ], + default => null + }; + $array['transport'] = $transport; return $array; } + + protected function buildHysteria($password, $server): array + { + $protocol_settings = $server['protocol_settings']; + $baseConfig = [ + 'server' => $server['host'], + 'server_port' => $server['port'], + 'tag' => $server['name'], + 'tls' => [ + 'enabled' => true, + 'insecure' => (bool) $protocol_settings['tls']['allow_insecure'], + ] + ]; + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $baseConfig['tls']['server_name'] = $serverName; + } + $speedConfig = [ + 'up_mbps' => $protocol_settings['bandwidth']['up'], + 'down_mbps' => $protocol_settings['bandwidth']['down'], + ]; + $versionConfig = match (data_get($protocol_settings, 'version', 1)) { + 2 => [ + 'type' => 'hysteria2', + 'password' => $password, + 'obfs' => $protocol_settings['obfs']['open'] ? [ + 'type' => $protocol_settings['obfs']['type'], + 'password' => $protocol_settings['obfs']['password'] + ] : null, + ], + default => [ + 'type' => 'hysteria', + 'auth_str' => $password, + 'obfs' => $protocol_settings['obfs']['password'], + 'disable_mtu_discovery' => true, + ] + }; + + return array_merge( + $baseConfig, + $speedConfig, + $versionConfig + ); + } } diff --git a/app/Protocols/Stash.php b/app/Protocols/Stash.php index 7e004c7..d9a4119 100644 --- a/app/Protocols/Stash.php +++ b/app/Protocols/Stash.php @@ -4,10 +4,11 @@ namespace App\Protocols; use App\Models\ServerHysteria; use Symfony\Component\Yaml\Yaml; +use App\Contracts\ProtocolInterface; -class Stash +class Stash implements ProtocolInterface { - public $flag = 'stash'; + public $flags = ['stash']; private $servers; private $user; @@ -17,6 +18,11 @@ class Stash $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $servers = $this->servers; @@ -37,8 +43,9 @@ class Stash $proxies = []; foreach ($servers as $item) { - if ($item['type'] === 'shadowsocks' - && in_array($item['cipher'], [ + if ( + $item['type'] === 'shadowsocks' + && in_array(data_get($item, 'protocol_settings.cipher'), [ 'aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm', @@ -52,10 +59,15 @@ class Stash array_push($proxy, self::buildVmess($user['uuid'], $item)); array_push($proxies, $item['name']); } - // if ($item['type'] === 'vless') { - // array_push($proxy, self::buildVless($user['uuid'], $item)); - // array_push($proxies, $item['name']); - // } + if ( + $item['type'] === 'vless' + && in_array(data_get($item['protocol_settings'], 'network'), ['tcp', 'ws', 'grpc', 'http', 'h2']) + && in_array(data_get($item['protocol_settings'], 'tls'), [1, 0]) + && in_array(data_get($item['protocol_settings'], 'flow'), ['xtls-rprx-origin', 'xtls-rprx-direct', 'xtls-rprx-splice']) + ) { + array_push($proxy, self::buildVless($user['uuid'], $item)); + array_push($proxies, $item['name']); + } if ($item['type'] === 'hysteria') { array_push($proxy, self::buildHysteria($user['uuid'], $item)); array_push($proxies, $item['name']); @@ -68,23 +80,27 @@ class Stash $config['proxies'] = array_merge($config['proxies'] ? $config['proxies'] : [], $proxy); foreach ($config['proxy-groups'] as $k => $v) { - if (!is_array($config['proxy-groups'][$k]['proxies'])) $config['proxy-groups'][$k]['proxies'] = []; + if (!is_array($config['proxy-groups'][$k]['proxies'])) + $config['proxy-groups'][$k]['proxies'] = []; $isFilter = false; foreach ($config['proxy-groups'][$k]['proxies'] as $src) { foreach ($proxies as $dst) { - if (!$this->isRegex($src)) continue; + if (!$this->isRegex($src)) + continue; $isFilter = true; $config['proxy-groups'][$k]['proxies'] = array_values(array_diff($config['proxy-groups'][$k]['proxies'], [$src])); if ($this->isMatch($src, $dst)) { array_push($config['proxy-groups'][$k]['proxies'], $dst); } } - if ($isFilter) continue; + if ($isFilter) + continue; } - if ($isFilter) continue; + if ($isFilter) + continue; $config['proxy-groups'][$k]['proxies'] = array_merge($config['proxy-groups'][$k]['proxies'], $proxies); } - $config['proxy-groups'] = array_filter($config['proxy-groups'], function($group) { + $config['proxy-groups'] = array_filter($config['proxy-groups'], function ($group) { return $group['proxies']; }); $config['proxy-groups'] = array_values($config['proxy-groups']); @@ -104,12 +120,13 @@ class Stash public static function buildShadowsocks($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $array = []; $array['name'] = $server['name']; $array['type'] = 'ss'; $array['server'] = $server['host']; $array['port'] = $server['port']; - $array['cipher'] = $server['cipher']; + $array['cipher'] = data_get($protocol_settings, 'cipher'); $array['password'] = $uuid; $array['udp'] = true; return $array; @@ -117,6 +134,7 @@ class Stash public static function buildVmess($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $array = []; $array['name'] = $server['name']; $array['type'] = 'vmess'; @@ -127,122 +145,81 @@ class Stash $array['cipher'] = 'auto'; $array['udp'] = true; - if ($server['tls']) { - $array['tls'] = true; - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['allowInsecure']) && !empty($tlsSettings['allowInsecure'])) - $array['skip-cert-verify'] = ($tlsSettings['allowInsecure'] ? true : false); - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $array['servername'] = $tlsSettings['serverName']; - } - } - if ($server['network'] === 'tcp') { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type'])) $array['network'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['path'][0])) $array['http-opts']['path'] = $tcpSettings['header']['request']['path'][0]; - } - if ($server['network'] === 'ws') { - $array['network'] = 'ws'; - if ($server['networkSettings']) { - $wsSettings = $server['networkSettings']; - $array['ws-opts'] = []; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['ws-opts']['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['ws-opts']['headers'] = ['Host' => $wsSettings['headers']['Host']]; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['ws-path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['ws-headers'] = ['Host' => $wsSettings['headers']['Host']]; - } - } - if ($server['network'] === 'grpc') { - $array['network'] = 'grpc'; - if ($server['networkSettings']) { - $grpcSettings = $server['networkSettings']; - $array['grpc-opts'] = []; - if (isset($grpcSettings['serviceName'])) $array['grpc-opts']['grpc-service-name'] = $grpcSettings['serviceName']; - } + $array['tls'] = data_get($protocol_settings, 'tls'); + $array['skip-cert-verify'] = data_get($protocol_settings, 'tls_settings.allow_insecure'); + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $array['servername'] = $serverName; } + switch (data_get($protocol_settings, 'network')) { + case 'tcp': + $array['network'] = data_get($protocol_settings, 'network_settings.header.type'); + $array['http-opts']['path'] = data_get($protocol_settings, 'network_settings.header.request.path', ['/'])[0]; + break; + case 'ws': + $array['network'] = 'ws'; + $array['ws-opts']['path'] = data_get($protocol_settings, 'network_settings.path'); + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) { + $array['ws-opts']['headers'] = ['Host' => $host]; + } + break; + case 'grpc': + $array['network'] = 'grpc'; + $array['grpc-opts'] = []; + $array['grpc-opts']['grpc-service-name'] = data_get($protocol_settings, 'network_settings.serviceName'); + break; + default: + break; + } return $array; } public static function buildVless($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $array = []; $array['name'] = $server['name']; $array['type'] = 'vless'; $array['server'] = $server['host']; $array['port'] = $server['port']; $array['uuid'] = $uuid; - $array['flow'] = !empty($server['flow']) ? $server['flow']: ""; + $array['flow'] = data_get($protocol_settings, 'flow'); $array['udp'] = true; $fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; //随机客户端指纹 - $array['client-fingerprint'] = $fingerprints[rand(0,count($fingerprints) - 1)]; + $array['client-fingerprint'] = $fingerprints[rand(0, count($fingerprints) - 1)]; - if ($server['tls']) { - $array['tls'] = true; - switch($server['tls']){ - case 1: - if ($server['tls_settings']) { - $tlsSettings = $server['tls_settings']; - if (isset($tlsSettings['server_name']) && !empty($tlsSettings['server_name'])) - $array['servername'] = $tlsSettings['server_name']; - } - break; - case 2: - if (!isset($server['network_settings'])) break; - $networkSettings = $server['network_settings']; - if (isset($networkSettings['reality-opts'])){ - $realitySettings = $networkSettings['reality-opts']; - $array['reality-opts'] = []; - $array['reality-opts']['public-key'] = $realitySettings['public-key']; - $array['reality-opts']['short-id'] = $realitySettings['short-id']; - } - break; - } - - } - - if ($server['network'] === 'tcp') { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type']) && $tcpSettings['header']['type'] == 'http') { - $array['network'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['headers']['Host'])){ - $array['http-opts']['headers']['Host'] = $tcpSettings['header']['request']['headers']['Host']; + switch (data_get($protocol_settings, 'tls')) { + case 1: + $array['tls'] = true; + $array['skip-cert-verify'] = data_get($protocol_settings, 'tls_settings.allow_insecure'); + if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { + $array['servername'] = $serverName; } - if (isset($tcpSettings['header']['request']['path'][0])){ - $paths = $tcpSettings['header']['request']['path']; - $array['http-opts']['path'] = $paths[array_rand($paths)]; - }; - } + break; } - if ($server['network'] === 'ws') { - $array['network'] = 'ws'; - if ($server['network_settings']) { - $wsSettings = $server['network_settings']; - $array['ws-opts'] = []; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['ws-opts']['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['ws-opts']['headers'] = ['Host' => $wsSettings['headers']['Host']]; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) - $array['ws-path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) - $array['ws-headers'] = ['Host' => $wsSettings['headers']['Host']]; - } - } - if ($server['network'] === 'grpc') { - $array['network'] = 'grpc'; - if ($server['network_settings']) { - $grpcSettings = $server['network_settings']; - $array['grpc-opts'] = []; - if (isset($grpcSettings['serviceName'])) $array['grpc-opts']['grpc-service-name'] = $grpcSettings['serviceName']; - } + switch (data_get($protocol_settings, 'network')) { + case 'tcp': + $array['network'] = data_get($protocol_settings, 'network_settings.header.type'); + $array['http-opts']['path'] = data_get($protocol_settings, 'network_settings.header.request.path', ['/'])[0]; + break; + case 'ws': + $array['network'] = 'ws'; + $array['ws-opts']['path'] = data_get($protocol_settings, 'network_settings.path'); + if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) { + $array['ws-opts']['headers'] = ['Host' => $host]; + } + break; + case 'grpc': + $array['network'] = 'grpc'; + $array['grpc-opts']['grpc-service-name'] = data_get($protocol_settings, 'network_settings.serviceName'); + break; + // case 'h2': + // $array['network'] = 'h2'; + // $array['h2-opts']['host'] = data_get($protocol_settings, 'network_settings.host'); + // $array['h2-opts']['path'] = data_get($protocol_settings, 'network_settings.path'); + // break; } return $array; @@ -250,6 +227,7 @@ class Stash public static function buildTrojan($password, $server) { + $protocol_settings = $server['protocol_settings']; $array = []; $array['name'] = $server['name']; $array['type'] = 'trojan'; @@ -257,49 +235,48 @@ class Stash $array['port'] = $server['port']; $array['password'] = $password; $array['udp'] = true; - // trojan-go配置 - if(in_array($server['network'], ["grpc", "ws"])){ - $array['network'] = $server['network']; - // grpc配置 - if($server['network'] === "grpc" && isset($server['networkSettings']['serviceName'])) $array['grpc-opts']['grpc-service-name'] = $server['networkSettings']['serviceName']; - // ws配置 - if($server['network'] === "ws") { - if(isset($server['networkSettings']['path'])) { - $array['ws-opts']['path'] = $server['networkSettings']['path']; - } - if(isset($server['networkSettings']['headers']['Host'])){ - $array['ws-opts']['headers']['Host'] = $server['networkSettings']['headers']['Host']; - } - } - }; - if (!empty($server['server_name'])) $array['sni'] = $server['server_name']; - if (!empty($server['allow_insecure'])) $array['skip-cert-verify'] = ($server['allow_insecure'] ? true : false); + switch (data_get($protocol_settings, 'network')) { + case 'tcp': + $array['network'] = data_get($protocol_settings, 'network_settings.header.type'); + $array['http-opts']['path'] = data_get($protocol_settings, 'network_settings.header.request.path', ['/'])[0]; + break; + case 'ws': + $array['network'] = 'ws'; + $array['ws-opts']['path'] = data_get($protocol_settings, 'network_settings.path'); + $array['ws-opts']['headers'] = data_get($protocol_settings, 'network_settings.headers.Host') ? ['Host' => data_get($protocol_settings, 'network_settings.headers.Host')] : null; + break; + } + if ($serverName = data_get($protocol_settings, 'server_name')) { + $array['sni'] = $serverName; + } + $array['skip-cert-verify'] = data_get($protocol_settings, 'allow_insecure'); return $array; } public static function buildHysteria($password, $server) { - $array = []; + $protocol_settings = $server['protocol_settings']; $array['name'] = $server['name']; $array['server'] = $server['host']; $array['port'] = $server['port']; - $array['up-speed'] = $server['up_mbps']; - $array['down-speed'] = $server['down_mbps']; - $array['skip-cert-verify'] = $server['insecure']; - $array['sni'] = $server['server_name']??''; - switch($server['version']){ + $array['up-speed'] = data_get($protocol_settings, 'bandwidth.up'); + $array['down-speed'] = data_get($protocol_settings, 'bandwidth.down'); + $array['skip-cert-verify'] = data_get($protocol_settings, 'tls.allow_insecure'); + if ($serverName = data_get($protocol_settings, 'tls.server_name')) { + $array['sni'] = $serverName; + } + switch (data_get($protocol_settings, 'version')) { case 1: $array['type'] = 'hysteria'; $array['auth-str'] = $password; $array['protocol'] = 'udp'; - $array['obfs'] = $server['server_key']; - $array['alpn'] = [ServerHysteria::$alpnMap[$server['alpn']]]; + $array['obfs'] = data_get($protocol_settings, 'obfs.open') ? data_get($protocol_settings, 'obfs.type') : null; break; case 2: $array['type'] = 'hysteria2'; $array['auth'] = $password; $array['fast-open'] = true; - if(isset($server['ports'])) $array['ports'] = $server['ports']; + $array['ports'] = data_get($protocol_settings, 'ports'); break; } return $array; @@ -308,7 +285,10 @@ class Stash private function isRegex($exp) { - return @preg_match($exp, null) !== false; + if (empty($exp)) { + return false; + } + return @preg_match($exp, '') !== false; } private function isMatch($exp, $str) diff --git a/app/Protocols/Surfboard.php b/app/Protocols/Surfboard.php index be44640..25a15fc 100644 --- a/app/Protocols/Surfboard.php +++ b/app/Protocols/Surfboard.php @@ -3,10 +3,11 @@ namespace App\Protocols; use App\Utils\Helper; +use App\Contracts\ProtocolInterface; -class Surfboard +class Surfboard implements ProtocolInterface { - public $flag = 'surfboard'; + public $flags = ['surfboard']; private $servers; private $user; @@ -16,6 +17,11 @@ class Surfboard $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $servers = $this->servers; @@ -27,8 +33,9 @@ class Surfboard $proxyGroup = ''; foreach ($servers as $item) { - if ($item['type'] === 'shadowsocks' - && in_array($item['cipher'], [ + if ( + $item['type'] === 'shadowsocks' + && in_array(data_get($item, 'protocol_settings.cipher'), [ 'aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm', @@ -71,27 +78,28 @@ class Surfboard $config = str_replace('$proxies', $proxies, $config); $config = str_replace('$proxy_group', rtrim($proxyGroup, ', '), $config); - $upload = round($user['u'] / (1024*1024*1024), 2); - $download = round($user['d'] / (1024*1024*1024), 2); + $upload = round($user['u'] / (1024 * 1024 * 1024), 2); + $download = round($user['d'] / (1024 * 1024 * 1024), 2); $useTraffic = $upload + $download; - $totalTraffic = round($user['transfer_enable'] / (1024*1024*1024), 2); + $totalTraffic = round($user['transfer_enable'] / (1024 * 1024 * 1024), 2); $unusedTraffic = $totalTraffic - $useTraffic; $expireDate = $user['expired_at'] === NULL ? '长期有效' : date('Y-m-d H:i:s', $user['expired_at']); $subscribeInfo = "title={$appName}订阅信息, content=上传流量:{$upload}GB\\n下载流量:{$download}GB\\n剩余流量: { $unusedTraffic }GB\\n套餐流量:{$totalTraffic}GB\\n到期时间:{$expireDate}"; $config = str_replace('$subscribe_info', $subscribeInfo, $config); return response($config, 200) - ->header('content-disposition', "attachment;filename*=UTF-8''".rawurlencode($appName).".conf"); + ->header('content-disposition', "attachment;filename*=UTF-8''" . rawurlencode($appName) . ".conf"); } public static function buildShadowsocks($password, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "{$server['name']}=ss", "{$server['host']}", "{$server['port']}", - "encrypt-method={$server['cipher']}", + "encrypt-method={$protocol_settings['cipher']}", "password={$password}", 'tfo=true', 'udp-relay=true' @@ -104,6 +112,7 @@ class Surfboard public static function buildVmess($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "{$server['name']}=vmess", "{$server['host']}", @@ -114,20 +123,20 @@ class Surfboard 'udp-relay=true' ]; - if ($server['tls']) { + if (data_get($protocol_settings, 'tls')) { array_push($config, 'tls=true'); - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; + if (data_get($protocol_settings, 'tls_settings')) { + $tlsSettings = data_get($protocol_settings, 'tls_settings'); if (isset($tlsSettings['allowInsecure']) && !empty($tlsSettings['allowInsecure'])) array_push($config, 'skip-cert-verify=' . ($tlsSettings['allowInsecure'] ? 'true' : 'false')); if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) array_push($config, "sni={$tlsSettings['serverName']}"); } } - if ($server['network'] === 'ws') { + if (data_get($protocol_settings, 'network_settings.network') === 'ws') { array_push($config, 'ws=true'); - if ($server['networkSettings']) { - $wsSettings = $server['networkSettings']; + if (data_get($protocol_settings, 'network_settings')) { + $wsSettings = data_get($protocol_settings, 'network_settings'); if (isset($wsSettings['path']) && !empty($wsSettings['path'])) array_push($config, "ws-path={$wsSettings['path']}"); if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) @@ -142,17 +151,18 @@ class Surfboard public static function buildTrojan($password, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "{$server['name']}=trojan", "{$server['host']}", "{$server['port']}", "password={$password}", - $server['server_name'] ? "sni={$server['server_name']}" : "", + $protocol_settings['server_name'] ? "sni={$protocol_settings['server_name']}" : "", 'tfo=true', 'udp-relay=true' ]; - if (!empty($server['allow_insecure'])) { - array_push($config, $server['allow_insecure'] ? 'skip-cert-verify=true' : 'skip-cert-verify=false'); + if (!empty($protocol_settings['allow_insecure'])) { + array_push($config, $protocol_settings['allow_insecure'] ? 'skip-cert-verify=true' : 'skip-cert-verify=false'); } $config = array_filter($config); $uri = implode(',', $config); diff --git a/app/Protocols/Surge.php b/app/Protocols/Surge.php index c89f2ef..40b9126 100644 --- a/app/Protocols/Surge.php +++ b/app/Protocols/Surge.php @@ -3,10 +3,11 @@ namespace App\Protocols; use App\Utils\Helper; +use App\Contracts\ProtocolInterface; -class Surge +class Surge implements ProtocolInterface { - public $flag = 'surge'; + public $flags = ['surge']; private $servers; private $user; @@ -16,6 +17,11 @@ class Surge $this->servers = $servers; } + public function getFlags(): array + { + return $this->flags; + } + public function handle() { $servers = $this->servers; @@ -27,35 +33,28 @@ class Surge $proxyGroup = ''; foreach ($servers as $item) { - if ($item['type'] === 'shadowsocks' - && in_array($item['cipher'], [ + if ( + $item['type'] === 'shadowsocks' + && in_array(data_get($item, 'protocol_settings.cipher'), [ 'aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm', 'chacha20-ietf-poly1305' ]) ) { - // [Proxy] $proxies .= self::buildShadowsocks($item['password'], $item); - // [Proxy Group] $proxyGroup .= $item['name'] . ', '; } if ($item['type'] === 'vmess') { - // [Proxy] $proxies .= self::buildVmess($user['uuid'], $item); - // [Proxy Group] $proxyGroup .= $item['name'] . ', '; } if ($item['type'] === 'trojan') { - // [Proxy] $proxies .= self::buildTrojan($user['uuid'], $item); - // [Proxy Group] $proxyGroup .= $item['name'] . ', '; } if ($item['type'] === 'hysteria') { - // [Proxy] $proxies .= self::buildHysteria($user['uuid'], $item); - // [Proxy Group] $proxyGroup .= $item['name'] . ', '; } } @@ -77,27 +76,28 @@ class Surge $config = str_replace('$proxies', $proxies, $config); $config = str_replace('$proxy_group', rtrim($proxyGroup, ', '), $config); - $upload = round($user['u'] / (1024*1024*1024), 2); - $download = round($user['d'] / (1024*1024*1024), 2); + $upload = round($user['u'] / (1024 * 1024 * 1024), 2); + $download = round($user['d'] / (1024 * 1024 * 1024), 2); $useTraffic = $upload + $download; - $totalTraffic = round($user['transfer_enable'] / (1024*1024*1024), 2); + $totalTraffic = round($user['transfer_enable'] / (1024 * 1024 * 1024), 2); $unusedTraffic = $totalTraffic - $useTraffic; $expireDate = $user['expired_at'] === NULL ? '长期有效' : date('Y-m-d H:i:s', $user['expired_at']); $subscribeInfo = "title={$appName}订阅信息, content=上传流量:{$upload}GB\\n下载流量:{$download}GB\\n剩余流量:{ $unusedTraffic }GB\\n套餐流量:{$totalTraffic}GB\\n到期时间:{$expireDate}"; $config = str_replace('$subscribe_info', $subscribeInfo, $config); return response($config, 200) - ->header('content-disposition', "attachment;filename*=UTF-8''".rawurlencode($appName).".conf"); + ->header('content-disposition', "attachment;filename*=UTF-8''" . rawurlencode($appName) . ".conf"); } public static function buildShadowsocks($password, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "{$server['name']}=ss", "{$server['host']}", "{$server['port']}", - "encrypt-method={$server['cipher']}", + "encrypt-method={$protocol_settings['cipher']}", "password={$password}", 'tfo=true', 'udp-relay=true' @@ -110,6 +110,7 @@ class Surge public static function buildVmess($uuid, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "{$server['name']}=vmess", "{$server['host']}", @@ -120,23 +121,23 @@ class Surge 'udp-relay=true' ]; - if ($server['tls']) { + if (data_get($protocol_settings, 'tls')) { array_push($config, 'tls=true'); - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['allowInsecure']) && !empty($tlsSettings['allowInsecure'])) - array_push($config, 'skip-cert-verify=' . ($tlsSettings['allowInsecure'] ? 'true' : 'false')); - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - array_push($config, "sni={$tlsSettings['serverName']}"); + if (data_get($protocol_settings, 'tls_settings')) { + $tlsSettings = data_get($protocol_settings, 'tls_settings'); + if (data_get($tlsSettings, 'allow_insecure')) + array_push($config, 'skip-cert-verify=' . ($tlsSettings['allow_insecure'] ? 'true' : 'false')); + if (data_get($tlsSettings, 'server_name')) + array_push($config, "sni={$tlsSettings['server_name']}"); } } - if ($server['network'] === 'ws') { + if (data_get($protocol_settings, 'network_settings.network') === 'ws') { array_push($config, 'ws=true'); - if ($server['networkSettings']) { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path']) && !empty($wsSettings['path'])) + if (data_get($protocol_settings, 'network_settings')) { + $wsSettings = data_get($protocol_settings, 'network_settings'); + if (data_get($wsSettings, 'path')) array_push($config, "ws-path={$wsSettings['path']}"); - if (isset($wsSettings['headers']['Host']) && !empty($wsSettings['headers']['Host'])) + if (data_get($wsSettings, 'headers.Host')) array_push($config, "ws-headers=Host:{$wsSettings['headers']['Host']}"); } } @@ -148,17 +149,18 @@ class Surge public static function buildTrojan($password, $server) { + $protocol_settings = $server['protocol_settings']; $config = [ "{$server['name']}=trojan", "{$server['host']}", "{$server['port']}", "password={$password}", - $server['server_name'] ? "sni={$server['server_name']}" : "", + $protocol_settings['server_name'] ? "sni={$protocol_settings['server_name']}" : "", 'tfo=true', 'udp-relay=true' ]; - if (!empty($server['allow_insecure'])) { - array_push($config, $server['allow_insecure'] ? 'skip-cert-verify=true' : 'skip-cert-verify=false'); + if (!empty($protocol_settings['allow_insecure'])) { + array_push($config, $protocol_settings['allow_insecure'] ? 'skip-cert-verify=true' : 'skip-cert-verify=false'); } $config = array_filter($config); $uri = implode(',', $config); @@ -169,20 +171,22 @@ class Surge //参考文档: https://manual.nssurge.com/policy/proxy.html public static function buildHysteria($password, $server) { - if($server['version'] != 2) return ''; + $protocol_settings = $server['protocol_settings']; + if ($protocol_settings['version'] != 2) + return ''; $config = [ "{$server['name']}=hysteria2", "{$server['host']}", "{$server['port']}", "password={$password}", - "download-bandwidth={$server['up_mbps']}", - $server['server_name'] ? "sni={$server['server_name']}" : "", + "download-bandwidth={$protocol_settings['bandwidth']['up']}", + $protocol_settings['tls']['server_name'] ? "sni={$protocol_settings['tls']['server_name']}" : "", // 'tfo=true', 'udp-relay=true' ]; - if ($server['insecure']) { - $config[] = $server['insecure'] ? 'skip-cert-verify=true' : 'skip-cert-verify=false'; - } + if (data_get($protocol_settings, 'tls.allow_insecure')) { + $config[] = data_get($protocol_settings, 'tls.allow_insecure') ? 'skip-cert-verify=true' : 'skip-cert-verify=false'; + } $config = array_filter($config); $uri = implode(',', $config); $uri .= "\r\n"; diff --git a/app/Protocols/V2rayN.php b/app/Protocols/V2rayN.php deleted file mode 100644 index 9d2ae6c..0000000 --- a/app/Protocols/V2rayN.php +++ /dev/null @@ -1,196 +0,0 @@ -user = $user; - $this->servers = $servers; - } - - public function handle() - { - $servers = $this->servers; - $user = $this->user; - $uri = ''; - - foreach ($servers as $item) { - if ($item['type'] === 'vmess') { - $uri .= self::buildVmess($user['uuid'], $item); - } - if ($item['type'] === 'vless') { - $uri .= self::buildVless($user['uuid'], $item); - } - if ($item['type'] === 'shadowsocks') { - $uri .= self::buildShadowsocks($item['password'], $item); - } - if ($item['type'] === 'trojan') { - $uri .= self::buildTrojan($user['uuid'], $item); - } - if ($item['type'] === 'hysteria') { - $uri .= General::buildHysteria($user['uuid'], $item); - } - - } - return base64_encode($uri); - } - - public static function buildShadowsocks($password, $server) - { - $name = rawurlencode($server['name']); - $str = str_replace( - ['+', '/', '='], - ['-', '_', ''], - base64_encode("{$server['cipher']}:{$password}") - ); - return "ss://{$str}@{$server['host']}:{$server['port']}#{$name}\r\n"; - } - - public static function buildVmess($uuid, $server) - { - $config = [ - "v" => "2", - "ps" => $server['name'], - "add" => $server['host'], - "port" => (string)$server['port'], - "id" => $uuid, - "aid" => '0', - "net" => $server['network'], - "type" => "none", - "host" => "", - "path" => "", - "tls" => $server['tls'] ? "tls" : "", - ]; - if ($server['tls']) { - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $config['sni'] = $tlsSettings['serverName']; - } - } - if ((string)$server['network'] === 'tcp') { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['path'][0])){ - $paths = $tcpSettings['header']['request']['path']; - $config['path'] = $paths[array_rand($paths)]; - } - if (isset($tcpSettings['header']['request']['headers']['Host'][0])){ - $hosts = $tcpSettings['header']['request']['headers']['Host']; - $config['host'] = $hosts[array_rand($hosts)]; - } - } - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = $wsSettings['headers']['Host']; - } - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['networkSettings']; - if (isset($grpcSettings['serviceName'])) $config['path'] = $grpcSettings['serviceName']; - } - return "vmess://" . base64_encode(json_encode($config)) . "\r\n"; - } - - public static function buildVless($uuid, $server){ - $host = $server['host']; //节点地址 - $port = $server['port']; //节点端口 - $name = $server['name']; //节点名称 - - $config = [ - 'mode' => 'multi', //grpc传输模式 - 'security' => '', //传输层安全 tls/reality - 'encryption' => 'none', //加密方式 - 'type' => $server['network'], //传输协议 - ]; - // 判断是否开启XTLS - if($server['flow']) ($config['flow'] = $server['flow']); - // 如果开启TLS - if ($server['tls']) { - switch($server['tls']){ - case 1: - if ($server['tls_settings']) { - $tlsSettings = $server['tls_settings']; - if (isset($tlsSettings['server_name']) && !empty($tlsSettings['server_name'])) - $config['sni'] = $tlsSettings['server_name']; - $config['security'] = "tls"; - } - break; - case 2: //reality - $config['security'] = "reality"; - $tls_settings = $server['tls_settings']; - if(($tls_settings['public_key'] ?? null) - && ($tls_settings['short_id'] ?? null) - && ($tls_settings['server_name'] ?? null)){ - $config['pbk'] = $tls_settings['public_key']; - $config['sid'] = $tls_settings['short_id']; - $config['sni'] = $tls_settings['server_name']; - $config['servername'] = $tls_settings['server_name']; - $config['spx'] = "/"; - $fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; //随机客户端指纹 - $config['fp'] = $fingerprints[array_rand($fingerprints)]; - }; - break; - } - } - // 如果传输协议为ws - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['network_settings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = $wsSettings['headers']['Host']; - } - // 传输协议为grpc - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['network_settings']; - if (isset($grpcSettings['serviceName'])) $config['serviceName'] = $grpcSettings['serviceName']; - } - - $user = $uuid . '@' . $host . ':' . $port; - $query = http_build_query($config); - $fragment = urlencode($name); - $link = sprintf("vless://%s?%s#%s\r\n", $user, $query, $fragment); - return $link; - } - - public static function buildTrojan($password, $server) - { - $name = rawurlencode($server['name']); - $params = [ - 'allowInsecure' => $server['allow_insecure'], - 'peer' => $server['server_name'], - 'sni' => $server['server_name'] - ]; - // 判断是否是grpc与ws协议 - if(in_array($server['network'], ["grpc", "ws"])){ - $params['type'] = $server['network']; - // grpc配置 - if($server['network'] === "grpc" && isset($server['networkSettings']['serviceName'])) { - $params['serviceName'] = $server['networkSettings']['serviceName']; - }; - // ws配置 - if($server['network'] === "ws") { - if(isset($server['networkSettings']['path'])) { - $params['path'] = $server['networkSettings']['path']; - } - if(isset($server['networkSettings']['headers']['Host'])){ - $params['host'] = $server['networkSettings']['headers']['Host']; - } - } - } - $query = http_build_query($params); - $uri = "trojan://{$password}@{$server['host']}:{$server['port']}?{$query}#{$name}"; - $uri .= "\r\n"; - return $uri; - } - - -} diff --git a/app/Protocols/V2rayNG.php b/app/Protocols/V2rayNG.php deleted file mode 100644 index 7d16c95..0000000 --- a/app/Protocols/V2rayNG.php +++ /dev/null @@ -1,196 +0,0 @@ -user = $user; - $this->servers = $servers; - } - - public function handle() - { - $servers = $this->servers; - $user = $this->user; - $uri = ''; - - foreach ($servers as $item) { - if ($item['type'] === 'vmess') { - $uri .= self::buildVmess($user['uuid'], $item); - } - if ($item['type'] === 'shadowsocks') { - $uri .= self::buildShadowsocks($item['password'], $item); - } - if ($item['type'] === 'trojan') { - $uri .= self::buildTrojan($user['uuid'], $item); - } - if ($item['type'] === 'vless') { - $uri .= self::buildVless($user['uuid'], $item); - } - if ($item['type'] === 'hysteria') { - $uri .= General::buildHysteria($user['uuid'], $item); - } - } - return base64_encode($uri); - } - - public static function buildShadowsocks($password, $server) - { - $name = rawurlencode($server['name']); - $str = str_replace( - ['+', '/', '='], - ['-', '_', ''], - base64_encode("{$server['cipher']}:{$password}") - ); - $uri = "ss://{$str}@{$server['host']}:{$server['port']}"; - if ($server['obfs'] == 'http') { - $uri .= "?plugin=obfs-local;obfs=http;obfs-host={$server['obfs-host']};path={$server['obfs-path']}"; - } - return $uri."#{$name}\r\n"; - } - - public static function buildVmess($uuid, $server) - { - $config = [ - "v" => "2", - "ps" => $server['name'], - "add" => $server['host'], - "port" => (string)$server['port'], - "id" => $uuid, - "aid" => '0', - "net" => $server['network'], - "type" => "none", - "host" => "", - "path" => "", - "tls" => $server['tls'] ? "tls" : "", - ]; - if ($server['tls']) { - if ($server['tlsSettings']) { - $tlsSettings = $server['tlsSettings']; - if (isset($tlsSettings['serverName']) && !empty($tlsSettings['serverName'])) - $config['sni'] = $tlsSettings['serverName']; - } - } - if ((string)$server['network'] === 'tcp') { - $tcpSettings = $server['networkSettings']; - if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type']; - if (isset($tcpSettings['header']['request']['path'][0])){ - $paths = $tcpSettings['header']['request']['path']; - $config['path'] = $paths[array_rand($paths)]; - } - if (isset($tcpSettings['header']['request']['headers']['Host'][0])){ - $hosts = $tcpSettings['header']['request']['headers']['Host']; - $config['host'] = $hosts[array_rand($hosts)]; - } - } - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['networkSettings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = $wsSettings['headers']['Host']; - } - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['networkSettings']; - if (isset($grpcSettings['serviceName'])) $config['path'] = $grpcSettings['serviceName']; - } - return "vmess://" . base64_encode(json_encode($config)) . "\r\n"; - } - - public static function buildVless($uuid, $server){ - $host = $server['host']; //节点地址 - $port = $server['port']; //节点端口 - $name = $server['name']; //节点名称 - - $config = [ - 'mode' => 'multi', //grpc传输模式 - 'security' => '', //传输层安全 tls/reality - 'encryption' => 'none', //加密方式 - 'type' => $server['network'], //传输协议 - ]; - // 判断是否开启XTLS - if($server['flow']) ($config['flow'] = $server['flow']); - // 如果开启TLS - if ($server['tls']) { - switch($server['tls']){ - case 1: - if ($server['tls_settings']) { - $tlsSettings = $server['tls_settings']; - if (isset($tlsSettings['server_name']) && !empty($tlsSettings['server_name'])) - $config['sni'] = $tlsSettings['server_name']; - $config['security'] = "tls"; - } - break; - case 2: //reality - $config['security'] = "reality"; - $tls_settings = $server['tls_settings']; - if(($tls_settings['public_key'] ?? null) - && ($tls_settings['short_id'] ?? null) - && ($tls_settings['server_name'] ?? null)){ - $config['pbk'] = $tls_settings['public_key']; - $config['sid'] = $tls_settings['short_id']; - $config['sni'] = $tls_settings['server_name']; - $config['servername'] = $tls_settings['server_name']; - $config['spx'] = "/"; - $fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; //随机客户端指纹 - $config['fp'] = $fingerprints[rand(0,count($fingerprints) - 1)]; - }; - break; - } - } - // 如果传输协议为ws - if ((string)$server['network'] === 'ws') { - $wsSettings = $server['network_settings']; - if (isset($wsSettings['path'])) $config['path'] = $wsSettings['path']; - if (isset($wsSettings['headers']['Host'])) $config['host'] = $wsSettings['headers']['Host']; - } - // 传输协议为grpc - if ((string)$server['network'] === 'grpc') { - $grpcSettings = $server['network_settings']; - if (isset($grpcSettings['serviceName'])) $config['serviceName'] = $grpcSettings['serviceName']; - } - - $user = $uuid . '@' . $host . ':' . $port; - $query = http_build_query($config); - $fragment = urlencode($name); - $link = sprintf("vless://%s?%s#%s\r\n", $user, $query, $fragment); - return $link; - } - - public static function buildTrojan($password, $server) - { - $name = rawurlencode($server['name']); - $params = [ - 'allowInsecure' => $server['allow_insecure'], - 'peer' => $server['server_name'], - 'sni' => $server['server_name'] - ]; - // 判断是否是grpc与ws协议 - if(in_array($server['network'], ["grpc", "ws"])){ - $params['type'] = $server['network']; - // grpc配置 - if($server['network'] === "grpc" && isset($server['networkSettings']['serviceName'])) { - $params['serviceName'] = $server['networkSettings']['serviceName']; - }; - // ws配置 - if($server['network'] === "ws") { - if(isset($server['networkSettings']['path'])) { - $params['path'] = $server['networkSettings']['path']; - } - if(isset($server['networkSettings']['headers']['Host'])){ - $params['host'] = $server['networkSettings']['headers']['Host']; - } - } - } - $query = http_build_query($params); - $uri = "trojan://{$password}@{$server['host']}:{$server['port']}?{$query}#{$name}"; - $uri .= "\r\n"; - return $uri; - } - -} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php deleted file mode 100755 index d54a184..0000000 --- a/app/Providers/AppServiceProvider.php +++ /dev/null @@ -1,28 +0,0 @@ -app['view']->addNamespace('theme', public_path() . '/theme'); - } -} diff --git a/app/Providers/OctaneSchedulerProvider.php b/app/Providers/OctaneSchedulerProvider.php new file mode 100644 index 0000000..5686c14 --- /dev/null +++ b/app/Providers/OctaneSchedulerProvider.php @@ -0,0 +1,34 @@ +app->runningInConsole()) { + return; + } + // 每半钟执行一次调度检查 + Octane::tick('scheduler', function () { + $lock = Cache::lock('scheduler-lock', 30); + + if ($lock->get()) { + try { + Artisan::call('schedule:run'); + } finally { + $lock->release(); + } + } + })->seconds(30); + } +} \ No newline at end of file diff --git a/app/Providers/PluginServiceProvider.php b/app/Providers/PluginServiceProvider.php new file mode 100644 index 0000000..b28ce4e --- /dev/null +++ b/app/Providers/PluginServiceProvider.php @@ -0,0 +1,41 @@ +app->scoped(PluginManager::class, function ($app) { + return new PluginManager(); + }); + } + + public function boot(): void + { + + if (!file_exists(base_path('plugins'))) { + mkdir(base_path('plugins'), 0755, true); + } + + try { + $plugins = Plugin::query() + ->where('is_enabled', true) + ->get(); + + foreach ($plugins as $plugin) { + $manager = $this->app->make(PluginManager::class); + $manager->enable($plugin->code); + + } + } catch (\Exception $e) { + \Log::error('Failed to load plugins: ' . $e->getMessage()); + } + } +} \ No newline at end of file diff --git a/app/Providers/SettingServiceProvider.php b/app/Providers/SettingServiceProvider.php index 82736e1..86c242d 100644 --- a/app/Providers/SettingServiceProvider.php +++ b/app/Providers/SettingServiceProvider.php @@ -15,8 +15,7 @@ class SettingServiceProvider extends ServiceProvider */ public function register() { - - $this->app->bind(Setting::class, function (Application $app) { + $this->app->scoped(Setting::class, function (Application $app) { return new Setting(); }); diff --git a/app/Services/AuthService.php b/app/Services/AuthService.php index 078e9dd..9b73072 100644 --- a/app/Services/AuthService.php +++ b/app/Services/AuthService.php @@ -2,103 +2,56 @@ namespace App\Services; -use App\Utils\CacheKey; -use App\Utils\Helper; -use Firebase\JWT\JWT; -use Firebase\JWT\Key; use App\Models\User; -use Illuminate\Support\Facades\Cache; -use Illuminate\Http\Request; +use Illuminate\Support\Str; +use Laravel\Sanctum\PersonalAccessToken; class AuthService { - private $user; + private User $user; public function __construct(User $user) { $this->user = $user; } - public function generateAuthData(Request $request) + public function generateAuthData(): array { - $guid = Helper::guid(); - $authData = JWT::encode([ - 'id' => $this->user->id, - 'session' => $guid, - ], config('app.key'), 'HS256'); - self::addSession($this->user->id, $guid, [ - 'ip' => $request->ip(), - 'login_at' => time(), - 'ua' => $request->userAgent() - ]); + // Create a new Sanctum token with device info + $token = $this->user->createToken( + Str::random(20), // token name (device identifier) + ['*'], // abilities + now()->addYear() // expiration + ); + + // Format token: remove ID prefix and add Bearer + $tokenParts = explode('|', $token->plainTextToken); + $formattedToken = 'Bearer ' . ($tokenParts[1] ?? $tokenParts[0]); + return [ 'token' => $this->user->token, + 'auth_data' => $formattedToken, 'is_admin' => $this->user->is_admin, - 'auth_data' => $authData ]; } - public static function decryptAuthData($jwt) + public function getSessions(): array { - try { - if (!Cache::has($jwt)) { - $data = (array)JWT::decode($jwt, new Key(config('app.key'), 'HS256')); - if (!self::checkSession($data['id'], $data['session'])) return false; - $user = User::select([ - 'id', - 'email', - 'is_admin', - 'is_staff' - ]) - ->find($data['id']); - if (!$user) return false; - Cache::put($jwt, $user->toArray(), 3600); - } - return Cache::get($jwt); - } catch (\Exception $e) { - return false; - } + return $this->user->tokens()->get()->toArray(); } - private static function checkSession($userId, $session) + public function removeSession(): bool { - $sessions = (array)Cache::get(CacheKey::get("USER_SESSIONS", $userId)) ?? []; - if (!in_array($session, array_keys($sessions))) return false; + $this->user->tokens()->delete(); return true; } - private static function addSession($userId, $guid, $meta) + public static function findUserByBearerToken(string $bearerToken): ?User { - $cacheKey = CacheKey::get("USER_SESSIONS", $userId); - $sessions = (array)Cache::get($cacheKey, []); - $sessions[$guid] = $meta; - if (!Cache::put( - $cacheKey, - $sessions - )) return false; - return true; - } - - public function getSessions() - { - return (array)Cache::get(CacheKey::get("USER_SESSIONS", $this->user->id), []); - } - - public function removeSession($sessionId) - { - $cacheKey = CacheKey::get("USER_SESSIONS", $this->user->id); - $sessions = (array)Cache::get($cacheKey, []); - unset($sessions[$sessionId]); - if (!Cache::put( - $cacheKey, - $sessions - )) return false; - return true; - } - - public function removeAllSession() - { - $cacheKey = CacheKey::get("USER_SESSIONS", $this->user->id); - return Cache::forget($cacheKey); + $token = str_replace('Bearer ', '', $bearerToken); + + $accessToken = PersonalAccessToken::findToken($token); + + return $accessToken?->tokenable; } } diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php index c8f5021..73848d1 100644 --- a/app/Services/OrderService.php +++ b/app/Services/OrderService.php @@ -11,13 +11,13 @@ use Illuminate\Support\Facades\DB; class OrderService { - CONST STR_TO_TIME = [ - 'month_price' => 1, - 'quarter_price' => 3, - 'half_year_price' => 6, - 'year_price' => 12, - 'two_year_price' => 24, - 'three_year_price' => 36 + const STR_TO_TIME = [ + Plan::PERIOD_MONTHLY => 1, + Plan::PERIOD_QUARTERLY => 3, + Plan::PERIOD_HALF_YEARLY => 6, + Plan::PERIOD_YEARLY => 12, + Plan::PERIOD_TWO_YEARLY => 24, + Plan::PERIOD_THREE_YEARLY => 36 ]; public $order; public $user; @@ -36,37 +36,38 @@ class OrderService if ($order->refund_amount) { $this->user->balance = $this->user->balance + $order->refund_amount; } - try{ + try { DB::beginTransaction(); if ($order->surplus_order_ids) { Order::whereIn('id', $order->surplus_order_ids)->update([ 'status' => Order::STATUS_DISCOUNTED ]); } - switch ((string)$order->period) { - case 'onetime_price': + switch ((string) $order->period) { + case Plan::PERIOD_ONETIME: $this->buyByOneTime($plan); break; - case 'reset_price': + case Plan::PERIOD_RESET_TRAFFIC: $this->buyByResetTraffic(); break; default: $this->buyByPeriod($order, $plan); } - switch ((int)$order->type) { - case 1: + switch ((int) $order->type) { + case Order::STATUS_PROCESSING: $this->openEvent(admin_setting('new_order_event_id', 0)); break; - case 2: + case Order::TYPE_RENEWAL: $this->openEvent(admin_setting('renew_order_event_id', 0)); break; - case 3: + case Order::TYPE_UPGRADE: $this->openEvent(admin_setting('change_order_event_id', 0)); break; } $this->setSpeedLimit($plan->speed_limit); + $this->setDeviceLimit($plan->device_limit); if (!$this->user->save()) { throw new \Exception('用户信息保存失败'); @@ -76,7 +77,7 @@ class OrderService throw new \Exception('订单信息保存失败'); } DB::commit(); - }catch(\Exception $e){ + } catch (\Exception $e) { DB::rollBack(); \Log::error($e); throw new ApiException('开通失败'); @@ -87,12 +88,14 @@ class OrderService public function setOrderType(User $user) { $order = $this->order; - if ($order->period === 'reset_price') { + if ($order->period === Plan::PERIOD_RESET_TRAFFIC) { $order->type = Order::TYPE_RESET_TRAFFIC; } else if ($user->plan_id !== NULL && $order->plan_id !== $user->plan_id && ($user->expired_at > time() || $user->expired_at === NULL)) { - if (!(int)admin_setting('plan_change_enable', 1)) throw new ApiException('目前不允许更改订阅,请联系客服或提交工单操作'); + if (!(int) admin_setting('plan_change_enable', 1)) + throw new ApiException('目前不允许更改订阅,请联系客服或提交工单操作'); $order->type = Order::TYPE_UPGRADE; - if ((int)admin_setting('surplus_enable', 1)) $this->getSurplusValue($user, $order); + if ((int) admin_setting('surplus_enable', 1)) + $this->getSurplusValue($user, $order); if ($order->surplus_amount >= $order->total_amount) { $order->refund_amount = $order->surplus_amount - $order->total_amount; $order->total_amount = 0; @@ -115,17 +118,19 @@ class OrderService $order->total_amount = $order->total_amount - $order->discount_amount; } - public function setInvite(User $user):void + public function setInvite(User $user): void { $order = $this->order; - if ($user->invite_user_id && ($order->total_amount <= 0)) return; + if ($user->invite_user_id && ($order->total_amount <= 0)) + return; $order->invite_user_id = $user->invite_user_id; $inviter = User::find($user->invite_user_id); - if (!$inviter) return; + if (!$inviter) + return; $isCommission = false; - switch ((int)$inviter->commission_type) { + switch ((int) $inviter->commission_type) { case 0: - $commissionFirstTime = (int)admin_setting('commission_first_time_enable', 1); + $commissionFirstTime = (int) admin_setting('commission_first_time_enable', 1); $isCommission = (!$commissionFirstTime || ($commissionFirstTime && !$this->haveValidOrder($user))); break; case 1: @@ -136,7 +141,8 @@ class OrderService break; } - if (!$isCommission) return; + if (!$isCommission) + return; if ($inviter && $inviter->commission_rate) { $order->commission_balance = $order->total_amount * ($inviter->commission_rate / 100); } else { @@ -164,19 +170,22 @@ class OrderService private function getSurplusValueByOneTime(User $user, Order $order) { $lastOneTimeOrder = Order::where('user_id', $user->id) - ->where('period', 'onetime_price') + ->where('period', Plan::PERIOD_ONETIME) ->where('status', Order::STATUS_COMPLETED) ->orderBy('id', 'DESC') ->first(); - if (!$lastOneTimeOrder) return; + if (!$lastOneTimeOrder) + return; $nowUserTraffic = $user->transfer_enable / 1073741824; - if (!$nowUserTraffic) return; + if (!$nowUserTraffic) + return; $paidTotalAmount = ($lastOneTimeOrder->total_amount + $lastOneTimeOrder->balance_amount); - if (!$paidTotalAmount) return; + if (!$paidTotalAmount) + return; $trafficUnitPrice = $paidTotalAmount / $nowUserTraffic; $notUsedTraffic = $nowUserTraffic - (($user->u + $user->d) / 1073741824); $result = $trafficUnitPrice * $notUsedTraffic; - $orderModel = Order::where('user_id', $user->id)->where('period', '!=', 'reset_price')->where('status', Order::STATUS_COMPLETED); + $orderModel = Order::where('user_id', $user->id)->where('period', '!=', Plan::PERIOD_RESET_TRAFFIC)->where('status', Order::STATUS_COMPLETED); $order->surplus_amount = $result > 0 ? $result : 0; $order->surplus_order_ids = array_column($orderModel->get()->toArray(), 'id'); } @@ -184,29 +193,34 @@ class OrderService private function getSurplusValueByPeriod(User $user, Order $order) { $orders = Order::where('user_id', $user->id) - ->whereNotIn('period', ['reset_price', 'onetime_price']) + ->whereNotIn('period', [Plan::PERIOD_RESET_TRAFFIC, Plan::PERIOD_ONETIME]) ->where('status', Order::STATUS_COMPLETED) ->get() ->toArray(); - if (!$orders) return; + if (!$orders) + return; $orderAmountSum = 0; $orderMonthSum = 0; $lastValidateAt = 0; foreach ($orders as $item) { - $period = self::STR_TO_TIME[$item['period']]; - if (strtotime("+{$period} month", $item['created_at']) < time()) continue; + $period = self::STR_TO_TIME[PlanService::getPeriodKey($item['period'])]; + if (strtotime("+{$period} month", $item['created_at']) < time()) + continue; $lastValidateAt = $item['created_at']; $orderMonthSum = $period + $orderMonthSum; $orderAmountSum = $orderAmountSum + ($item['total_amount'] + $item['balance_amount'] + $item['surplus_amount'] - $item['refund_amount']); } - if (!$lastValidateAt) return; + if (!$lastValidateAt) + return; $expiredAtByOrder = strtotime("+{$orderMonthSum} month", $lastValidateAt); - if ($expiredAtByOrder < time()) return; + if ($expiredAtByOrder < time()) + return; $orderSurplusSecond = $expiredAtByOrder - time(); $orderRangeSecond = $expiredAtByOrder - $lastValidateAt; $avgPrice = $orderAmountSum / $orderRangeSecond; $orderSurplusAmount = $avgPrice * $orderSurplusSecond; - if (!$orderSurplusSecond || !$orderSurplusAmount) return; + if (!$orderSurplusSecond || !$orderSurplusAmount) + return; $order->surplus_amount = $orderSurplusAmount > 0 ? $orderSurplusAmount : 0; $order->surplus_order_ids = array_column($orders, 'id'); } @@ -214,20 +228,23 @@ class OrderService public function paid(string $callbackNo) { $order = $this->order; - if ($order->status !== Order::STATUS_PENDING) return true; + if ($order->status !== Order::STATUS_PENDING) + return true; $order->status = Order::STATUS_PROCESSING; $order->paid_at = time(); $order->callback_no = $callbackNo; - if (!$order->save()) return false; + if (!$order->save()) + return false; try { OrderHandleJob::dispatchSync($order->trade_no); } catch (\Exception $e) { + \Log::error($e); return false; } return true; } - public function cancel():bool + public function cancel(): bool { $order = $this->order; try { @@ -244,7 +261,7 @@ class OrderService } DB::commit(); return true; - }catch(\Exception $e){ + } catch (\Exception $e) { DB::rollBack(); \Log::error($e); return false; @@ -256,6 +273,11 @@ class OrderService $this->user->speed_limit = $speedLimit; } + private function setDeviceLimit($deviceLimit) + { + $this->user->device_limit = $deviceLimit; + } + private function buyByResetTraffic() { $this->user->u = 0; @@ -265,14 +287,16 @@ class OrderService private function buyByPeriod(Order $order, Plan $plan) { // change plan process - if ((int)$order->type === 3) { + if ((int) $order->type === Order::TYPE_UPGRADE) { $this->user->expired_at = time(); } $this->user->transfer_enable = $plan->transfer_enable * 1073741824; // 从一次性转换到循环 - if ($this->user->expired_at === NULL) $this->buyByResetTraffic(); + if ($this->user->expired_at === NULL) + $this->buyByResetTraffic(); // 新购 - if ($order->type === 1) $this->buyByResetTraffic(); + if ($order->type === Order::TYPE_NEW_PURCHASE) + $this->buyByResetTraffic(); $this->user->plan_id = $plan->id; $this->user->group_id = $plan->group_id; $this->user->expired_at = $this->getTime($order->period, $this->user->expired_at); @@ -292,18 +316,19 @@ class OrderService if ($timestamp < time()) { $timestamp = time(); } + $str = PlanService::getPeriodKey($str); switch ($str) { - case 'month_price': + case Plan::PERIOD_MONTHLY: return strtotime('+1 month', $timestamp); - case 'quarter_price': + case Plan::PERIOD_QUARTERLY: return strtotime('+3 month', $timestamp); - case 'half_year_price': + case Plan::PERIOD_HALF_YEARLY: return strtotime('+6 month', $timestamp); - case 'year_price': + case Plan::PERIOD_YEARLY: return strtotime('+12 month', $timestamp); - case 'two_year_price': + case Plan::PERIOD_TWO_YEARLY: return strtotime('+24 month', $timestamp); - case 'three_year_price': + case Plan::PERIOD_THREE_YEARLY: return strtotime('+36 month', $timestamp); } } diff --git a/app/Services/PaymentService.php b/app/Services/PaymentService.php index f26fd54..d1d7572 100644 --- a/app/Services/PaymentService.php +++ b/app/Services/PaymentService.php @@ -60,8 +60,16 @@ class PaymentService { $form = $this->payment->form(); $keys = array_keys($form); - foreach ($keys as $key) { - if (isset($this->config[$key])) $form[$key]['value'] = $this->config[$key]; + foreach ($form as $key => $field) { + $form[$key] = [ + 'label' => $field['label'], + 'field_name' => $key, + 'field_type' => $field['type'], + 'type' => $field['type'], + 'placeholder' => $field['placeholder'] ?? '', + 'value' => $this->config[$key] ?? '', + 'select_options' => $field['select_options'] ?? [], + ]; } return $form; } diff --git a/app/Services/PlanService.php b/app/Services/PlanService.php index 9689679..db72b07 100644 --- a/app/Services/PlanService.php +++ b/app/Services/PlanService.php @@ -4,38 +4,190 @@ namespace App\Services; use App\Models\Plan; use App\Models\User; -use Illuminate\Support\Facades\DB; +use App\Exceptions\ApiException; +use Illuminate\Database\Eloquent\Collection; class PlanService { - public $plan; + public Plan $plan; - public function __construct(int $planId) + public function __construct(Plan $plan) { - $this->plan = Plan::lockForUpdate()->find($planId); + $this->plan = $plan; } - public function haveCapacity(): bool + /** + * 获取所有可销售的订阅计划列表 + * 条件:show 和 sell 为 true,且容量充足 + * + * @return Collection + */ + public function getAvailablePlans(): Collection { - if ($this->plan->capacity_limit === NULL) return true; - $count = self::countActiveUsers(); - $count = $count[$this->plan->id]['count'] ?? 0; - return ($this->plan->capacity_limit - $count) > 0; + return Plan::where('show', true) + ->where('sell', true) + ->orderBy('sort') + ->get() + ->filter(function ($plan) { + return $this->hasCapacity($plan); + }); } - public static function countActiveUsers() + /** + * 获取指定订阅计划的可用状态 + * 条件:renew 和 sell 为 true + * + * @param int $planId + * @return Plan|null + */ + public function getAvailablePlan(int $planId): ?Plan { - return User::select( - DB::raw("plan_id"), - DB::raw("count(*) as count") - ) - ->where('plan_id', '!=', NULL) + return Plan::where('id', $planId) + ->where('sell', true) + ->where('renew', true) + ->first(); + } + + /** + * 检查指定计划是否可用于指定用户 + * + * @param Plan $plan + * @param User $user + * @return bool + */ + public function isPlanAvailableForUser(Plan $plan, User $user): bool + { + // 如果是续费 + if ($user->plan_id === $plan->id) { + return $plan->renew; + } + + // 如果是新购 + return $plan->show && $plan->sell && $this->hasCapacity($plan); + } + + public function validatePurchase(User $user, string $period): void + { + if (!$this->plan) { + throw new ApiException(__('Subscription plan does not exist')); + } + + // 转换周期格式为新版格式 + $periodKey = self::getPeriodKey($period); + + if ($periodKey === Plan::PERIOD_RESET_TRAFFIC) { + $this->validateResetTrafficPurchase($user); + return; + } + + // 检查价格时使用新版格式 + if (!isset($this->plan->prices[$periodKey])) { + throw new ApiException(__('This payment period cannot be purchased, please choose another period')); + } + + if ($user->plan_id !== $this->plan->id && !$this->hasCapacity($this->plan)) { + throw new ApiException(__('Current product is sold out')); + } + + $this->validatePlanAvailability($user); + } + + /** + * 智能转换周期格式为新版格式 + * 如果是新版格式直接返回,如果是旧版格式则转换为新版格式 + * + * @param string $period + * @return string + */ + public static function getPeriodKey(string $period): string + { + // 如果是新版格式直接返回 + if (in_array($period, self::getNewPeriods())) { + return $period; + } + + // 如果是旧版格式则转换为新版格式 + return Plan::LEGACY_PERIOD_MAPPING[$period] ?? $period; + } + /** + * 只能转换周期格式为旧版本 + */ + public static function convertToLegacyPeriod(string $period): string + { + return Plan::LEGACY_PERIOD_MAPPING[$period] ?? $period; + } + + /** + * 获取所有支持的新版周期格式 + * + * @return array + */ + public static function getNewPeriods(): array + { + return array_values(Plan::LEGACY_PERIOD_MAPPING); + } + + /** + * 获取旧版周期格式 + * + * @param string $period + * @return string + */ + public static function getLegacyPeriod(string $period): string + { + $flipped = array_flip(Plan::LEGACY_PERIOD_MAPPING); + return $flipped[$period] ?? $period; + } + + protected function validateResetTrafficPurchase(User $user): void + { + if (!app(UserService::class)->isAvailable($user) || $this->plan->id !== $user->plan_id) { + throw new ApiException(__('Subscription has expired or no active subscription, unable to purchase Data Reset Package')); + } + } + + protected function validatePlanAvailability(User $user): void + { + if ((!$this->plan->show && !$this->plan->renew) || (!$this->plan->show && $user->plan_id !== $this->plan->id)) { + throw new ApiException(__('This subscription has been sold out, please choose another subscription')); + } + + if (!$this->plan->renew && $user->plan_id == $this->plan->id) { + throw new ApiException(__('This subscription cannot be renewed, please change to another subscription')); + } + + if (!$this->plan->show && $this->plan->renew && !app(UserService::class)->isAvailable($user)) { + throw new ApiException(__('This subscription has expired, please change to another subscription')); + } + } + + public function hasCapacity(Plan $plan): bool + { + if ($plan->capacity_limit === null) { + return true; + } + + $activeUserCount = User::where('plan_id', $plan->id) ->where(function ($query) { $query->where('expired_at', '>=', time()) - ->orWhere('expired_at', NULL); + ->orWhereNull('expired_at'); }) - ->groupBy("plan_id") - ->get() - ->keyBy('plan_id'); + ->count(); + + return ($plan->capacity_limit - $activeUserCount) > 0; + } + + public function getAvailablePeriods(Plan $plan): array + { + return array_filter( + $plan->getActivePeriods(), + fn($period) => isset($plan->prices[$period]) && $plan->prices[$period] > 0 + ); + } + + public function canResetTraffic(Plan $plan): bool + { + return $plan->reset_traffic_method !== Plan::RESET_TRAFFIC_NEVER + && $plan->getResetTrafficPrice() > 0; } } diff --git a/app/Services/Plugin/AbstractPlugin.php b/app/Services/Plugin/AbstractPlugin.php new file mode 100644 index 0000000..94caa20 --- /dev/null +++ b/app/Services/Plugin/AbstractPlugin.php @@ -0,0 +1,56 @@ +config = $config; + } + + /** + * 获取配置 + */ + public function getConfig(): array + { + return $this->config; + } + + /** + * 注册事件监听器 + */ + protected function listen(string $hook, callable $callback): void + { + HookManager::register($hook, $callback); + } + + /** + * 移除事件监听器 + */ + protected function removeListener(string $hook): void + { + HookManager::remove($hook); + } +} \ No newline at end of file diff --git a/app/Services/Plugin/HookManager.php b/app/Services/Plugin/HookManager.php new file mode 100644 index 0000000..0edc69c --- /dev/null +++ b/app/Services/Plugin/HookManager.php @@ -0,0 +1,43 @@ +getDefaultConfig($pluginCode); + if (empty($defaultConfig)) { + return []; + } + $dbConfig = $this->getDbConfig($pluginCode); + + $result = []; + foreach ($defaultConfig as $key => $item) { + $result[$key] = [ + 'type' => $item['type'], + 'label' => $item['label'] ?? '', + 'placeholder' => $item['placeholder'] ?? '', + 'description' => $item['description'] ?? '', + 'value' => $dbConfig[$key] ?? $item['default'] + ]; + } + + return $result; + } + + /** + * 更新插件配置 + * + * @param string $pluginCode + * @param array $config + * @return bool + */ + public function updateConfig(string $pluginCode, array $config): bool + { + $defaultConfig = $this->getDefaultConfig($pluginCode); + if (empty($defaultConfig)) { + throw new \Exception('插件配置结构不存在'); + } + $values = []; + foreach ($config as $key => $value) { + if (!isset($defaultConfig[$key])) { + continue; + } + $values[$key] = $value; + } + Plugin::query() + ->where('code', $pluginCode) + ->update([ + 'config' => json_encode($values), + 'updated_at' => now() + ]); + + return true; + } + + /** + * 获取插件默认配置 + * + * @param string $pluginCode + * @return array + */ + protected function getDefaultConfig(string $pluginCode): array + { + $configFile = base_path("plugins/{$pluginCode}/config.json"); + if (!File::exists($configFile)) { + return []; + } + + $config = json_decode(File::get($configFile), true); + return $config['config'] ?? []; + } + + /** + * 获取数据库中的配置 + * + * @param string $pluginCode + * @return array + */ + protected function getDbConfig(string $pluginCode): array + { + $plugin = Plugin::query() + ->where('code', $pluginCode) + ->first(); + + if (!$plugin || empty($plugin->config)) { + return []; + } + + return json_decode($plugin->config, true); + } +} \ No newline at end of file diff --git a/app/Services/Plugin/PluginManager.php b/app/Services/Plugin/PluginManager.php new file mode 100644 index 0000000..c133bae --- /dev/null +++ b/app/Services/Plugin/PluginManager.php @@ -0,0 +1,180 @@ +pluginPath = base_path('plugins'); + } + + /** + * 安装插件 + */ + public function install(string $pluginCode): bool + { + $configFile = $this->pluginPath . '/' . $pluginCode . '/config.json'; + + if (!File::exists($configFile)) { + throw new \Exception('Plugin config file not found'); + } + + $config = json_decode(File::get($configFile), true); + if (!$this->validateConfig($config)) { + throw new \Exception('Invalid plugin config'); + } + + // 检查依赖 + if (!$this->checkDependencies($config['require'] ?? [])) { + throw new \Exception('Dependencies not satisfied'); + } + + // 提取配置默认值 + $defaultValues = []; + if (isset($config['config']) && is_array($config['config'])) { + foreach ($config['config'] as $key => $item) { + $defaultValues[$key] = $item['default'] ?? null; + } + } + + // 注册到数据库 + Plugin::create([ + 'code' => $pluginCode, + 'name' => $config['name'], + 'version' => $config['version'], + 'is_enabled' => false, + 'config' => json_encode($defaultValues), + 'installed_at' => now(), + ]); + + return true; + } + + /** + * 启用插件 + */ + public function enable(string $pluginCode): bool + { + $plugin = $this->loadPlugin($pluginCode); + if (!$plugin) { + throw new \Exception('Plugin not found'); + } + + // 获取插件配置 + $dbPlugin = Plugin::query() + ->where('code', $pluginCode) + ->first(); + + if ($dbPlugin && !empty($dbPlugin->config)) { + $plugin->setConfig(json_decode($dbPlugin->config, true)); + } + + // 更新数据库状态 + Plugin::query() + ->where('code', $pluginCode) + ->update([ + 'is_enabled' => true, + 'updated_at' => now(), + ]); + + // 加载路由 + $routesFile = $this->pluginPath . '/' . $pluginCode . '/routes/web.php'; + if (File::exists($routesFile)) { + require $routesFile; + } + + // 初始化插件 + if (method_exists($plugin, 'boot')) { + $plugin->boot(); + } + + return true; + } + + /** + * 禁用插件 + */ + public function disable(string $pluginCode): bool + { + $plugin = $this->loadPlugin($pluginCode); + if (!$plugin) { + throw new \Exception('Plugin not found'); + } + + // 更新数据库状态 + Plugin::query() + ->where('code', $pluginCode) + ->update([ + 'is_enabled' => false, + 'updated_at' => now(), + ]); + + // 清理插件 + if (method_exists($plugin, 'cleanup')) { + $plugin->cleanup(); + } + + return true; + } + + /** + * 卸载插件 + */ + public function uninstall(string $pluginCode): bool + { + // 先禁用插件 + $this->disable($pluginCode); + + // 删除数据库记录 + Plugin::query()->where('code', $pluginCode)->delete(); + + return true; + } + + /** + * 加载插件实例 + */ + protected function loadPlugin(string $pluginCode) + { + $pluginFile = $this->pluginPath . '/' . $pluginCode . '/Plugin.php'; + if (!File::exists($pluginFile)) { + return null; + } + + require_once $pluginFile; + $className = "Plugin\\{$pluginCode}\\Plugin"; + return new $className(); + } + + /** + * 验证配置文件 + */ + protected function validateConfig(array $config): bool + { + return isset($config['code']) + && isset($config['version']) + && isset($config['description']) + && isset($config['author']); + } + + /** + * 检查依赖关系 + */ + protected function checkDependencies(array $requires): bool + { + foreach ($requires as $package => $version) { + if ($package === 'xboard') { + // 检查xboard版本 + // 实现版本比较逻辑 + } + } + return true; + } +} \ No newline at end of file diff --git a/app/Services/ServerService.php b/app/Services/ServerService.php index 60bcefa..b2ff59d 100644 --- a/app/Services/ServerService.php +++ b/app/Services/ServerService.php @@ -2,202 +2,67 @@ namespace App\Services; -use App\Models\ServerHysteria; -use App\Models\ServerLog; +use App\Models\Server; use App\Models\ServerRoute; -use App\Models\ServerShadowsocks; -use App\Models\ServerVless; use App\Models\User; -use App\Models\ServerVmess; -use App\Models\ServerTrojan; -use App\Utils\CacheKey; use App\Utils\Helper; use Illuminate\Support\Collection; -use Illuminate\Support\Facades\Cache; class ServerService { - // 获取可用的 VLESS 服务器列表 - public static function getAvailableVless(User $user): array - { - $servers = []; - $model = ServerVless::orderBy('sort', 'ASC'); - $server = $model->get(); - foreach ($server as $key => $v) { - if (!$v['show']) continue; - $serverData = $v->toArray(); - $serverData['type'] = 'vless'; - if (!in_array($user->group_id, $serverData['group_id'])) continue; - if (strpos($serverData['port'], '-') !== false) { - $serverData['port'] = Helper::randomPort($serverData['port']); - } - if ($serverData['parent_id']) { - $serverData['last_check_at'] = Cache::get(CacheKey::get('SERVER_VLESS_LAST_CHECK_AT', $serverData['parent_id'])); - } else { - $serverData['last_check_at'] = Cache::get(CacheKey::get('SERVER_VLESS_LAST_CHECK_AT', $serverData['id'])); - } - if (isset($serverData['tls_settings'])) { - if (isset($serverData['tls_settings']['private_key'])) { - unset($serverData['tls_settings']['private_key']); + /** + * 获取所有服务器列表 + * @return Collection + */ + public static function getAllServers() + { + return Server::orderBy('sort', 'ASC') + ->get() + ->transform(function (Server $server) { + $server->loadServerStatus(); + return $server; + }); + } + + /** + * 获取指定用户可用的服务器列表 + * @param User $user + * @return array + */ + public static function getAvailableServers(User $user): array + { + return Server::whereJsonContains('group_ids', (string) $user->group_id) + ->where('show', true) + ->orderBy('sort', 'ASC') + ->get() + ->transform(function (Server $server) use ($user) { + $server->loadParentCreatedAt(); + $server->handlePortAllocation(); + $server->loadServerStatus(); + if ($server->type === 'shadowsocks') { + $server->server_key = Helper::getServerKey($server->created_at, 16); } - } + $server->generateShadowsocksPassword($user); - $servers[] = $serverData; - } - - return $servers; + return $server; + }) + ->toArray(); } - // 获取可用的 VMESS 服务器列表 - public static function getAvailableVmess(User $user): array - { - $servers = []; - $model = ServerVmess::orderBy('sort', 'ASC'); - $vmess = $model->get(); - foreach ($vmess as $key => $v) { - if (!$v['show']) continue; - $vmess[$key]['type'] = 'vmess'; - if (!in_array($user->group_id, $vmess[$key]['group_id'])) continue; - if (strpos($vmess[$key]['port'], '-') !== false) { - $vmess[$key]['port'] = Helper::randomPort($vmess[$key]['port']); - } - if ($vmess[$key]['parent_id']) { - $vmess[$key]['last_check_at'] = Cache::get(CacheKey::get('SERVER_VMESS_LAST_CHECK_AT', $vmess[$key]['parent_id'])); - } else { - $vmess[$key]['last_check_at'] = Cache::get(CacheKey::get('SERVER_VMESS_LAST_CHECK_AT', $vmess[$key]['id'])); - } - $servers[] = $vmess[$key]->toArray(); - } + /** + * 加 + */ - return $servers; - } - - // 获取可用的 TROJAN 服务器列表 - public static function getAvailableTrojan(User $user): array - { - $servers = []; - $model = ServerTrojan::orderBy('sort', 'ASC'); - $trojan = $model->get(); - foreach ($trojan as $key => $v) { - if (!$v['show']) continue; - $trojan[$key]['type'] = 'trojan'; - if (!in_array($user->group_id, $trojan[$key]['group_id'])) continue; - if (strpos($trojan[$key]['port'], '-') !== false) { - $trojan[$key]['port'] = Helper::randomPort($trojan[$key]['port']); - } - if ($trojan[$key]['parent_id']) { - $trojan[$key]['last_check_at'] = Cache::get(CacheKey::get('SERVER_TROJAN_LAST_CHECK_AT', $trojan[$key]['parent_id'])); - } else { - $trojan[$key]['last_check_at'] = Cache::get(CacheKey::get('SERVER_TROJAN_LAST_CHECK_AT', $trojan[$key]['id'])); - } - $servers[] = $trojan[$key]->toArray(); - } - return $servers; - } - - // 获取可用的 HYSTERIA 服务器列表 - public static function getAvailableHysteria(User $user) - { - $availableServers = []; - $model = ServerHysteria::orderBy('sort', 'ASC'); - $servers = $model->get()->keyBy('id'); - foreach ($servers as $key => $v) { - if (!$v['show']) continue; - $servers[$key]['type'] = 'hysteria'; - $servers[$key]['last_check_at'] = Cache::get(CacheKey::get('SERVER_HYSTERIA_LAST_CHECK_AT', $v['id'])); - if (!in_array($user->group_id, $v['group_id'])) continue; - if (strpos($v['port'], '-') !== false) { - $servers[$key]['ports'] = $v['port']; - $servers[$key]['port'] = Helper::randomPort($v['port']); - } - if (isset($servers[$v['parent_id']])) { - $servers[$key]['last_check_at'] = Cache::get(CacheKey::get('SERVER_HYSTERIA_LAST_CHECK_AT', $v['parent_id'])); - $servers[$key]['created_at'] = $servers[$v['parent_id']]['created_at']; - } - $servers[$key]['server_key'] = Helper::getServerKey($servers[$key]['created_at'], 16); - $availableServers[] = $servers[$key]->toArray(); - } - return $availableServers; - } - - // 获取可用的 SHADOWSOCKS 服务器列表 - public static function getAvailableShadowsocks(User $user) - { - $servers = []; - $model = ServerShadowsocks::orderBy('sort', 'ASC'); - $shadowsocks = $model->get()->keyBy('id'); - foreach ($shadowsocks as $key => $v) { - if (!$v['show']) continue; - $shadowsocks[$key]['type'] = 'shadowsocks'; - $shadowsocks[$key]['last_check_at'] = Cache::get(CacheKey::get('SERVER_SHADOWSOCKS_LAST_CHECK_AT', $v['id'])); - if (!in_array($user->group_id, $v['group_id'])) continue; - if (strpos($v['port'], '-') !== false) { - $shadowsocks[$key]['port'] = Helper::randomPort($v['port']); - } - if (isset($shadowsocks[$v['parent_id']])) { - $shadowsocks[$key]['last_check_at'] = Cache::get(CacheKey::get('SERVER_SHADOWSOCKS_LAST_CHECK_AT', $v['parent_id'])); - $shadowsocks[$key]['created_at'] = $shadowsocks[$v['parent_id']]['created_at']; - } - // 处理ss2022密码 - $cipherConfiguration = [ - '2022-blake3-aes-128-gcm' => [ - 'serverKeySize' => 16, - 'userKeySize' => 16, - ], - '2022-blake3-aes-256-gcm' => [ - 'serverKeySize' => 32, - 'userKeySize' => 32, - ], - '2022-blake3-chacha20-poly1305' => [ - 'serverKeySize' => 32, - 'userKeySize' => 32, - ] - ]; - $shadowsocks[$key]['password'] = $user['uuid']; - if (array_key_exists($cipher = $v['cipher'], $cipherConfiguration)) { - $config = $cipherConfiguration[$cipher]; - $serverKey = Helper::getServerKey($v['created_at'], $config['serverKeySize']); - $userKey = Helper::uuidToBase64($user['uuid'], $config['userKeySize']); - $shadowsocks[$key]['password'] = "{$serverKey}:{$userKey}"; - } - if ($v['obfs'] === 'http') { - $shadowsocks[$key]['obfs'] = 'http'; - $shadowsocks[$key]['obfs-host'] = $v['obfs_settings']['host']; - $shadowsocks[$key]['obfs-path'] = $v['obfs_settings']['path']; - } - $servers[] = $shadowsocks[$key]->toArray(); - } - return $servers; - } - - // 获取可用的服务器列表 - public static function getAvailableServers(User $user) - { - $servers = Cache::remember('serversAvailable_'. $user->id, 5, function() use($user){ - return array_merge( - self::getAvailableShadowsocks($user), - self::getAvailableVmess($user), - self::getAvailableTrojan($user), - self::getAvailableHysteria($user), - self::getAvailableVless($user) - ); - }); - $tmp = array_column($servers, 'sort'); - array_multisort($tmp, SORT_ASC, $servers); - return array_map(function ($server) { - $server['port'] = (int)$server['port']; - $server['is_online'] = (time() - 300 > $server['last_check_at']) ? 0 : 1; - $server['cache_key'] = "{$server['type']}-{$server['id']}-{$server['updated_at']}-{$server['is_online']}"; - return $server; - }, $servers); - } - - // 获取可用的用户列表 - public static function getAvailableUsers($groupId): Collection + /** + * 根据权限组获取可用的用户列表 + * @param array $groupIds + * @return Collection + */ + public static function getAvailableUsers(array $groupIds) { return User::toBase() - ->whereIn('group_id', $groupId) + ->whereIn('group_id', $groupIds) ->whereRaw('u + d < transfer_enable') ->where(function ($query) { $query->where('expired_at', '>=', time()) @@ -207,147 +72,12 @@ class ServerService ->select([ 'id', 'uuid', - 'speed_limit' + 'speed_limit', + 'device_limit' ]) ->get(); } - // 记录流量日志 - public static function log(int $userId, int $serverId, int $u, int $d, float $rate, string $method) - { - if (($u + $d) < 10240) return true; - $timestamp = strtotime(date('Y-m-d')); - $serverLog = ServerLog::where('log_at', '>=', $timestamp) - ->where('log_at', '<', $timestamp + 3600) - ->where('server_id', $serverId) - ->where('user_id', $userId) - ->where('rate', $rate) - ->where('method', $method) - ->first(); - if ($serverLog) { - try { - $serverLog->increment('u', $u); - $serverLog->increment('d', $d); - return true; - } catch (\Exception $e) { - return false; - } - } else { - $serverLog = new ServerLog(); - $serverLog->user_id = $userId; - $serverLog->server_id = $serverId; - $serverLog->u = $u; - $serverLog->d = $d; - $serverLog->rate = $rate; - $serverLog->log_at = $timestamp; - $serverLog->method = $method; - return $serverLog->save(); - } - } - - // 获取所有 SHADOWSOCKS 服务器列表 - public static function getAllShadowsocks() - { - $servers = ServerShadowsocks::orderBy('sort', 'ASC') - ->get() - ->toArray(); - foreach ($servers as $k => $v) { - $servers[$k]['type'] = 'shadowsocks'; - } - return $servers; - } - - // 获取所有 VMESS 服务器列表 - public static function getAllVMess() - { - $servers = ServerVmess::orderBy('sort', 'ASC') - ->get() - ->toArray(); - foreach ($servers as $k => $v) { - $servers[$k]['type'] = 'vmess'; - } - return $servers; - } - - // 获取所有 VLESS 服务器列表 - public static function getAllVLess() - { - $servers = ServerVless::orderBy('sort', 'ASC') - ->get() - ->toArray(); - foreach ($servers as $k => $v) { - $servers[$k]['type'] = 'vless'; - } - return $servers; - } - - // 获取所有 TROJAN 服务器列表 - public static function getAllTrojan() - { - $servers = ServerTrojan::orderBy('sort', 'ASC') - ->get() - ->toArray(); - foreach ($servers as $k => $v) { - $servers[$k]['type'] = 'trojan'; - } - return $servers; - } - - // 获取所有 HYSTERIA 服务器列表 - public static function getAllHysteria() - { - $servers = ServerHysteria::orderBy('sort', 'ASC') - ->get() - ->toArray(); - foreach ($servers as $k => $v) { - $servers[$k]['type'] = 'hysteria'; - } - return $servers; - } - - // 合并数据 - private static function mergeData(&$servers) - { - foreach ($servers as $k => $v) { - $serverType = strtoupper($v['type']); - - $servers[$k]['online'] = Cache::get(CacheKey::get("SERVER_{$serverType}_ONLINE_USER", $v['parent_id'] ?? $v['id'])) ?? 0; - // 如果是子节点,先尝试从缓存中获取 - if($pid = $v['parent_id']){ - $cacheKey = CacheKey::get('MULTI_SERVER_' . $serverType . '_ONLINE_USER', $pid); - $onlineUsers = Cache::get($cacheKey) ?? []; - $onlineUserSum = collect($onlineUsers)->whereIn('ip', $v['ips'])->sum('online_user'); - $online = ($onlineUserSum > 0 ? $onlineUserSum . "|" : "") . $servers[$k]['online']; - $servers[$k]['online'] = $online; - } - $servers[$k]['last_check_at'] = Cache::get(CacheKey::get("SERVER_{$serverType}_LAST_CHECK_AT", $v['parent_id'] ?? $v['id'])); - $servers[$k]['last_push_at'] = Cache::get(CacheKey::get("SERVER_{$serverType}_LAST_PUSH_AT", $v['parent_id'] ?? $v['id'])); - if ((time() - 300) >= $servers[$k]['last_check_at']) { - $servers[$k]['available_status'] = 0; - } else if ((time() - 300) >= $servers[$k]['last_push_at']) { - $servers[$k]['available_status'] = 1; - } else { - $servers[$k]['available_status'] = 2; - } - } - } - - // 获取所有服务器列表 - public static function getAllServers() - { - $servers = array_merge( - self::getAllShadowsocks(), - self::getAllVMess(), - self::getAllTrojan(), - self::getAllHysteria(), - self::getAllVLess() - ); - self::mergeData($servers); - $tmp = array_column($servers, 'sort'); - array_multisort($tmp, SORT_ASC, $servers); - return $servers; - } - // 获取路由规则 public static function getRoutes(array $routeIds) { @@ -355,61 +85,28 @@ class ServerService // TODO: remove on 1.8.0 foreach ($routes as $k => $route) { $array = json_decode($route->match, true); - if (is_array($array)) $routes[$k]['match'] = $array; + if (is_array($array)) + $routes[$k]['match'] = $array; } // TODO: remove on 1.8.0 return $routes; } - // 获取服务器 + /** + * 根据协议类型和标识获取服务器 + * @param int $serverId + * @param string $serverType + * @return Server|null + */ public static function getServer($serverId, $serverType) { - switch ($serverType) { - case 'vmess': - return ServerVmess::find($serverId); - case 'shadowsocks': - return ServerShadowsocks::find($serverId); - case 'trojan': - return ServerTrojan::find($serverId); - case 'hysteria': - return ServerHysteria::find($serverId); - case 'vless': - return ServerVless::find($serverId); - default: - return false; - } - } - - // 根据节点IP和父级别节点ID查询子节点 - public static function getChildServer($serverId, $serverType, $nodeIp){ - switch ($serverType) { - case 'vmess': - return ServerVmess::query() - ->where("parent_id", $serverId) - ->where('ips',"like", "%\"$nodeIp\"%") - ->first(); - case 'shadowsocks': - return ServerShadowsocks::query() - ->where("parent_id", $serverId) - ->where('ips',"like", "%\"$nodeIp\"%") - ->first(); - case 'trojan': - return ServerTrojan::query() - ->where("parent_id", $serverId) - ->where('ips',"like", "%\"$nodeIp\"%") - ->first(); - case 'hysteria': - return ServerHysteria::query() - ->where("parent_id", $serverId) - ->where('ips',"like", "%\"$nodeIp\"%") - ->first(); - case 'vless': - return ServerVless::query() - ->where("parent_id", $serverId) - ->where('ips',"like", "%\"$nodeIp\"%") - ->first(); - default: - return null; - } + return Server::query() + ->where('type', Server::normalizeType($serverType)) + ->where(function ($query) use ($serverId) { + $query->where('code', $serverId) + ->orWhere('id', $serverId); + }) + ->orderByRaw('CASE WHEN code = ? THEN 0 ELSE 1 END', [$serverId]) + ->first(); } } diff --git a/app/Services/StatisticalService.php b/app/Services/StatisticalService.php index 3a727f0..8d38c63 100644 --- a/app/Services/StatisticalService.php +++ b/app/Services/StatisticalService.php @@ -3,10 +3,12 @@ namespace App\Services; use App\Models\CommissionLog; use App\Models\Order; +use App\Models\Server; use App\Models\Stat; use App\Models\StatServer; use App\Models\StatUser; use App\Models\User; +use Carbon\Carbon; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Redis; @@ -120,7 +122,7 @@ class StatisticalService $key = "{$rate}_{$uid}"; $stats[$key] = $stats[$key] ?? [ 'record_at' => $this->startAt, - 'server_rate' => floatval($rate), + 'server_rate' => number_format($rate, 2, '.', ''), 'u' => 0, 'd' => 0, 'user_id' => intval($userId), @@ -240,6 +242,67 @@ class StatisticalService } } + /** + * 获取指定日期范围内的节点流量排行 + * @param mixed ...$times 可选值:'today', 'tomorrow', 'last_week',或指定日期范围,格式:timestamp + * @return array + */ + + public static function getServerRank(...$times) + { + $startAt = 0; + $endAt = Carbon::tomorrow()->endOfDay()->timestamp; + + if (count($times) == 1) { + switch ($times[0]) { + case 'today': + $startAt = Carbon::today()->startOfDay()->timestamp; + $endAt = Carbon::today()->endOfDay()->timestamp; + break; + case 'yesterday': + $startAt = Carbon::yesterday()->startOfDay()->timestamp; + $endAt = Carbon::yesterday()->endOfDay()->timestamp; + break; + case 'last_week': + $startAt = Carbon::now()->subWeek()->startOfWeek()->timestamp; + $endAt = Carbon::now()->endOfDay()->timestamp; + break; + } + } else if (count($times) == 2) { + $startAt = $times[0]; + $endAt = $times[1]; + } + + $statistics = Server::whereHas( + 'stats', + function ($query) use ($startAt, $endAt) { + $query->where('record_at', '>=', $startAt) + ->where('record_at', '<', $endAt) + ->where('record_type', 'd'); + } + ) + ->get() + ->each(function ($item) { + $item->u = (int) $item->stats()->sum('u'); + $item->d = (int) $item->stats()->sum('d'); + $item->total = (int) $item->u + $item->d; + $item->server_name = optional($item->parent)->name ?? $item->name; + $item->server_id = $item->id; + $item->server_type = $item->type; + }) + ->sortByDesc('total') + ->select([ + 'server_name', + 'server_id', + 'server_type', + 'u', + 'd', + 'total' + ]) + ->values()->toArray(); + return $statistics; + } + private function buildInviteRank($limit) { $stats = User::select([ diff --git a/app/Services/ThemeService.php b/app/Services/ThemeService.php index 6332b2b..c5f1686 100644 --- a/app/Services/ThemeService.php +++ b/app/Services/ThemeService.php @@ -3,34 +3,363 @@ namespace App\Services; use Illuminate\Support\Facades\File; +use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\View; +use Illuminate\Http\UploadedFile; +use Exception; +use ZipArchive; class ThemeService { - private $path; - private $theme; + private const SYSTEM_THEME_DIR = 'theme/'; + private const USER_THEME_DIR = '/storage/theme/'; + private const CONFIG_FILE = 'config.json'; + private const SETTING_PREFIX = 'theme_'; + private const SYSTEM_THEMES = ['Xboard', 'v2board']; - public function __construct($theme) + public function __construct() { - $this->theme = $theme; - $this->path = $path = public_path('theme/'); + $this->registerThemeViewPaths(); } - public function init() + /** + * 注册主题视图路径 + */ + private function registerThemeViewPaths(): void { - $themeConfigFile = $this->path . "{$this->theme}/config.json"; - if (!File::exists($themeConfigFile)) abort(500, "{$this->theme}主题不存在"); - $themeConfig = json_decode(File::get($themeConfigFile), true); - if (!isset($themeConfig['configs']) || !is_array($themeConfig)) abort(500, "{$this->theme}主题配置文件有误"); - $configs = $themeConfig['configs']; - $data = []; - foreach ($configs as $config) { - $data[$config['field_name']] = isset($config['default_value']) ? $config['default_value'] : ''; + // 系统主题路径 + $systemPath = base_path(self::SYSTEM_THEME_DIR); + if (File::exists($systemPath)) { + View::addNamespace('theme', $systemPath); + } + + // 用户主题路径 + $userPath = base_path(self::USER_THEME_DIR); + if (File::exists($userPath)) { + View::prependNamespace('theme', $userPath); + } + } + + /** + * 获取主题视图路径 + */ + public function getThemeViewPath(string $theme): ?string + { + $themePath = $this->getThemePath($theme); + if (!$themePath) { + return null; + } + return $themePath . '/dashboard.blade.php'; + } + + /** + * 获取所有可用主题列表 + */ + public function getList(): array + { + $themes = []; + + // 获取系统主题 + $systemPath = base_path(self::SYSTEM_THEME_DIR); + if (File::exists($systemPath)) { + $themes = $this->getThemesFromPath($systemPath, false); + } + + // 获取用户主题 + $userPath = base_path(self::USER_THEME_DIR); + if (File::exists($userPath)) { + $themes = array_merge($themes, $this->getThemesFromPath($userPath, true)); + } + + return $themes; + } + + /** + * 从指定路径获取主题列表 + */ + private function getThemesFromPath(string $path, bool $canDelete): array + { + return collect(File::directories($path)) + ->mapWithKeys(function ($dir) use ($canDelete) { + $name = basename($dir); + // 检查必要文件是否存在 + if ( + !File::exists($dir . '/' . self::CONFIG_FILE) || + !File::exists($dir . '/dashboard.blade.php') + ) { + return []; + } + $config = $this->readConfigFile($name); + if (!$config) { + return []; + } + + $config['can_delete'] = $canDelete && $name !== admin_setting('current_theme'); + $config['is_system'] = !$canDelete; + return [$name => $config]; + })->toArray(); + } + + /** + * 上传新主题 + */ + public function upload(UploadedFile $file): bool + { + $zip = new ZipArchive; + $tmpPath = storage_path('tmp/' . uniqid()); + + try { + if ($zip->open($file->path()) !== true) { + throw new Exception('无效的主题包'); + } + + // 查找配置文件 + $configEntry = collect(range(0, $zip->numFiles - 1)) + ->map(fn($i) => $zip->getNameIndex($i)) + ->first(fn($name) => basename($name) === self::CONFIG_FILE); + + if (!$configEntry) { + throw new Exception('主题配置文件不存在'); + } + + // 解压并读取配置 + $zip->extractTo($tmpPath); + $zip->close(); + + $sourcePath = $tmpPath . '/' . rtrim(dirname($configEntry), '.'); + $configFile = $sourcePath . '/' . self::CONFIG_FILE; + + if (!File::exists($configFile)) { + throw new Exception('主题配置文件不存在'); + } + + $config = json_decode(File::get($configFile), true); + if (empty($config['name'])) { + throw new Exception('主题名称未配置'); + } + + // 检查是否为系统主题 + if (in_array($config['name'], self::SYSTEM_THEMES)) { + throw new Exception('不能上传与系统主题同名的主题'); + } + + // 检查必要文件 + if (!File::exists($sourcePath . '/dashboard.blade.php')) { + throw new Exception('缺少必要的主题文件:dashboard.blade.php'); + } + + // 确保目标目录存在 + $userThemePath = base_path(self::USER_THEME_DIR); + if (!File::exists($userThemePath)) { + File::makeDirectory($userThemePath, 0755, true); + } + + $targetPath = $userThemePath . $config['name']; + if (File::exists($targetPath)) { + throw new Exception('主题已存在'); + } + + File::copyDirectory($sourcePath, $targetPath); + $this->initConfig($config['name']); + + return true; + + } catch (Exception $e) { + throw $e; + } finally { + // 清理临时文件 + if (File::exists($tmpPath)) { + File::deleteDirectory($tmpPath); + } + } + } + + /** + * 切换主题 + */ + public function switch(string $theme): bool + { + $currentTheme = admin_setting('current_theme'); + if ($theme === $currentTheme) { + return true; } try { - admin_setting(["theme_{$this->theme}" => $data]); - } catch (\Exception $e) { - abort(500, "{$this->theme}初始化失败"); + // 验证主题是否存在 + $themePath = $this->getThemePath($theme); + if (!$themePath) { + throw new Exception('主题不存在'); + } + + // 验证视图文件是否存在 + if (!File::exists($this->getThemeViewPath($theme))) { + throw new Exception('主题视图文件不存在'); + } + + // 复制主题文件到public目录 + $targetPath = public_path('theme/' . $theme); + if (!File::copyDirectory($themePath, $targetPath)) { + throw new Exception('复制主题文件失败'); + } + + // 清理旧主题文件 + if ($currentTheme) { + $oldPath = public_path('theme/' . $currentTheme); + if (File::exists($oldPath)) { + File::deleteDirectory($oldPath); + } + } + + admin_setting(['current_theme' => $theme]); + return true; + + } catch (Exception $e) { + Log::error('Theme switch failed', ['theme' => $theme, 'error' => $e->getMessage()]); + throw $e; } } + + /** + * 删除主题 + */ + public function delete(string $theme): bool + { + try { + // 检查是否为系统主题 + if (in_array($theme, self::SYSTEM_THEMES)) { + throw new Exception('系统主题不能删除'); + } + + // 检查是否为当前使用的主题 + if ($theme === admin_setting('current_theme')) { + throw new Exception('当前使用的主题不能删除'); + } + + // 获取主题路径 + $themePath = base_path(self::USER_THEME_DIR . $theme); + if (!File::exists($themePath)) { + throw new Exception('主题不存在'); + } + + // 删除主题文件 + File::deleteDirectory($themePath); + + // 删除public目录下的主题文件 + $publicPath = public_path('theme/' . $theme); + if (File::exists($publicPath)) { + File::deleteDirectory($publicPath); + } + + // 清理主题配置 + admin_setting([self::SETTING_PREFIX . $theme => null]); + return true; + + } catch (Exception $e) { + Log::error('Theme deletion failed', ['theme' => $theme, 'error' => $e->getMessage()]); + throw $e; + } + } + + /** + * 检查主题是否存在 + */ + public function exists(string $theme): bool + { + return $this->getThemePath($theme) !== null; + } + + /** + * 获取主题路径 + */ + public function getThemePath(string $theme): ?string + { + $systemPath = base_path(self::SYSTEM_THEME_DIR . $theme); + if (File::exists($systemPath)) { + return $systemPath; + } + + $userPath = base_path(self::USER_THEME_DIR . $theme); + if (File::exists($userPath)) { + return $userPath; + } + + return null; + } + + /** + * 获取主题配置 + */ + public function getConfig(string $theme): ?array + { + $config = admin_setting(self::SETTING_PREFIX . $theme); + if ($config === null) { + $this->initConfig($theme); + $config = admin_setting(self::SETTING_PREFIX . $theme); + } + return $config; + } + + /** + * 更新主题配置 + */ + public function updateConfig(string $theme, array $config): bool + { + try { + // 验证主题是否存在 + if (!$this->getThemePath($theme)) { + throw new Exception('主题不存在'); + } + + $schema = $this->readConfigFile($theme); + if (!$schema) { + throw new Exception('主题配置文件无效'); + } + + // 只保留有效的配置字段 + $validFields = collect($schema['configs'] ?? [])->pluck('field_name')->toArray(); + $validConfig = collect($config) + ->only($validFields) + ->toArray(); + + $currentConfig = $this->getConfig($theme) ?? []; + $newConfig = array_merge($currentConfig, $validConfig); + + admin_setting([self::SETTING_PREFIX . $theme => $newConfig]); + return true; + + } catch (Exception $e) { + Log::error('Config update failed', ['theme' => $theme, 'error' => $e->getMessage()]); + throw $e; + } + } + + /** + * 读取主题配置文件 + */ + private function readConfigFile(string $theme): ?array + { + $themePath = $this->getThemePath($theme); + if (!$themePath) { + return null; + } + + $file = $themePath . '/' . self::CONFIG_FILE; + return File::exists($file) ? json_decode(File::get($file), true) : null; + } + + /** + * 初始化主题配置 + */ + private function initConfig(string $theme): void + { + $config = $this->readConfigFile($theme); + if (!$config) { + return; + } + + $defaults = collect($config['configs'] ?? []) + ->mapWithKeys(fn($col) => [$col['field_name'] => $col['default_value'] ?? '']) + ->toArray(); + admin_setting([self::SETTING_PREFIX . $theme => $defaults]); + } } diff --git a/app/Services/UserOnlineService.php b/app/Services/UserOnlineService.php new file mode 100644 index 0000000..5445fa0 --- /dev/null +++ b/app/Services/UserOnlineService.php @@ -0,0 +1,181 @@ +isEmpty()) { + return []; + } + + $cacheKeys = $deviceLimitUsers->pluck('id') + ->map(fn(int $id): string => self::CACHE_PREFIX . $id) + ->all(); + + return collect(cache()->many($cacheKeys)) + ->filter() + ->map(fn(array $data): ?int => $data['alive_ip'] ?? null) + ->filter() + ->mapWithKeys(fn(int $count, string $key): array => [ + (int) Str::after($key, self::CACHE_PREFIX) => $count + ]) + ->all(); + } + + /** + * 获取指定用户的在线设备信息 + */ + public static function getUserDevices(int $userId): array + { + $data = cache()->get(self::CACHE_PREFIX . $userId, []); + if (empty($data)) { + return ['total_count' => 0, 'devices' => []]; + } + + $devices = collect($data) + ->filter(fn(mixed $item): bool => is_array($item) && isset($item['aliveips'])) + ->flatMap(function (array $nodeData, string $nodeKey): array { + return collect($nodeData['aliveips']) + ->mapWithKeys(function (string $ipNodeId) use ($nodeData, $nodeKey): array { + $ip = Str::before($ipNodeId, '_'); + return [ + $ip => [ + 'ip' => $ip, + 'last_seen' => $nodeData['lastupdateAt'], + 'node_type' => Str::before($nodeKey, (string) $nodeData['lastupdateAt']) + ] + ]; + }) + ->all(); + }) + ->values() + ->all(); + + return [ + 'total_count' => $data['alive_ip'] ?? 0, + 'devices' => $devices + ]; + } + + /** + * 更新用户在线数据 + */ + public function updateAliveData(array $data, string $nodeType, int $nodeId): void + { + $updateAt = now()->timestamp; + $nodeKey = $nodeType . $nodeId; + $userUpdates = []; + + foreach ($data as $uid => $ips) { + $cacheKey = self::CACHE_PREFIX . $uid; + $ipsArray = cache()->get($cacheKey, []); + $ipsArray = [ + ...collect($ipsArray) + ->filter( + fn(mixed $value): bool => + is_array($value) && + ($updateAt - ($value['lastupdateAt'] ?? 0) <= self::NODE_DATA_EXPIRY) + ), + $nodeKey => [ + 'aliveips' => $ips, + 'lastupdateAt' => $updateAt + ] + ]; + $count = $this->calculateDeviceCount($ipsArray); + $ipsArray['alive_ip'] = $count; + cache()->put($cacheKey, $ipsArray, now()->addSeconds(self::CACHE_TTL)); + + $userUpdates[] = [ + 'id' => $uid, + 'count' => $count, + ]; + } + + // 使用队列异步更新数据库 + if (!empty($userUpdates)) { + dispatch(new SyncUserOnlineStatusJob($userUpdates)) + ->onQueue('online_sync') + ->afterCommit(); + } + } + + /** + * 批量获取用户在线设备数 + */ + public function getOnlineCounts(array $userIds): array + { + $cacheKeys = collect($userIds) + ->map(fn(int $id): string => self::CACHE_PREFIX . $id) + ->all(); + + return collect(cache()->many($cacheKeys)) + ->filter() + ->map(fn(array $data): int => $data['alive_ip'] ?? 0) + ->all(); + } + + /** + * 获取用户在线设备数 + */ + public function getOnlineCount(int $userId): int + { + $data = cache()->get(self::CACHE_PREFIX . $userId, []); + return $data['alive_ip'] ?? 0; + } + + /** + * 清理过期的在线记录 + */ + public function cleanExpiredOnlineStatus(): void + { + dispatch(function () { + User::query() + ->where('last_online_at', '<', now()->subMinutes(5)) + ->update(['online_count' => 0]); + })->onQueue('online_sync'); + } + + /** + * 计算设备数量 + */ + private function calculateDeviceCount(array $ipsArray): int + { + // 设备限制模式 + return match ((int) admin_setting('device_limit_mode', 0)) { + // 宽松模式 + 1 => collect($ipsArray) + ->filter(fn(mixed $data): bool => is_array($data) && isset($data['aliveips'])) + ->flatMap( + fn(array $data): array => collect($data['aliveips']) + ->map(fn(string $ipNodeId): string => Str::before($ipNodeId, '_')) + ->unique() + ->all() + ) + ->unique() + ->count(), + 0 => collect($ipsArray) + ->filter(fn(mixed $data): bool => is_array($data) && isset($data['aliveips'])) + ->sum(fn(array $data): int => count($data['aliveips'])) + }; + } +} \ No newline at end of file diff --git a/app/Services/UserService.php b/app/Services/UserService.php index e7c4bb3..5cb45c5 100644 --- a/app/Services/UserService.php +++ b/app/Services/UserService.php @@ -2,11 +2,12 @@ namespace App\Services; -use App\Jobs\BatchTrafficFetchJob; +use App\Jobs\StatServerJob; +use App\Jobs\StatUserJob; +use App\Jobs\TrafficFetchJob; use App\Models\Order; use App\Models\Plan; use App\Models\User; -use Illuminate\Support\Facades\Bus; class UserService { @@ -169,26 +170,14 @@ class UserService return true; } - public function trafficFetch(array $server, string $protocol, array $data, string $nodeIp = null) + public function trafficFetch(array $server, string $protocol, array $data) { $timestamp = strtotime(date('Y-m-d')); - $statService = new StatisticalService(); - $statService->setStartAt($timestamp); - // 获取子节点 - $childServer = ($server['parent_id'] == null && $nodeIp) ? ServerService::getChildServer($server['id'], $protocol, $nodeIp) : null; - foreach ($data as $uid => $v) { - $u = $v[0]; - $d = $v[1]; - $targetServer = $childServer ?? $server; - $statService->statUser($targetServer['rate'], $uid, $u, $d); //如果存在子节点则使用子节点的倍率 - if (!blank($childServer)) { //如果存在子节点,则给子节点计算流量 - $statService->statServer($childServer['id'], $protocol, $u, $d); - } - $statService->statServer($server['id'], $protocol, $u, $d); - } - collect($data)->chunk(1000)->each(function ($chunk) use ($timestamp, $server, $protocol, $childServer) { - BatchTrafficFetchJob::dispatch($server, $chunk->toArray(), $protocol, $timestamp, $childServer); + collect($data)->chunk(1000)->each(function ($chunk) use ($timestamp, $server, $protocol) { + TrafficFetchJob::dispatch($server, $chunk->toArray(), $protocol, $timestamp); + StatUserJob::dispatch($server, $chunk->toArray(), $protocol, 'd'); + StatServerJob::dispatch($server, $chunk->toArray(), $protocol, 'd'); }); } } diff --git a/app/Support/Setting.php b/app/Support/Setting.php index fa84b5c..09507b9 100644 --- a/app/Support/Setting.php +++ b/app/Support/Setting.php @@ -2,36 +2,20 @@ namespace App\Support; -use Illuminate\Database\QueryException; use App\Models\Setting as SettingModel; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Fluent; -class Setting extends Fluent +class Setting { + const CACHE_KEY = 'admin_settings'; + + private $cache; public function __construct() { - $this->attributes = self::fromDatabase(); + $this->cache = Cache::store('octane'); } - /** - * 获取配置,并转化为数组. - * - * @param string $key - * @param mixed $default - * @return array - */ - public function getArray($key, $default = []) - { - $value = $this->get($key, $default); - - if (!$value) { - return []; - } - - return is_array($value) ? $value : (json_decode($value, true) ?: []); - } - /** * 获取配置. * @@ -41,7 +25,8 @@ class Setting extends Fluent */ public function get($key, $default = null) { - return Arr::get($this->attributes, $key, $default); + $key = strtolower($key); + return Arr::get($this->fromDatabase(), $key, $default); } /** @@ -50,51 +35,17 @@ class Setting extends Fluent * @param array $data * @return $this */ - public function set($key, $value = null) + public function set($key, $value = null): bool { - $data = is_array($key) ? $key : [$key => $value]; - - foreach ($data as $key => $value) { - Arr::set($this->attributes, $key, $value); + if (is_array($value)) { + $value = json_encode($value); } - - return $this; + $key = strtolower($key); + SettingModel::updateOrCreate(['name' => $key], ['value' => $value]); + $this->cache->forget(self::CACHE_KEY); + return true; } - /** - * 追加数据. - * - * @param mixed $key - * @param mixed $value - * @param mixed $k - * @return $this - */ - public function add($key, $value, $k = null) - { - $results = $this->getArray($key); - - if ($k !== null) { - $results[] = $value; - } else { - $results[$k] = $value; - } - - return $this->set($key, $results); - } - - /** - * 批量追加数据. - * - * @param string $key - * @param array $value - * @return $this - */ - public function addMany($key, array $value) - { - $results = $this->getArray($key); - - return $this->set($key, array_merge($results, $value)); - } /** * 保存配置到数据库. @@ -102,43 +53,40 @@ class Setting extends Fluent * @param array $data * @return $this */ - public function save(array $data = []) + public function save(array $data = []): bool { - if ($data) { - $this->set($data); + foreach ($data as $key => $value) { + $this->set($key, $value); } - foreach ($this->attributes as $key => $value) { - if (is_array($value)) { - $value = json_encode($value); - } - - $model = SettingModel::query() - ->where('name', $key) - ->first() ?: new SettingModel(); - - $model->fill([ - 'name' => $key, - 'value' => (string) $value, - ])->save(); - } - Cache::forget('admin_settings'); - - return $this; + return true; } /** - * @return static + * 删除配置信息 + * + * @param string $key + * @return bool */ - public static function fromDatabase() + public function remove($key): bool + { + SettingModel::where('name', $key)->delete(); + $this->cache->forget(self::CACHE_KEY); + return true; + } + + /** + * 获取配置信息. + * @return array + */ + public function fromDatabase(): array { - $values = []; try { - $values = Cache::remember('admin_settings', env('ADMIN_SETTING_CACHE', 0), function () { - return SettingModel::pluck('value', 'name')->toArray(); + return $this->cache->rememberForever(self::CACHE_KEY, function (): array { + return array_change_key_case(SettingModel::pluck('value', 'name')->toArray(), CASE_LOWER); }); - } catch (QueryException $e) { + } catch (\Throwable $th) { + return []; } - return $values; } } diff --git a/app/Utils/Helper.php b/app/Utils/Helper.php index 341df4e..b7df1cf 100644 --- a/app/Utils/Helper.php +++ b/app/Utils/Helper.php @@ -119,9 +119,9 @@ class Helper return $subscribeUrl ? rtrim($subscribeUrl, '/') . $path : url($path); } - public static function randomPort($range) { + public static function randomPort($range): int { $portRange = explode('-', $range); - return rand($portRange[0], $portRange[1]); + return random_int($portRange[0], $portRange[1]); } public static function base64EncodeUrlSafe($data) @@ -161,4 +161,15 @@ class Helper public static function getIpByDomainName($domain) { return gethostbynamel($domain) ?: []; } + + public static function getRandFingerprint() { + $fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; + return \Arr::random($fingerprints); + } + + public static function encodeURIComponent($str) { + $revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')'); + return strtr(rawurlencode($str), $revert); + } + } diff --git a/bin/fswatch b/bin/fswatch deleted file mode 100755 index dd60014..0000000 --- a/bin/fswatch +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash -WORK_DIR=$1 -if [ ! -n "${WORK_DIR}" ] ;then - WORK_DIR="." -fi - -echo "Restarting LaravelS..." -./bin/laravels restart -d -i - -echo "Starting fswatch..." -LOCKING=0 -fswatch -e ".*" -i "\\.php$" -r ${WORK_DIR} | while read file -do - if [[ ! ${file} =~ .php$ ]] ;then - continue - fi - if [ ${LOCKING} -eq 1 ] ;then - echo "Reloading, skipped." - continue - fi - echo "File ${file} has been modified." - LOCKING=1 - ./bin/laravels reload - LOCKING=0 -done -exit 0 \ No newline at end of file diff --git a/bin/inotify b/bin/inotify deleted file mode 100755 index ea3a3bd..0000000 --- a/bin/inotify +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash -WORK_DIR=$1 -if [ ! -n "${WORK_DIR}" ] ;then - WORK_DIR="." -fi - -echo "Restarting LaravelS..." -./bin/laravels restart -d -i - -echo "Starting inotifywait..." -LOCKING=0 - -inotifywait --event modify --event create --event move --event delete -mrq ${WORK_DIR} | while read file - -do - if [[ ! ${file} =~ .php$ ]] ;then - continue - fi - if [ ${LOCKING} -eq 1 ] ;then - echo "Reloading, skipped." - continue - fi - echo "File ${file} has been modified." - LOCKING=1 - ./bin/laravels reload - LOCKING=0 -done -exit 0 \ No newline at end of file diff --git a/bin/laravels b/bin/laravels deleted file mode 100755 index c17313e..0000000 --- a/bin/laravels +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/env php -prefixes[$prefix]) === false) { - $this->prefixes[$prefix] = []; - } - - // retain the base directory for the namespace prefix - if ($prepend) { - array_unshift($this->prefixes[$prefix], $base_dir); - } else { - $this->prefixes[$prefix][] = $base_dir; - } - } - - /** - * Loads the class file for a given class name. - * - * @param string $class The fully-qualified class name. - * @return mixed The mapped file name on success, or boolean false on - * failure. - */ - public function loadClass($class) - { - // the current namespace prefix - $prefix = $class; - - // work backwards through the namespace names of the fully-qualified - // class name to find a mapped file name - while (false !== $pos = strrpos($prefix, '\\')) { - // retain the trailing namespace separator in the prefix - $prefix = substr($class, 0, $pos + 1); - - // the rest is the relative class name - $relative_class = substr($class, $pos + 1); - - // try to load a mapped file for the prefix and relative class - $mapped_file = $this->loadMappedFile($prefix, $relative_class); - if ($mapped_file) { - return $mapped_file; - } - - // remove the trailing namespace separator for the next iteration - // of strrpos() - $prefix = rtrim($prefix, '\\'); - } - - // never found a mapped file - return false; - } - - /** - * Load the mapped file for a namespace prefix and relative class. - * - * @param string $prefix The namespace prefix. - * @param string $relative_class The relative class name. - * @return mixed Boolean false if no mapped file can be loaded, or the - * name of the mapped file that was loaded. - */ - protected function loadMappedFile($prefix, $relative_class) - { - // are there any base directories for this namespace prefix? - if (isset($this->prefixes[$prefix]) === false) { - return false; - } - - // look through base directories for this namespace prefix - foreach ($this->prefixes[$prefix] as $base_dir) { - // replace the namespace prefix with the base directory, - // replace namespace separators with directory separators - // in the relative class name, append with .php - $file = $base_dir - . str_replace('\\', '/', $relative_class) - . '.php'; - - // if the mapped file exists, require it - if ($this->requireFile($file)) { - // yes, we're done - return $file; - } - } - - // never found it - return false; - } - - /** - * If a file exists, require it from the file system. - * - * @param string $file The file to require. - * @return bool True if the file exists, false if not. - */ - public function requireFile($file) - { - if (file_exists($file)) { - require $file; - return true; - } - return false; - } -} - -$basePath = dirname(__DIR__) . '/'; -$loader = new Psr4Autoloader(); -$loader->register(); - -// Register laravel-s -$loader->addNamespace('Hhxsv5\LaravelS', $basePath . '/vendor/hhxsv5/laravel-s/src'); - -// Register laravel-s dependencies - -// To fix issue #364 https://github.com/hhxsv5/laravel-s/issues/364 -$loader->addNamespace('Symfony\Polyfill\Php80', $basePath . '/vendor/symfony/polyfill-php80'); -$loader->requireFile($basePath . '/vendor/symfony/polyfill-php80/bootstrap.php'); - -$loader->addNamespace('Symfony\Component\Console', $basePath . '/vendor/symfony/console'); -$loader->addNamespace('Symfony\Contracts\Service', $basePath . '/vendor/symfony/service-contracts'); -$loader->addNamespace('Symfony\Contracts', $basePath . '/vendor/symfony/contracts'); - -$command = new Hhxsv5\LaravelS\Console\Portal($basePath); -$input = new Symfony\Component\Console\Input\ArgvInput(); -$output = new Symfony\Component\Console\Output\ConsoleOutput(); -$code = $command->run($input, $output); -exit($code); \ No newline at end of file diff --git a/compose.sample.yaml b/compose.sample.yaml new file mode 100644 index 0000000..6931693 --- /dev/null +++ b/compose.sample.yaml @@ -0,0 +1,31 @@ +services: + web: + image: ghcr.io/cedar2025/xboard:latest + volumes: + - ./.docker/.data/redis/:/data/ + - ./:/www/ + environment: + - docker=true + depends_on: + - redis + network_mode: host + command: php artisan octane:start --port=7001 --host=0.0.0.0 + restart: on-failure + horizon: + image: ghcr.io/cedar2025/xboard:latest + volumes: + - ./.docker/.data/redis/:/data/ + - ./:/www/ + restart: on-failure + network_mode: host + command: php artisan horizon + depends_on: + - redis + redis: + image: redis:7-alpine + command: redis-server --unixsocket /data/redis.sock --unixsocketperm 777 --save 900 1 --save 300 10 --save 60 10000 + restart: unless-stopped + volumes: + - ./.docker/.data/redis:/data + sysctls: + net.core.somaxconn: 1024 \ No newline at end of file diff --git a/composer.json b/composer.json index e83ffd7..67a67b0 100755 --- a/composer.json +++ b/composer.json @@ -11,19 +11,18 @@ ], "license": "MIT", "require": { - "php": "^8.1", - "cedar2025/http-foundation": "6.4.x-dev", - "cweagans/composer-patches": "^1.7", + "php": "^8.2", + "bacon/bacon-qr-code": "^2.0", "doctrine/dbal": "^3.7", - "firebase/php-jwt": "^6.3", "google/cloud-storage": "^1.35", "google/recaptcha": "^1.2", - "guzzlehttp/guzzle": "^7.4.3", - "hhxsv5/laravel-s": "~3.7.0", - "joanhey/adapterman": "^0.6.1", - "laravel/framework": "10.48.22", - "laravel/horizon": "^5.9.6", - "laravel/tinker": "^2.5", + "guzzlehttp/guzzle": "^7.8", + "laravel/framework": "^11.0", + "laravel/horizon": "^5.21", + "laravel/octane": "^2.3", + "laravel/prompts": "^0.1.13", + "laravel/sanctum": "^4.0", + "laravel/tinker": "^2.9", "linfo/linfo": "^4.0", "paragonie/sodium_compat": "^1.20", "php-curl-class/php-curl-class": "^8.6", @@ -37,28 +36,20 @@ "require-dev": { "barryvdh/laravel-debugbar": "^3.9", "fakerphp/faker": "^1.9.1", - "mockery/mockery": "^1.3.1", - "nunomaduro/collision": "^7.10", + "mockery/mockery": "^1.6", + "nunomaduro/collision": "^8.0", "orangehill/iseed": "^3.0", - "phpunit/phpunit": "^10.0", - "spatie/laravel-ignition": "^2.0" + "phpunit/phpunit": "^10.5", + "spatie/laravel-ignition": "^2.4" }, "config": { "optimize-autoloader": true, "preferred-install": "dist", - "sort-packages": true, - "allow-plugins": { - "cweagans/composer-patches": true - } + "sort-packages": true }, "extra": { "laravel": { "dont-discover": [] - }, - "patches": { - "joanhey/adapterman": { - "http": "patches/Http.patch" - } } }, "autoload": { diff --git a/config/app.php b/config/app.php index 997628a..1b7311d 100755 --- a/config/app.php +++ b/config/app.php @@ -161,7 +161,6 @@ return [ Illuminate\Translation\TranslationServiceProvider::class, Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, - Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class, /* * Package Service Providers... @@ -170,64 +169,14 @@ return [ /* * Application Service Providers... */ - App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, // App\Providers\BroadcastServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\HorizonServiceProvider::class, App\Providers\RouteServiceProvider::class, App\Providers\SettingServiceProvider::class, - - ], - - /* - |-------------------------------------------------------------------------- - | Class Aliases - |-------------------------------------------------------------------------- - | - | This array of class aliases will be registered when this application - | is started. However, feel free to register as many as you wish as - | the aliases are "lazy" loaded so they don't hinder performance. - | - */ - - 'aliases' => [ - - 'App' => Illuminate\Support\Facades\App::class, - 'Arr' => Illuminate\Support\Arr::class, - 'Artisan' => Illuminate\Support\Facades\Artisan::class, - 'Auth' => Illuminate\Support\Facades\Auth::class, - 'Blade' => Illuminate\Support\Facades\Blade::class, - 'Broadcast' => Illuminate\Support\Facades\Broadcast::class, - 'Bus' => Illuminate\Support\Facades\Bus::class, - 'Cache' => Illuminate\Support\Facades\Cache::class, - 'Config' => Illuminate\Support\Facades\Config::class, - 'Cookie' => Illuminate\Support\Facades\Cookie::class, - 'Crypt' => Illuminate\Support\Facades\Crypt::class, - 'DB' => Illuminate\Support\Facades\DB::class, - 'Eloquent' => Illuminate\Database\Eloquent\Model::class, - 'Event' => Illuminate\Support\Facades\Event::class, - 'File' => Illuminate\Support\Facades\File::class, - 'Gate' => Illuminate\Support\Facades\Gate::class, - 'Hash' => Illuminate\Support\Facades\Hash::class, - 'Lang' => Illuminate\Support\Facades\Lang::class, - 'Log' => Illuminate\Support\Facades\Log::class, - 'Mail' => Illuminate\Support\Facades\Mail::class, - 'Notification' => Illuminate\Support\Facades\Notification::class, - 'Password' => Illuminate\Support\Facades\Password::class, - 'Queue' => Illuminate\Support\Facades\Queue::class, - 'Redirect' => Illuminate\Support\Facades\Redirect::class, - 'Redis' => Illuminate\Support\Facades\Redis::class, - 'Request' => Illuminate\Support\Facades\Request::class, - 'Response' => Illuminate\Support\Facades\Response::class, - 'Route' => Illuminate\Support\Facades\Route::class, - 'Schema' => Illuminate\Support\Facades\Schema::class, - 'Session' => Illuminate\Support\Facades\Session::class, - 'Storage' => Illuminate\Support\Facades\Storage::class, - 'Str' => Illuminate\Support\Str::class, - 'URL' => Illuminate\Support\Facades\URL::class, - 'Validator' => Illuminate\Support\Facades\Validator::class, - 'View' => Illuminate\Support\Facades\View::class, + App\Providers\OctaneSchedulerProvider::class, + App\Providers\PluginServiceProvider::class, ], @@ -239,5 +188,5 @@ return [ | The only modification by laravel config | */ - 'version' => '0.1.1-dev' + 'version' => '1.0.0' ]; diff --git a/config/auth.php b/config/auth.php index 897dc82..c75105f 100755 --- a/config/auth.php +++ b/config/auth.php @@ -14,7 +14,7 @@ return [ */ 'defaults' => [ - 'guard' => 'web', + 'guard' => 'api', 'passwords' => 'users', ], @@ -42,7 +42,7 @@ return [ ], 'api' => [ - 'driver' => 'token', + 'driver' => 'sanctum', 'provider' => 'users', 'hash' => false, ], @@ -68,7 +68,7 @@ return [ 'providers' => [ 'users' => [ 'driver' => 'eloquent', - 'model' => App\User::class, + 'model' => App\Models\User::class, ], // 'users' => [ diff --git a/config/cache.php b/config/cache.php index aef6c4a..b97535c 100755 --- a/config/cache.php +++ b/config/cache.php @@ -75,6 +75,10 @@ return [ 'driver' => 'redis', 'connection' => 'cache', ], + + 'octane' => [ + 'driver' => 'octane' + ], 'dynamodb' => [ 'driver' => 'dynamodb', diff --git a/config/database.php b/config/database.php index df5152c..7c0c3ab 100755 --- a/config/database.php +++ b/config/database.php @@ -59,8 +59,14 @@ return [ 'strict' => true, 'engine' => null, 'options' => (extension_loaded('pdo_mysql') ? array_filter([ - PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA') - ]) : []) + [ \PDO::ATTR_PERSISTENT => true ], + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + PDO::ATTR_PERSISTENT => false, + ]) : []), + 'pool' => [ + 'min_connections' => 1, + 'max_connections' => 10, + 'idle_timeout' => 60, + ], ], 'pgsql' => [ diff --git a/config/horizon.php b/config/horizon.php index 55fbd12..99ec3d3 100644 --- a/config/horizon.php +++ b/config/horizon.php @@ -3,8 +3,8 @@ use Illuminate\Support\Str; use Linfo\Linfo; -$lInfo = new Linfo(); -$parser = $lInfo->getParser(); +// $lInfo = new Linfo(); +// $parser = $lInfo->getParser(); return [ @@ -175,14 +175,15 @@ return [ 'queue' => [ 'order_handle', 'traffic_fetch', - 'batch_traffic_fetch', + 'stat', 'send_email', 'send_email_mass', 'send_telegram', + 'online_sync' ], 'balance' => 'auto', 'minProcesses' => 1, - 'maxProcesses' => (int)ceil($parser->getRam()['total'] / 1024 / 1024 / 1024 * 6), + 'maxProcesses' => 20, 'tries' => 1, 'balanceCooldown' => 3, ], diff --git a/config/laravels.php b/config/laravels.php deleted file mode 100644 index ff7aedf..0000000 --- a/config/laravels.php +++ /dev/null @@ -1,315 +0,0 @@ - env('LARAVELS_LISTEN_IP', '127.0.0.1'), - - /* - |-------------------------------------------------------------------------- - | The port of the server - |-------------------------------------------------------------------------- - | - | Require root privilege if port is less than 1024. - | - */ - - 'listen_port' => env('LARAVELS_LISTEN_PORT', 5200), - - /* - |-------------------------------------------------------------------------- - | The socket type of the server - |-------------------------------------------------------------------------- - | - | Usually, you don’t need to care about it. - | Unless you want Nginx to proxy to the UnixSocket Stream file, you need - | to modify it to SWOOLE_SOCK_UNIX_STREAM, and listen_ip is the path of UnixSocket Stream file. - | List of socket types: - | SWOOLE_SOCK_TCP: TCP - | SWOOLE_SOCK_TCP6: TCP IPv6 - | SWOOLE_SOCK_UDP: UDP - | SWOOLE_SOCK_UDP6: UDP IPv6 - | SWOOLE_UNIX_DGRAM: Unix socket dgram - | SWOOLE_UNIX_STREAM: Unix socket stream - | Enable SSL: $sock_type | SWOOLE_SSL. To enable SSL, check the configuration about SSL. - | https://www.swoole.co.uk/docs/modules/swoole-server-doc - | https://www.swoole.co.uk/docs/modules/swoole-server/configuration - | - */ - - 'socket_type' => defined('SWOOLE_SOCK_TCP') ? SWOOLE_SOCK_TCP : 1, - - /* - |-------------------------------------------------------------------------- - | Server Name - |-------------------------------------------------------------------------- - | - | This value represents the name of the server that will be - | displayed in the header of each request. - | - */ - - 'server' => env('LARAVELS_SERVER', 'LaravelS'), - - /* - |-------------------------------------------------------------------------- - | Handle Static Resource - |-------------------------------------------------------------------------- - | - | Whether handle the static resource by LaravelS(Require Swoole >= 1.7.21, Handle by Swoole if Swoole >= 1.9.17). - | Suggest that Nginx handles the statics and LaravelS handles the dynamics. - | The default path of static resource is base_path('public'), you can modify swoole.document_root to change it. - | - */ - - 'handle_static' => env('LARAVELS_HANDLE_STATIC', false), - - /* - |-------------------------------------------------------------------------- - | Laravel Base Path - |-------------------------------------------------------------------------- - | - | The basic path of Laravel, default base_path(), be used for symbolic link. - | - */ - - 'laravel_base_path' => env('LARAVEL_BASE_PATH', base_path()), - - /* - |-------------------------------------------------------------------------- - | Inotify Reload - |-------------------------------------------------------------------------- - | - | This feature requires inotify extension. - | https://github.com/hhxsv5/laravel-s#automatically-reload-after-modifying-code - | - */ - - 'inotify_reload' => [ - // Whether enable the Inotify Reload to reload all worker processes when your code is modified. - 'enable' => env('LARAVELS_INOTIFY_RELOAD', false), - - // The file path that Inotify watches - 'watch_path' => base_path(), - - // The file types that Inotify watches - 'file_types' => ['.php'], - - // The excluded/ignored directories that Inotify watches - 'excluded_dirs' => [], - - // Whether output the reload log - 'log' => true, - ], - - /* - |-------------------------------------------------------------------------- - | Swoole Event Handlers - |-------------------------------------------------------------------------- - | - | Configure the event callback function of Swoole, key-value format, - | key is the event name, and value is the class that implements the event - | processing interface. - | - | https://github.com/hhxsv5/laravel-s#configuring-the-event-callback-function-of-swoole - | - */ - - 'event_handlers' => [], - - /* - |-------------------------------------------------------------------------- - | WebSockets - |-------------------------------------------------------------------------- - | - | Swoole WebSocket Server settings. - | - | https://github.com/hhxsv5/laravel-s#enable-websocket-server - | - */ - - 'websocket' => [ - 'enable' => false, - // 'handler' => XxxWebSocketHandler::class, - ], - - /* - |-------------------------------------------------------------------------- - | Sockets - multi-port mixed protocol - |-------------------------------------------------------------------------- - | - | The socket(port) list for TCP/UDP. - | - | https://github.com/hhxsv5/laravel-s#multi-port-mixed-protocol - | - */ - - 'sockets' => [], - - /* - |-------------------------------------------------------------------------- - | Custom Process - |-------------------------------------------------------------------------- - | - | Support developers to create custom processes for monitoring, - | reporting, or other special tasks. - | - | https://github.com/hhxsv5/laravel-s#custom-process - | - */ - - 'processes' => [], - - /* - |-------------------------------------------------------------------------- - | Timer - |-------------------------------------------------------------------------- - | - | Wrapper cron job base on Swoole's Millisecond Timer, replace Linux Crontab. - | - | https://github.com/hhxsv5/laravel-s#millisecond-cron-job - | - */ - - 'timer' => [ - 'enable' => env('LARAVELS_TIMER', false), - - // The list of cron job - 'jobs' => [ - // Enable LaravelScheduleJob to run `php artisan schedule:run` every 1 minute, replace Linux Crontab - Hhxsv5\LaravelS\Illuminate\LaravelScheduleJob::class, - ], - - // Max waiting time of reloading - 'max_wait_time' => 5, - - // Enable the global lock to ensure that only one instance starts the timer - // when deploying multiple instances. - // This feature depends on Redis https://laravel.com/docs/8.x/redis - 'global_lock' => false, - 'global_lock_key' => config('app.name', 'Laravel'), - ], - - /* - |-------------------------------------------------------------------------- - | Swoole Tables - |-------------------------------------------------------------------------- - | - | All defined tables will be created before Swoole starting. - | - | https://github.com/hhxsv5/laravel-s#use-swooletable - | - */ - - 'swoole_tables' => [], - - /* - |-------------------------------------------------------------------------- - | Re-register Providers - |-------------------------------------------------------------------------- - | - | The Service Provider list, will be re-registered each request, and run method boot() - | if it exists. Usually, be used to clear the Service Provider - | which registers Singleton instances. - | - | https://github.com/hhxsv5/laravel-s/blob/master/Settings.md#register_providers - | - */ - - 'register_providers' => [ - // App\Providers\SettingServiceProvider::class, - ], - - /* - |-------------------------------------------------------------------------- - | Cleaners - |-------------------------------------------------------------------------- - | - | The list of cleaners for each request is used to clean up some residual - | global variables, singleton objects, and static properties to avoid - | data pollution between requests. - | - | https://github.com/hhxsv5/laravel-s/blob/master/Settings.md#cleaners - | - */ - - 'cleaners' => [ - // Hhxsv5\LaravelS\Illuminate\Cleaners\SessionCleaner::class, - Hhxsv5\LaravelS\Illuminate\Cleaners\AuthCleaner::class, - ], - - /* - |-------------------------------------------------------------------------- - | Destroy Controllers - |-------------------------------------------------------------------------- - | - | Automatically destroy the controllers after each request to solve - | the problem of the singleton controllers. - | - | https://github.com/hhxsv5/laravel-s/blob/master/KnownIssues.md#singleton-controller - | - */ - - 'destroy_controllers' => [ - 'enable' => false, - 'excluded_list' => [ - // \App\Http\Controllers\V1\Server\UniProxyController::class - ], - ], - - /* - |-------------------------------------------------------------------------- - | Swoole Settings - |-------------------------------------------------------------------------- - | - | Swoole's original configuration items. - | - | More settings - | Chinese https://wiki.swoole.com/#/server/setting - | English https://www.swoole.co.uk/docs/modules/swoole-server/configuration - | - */ - - 'swoole' => [ - 'daemonize' => env('LARAVELS_DAEMONIZE', false), - 'dispatch_mode' => env('LARAVELS_DISPATCH_MODE', 3), - 'worker_num' => env('LARAVELS_WORKER_NUM', 30), - //'task_worker_num' => env('LARAVELS_TASK_WORKER_NUM', 10), - 'task_ipc_mode' => 1, - 'task_max_request' => env('LARAVELS_TASK_MAX_REQUEST', 100000), - 'task_tmpdir' => @is_writable('/dev/shm/') ? '/dev/shm' : '/tmp', - 'max_request' => env('LARAVELS_MAX_REQUEST', 100000), - 'open_tcp_nodelay' => true, - 'pid_file' => storage_path('laravels.pid'), - 'log_level' => env('LARAVELS_LOG_LEVEL', 4), - 'log_file' => storage_path(sprintf('logs/swoole-%s.log', date('Y-m'))), - 'document_root' => base_path('public'), - 'buffer_output_size' => 2 * 1024 * 1024, - 'socket_buffer_size' => 8 * 1024 * 1024, - 'package_max_length' => 4 * 1024 * 1024, - 'reload_async' => true, - 'max_wait_time' => 60, - 'enable_reuse_port' => true, - 'enable_coroutine' => false, - 'upload_tmp_dir' => @is_writable('/dev/shm/') ? '/dev/shm' : '/tmp', - 'http_compression' => env('LARAVELS_HTTP_COMPRESSION', false), - ], -]; diff --git a/config/logging.php b/config/logging.php index 6e7c4a1..3e3e90e 100755 --- a/config/logging.php +++ b/config/logging.php @@ -16,7 +16,7 @@ return [ | */ - 'default' => 'mysql', + 'default' => 'daily', /* |-------------------------------------------------------------------------- @@ -100,6 +100,13 @@ return [ 'driver' => 'errorlog', 'level' => 'debug', ], + + 'deprecations' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/deprecations.log'), + 'level' => 'debug', + 'days' => 14, + ], ], ]; diff --git a/config/octane.php b/config/octane.php new file mode 100644 index 0000000..f2cc571 --- /dev/null +++ b/config/octane.php @@ -0,0 +1,221 @@ + env('OCTANE_SERVER', 'swoole'), + + /* + |-------------------------------------------------------------------------- + | Force HTTPS + |-------------------------------------------------------------------------- + | + | When this configuration value is set to "true", Octane will inform the + | framework that all absolute links must be generated using the HTTPS + | protocol. Otherwise your links may be generated using plain HTTP. + | + */ + + 'https' => env('OCTANE_HTTPS', false), + + /* + |-------------------------------------------------------------------------- + | Octane Listeners + |-------------------------------------------------------------------------- + | + | All of the event listeners for Octane's events are defined below. These + | listeners are responsible for resetting your application's state for + | the next request. You may even add your own listeners to the list. + | + */ + + 'listeners' => [ + WorkerStarting::class => [ + EnsureUploadedFilesAreValid::class, + EnsureUploadedFilesCanBeMoved::class, + ], + + RequestReceived::class => [ + ...Octane::prepareApplicationForNextOperation(), + ...Octane::prepareApplicationForNextRequest(), + // + ], + + RequestHandled::class => [ + // + ], + + RequestTerminated::class => [ + // FlushUploadedFiles::class, + ], + + TaskReceived::class => [ + ...Octane::prepareApplicationForNextOperation(), + // + ], + + TaskTerminated::class => [ + // + ], + + TickReceived::class => [ + ...Octane::prepareApplicationForNextOperation(), + // + ], + + TickTerminated::class => [ + // + ], + + OperationTerminated::class => [ + FlushTemporaryContainerInstances::class, + // DisconnectFromDatabases::class, + // CollectGarbage::class, + ], + + WorkerErrorOccurred::class => [ + ReportException::class, + StopWorkerIfNecessary::class, + ], + + WorkerStopping::class => [ + // + ], + ], + + /* + |-------------------------------------------------------------------------- + | Warm / Flush Bindings + |-------------------------------------------------------------------------- + | + | The bindings listed below will either be pre-warmed when a worker boots + | or they will be flushed before every new request. Flushing a binding + | will force the container to resolve that binding again when asked. + | + */ + + 'warm' => [ + ...Octane::defaultServicesToWarm(), + ], + + 'flush' => [ + // + ], + + /* + |-------------------------------------------------------------------------- + | Octane Cache Table + |-------------------------------------------------------------------------- + | + | While using Swoole, you may leverage the Octane cache, which is powered + | by a Swoole table. You may set the maximum number of rows as well as + | the number of bytes per row using the configuration options below. + | + */ + + 'cache' => [ + 'rows' => 1000, + 'bytes' => 10000, + ], + + /* + |-------------------------------------------------------------------------- + | Octane Swoole Tables + |-------------------------------------------------------------------------- + | + | While using Swoole, you may define additional tables as required by the + | application. These tables can be used to store data that needs to be + | quickly accessed by other workers on the particular Swoole server. + | + */ + + 'tables' => [ + 'example:1000' => [ + 'name' => 'string:1000', + 'votes' => 'int', + ], + ], + + /* + |-------------------------------------------------------------------------- + | File Watching + |-------------------------------------------------------------------------- + | + | The following list of files and directories will be watched when using + | the --watch option offered by Octane. If any of the directories and + | files are changed, Octane will automatically reload your workers. + | + */ + + 'watch' => [ + 'app', + 'bootstrap', + 'config', + 'database', + 'public/**/*.php', + 'resources/**/*.php', + 'routes', + 'composer.lock', + '.env', + ], + + /* + |-------------------------------------------------------------------------- + | Garbage Collection Threshold + |-------------------------------------------------------------------------- + | + | When executing long-lived PHP scripts such as Octane, memory can build + | up before being cleared by PHP. You can force Octane to run garbage + | collection if your application consumes this amount of megabytes. + | + */ + + 'garbage' => 50, + + /* + |-------------------------------------------------------------------------- + | Maximum Execution Time + |-------------------------------------------------------------------------- + | + | The following setting configures the maximum execution time for requests + | being handled by Octane. You may set this value to 0 to indicate that + | there isn't a specific time limit on Octane request execution time. + | + */ + + 'max_execution_time' => 30, + +]; diff --git a/config/sanctum.php b/config/sanctum.php new file mode 100644 index 0000000..35d75b3 --- /dev/null +++ b/config/sanctum.php @@ -0,0 +1,83 @@ + explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( + '%s%s', + 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', + Sanctum::currentApplicationUrlWithPort() + ))), + + /* + |-------------------------------------------------------------------------- + | Sanctum Guards + |-------------------------------------------------------------------------- + | + | This array contains the authentication guards that will be checked when + | Sanctum is trying to authenticate a request. If none of these guards + | are able to authenticate the request, Sanctum will use the bearer + | token that's present on an incoming request for authentication. + | + */ + + 'guard' => ['web'], + + /* + |-------------------------------------------------------------------------- + | Expiration Minutes + |-------------------------------------------------------------------------- + | + | This value controls the number of minutes until an issued token will be + | considered expired. This will override any values set in the token's + | "expires_at" attribute, but first-party sessions are not affected. + | + */ + + 'expiration' => null, + + /* + |-------------------------------------------------------------------------- + | Token Prefix + |-------------------------------------------------------------------------- + | + | Sanctum can prefix new tokens in order to take advantage of numerous + | security scanning initiatives maintained by open source platforms + | that notify developers if they commit tokens into repositories. + | + | See: https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning + | + */ + + 'token_prefix' => env('SANCTUM_TOKEN_PREFIX', ''), + + /* + |-------------------------------------------------------------------------- + | Sanctum Middleware + |-------------------------------------------------------------------------- + | + | When authenticating your first-party SPA with Sanctum you may need to + | customize some of the middleware Sanctum uses while processing the + | request. You may change the middleware listed below as required. + | + */ + + 'middleware' => [ + 'authenticate_session' => Laravel\Sanctum\Http\Middleware\AuthenticateSession::class, + 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, + 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, + ], + +]; diff --git a/config/scribe.php b/config/scribe.php new file mode 100644 index 0000000..b2e0c03 --- /dev/null +++ b/config/scribe.php @@ -0,0 +1,270 @@ + for the generated documentation. If this is empty, Scribe will infer it from config('app.name'). + 'title' => null, + + // A short description of your API. Will be included in the docs webpage, Postman collection and OpenAPI spec. + 'description' => '', + + // The base URL displayed in the docs. If this is empty, Scribe will use the value of config('app.url') at generation time. + // If you're using `laravel` type, you can set this to a dynamic string, like '{{ config("app.tenant_url") }}' to get a dynamic base URL. + 'base_url' => null, + + 'routes' => [ + [ + // Routes that match these conditions will be included in the docs + 'match' => [ + // Match only routes whose paths match this pattern (use * as a wildcard to match any characters). Example: 'users/*'. + 'prefixes' => ['api/*'], + + // Match only routes whose domains match this pattern (use * as a wildcard to match any characters). Example: 'api.*'. + 'domains' => ['*'], + + // [Dingo router only] Match only routes registered under this version. Wildcards are NOT supported. + 'versions' => ['v1'], + ], + + // Include these routes even if they did not match the rules above. + 'include' => [ + // 'users.index', 'POST /new', '/auth/*' + ], + + // Exclude these routes even if they matched the rules above. + 'exclude' => [ + // 'GET /health', 'admin.*' + ], + ], + ], + + // The type of documentation output to generate. + // - "static" will generate a static HTMl page in the /public/docs folder, + // - "laravel" will generate the documentation as a Blade view, so you can add routing and authentication. + // - "external_static" and "external_laravel" do the same as above, but generate a basic template, + // passing the OpenAPI spec as a URL, allowing you to easily use the docs with an external generator + 'type' => 'static', + + // See https://scribe.knuckles.wtf/laravel/reference/config#theme for supported options + 'theme' => 'default', + + 'static' => [ + // HTML documentation, assets and Postman collection will be generated to this folder. + // Source Markdown will still be in resources/docs. + 'output_path' => 'public/docs', + ], + + 'laravel' => [ + // Whether to automatically create a docs endpoint for you to view your generated docs. + // If this is false, you can still set up routing manually. + 'add_routes' => true, + + // URL path to use for the docs endpoint (if `add_routes` is true). + // By default, `/docs` opens the HTML page, `/docs.postman` opens the Postman collection, and `/docs.openapi` the OpenAPI spec. + 'docs_url' => '/docs', + + // Directory within `public` in which to store CSS and JS assets. + // By default, assets are stored in `public/vendor/scribe`. + // If set, assets will be stored in `public/{{assets_directory}}` + 'assets_directory' => null, + + // Middleware to attach to the docs endpoint (if `add_routes` is true). + 'middleware' => [], + ], + + 'external' => [ + 'html_attributes' => [] + ], + + 'try_it_out' => [ + // Add a Try It Out button to your endpoints so consumers can test endpoints right from their browser. + // Don't forget to enable CORS headers for your endpoints. + 'enabled' => true, + + // The base URL for the API tester to use (for example, you can set this to your staging URL). + // Leave as null to use the current app URL when generating (config("app.url")). + 'base_url' => null, + + // [Laravel Sanctum] Fetch a CSRF token before each request, and add it as an X-XSRF-TOKEN header. + 'use_csrf' => false, + + // The URL to fetch the CSRF token from (if `use_csrf` is true). + 'csrf_url' => '/sanctum/csrf-cookie', + ], + + // How is your API authenticated? This information will be used in the displayed docs, generated examples and response calls. + 'auth' => [ + // Set this to true if ANY endpoints in your API use authentication. + 'enabled' => false, + + // Set this to true if your API should be authenticated by default. If so, you must also set `enabled` (above) to true. + // You can then use @unauthenticated or @authenticated on individual endpoints to change their status from the default. + 'default' => false, + + // Where is the auth value meant to be sent in a request? + // Options: query, body, basic, bearer, header (for custom header) + 'in' => 'bearer', + + // The name of the auth parameter (e.g. token, key, apiKey) or header (e.g. Authorization, Api-Key). + 'name' => 'key', + + // The value of the parameter to be used by Scribe to authenticate response calls. + // This will NOT be included in the generated documentation. If empty, Scribe will use a random value. + 'use_value' => env('SCRIBE_AUTH_KEY'), + + // Placeholder your users will see for the auth parameter in the example requests. + // Set this to null if you want Scribe to use a random value as placeholder instead. + 'placeholder' => '{YOUR_AUTH_KEY}', + + // Any extra authentication-related info for your users. Markdown and HTML are supported. + 'extra_info' => 'You can retrieve your token by visiting your dashboard and clicking Generate API token.', + ], + + // Text to place in the "Introduction" section, right after the `description`. Markdown and HTML are supported. + 'intro_text' => <<As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile). +You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile). +INTRO + , + + // Example requests for each endpoint will be shown in each of these languages. + // Supported options are: bash, javascript, php, python + // To add a language of your own, see https://scribe.knuckles.wtf/laravel/advanced/example-requests + 'example_languages' => [ + 'bash', + 'javascript', + ], + + // Generate a Postman collection (v2.1.0) in addition to HTML docs. + // For 'static' docs, the collection will be generated to public/docs/collection.json. + // For 'laravel' docs, it will be generated to storage/app/scribe/collection.json. + // Setting `laravel.add_routes` to true (above) will also add a route for the collection. + 'postman' => [ + 'enabled' => true, + + 'overrides' => [ + // 'info.version' => '2.0.0', + ], + ], + + // Generate an OpenAPI spec (v3.0.1) in addition to docs webpage. + // For 'static' docs, the collection will be generated to public/docs/openapi.yaml. + // For 'laravel' docs, it will be generated to storage/app/scribe/openapi.yaml. + // Setting `laravel.add_routes` to true (above) will also add a route for the spec. + 'openapi' => [ + 'enabled' => true, + + 'overrides' => [ + // 'info.version' => '2.0.0', + ], + ], + + 'groups' => [ + // Endpoints which don't have a @group will be placed in this default group. + 'default' => 'Endpoints', + + // By default, Scribe will sort groups alphabetically, and endpoints in the order their routes are defined. + // You can override this by listing the groups, subgroups and endpoints here in the order you want them. + // See https://scribe.knuckles.wtf/blog/laravel-v4#easier-sorting and https://scribe.knuckles.wtf/laravel/reference/config#order for details + 'order' => [], + ], + + // Custom logo path. This will be used as the value of the src attribute for the tag, + // so make sure it points to an accessible URL or path. Set to false to not use a logo. + // For example, if your logo is in public/img: + // - 'logo' => '../img/logo.png' // for `static` type (output folder is public/docs) + // - 'logo' => 'img/logo.png' // for `laravel` type + 'logo' => false, + + // Customize the "Last updated" value displayed in the docs by specifying tokens and formats. + // Examples: + // - {date:F j Y} => March 28, 2022 + // - {git:short} => Short hash of the last Git commit + // Available tokens are `{date:}` and `{git:}`. + // The format you pass to `date` will be passed to PHP's `date()` function. + // The format you pass to `git` can be either "short" or "long". + 'last_updated' => 'Last updated: {date:F j, Y}', + + 'examples' => [ + // Set this to any number (e.g. 1234) to generate the same example values for parameters on each run, + 'faker_seed' => null, + + // With API resources and transformers, Scribe tries to generate example models to use in your API responses. + // By default, Scribe will try the model's factory, and if that fails, try fetching the first from the database. + // You can reorder or remove strategies here. + 'models_source' => ['factoryCreate', 'factoryMake', 'databaseFirst'], + ], + + // The strategies Scribe will use to extract information about your routes at each stage. + // If you create or install a custom strategy, add it here. + 'strategies' => [ + 'metadata' => [ + Strategies\Metadata\GetFromDocBlocks::class, + Strategies\Metadata\GetFromMetadataAttributes::class, + ], + 'urlParameters' => [ + Strategies\UrlParameters\GetFromLaravelAPI::class, + Strategies\UrlParameters\GetFromUrlParamAttribute::class, + Strategies\UrlParameters\GetFromUrlParamTag::class, + ], + 'queryParameters' => [ + Strategies\QueryParameters\GetFromFormRequest::class, + Strategies\QueryParameters\GetFromInlineValidator::class, + Strategies\QueryParameters\GetFromQueryParamAttribute::class, + Strategies\QueryParameters\GetFromQueryParamTag::class, + ], + 'headers' => [ + Strategies\Headers\GetFromHeaderAttribute::class, + Strategies\Headers\GetFromHeaderTag::class, + [ + 'override', + [ + 'Content-Type' => 'application/json', + 'Accept' => 'application/json', + ] + ] + ], + 'bodyParameters' => [ + Strategies\BodyParameters\GetFromFormRequest::class, + Strategies\BodyParameters\GetFromInlineValidator::class, + Strategies\BodyParameters\GetFromBodyParamAttribute::class, + Strategies\BodyParameters\GetFromBodyParamTag::class, + ], + 'responses' => [ + Strategies\Responses\UseResponseAttributes::class, + Strategies\Responses\UseTransformerTags::class, + Strategies\Responses\UseApiResourceTags::class, + Strategies\Responses\UseResponseTag::class, + Strategies\Responses\UseResponseFileTag::class, + [ + Strategies\Responses\ResponseCalls::class, + [ + 'only' => ['GET *'], + // Disable debug mode when generating response calls to avoid error stack traces in responses + 'config' => [ + 'app.debug' => false, + ], + ] + ] + ], + 'responseFields' => [ + Strategies\ResponseFields\GetFromResponseFieldAttribute::class, + Strategies\ResponseFields\GetFromResponseFieldTag::class, + ], + ], + + // For response calls, API resource responses and transformer responses, + // Scribe will try to start database transactions, so no changes are persisted to your database. + // Tell Scribe which connections should be transacted here. If you only use one db connection, you can leave this as is. + 'database_connections_to_transact' => [config('database.default')], + + 'fractal' => [ + // If you are using a custom serializer with league/fractal, you can specify it here. + 'serializer' => null, + ], + + 'routeMatcher' => \Knuckles\Scribe\Matching\RouteMatcher::class, +]; diff --git a/config/swoole_http.php b/config/swoole_http.php deleted file mode 100644 index a73b139..0000000 --- a/config/swoole_http.php +++ /dev/null @@ -1,137 +0,0 @@ - [ - 'host' => env('SWOOLE_HTTP_HOST', '0.0.0.0'), - 'port' => env('SWOOLE_HTTP_PORT', '1215'), - 'public_path' => base_path('public'), - // Determine if to use swoole to respond request for static files - 'handle_static_files' => env('SWOOLE_HANDLE_STATIC', true), - 'access_log' => env('SWOOLE_HTTP_ACCESS_LOG', false), - // You must add --enable-openssl while compiling Swoole - // Put `SWOOLE_SOCK_TCP | SWOOLE_SSL` if you want to enable SSL - 'socket_type' => SWOOLE_SOCK_TCP, - 'process_type' => SWOOLE_PROCESS, - 'options' => [ - 'pid_file' => env('SWOOLE_HTTP_PID_FILE', base_path('storage/logs/swoole_http.pid')), - 'log_file' => env('SWOOLE_HTTP_LOG_FILE', base_path('storage/logs/swoole_http.log')), - 'daemonize' => env('SWOOLE_HTTP_DAEMONIZE', false), - // Normally this value should be 1~4 times larger according to your cpu cores. - 'reactor_num' => env('SWOOLE_HTTP_REACTOR_NUM', swoole_cpu_num()), - 'worker_num' => env('SWOOLE_HTTP_WORKER_NUM', swoole_cpu_num()), - 'task_worker_num' => env('SWOOLE_HTTP_TASK_WORKER_NUM', swoole_cpu_num()), - // The data to receive can't be larger than buffer_output_size. - 'package_max_length' => 20 * 1024 * 1024, - // The data to send can't be larger than buffer_output_size. - 'buffer_output_size' => 10 * 1024 * 1024, - // Max buffer size for socket connections - 'socket_buffer_size' => 128 * 1024 * 1024, - // Worker will restart after processing this number of requests - 'max_request' => 3000, - // Enable coroutine send - 'send_yield' => true, - // You must add --enable-openssl while compiling Swoole - 'ssl_cert_file' => null, - 'ssl_key_file' => null, - ], - ], - - /* - |-------------------------------------------------------------------------- - | Enable to turn on websocket server. - |-------------------------------------------------------------------------- - */ - 'websocket' => [ - 'enabled' => env('SWOOLE_HTTP_WEBSOCKET', false), - ], - - /* - |-------------------------------------------------------------------------- - | Hot reload configuration - |-------------------------------------------------------------------------- - */ - 'hot_reload' => [ - 'enabled' => env('SWOOLE_HOT_RELOAD_ENABLE', false), - 'recursively' => env('SWOOLE_HOT_RELOAD_RECURSIVELY', true), - 'directory' => env('SWOOLE_HOT_RELOAD_DIRECTORY', base_path()), - 'log' => env('SWOOLE_HOT_RELOAD_LOG', true), - 'filter' => env('SWOOLE_HOT_RELOAD_FILTER', '.php'), - ], - - /* - |-------------------------------------------------------------------------- - | Console output will be transferred to response content if enabled. - |-------------------------------------------------------------------------- - */ - 'ob_output' => env('SWOOLE_OB_OUTPUT', true), - - /* - |-------------------------------------------------------------------------- - | Pre-resolved instances here will be resolved when sandbox created. - |-------------------------------------------------------------------------- - */ - 'pre_resolved' => [ - 'view', 'files', 'session', 'session.store', 'routes', - 'db', 'db.factory', 'cache', 'cache.store', 'config', 'cookie', - 'encrypter', 'hash', 'router', 'translator', 'url', 'log', - ], - - /* - |-------------------------------------------------------------------------- - | Instances here will be cleared on every request. - |-------------------------------------------------------------------------- - */ - 'instances' => [ - 'auth', - ], - - /* - |-------------------------------------------------------------------------- - | Providers here will be registered on every request. - |-------------------------------------------------------------------------- - */ - 'providers' => [ - Illuminate\Pagination\PaginationServiceProvider::class, - ], - - /* - |-------------------------------------------------------------------------- - | Resetters for sandbox app. - |-------------------------------------------------------------------------- - */ - 'resetters' => [ - SwooleTW\Http\Server\Resetters\ResetConfig::class, - SwooleTW\Http\Server\Resetters\ResetSession::class, - SwooleTW\Http\Server\Resetters\ResetCookie::class, - SwooleTW\Http\Server\Resetters\ClearInstances::class, - SwooleTW\Http\Server\Resetters\BindRequest::class, - SwooleTW\Http\Server\Resetters\RebindKernelContainer::class, - SwooleTW\Http\Server\Resetters\RebindRouterContainer::class, - SwooleTW\Http\Server\Resetters\RebindViewContainer::class, - SwooleTW\Http\Server\Resetters\ResetProviders::class, - ], - - /* - |-------------------------------------------------------------------------- - | Define your swoole tables here. - | - | @see https://www.swoole.co.uk/docs/modules/swoole-table - |-------------------------------------------------------------------------- - */ - 'tables' => [ - // 'table_name' => [ - // 'size' => 1024, - // 'columns' => [ - // ['name' => 'column_name', 'type' => Table::TYPE_STRING, 'size' => 1024], - // ] - // ], - ], -]; diff --git a/config/swoole_websocket.php b/config/swoole_websocket.php deleted file mode 100644 index 867b9df..0000000 --- a/config/swoole_websocket.php +++ /dev/null @@ -1,107 +0,0 @@ - SwooleTW\Http\Websocket\SocketIO\WebsocketHandler::class, - - /* - |-------------------------------------------------------------------------- - | Default frame parser - | Replace it if you want to customize your websocket payload - |-------------------------------------------------------------------------- - */ - 'parser' => SwooleTW\Http\Websocket\SocketIO\SocketIOParser::class, - - /* - |-------------------------------------------------------------------------- - | Websocket route file path - |-------------------------------------------------------------------------- - */ - 'route_file' => base_path('routes/websocket.php'), - - /* - |-------------------------------------------------------------------------- - | Default middleware for on connect request - |-------------------------------------------------------------------------- - */ - 'middleware' => [ - // SwooleTW\Http\Websocket\Middleware\DecryptCookies::class, - // SwooleTW\Http\Websocket\Middleware\StartSession::class, - // SwooleTW\Http\Websocket\Middleware\Authenticate::class, - ], - - /* - |-------------------------------------------------------------------------- - | Websocket handler for customized onHandShake callback - |-------------------------------------------------------------------------- - */ - 'handshake' => [ - 'enabled' => false, - 'handler' => SwooleTW\Http\Websocket\HandShakeHandler::class, - ], - - /* - |-------------------------------------------------------------------------- - | Default websocket driver - |-------------------------------------------------------------------------- - */ - 'default' => 'table', - - /* - |-------------------------------------------------------------------------- - | Websocket client's heartbeat interval (ms) - |-------------------------------------------------------------------------- - */ - 'ping_interval' => 25000, - - /* - |-------------------------------------------------------------------------- - | Websocket client's heartbeat interval timeout (ms) - |-------------------------------------------------------------------------- - */ - 'ping_timeout' => 60000, - - /* - |-------------------------------------------------------------------------- - | Room drivers mapping - |-------------------------------------------------------------------------- - */ - 'drivers' => [ - 'table' => SwooleTW\Http\Websocket\Rooms\TableRoom::class, - 'redis' => SwooleTW\Http\Websocket\Rooms\RedisRoom::class, - ], - - /* - |-------------------------------------------------------------------------- - | Room drivers settings - |-------------------------------------------------------------------------- - */ - 'settings' => [ - - 'table' => [ - 'room_rows' => 4096, - 'room_size' => 2048, - 'client_rows' => 8192, - 'client_size' => 2048, - ], - - 'redis' => [ - 'server' => [ - 'host' => env('REDIS_HOST', '127.0.0.1'), - 'password' => env('REDIS_PASSWORD', null), - 'port' => env('REDIS_PORT', 6379), - 'database' => 0, - 'persistent' => true, - ], - 'options' => [ - // - ], - 'prefix' => 'swoole:', - ], - ], -]; diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php index 389bdf7..510e6e7 100644 --- a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php +++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php @@ -13,14 +13,16 @@ class CreateFailedJobsTable extends Migration */ public function up() { - Schema::create('failed_jobs', function (Blueprint $table) { - $table->bigIncrements('id'); - $table->text('connection'); - $table->text('queue'); - $table->longText('payload'); - $table->longText('exception'); - $table->timestamp('failed_at')->useCurrent(); - }); + if (!Schema::hasTable('failed_jobs')) { + Schema::create('failed_jobs', function (Blueprint $table) { + $table->bigIncrements('id'); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } } /** diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php new file mode 100644 index 0000000..542f19b --- /dev/null +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -0,0 +1,34 @@ +id(); + $table->morphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamp('expires_at')->nullable(); + $table->timestamps(); + }); + } + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('personal_access_tokens'); + } +}; diff --git a/database/migrations/2023_03_19_000000_create_v2_tables.php b/database/migrations/2023_03_19_000000_create_v2_tables.php new file mode 100644 index 0000000..f4915a2 --- /dev/null +++ b/database/migrations/2023_03_19_000000_create_v2_tables.php @@ -0,0 +1,496 @@ +integer('id', true); + $table->integer('invite_user_id'); + $table->integer('user_id'); + $table->char('trade_no', 36); + $table->integer('order_amount'); + $table->integer('get_amount'); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Invite Code + if (!Schema::hasTable('v2_invite_code')) { + Schema::create('v2_invite_code', function (Blueprint $table) { + $table->integer('id', true); + $table->integer('user_id'); + $table->char('code', 32); + $table->boolean('status')->default(false); + $table->integer('pv')->default(0); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Knowledge + if (!Schema::hasTable('v2_knowledge')) { + Schema::create('v2_knowledge', function (Blueprint $table) { + $table->integer('id', true); + $table->char('language', 5)->comment('語言'); + $table->string('category')->comment('分類名'); + $table->string('title')->comment('標題'); + $table->text('body')->comment('內容'); + $table->integer('sort')->nullable()->comment('排序'); + $table->boolean('show')->default(false)->comment('顯示'); + $table->integer('created_at')->comment('創建時間'); + $table->integer('updated_at')->comment('更新時間'); + }); + } + + // Plan + if (!Schema::hasTable('v2_plan')) { + Schema::create('v2_plan', function (Blueprint $table) { + $table->integer('id', true); + $table->integer('group_id'); + $table->integer('transfer_enable'); + $table->string('name'); + $table->integer('speed_limit')->nullable(); + $table->boolean('show')->default(false); + $table->integer('sort')->nullable(); + $table->boolean('renew')->default(true); + $table->text('content')->nullable(); + $table->integer('month_price')->nullable(); + $table->integer('quarter_price')->nullable(); + $table->integer('half_year_price')->nullable(); + $table->integer('year_price')->nullable(); + $table->integer('two_year_price')->nullable(); + $table->integer('three_year_price')->nullable(); + $table->integer('onetime_price')->nullable(); + $table->integer('reset_price')->nullable(); + $table->integer('reset_traffic_method')->nullable()->comment('重置流量方式:0跟随系统设置、1每月1号、2按月重置、3不重置、4每年1月1日、5按年重置'); + $table->integer('capacity_limit')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Server Group + if (!Schema::hasTable('v2_server_group')) { + Schema::create('v2_server_group', function (Blueprint $table) { + $table->integer('id', true); + $table->string('name'); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Server Route + if (!Schema::hasTable('v2_server_route')) { + Schema::create('v2_server_route', function (Blueprint $table) { + $table->integer('id', true); + $table->string('remarks'); + $table->text('match'); + $table->string('action', 11); + $table->string('action_value')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // stat server + if (!Schema::hasTable('v2_stat_server')) { + Schema::create('v2_stat_server', function (Blueprint $table) { + $table->integer('id', true); + $table->integer('server_id')->index('server_id')->comment('节点id'); + $table->char('server_type', 11)->comment('节点类型'); + $table->bigInteger('u'); + $table->bigInteger('d'); + $table->char('record_type', 1)->comment('d day m month'); + $table->integer('record_at')->index('record_at')->comment('记录时间'); + $table->integer('created_at'); + $table->integer('updated_at'); + + $table->unique(['server_id', 'server_type', 'record_at'], 'server_id_server_type_record_at'); + }); + } + + // User + if (!Schema::hasTable('v2_user')) { + Schema::create('v2_user', function (Blueprint $table) { + $table->integer('id', true); + $table->integer('invite_user_id')->nullable(); + $table->bigInteger('telegram_id')->nullable(); + $table->string('email', 64)->unique('email'); + $table->string('password', 64); + $table->char('password_algo', 10)->nullable(); + $table->char('password_salt', 10)->nullable(); + $table->integer('balance')->default(0); + $table->integer('discount')->nullable(); + $table->tinyInteger('commission_type')->default(0)->comment('0: system 1: period 2: onetime'); + $table->integer('commission_rate')->nullable(); + $table->integer('commission_balance')->default(0); + $table->integer('t')->default(0); + $table->bigInteger('u')->default(0); + $table->bigInteger('d')->default(0); + $table->bigInteger('transfer_enable')->default(0); + $table->boolean('banned')->default(false); + $table->boolean('is_admin')->default(false); + $table->integer('last_login_at')->nullable(); + $table->boolean('is_staff')->default(false); + $table->integer('last_login_ip')->nullable(); + $table->string('uuid', 36); + $table->integer('group_id')->nullable(); + $table->integer('plan_id')->nullable(); + $table->integer('speed_limit')->nullable(); + $table->tinyInteger('remind_expire')->nullable()->default(1); + $table->tinyInteger('remind_traffic')->nullable()->default(1); + $table->char('token', 32); + $table->bigInteger('expired_at')->nullable()->default(0); + $table->text('remarks')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Mail Log + if (!Schema::hasTable('v2_mail_log')) { + Schema::create('v2_mail_log', function (Blueprint $table) { + $table->integer('id', true); + $table->string('email', 64); + $table->string('subject'); + $table->string('template_name'); + $table->text('error')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Log + if (!Schema::hasTable('v2_log')) { + Schema::create('v2_log', function (Blueprint $table) { + $table->integer('id', true); + $table->text('title'); + $table->string('level', 11)->nullable(); + $table->string('host')->nullable(); + $table->string('uri'); + $table->string('method', 11); + $table->text('data')->nullable(); + $table->string('ip', 128)->nullable(); + $table->text('context')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Stat + if (!Schema::hasTable('v2_stat')) { + Schema::create('v2_stat', function (Blueprint $table) { + $table->integer('id', true); + $table->integer('record_at'); + $table->char('record_type', 1); + $table->integer('order_count')->comment('订单数量'); + $table->integer('order_total')->comment('订单合计'); + $table->integer('commission_count'); + $table->integer('commission_total')->comment('佣金合计'); + $table->integer('paid_count'); + $table->integer('paid_total'); + $table->integer('register_count'); + $table->integer('invite_count'); + $table->string('transfer_used_total', 32); + $table->integer('created_at'); + $table->integer('updated_at'); + + if (config('database.default') !== 'sqlite') { + $table->unique(['record_at']); + } + }); + } + + // stat user + if (!Schema::hasTable('v2_stat_user')) { + Schema::create('v2_stat_user', function (Blueprint $table) { + $table->integer('id', true); + $table->integer('user_id'); + $table->decimal('server_rate', 10); + $table->bigInteger('u'); + $table->bigInteger('d'); + $table->char('record_type', 2); + $table->integer('record_at'); + $table->integer('created_at'); + $table->integer('updated_at'); + + // 如果是不是sqlite才添加多个索引 + if (config('database.default') !== 'sqlite') { + $table->index(['user_id', 'server_rate', 'record_at']); + $table->unique(['server_rate', 'user_id', 'record_at'], 'server_rate_user_id_record_at'); + } + }); + } + + // ticket message + if (!Schema::hasTable('v2_ticket_message')) { + Schema::create('v2_ticket_message', function (Blueprint $table) { + $table->integer('id', true); + $table->integer('user_id'); + $table->integer('ticket_id'); + $table->text('message'); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Order + if (!Schema::hasTable('v2_order')) { + Schema::create('v2_order', function (Blueprint $table) { + $table->integer('id', true); + $table->integer('invite_user_id')->nullable(); + $table->integer('user_id'); + $table->integer('plan_id'); + $table->integer('coupon_id')->nullable(); + $table->integer('payment_id')->nullable(); + $table->integer('type')->comment('1新购2续费3升级'); + $table->string('period'); + $table->string('trade_no', 36)->unique('trade_no'); + $table->string('callback_no')->nullable(); + $table->integer('total_amount'); + $table->integer('handling_amount')->nullable(); + $table->integer('discount_amount')->nullable(); + $table->integer('surplus_amount')->nullable()->comment('剩余价值'); + $table->integer('refund_amount')->nullable()->comment('退款金额'); + $table->integer('balance_amount')->nullable()->comment('使用余额'); + $table->text('surplus_order_ids')->nullable()->comment('折抵订单'); + $table->integer('status')->default(0)->comment('0待支付1开通中2已取消3已完成4已折抵'); + $table->integer('commission_status')->default(false)->comment('0待确认1发放中2有效3无效'); + $table->integer('commission_balance')->default(0); + $table->integer('actual_commission_balance')->nullable()->comment('实际支付佣金'); + $table->integer('paid_at')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Payment + if (!Schema::hasTable('v2_payment')) { + Schema::create('v2_payment', function (Blueprint $table) { + $table->integer('id', true); + $table->char('uuid', 32); + $table->string('payment', 16); + $table->string('name'); + $table->string('icon')->nullable(); + $table->text('config'); + $table->string('notify_domain', 128)->nullable(); + $table->integer('handling_fee_fixed')->nullable(); + $table->decimal('handling_fee_percent', 5)->nullable(); + $table->boolean('enable')->default(false); + $table->integer('sort')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Coupon + if (!Schema::hasTable('v2_coupon')) { + Schema::create('v2_coupon', function (Blueprint $table) { + $table->integer('id', true); + $table->string('code'); + $table->string('name'); + $table->integer('type'); + $table->integer('value'); + $table->boolean('show')->default(false); + $table->integer('limit_use')->nullable(); + $table->integer('limit_use_with_user')->nullable(); + $table->string('limit_plan_ids')->nullable(); + $table->string('limit_period')->nullable(); + $table->integer('started_at'); + $table->integer('ended_at'); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Notice + if (!Schema::hasTable('v2_notice')) { + Schema::create('v2_notice', function (Blueprint $table) { + $table->integer('id', true); + $table->string('title'); + $table->text('content'); + $table->boolean('show')->default(false); + $table->string('img_url')->nullable(); + $table->string('tags')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Ticket + if (!Schema::hasTable('v2_ticket')) { + Schema::create('v2_ticket', function (Blueprint $table) { + $table->integer('id', true); + $table->integer('user_id'); + $table->string('subject'); + $table->integer('level'); + $table->integer('status')->default(0)->comment('0:已开启 1:已关闭'); + $table->integer('reply_status')->default(1)->comment('0:待回复 1:已回复'); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Server Hysteria + if (!Schema::hasTable('v2_server_hysteria')) { + Schema::create('v2_server_hysteria', function (Blueprint $table) { + $table->integer('id', true); + $table->string('group_id'); + $table->string('route_id')->nullable(); + $table->string('name'); + $table->integer('parent_id')->nullable(); + $table->string('host'); + $table->string('port', 11); + $table->integer('server_port'); + $table->string('tags')->nullable(); + $table->string('rate', 11); + $table->boolean('show')->default(false); + $table->integer('sort')->nullable(); + $table->integer('up_mbps'); + $table->integer('down_mbps'); + $table->string('server_name', 64)->nullable(); + $table->boolean('insecure')->default(false); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Server Shadowsocks + if (!Schema::hasTable('v2_server_shadowsocks')) { + autoIncrement: + Schema::create('v2_server_shadowsocks', function (Blueprint $table) { + $table->integer('id', true); + $table->string('group_id'); + $table->string('route_id')->nullable(); + $table->integer('parent_id')->nullable(); + $table->string('tags')->nullable(); + $table->string('name'); + $table->string('rate', 11); + $table->string('host'); + $table->string('port', 11); + $table->integer('server_port'); + $table->string('cipher'); + $table->char('obfs', 11)->nullable(); + $table->string('obfs_settings')->nullable(); + $table->tinyInteger('show')->default(0); + $table->integer('sort')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + // Server Trojan + if (!Schema::hasTable('v2_server_trojan')) { + Schema::create('v2_server_trojan', function (Blueprint $table) { + $table->integer('id', true)->comment('节点ID'); + $table->string('group_id')->comment('节点组'); + $table->string('route_id')->nullable(); + $table->integer('parent_id')->nullable()->comment('父节点'); + $table->string('tags')->nullable()->comment('节点标签'); + $table->string('name')->comment('节点名称'); + $table->string('rate', 11)->comment('倍率'); + $table->string('host')->comment('主机名'); + $table->string('port', 11)->comment('连接端口'); + $table->integer('server_port')->comment('服务端口'); + $table->boolean('allow_insecure')->default(false)->comment('是否允许不安全'); + $table->string('server_name')->nullable(); + $table->boolean('show')->default(false)->comment('是否显示'); + $table->integer('sort')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Server Vless + if (!Schema::hasTable('v2_server_vless')) { + Schema::create('v2_server_vless', function (Blueprint $table) { + $table->integer('id', true); + $table->text('group_id'); + $table->text('route_id')->nullable(); + $table->string('name'); + $table->integer('parent_id')->nullable(); + $table->string('host'); + $table->integer('port'); + $table->integer('server_port'); + $table->integer('tls'); + $table->text('tls_settings')->nullable(); + $table->string('flow', 64)->nullable(); + $table->string('network', 11); + $table->text('network_settings')->nullable(); + $table->text('tags')->nullable(); + $table->string('rate', 11); + $table->boolean('show')->default(false); + $table->integer('sort')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + // Server Vmess + if (!Schema::hasTable('v2_server_vmess')) { + Schema::create('v2_server_vmess', function (Blueprint $table) { + $table->integer('id', true); + $table->string('group_id'); + $table->string('route_id')->nullable(); + $table->string('name'); + $table->integer('parent_id')->nullable(); + $table->string('host'); + $table->string('port', 11); + $table->integer('server_port'); + $table->tinyInteger('tls')->default(0); + $table->string('tags')->nullable(); + $table->string('rate', 11); + $table->string('network', 11); + $table->text('rules')->nullable(); + $table->text('networkSettings')->nullable(); + $table->text('tlsSettings')->nullable(); + $table->text('ruleSettings')->nullable(); + $table->text('dnsSettings')->nullable(); + $table->boolean('show')->default(false); + $table->integer('sort')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + } + + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('v2_commission_log'); + Schema::dropIfExists('v2_plan'); + Schema::dropIfExists('v2_user'); + Schema::dropIfExists('v2_mail_log'); + Schema::dropIfExists('v2_log'); + Schema::dropIfExists('v2_stat'); + Schema::dropIfExists('v2_order'); + Schema::dropIfExists('v2_coupon'); + Schema::dropIfExists('v2_notice'); + Schema::dropIfExists('v2_ticket'); + Schema::dropIfExists('v2_settings'); + Schema::dropIfExists('v2_ticket_message'); + Schema::dropIfExists('v2_invite_code'); + Schema::dropIfExists('v2_knowledge'); + Schema::dropIfExists('v2_server_group'); + Schema::dropIfExists('v2_server_route'); + Schema::dropIfExists('v2_stat_server'); + Schema::dropIfExists('v2_stat_user'); + Schema::dropIfExists('v2_server_hysteria'); + Schema::dropIfExists('v2_server_shadowsocks'); + Schema::dropIfExists('v2_server_trojan'); + Schema::dropIfExists('v2_server_vless'); + Schema::dropIfExists('v2_server_vmess'); + } +}; diff --git a/database/migrations/2023_08_07_205816_create_v2_commission_log_table.php b/database/migrations/2023_08_07_205816_create_v2_commission_log_table.php deleted file mode 100644 index af2f021..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_commission_log_table.php +++ /dev/null @@ -1,37 +0,0 @@ -integer('id', true); - $table->integer('invite_user_id'); - $table->integer('user_id'); - $table->char('trade_no', 36); - $table->integer('order_amount'); - $table->integer('get_amount'); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_commission_log'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_coupon_table.php b/database/migrations/2023_08_07_205816_create_v2_coupon_table.php deleted file mode 100644 index 0f8cfd0..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_coupon_table.php +++ /dev/null @@ -1,43 +0,0 @@ -integer('id', true); - $table->string('code'); - $table->string('name'); - $table->boolean('type'); - $table->integer('value'); - $table->boolean('show')->default(false); - $table->integer('limit_use')->nullable(); - $table->integer('limit_use_with_user')->nullable(); - $table->string('limit_plan_ids')->nullable(); - $table->string('limit_period')->nullable(); - $table->integer('started_at'); - $table->integer('ended_at'); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_coupon'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_invite_code_table.php b/database/migrations/2023_08_07_205816_create_v2_invite_code_table.php deleted file mode 100644 index f7af541..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_invite_code_table.php +++ /dev/null @@ -1,36 +0,0 @@ -integer('id', true); - $table->integer('user_id'); - $table->char('code', 32); - $table->boolean('status')->default(false); - $table->integer('pv')->default(0); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_invite_code'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_knowledge_table.php b/database/migrations/2023_08_07_205816_create_v2_knowledge_table.php deleted file mode 100644 index 9b3ef2c..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_knowledge_table.php +++ /dev/null @@ -1,38 +0,0 @@ -integer('id', true); - $table->char('language', 5)->comment('語言'); - $table->string('category')->comment('分類名'); - $table->string('title')->comment('標題'); - $table->text('body')->comment('內容'); - $table->integer('sort')->nullable()->comment('排序'); - $table->boolean('show')->default(false)->comment('顯示'); - $table->integer('created_at')->comment('創建時間'); - $table->integer('updated_at')->comment('更新時間'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_knowledge'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_log_table.php b/database/migrations/2023_08_07_205816_create_v2_log_table.php deleted file mode 100644 index 22ba709..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_log_table.php +++ /dev/null @@ -1,40 +0,0 @@ -integer('id', true); - $table->text('title'); - $table->string('level', 11)->nullable(); - $table->string('host')->nullable(); - $table->string('uri'); - $table->string('method', 11); - $table->text('data')->nullable(); - $table->string('ip', 128)->nullable(); - $table->text('context')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_log'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_mail_log_table.php b/database/migrations/2023_08_07_205816_create_v2_mail_log_table.php deleted file mode 100644 index db0b26b..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_mail_log_table.php +++ /dev/null @@ -1,36 +0,0 @@ -integer('id', true); - $table->string('email', 64); - $table->string('subject'); - $table->string('template_name'); - $table->text('error')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_mail_log'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_notice_table.php b/database/migrations/2023_08_07_205816_create_v2_notice_table.php deleted file mode 100644 index 2a5ab6f..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_notice_table.php +++ /dev/null @@ -1,37 +0,0 @@ -integer('id', true); - $table->string('title'); - $table->text('content'); - $table->boolean('show')->default(false); - $table->string('img_url')->nullable(); - $table->string('tags')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_notice'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_order_table.php b/database/migrations/2023_08_07_205816_create_v2_order_table.php deleted file mode 100644 index 2e0245a..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_order_table.php +++ /dev/null @@ -1,53 +0,0 @@ -integer('id', true); - $table->integer('invite_user_id')->nullable(); - $table->integer('user_id'); - $table->integer('plan_id'); - $table->integer('coupon_id')->nullable(); - $table->integer('payment_id')->nullable(); - $table->integer('type')->comment('1新购2续费3升级'); - $table->string('period'); - $table->string('trade_no', 36)->unique('trade_no'); - $table->string('callback_no')->nullable(); - $table->integer('total_amount'); - $table->integer('handling_amount')->nullable(); - $table->integer('discount_amount')->nullable(); - $table->integer('surplus_amount')->nullable()->comment('剩余价值'); - $table->integer('refund_amount')->nullable()->comment('退款金额'); - $table->integer('balance_amount')->nullable()->comment('使用余额'); - $table->text('surplus_order_ids')->nullable()->comment('折抵订单'); - $table->boolean('status')->default(false)->comment('0待支付1开通中2已取消3已完成4已折抵'); - $table->boolean('commission_status')->default(false)->comment('0待确认1发放中2有效3无效'); - $table->integer('commission_balance')->default(0); - $table->integer('actual_commission_balance')->nullable()->comment('实际支付佣金'); - $table->integer('paid_at')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_order'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_payment_table.php b/database/migrations/2023_08_07_205816_create_v2_payment_table.php deleted file mode 100644 index e02c119..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_payment_table.php +++ /dev/null @@ -1,42 +0,0 @@ -integer('id', true); - $table->char('uuid', 32); - $table->string('payment', 16); - $table->string('name'); - $table->string('icon')->nullable(); - $table->text('config'); - $table->string('notify_domain', 128)->nullable(); - $table->integer('handling_fee_fixed')->nullable(); - $table->decimal('handling_fee_percent', 5)->nullable(); - $table->boolean('enable')->default(false); - $table->integer('sort')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_payment'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_plan_table.php b/database/migrations/2023_08_07_205816_create_v2_plan_table.php deleted file mode 100644 index 71f3699..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_plan_table.php +++ /dev/null @@ -1,50 +0,0 @@ -integer('id', true); - $table->integer('group_id'); - $table->integer('transfer_enable'); - $table->string('name'); - $table->integer('speed_limit')->nullable(); - $table->boolean('show')->default(false); - $table->integer('sort')->nullable(); - $table->boolean('renew')->default(true); - $table->text('content')->nullable(); - $table->integer('month_price')->nullable(); - $table->integer('quarter_price')->nullable(); - $table->integer('half_year_price')->nullable(); - $table->integer('year_price')->nullable(); - $table->integer('two_year_price')->nullable(); - $table->integer('three_year_price')->nullable(); - $table->integer('onetime_price')->nullable(); - $table->integer('reset_price')->nullable(); - $table->boolean('reset_traffic_method')->nullable(); - $table->integer('capacity_limit')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_plan'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_server_group_table.php b/database/migrations/2023_08_07_205816_create_v2_server_group_table.php deleted file mode 100644 index 315e1bf..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_server_group_table.php +++ /dev/null @@ -1,33 +0,0 @@ -integer('id', true); - $table->string('name'); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_server_group'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_server_hysteria_table.php b/database/migrations/2023_08_07_205816_create_v2_server_hysteria_table.php deleted file mode 100644 index 98e52f2..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_server_hysteria_table.php +++ /dev/null @@ -1,47 +0,0 @@ -integer('id', true); - $table->string('group_id'); - $table->string('route_id')->nullable(); - $table->string('name'); - $table->integer('parent_id')->nullable(); - $table->string('host'); - $table->string('port', 11); - $table->integer('server_port'); - $table->string('tags')->nullable(); - $table->string('rate', 11); - $table->boolean('show')->default(false); - $table->integer('sort')->nullable(); - $table->integer('up_mbps'); - $table->integer('down_mbps'); - $table->string('server_name', 64)->nullable(); - $table->boolean('insecure')->default(false); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_server_hysteria'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_server_route_table.php b/database/migrations/2023_08_07_205816_create_v2_server_route_table.php deleted file mode 100644 index dde1be4..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_server_route_table.php +++ /dev/null @@ -1,36 +0,0 @@ -integer('id', true); - $table->string('remarks'); - $table->text('match'); - $table->string('action', 11); - $table->string('action_value')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_server_route'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_server_shadowsocks_table.php b/database/migrations/2023_08_07_205816_create_v2_server_shadowsocks_table.php deleted file mode 100644 index e96a948..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_server_shadowsocks_table.php +++ /dev/null @@ -1,46 +0,0 @@ -integer('id', true); - $table->string('group_id'); - $table->string('route_id')->nullable(); - $table->integer('parent_id')->nullable(); - $table->string('tags')->nullable(); - $table->string('name'); - $table->string('rate', 11); - $table->string('host'); - $table->string('port', 11); - $table->integer('server_port'); - $table->string('cipher'); - $table->char('obfs', 11)->nullable(); - $table->string('obfs_settings')->nullable(); - $table->tinyInteger('show')->default(0); - $table->integer('sort')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_server_shadowsocks'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_server_trojan_table.php b/database/migrations/2023_08_07_205816_create_v2_server_trojan_table.php deleted file mode 100644 index ca24e99..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_server_trojan_table.php +++ /dev/null @@ -1,45 +0,0 @@ -integer('id', true)->comment('节点ID'); - $table->string('group_id')->comment('节点组'); - $table->string('route_id')->nullable(); - $table->integer('parent_id')->nullable()->comment('父节点'); - $table->string('tags')->nullable()->comment('节点标签'); - $table->string('name')->comment('节点名称'); - $table->string('rate', 11)->comment('倍率'); - $table->string('host')->comment('主机名'); - $table->string('port', 11)->comment('连接端口'); - $table->integer('server_port')->comment('服务端口'); - $table->boolean('allow_insecure')->default(false)->comment('是否允许不安全'); - $table->string('server_name')->nullable(); - $table->boolean('show')->default(false)->comment('是否显示'); - $table->integer('sort')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_server_trojan'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_server_vless_table.php b/database/migrations/2023_08_07_205816_create_v2_server_vless_table.php deleted file mode 100644 index daffe86..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_server_vless_table.php +++ /dev/null @@ -1,48 +0,0 @@ -integer('id', true); - $table->text('group_id'); - $table->text('route_id')->nullable(); - $table->string('name'); - $table->integer('parent_id')->nullable(); - $table->string('host'); - $table->integer('port'); - $table->integer('server_port'); - $table->boolean('tls'); - $table->text('tls_settings')->nullable(); - $table->string('flow', 64)->nullable(); - $table->string('network', 11); - $table->text('network_settings')->nullable(); - $table->text('tags')->nullable(); - $table->string('rate', 11); - $table->boolean('show')->default(false); - $table->integer('sort')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_server_vless'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_server_vmess_table.php b/database/migrations/2023_08_07_205816_create_v2_server_vmess_table.php deleted file mode 100644 index e5afdcd..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_server_vmess_table.php +++ /dev/null @@ -1,50 +0,0 @@ -integer('id', true); - $table->string('group_id'); - $table->string('route_id')->nullable(); - $table->string('name'); - $table->integer('parent_id')->nullable(); - $table->string('host'); - $table->string('port', 11); - $table->integer('server_port'); - $table->tinyInteger('tls')->default(0); - $table->string('tags')->nullable(); - $table->string('rate', 11); - $table->string('network', 11); - $table->text('rules')->nullable(); - $table->text('networkSettings')->nullable(); - $table->text('tlsSettings')->nullable(); - $table->text('ruleSettings')->nullable(); - $table->text('dnsSettings')->nullable(); - $table->boolean('show')->default(false); - $table->integer('sort')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_server_vmess'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_stat_server_table.php b/database/migrations/2023_08_07_205816_create_v2_stat_server_table.php deleted file mode 100644 index e600dd5..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_stat_server_table.php +++ /dev/null @@ -1,40 +0,0 @@ -integer('id', true); - $table->integer('server_id')->index('server_id')->comment('节点id'); - $table->char('server_type', 11)->comment('节点类型'); - $table->bigInteger('u'); - $table->bigInteger('d'); - $table->char('record_type', 1)->comment('d day m month'); - $table->integer('record_at')->index('record_at')->comment('记录时间'); - $table->integer('created_at'); - $table->integer('updated_at'); - - $table->unique(['server_id', 'server_type', 'record_at'], 'server_id_server_type_record_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_stat_server'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_stat_table.php b/database/migrations/2023_08_07_205816_create_v2_stat_table.php deleted file mode 100644 index 53e6c22..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_stat_table.php +++ /dev/null @@ -1,48 +0,0 @@ -integer('id', true); - $table->integer('record_at'); - $table->char('record_type', 1); - $table->integer('order_count')->comment('订单数量'); - $table->integer('order_total')->comment('订单合计'); - $table->integer('commission_count'); - $table->integer('commission_total')->comment('佣金合计'); - $table->integer('paid_count'); - $table->integer('paid_total'); - $table->integer('register_count'); - $table->integer('invite_count'); - $table->string('transfer_used_total', 32); - $table->integer('created_at'); - $table->integer('updated_at'); - - if(config('database.default') !== 'sqlite'){ - $table->unique(['record_at']); - } - - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_stat'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_stat_user_table.php b/database/migrations/2023_08_07_205816_create_v2_stat_user_table.php deleted file mode 100644 index 3f5bff8..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_stat_user_table.php +++ /dev/null @@ -1,46 +0,0 @@ -integer('id', true); - $table->integer('user_id'); - $table->decimal('server_rate', 10); - $table->bigInteger('u'); - $table->bigInteger('d'); - $table->char('record_type', 2); - $table->integer('record_at'); - $table->integer('created_at'); - $table->integer('updated_at'); - - // 如果是不是sqlite才添加多个索引 - if(config('database.default') !== 'sqlite'){ - $table->index(['user_id','server_rate','record_at']); - $table->unique(['server_rate', 'user_id', 'record_at'], 'server_rate_user_id_record_at'); - } - - - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_stat_user'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_ticket_message_table.php b/database/migrations/2023_08_07_205816_create_v2_ticket_message_table.php deleted file mode 100644 index ea18792..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_ticket_message_table.php +++ /dev/null @@ -1,35 +0,0 @@ -integer('id', true); - $table->integer('user_id'); - $table->integer('ticket_id'); - $table->text('message'); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_ticket_message'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_ticket_table.php b/database/migrations/2023_08_07_205816_create_v2_ticket_table.php deleted file mode 100644 index e1b3482..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_ticket_table.php +++ /dev/null @@ -1,37 +0,0 @@ -integer('id', true); - $table->integer('user_id'); - $table->string('subject'); - $table->boolean('level'); - $table->boolean('status')->default(false)->comment('0:已开启 1:已关闭'); - $table->boolean('reply_status')->default(true)->comment('0:待回复 1:已回复'); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_ticket'); - } -}; diff --git a/database/migrations/2023_08_07_205816_create_v2_user_table.php b/database/migrations/2023_08_07_205816_create_v2_user_table.php deleted file mode 100644 index 39dda63..0000000 --- a/database/migrations/2023_08_07_205816_create_v2_user_table.php +++ /dev/null @@ -1,61 +0,0 @@ -integer('id', true); - $table->integer('invite_user_id')->nullable(); - $table->bigInteger('telegram_id')->nullable(); - $table->string('email', 64)->unique('email'); - $table->string('password', 64); - $table->char('password_algo', 10)->nullable(); - $table->char('password_salt', 10)->nullable(); - $table->integer('balance')->default(0); - $table->integer('discount')->nullable(); - $table->tinyInteger('commission_type')->default(0)->comment('0: system 1: period 2: onetime'); - $table->integer('commission_rate')->nullable(); - $table->integer('commission_balance')->default(0); - $table->integer('t')->default(0); - $table->bigInteger('u')->default(0); - $table->bigInteger('d')->default(0); - $table->bigInteger('transfer_enable')->default(0); - $table->boolean('banned')->default(false); - $table->boolean('is_admin')->default(false); - $table->integer('last_login_at')->nullable(); - $table->boolean('is_staff')->default(false); - $table->integer('last_login_ip')->nullable(); - $table->string('uuid', 36); - $table->integer('group_id')->nullable(); - $table->integer('plan_id')->nullable(); - $table->integer('speed_limit')->nullable(); - $table->tinyInteger('remind_expire')->nullable()->default(1); - $table->tinyInteger('remind_traffic')->nullable()->default(1); - $table->char('token', 32); - $table->bigInteger('expired_at')->nullable()->default(0); - $table->text('remarks')->nullable(); - $table->integer('created_at'); - $table->integer('updated_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('v2_user'); - } -}; diff --git a/database/migrations/2025_01_01_130644_modify_commission_status_in_v2_order_table.php b/database/migrations/2025_01_01_130644_modify_commission_status_in_v2_order_table.php new file mode 100644 index 0000000..916e226 --- /dev/null +++ b/database/migrations/2025_01_01_130644_modify_commission_status_in_v2_order_table.php @@ -0,0 +1,28 @@ +integer('commission_status')->nullable()->default(null)->comment('0待确认1发放中2有效3无效')->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('v2_order', function (Blueprint $table) { + $table->integer('commission_status')->default(false)->comment('0待确认1发放中2有效3无效')->change(); + }); + } +}; diff --git a/database/migrations/2025_01_04_optimize_plan_table.php b/database/migrations/2025_01_04_optimize_plan_table.php new file mode 100644 index 0000000..9d9a1ac --- /dev/null +++ b/database/migrations/2025_01_04_optimize_plan_table.php @@ -0,0 +1,129 @@ +json('prices')->nullable()->after('name') + ->comment('Store different duration prices and reset traffic price'); + $table->boolean('sell')->default(false)->after('prices')->comment('is sell'); + }); + + // Step 2: Migrate data to new format + DB::table('v2_plan')->orderBy('id')->chunk(100, function ($plans) { + foreach ($plans as $plan) { + $prices = array_filter([ + 'monthly' => $plan->month_price !== null ? $plan->month_price / 100 : null, + 'quarterly' => $plan->quarter_price !== null ? $plan->quarter_price / 100 : null, + 'half_yearly' => $plan->half_year_price !== null ? $plan->half_year_price / 100 : null, + 'yearly' => $plan->year_price !== null ? $plan->year_price / 100 : null, + 'two_yearly' => $plan->two_year_price !== null ? $plan->two_year_price / 100 : null, + 'three_yearly' => $plan->three_year_price !== null ? $plan->three_year_price / 100 : null, + 'onetime' => $plan->onetime_price !== null ? $plan->onetime_price / 100 : null, + 'reset_traffic' => $plan->reset_price !== null ? $plan->reset_price / 100 : null + ], function ($price) { + return $price !== null; + }); + + DB::table('v2_plan') + ->where('id', $plan->id) + ->update([ + 'prices' => json_encode($prices), + 'sell' => $plan->show + ]); + } + }); + + // Step 3: Optimize existing columns + Schema::table('v2_plan', function (Blueprint $table) { + // Modify existing columns to be more efficient + $table->unsignedInteger('group_id')->nullable()->change(); + $table->unsignedBigInteger('transfer_enable')->nullable() + ->comment('Transfer limit in bytes')->change(); + $table->unsignedInteger('speed_limit')->nullable() + ->comment('Speed limit in Mbps, 0 for unlimited')->change(); + $table->integer('reset_traffic_method')->nullable()->default(0) + ->comment('重置流量方式:0跟随系统设置、1每月1号、2按月重置、3不重置、4每年1月1日、5按年重置')->change(); + $table->unsignedInteger('capacity_limit')->nullable()->default(0) + ->comment('0 for unlimited')->change(); + }); + + // Step 4: Drop old columns + Schema::table('v2_plan', function (Blueprint $table) { + $table->dropColumn([ + 'month_price', + 'quarter_price', + 'half_year_price', + 'year_price', + 'two_year_price', + 'three_year_price', + 'onetime_price', + 'reset_price', + ]); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // Step 1: Add back old columns + Schema::table('v2_plan', function (Blueprint $table) { + $table->integer('month_price')->nullable(); + $table->integer('quarter_price')->nullable(); + $table->integer('half_year_price')->nullable(); + $table->integer('year_price')->nullable(); + $table->integer('two_year_price')->nullable(); + $table->integer('three_year_price')->nullable(); + $table->integer('onetime_price')->nullable(); + $table->integer('reset_price')->nullable(); + }); + + // Step 2: Restore data from new format to old format + DB::table('v2_plan')->orderBy('id')->chunk(100, function ($plans) { + foreach ($plans as $plan) { + $prices = json_decode($plan->prices, true) ?? []; + + DB::table('v2_plan') + ->where('id', $plan->id) + ->update([ + 'month_price' => $prices['monthly'] * 100 ?? null, + 'quarter_price' => $prices['quarterly'] * 100 ?? null, + 'half_year_price' => $prices['half_yearly'] * 100 ?? null, + 'year_price' => $prices['yearly'] * 100 ?? null, + 'two_year_price' => $prices['two_yearly'] * 100 ?? null, + 'three_year_price' => $prices['three_yearly'] * 100 ?? null, + 'onetime_price' => $prices['onetime'] * 100 ?? null, + 'reset_price' => $prices['reset_traffic'] * 100 ?? null, + ]); + } + }); + + // Step 3: Drop new columns + Schema::table('v2_plan', function (Blueprint $table) { + $table->dropColumn([ + 'prices', + 'sell' + ]); + }); + + // Step 4: Restore column types to original + Schema::table('v2_plan', function (Blueprint $table) { + $table->integer('group_id')->change(); + $table->integer('transfer_enable')->change(); + $table->integer('speed_limit')->nullable()->change(); + $table->boolean('reset_traffic_method')->nullable()->change(); + $table->integer('capacity_limit')->nullable()->change(); + }); + } +}; \ No newline at end of file diff --git a/database/migrations/2025_01_05_131425_create_v2_server_table.php b/database/migrations/2025_01_05_131425_create_v2_server_table.php new file mode 100644 index 0000000..f8fb84b --- /dev/null +++ b/database/migrations/2025_01_05_131425_create_v2_server_table.php @@ -0,0 +1,523 @@ +id('id'); + $table->string('type')->comment('Server Type'); + $table->string('code')->nullable()->comment('Server Spectific Key'); + $table->unsignedInteger('parent_id')->nullable()->comment('Parent Server ID'); + $table->json('group_ids')->nullable()->comment('Group ID'); + $table->json('route_ids')->nullable()->comment('Route ID'); + $table->string('name')->comment('Server Name'); + $table->decimal('rate', 8, 2)->comment('Traffic Rate'); + $table->json('tags')->nullable()->comment('Server Tags'); + $table->string('host')->comment('Server Host'); + $table->string('port')->comment('Client Port'); + $table->integer('server_port')->comment('Server Port'); + $table->json('protocol_settings')->nullable(); + $table->boolean('show')->default(false)->comment('Show in List'); + $table->integer('sort')->nullable()->unsigned()->index(); + $table->timestamps(); + $table->unique(['type', 'code']); + }); + + // Migrate Trojan servers + $trojanServers = DB::table('v2_server_trojan')->get(); + foreach ($trojanServers as $server) { + DB::table('v2_server')->insert([ + 'type' => 'trojan', + 'code' => (string) $server->id, + 'parent_id' => $server->parent_id, + 'group_ids' => $server->group_id ?: "[]", + 'route_ids' => $server->route_id ?: "[]", + 'name' => $server->name, + 'rate' => $server->rate, + 'tags' => $server->tags ?: "[]", + 'host' => $server->host, + 'port' => $server->port, + 'server_port' => $server->server_port, + 'protocol_settings' => json_encode([ + 'allow_insecure' => $server->allow_insecure, + 'server_name' => $server->server_name, + 'network' => $server->network, + 'network_settings' => $server->networkSettings + ]), + 'show' => $server->show, + 'sort' => $server->sort, + 'created_at' => date('Y-m-d H:i:s', $server->created_at), + 'updated_at' => date('Y-m-d H:i:s', $server->updated_at) + ]); + } + + // Migrate VMess servers + $vmessServers = DB::table('v2_server_vmess')->get(); + foreach ($vmessServers as $server) { + DB::table('v2_server')->insert([ + 'type' => 'vmess', + 'code' => (string) $server->id, + 'parent_id' => $server->parent_id, + 'group_ids' => $server->group_id ?: "[]", + 'route_ids' => $server->route_id ?: "[]", + 'name' => $server->name, + 'rate' => $server->rate, + 'tags' => $server->tags ?: "[]", + 'host' => $server->host, + 'port' => $server->port, + 'server_port' => $server->server_port, + 'protocol_settings' => json_encode([ + 'tls' => $server->tls, + 'network' => $server->network, + 'rules' => json_decode($server->rules), + 'network_settings' => json_decode($server->networkSettings), + 'tls_settings' => json_decode($server->tlsSettings), + ]), + 'show' => $server->show, + 'sort' => $server->sort, + 'created_at' => date('Y-m-d H:i:s', $server->created_at), + 'updated_at' => date('Y-m-d H:i:s', $server->updated_at) + ]); + } + + // Migrate VLESS servers + $vlessServers = DB::table('v2_server_vless')->get(); + foreach ($vlessServers as $server) { + $tlsSettings = optional(json_decode($server->tls_settings)); + DB::table('v2_server')->insert([ + 'type' => 'vless', + 'code' => (string) $server->id, + 'parent_id' => $server->parent_id, + 'group_ids' => $server->group_id ?: "[]", + 'route_ids' => $server->route_id ?: "[]", + 'name' => $server->name, + 'rate' => $server->rate, + 'tags' => $server->tags ?: "[]", + 'host' => $server->host, + 'port' => $server->port, + 'server_port' => $server->server_port, + 'protocol_settings' => json_encode([ + 'tls' => $server->tls, + 'tls_settings' => $tlsSettings, + 'flow' => $server->flow, + 'network' => $server->network, + 'network_settings' => json_decode($server->network_settings), + 'reality_settings' => ($tlsSettings && $tlsSettings->public_key && $tlsSettings->short_id && $tlsSettings->server_name) ? [ + 'public_key' => $tlsSettings->public_key, + 'short_id' => $tlsSettings->short_id, + 'server_name' => $tlsSettings->server_name, + 'server_port' => $tlsSettings->server_port, + 'private_key' => $tlsSettings->private_key, + ] : null + ]), + 'show' => $server->show, + 'sort' => $server->sort, + 'created_at' => date('Y-m-d H:i:s', $server->created_at), + 'updated_at' => date('Y-m-d H:i:s', $server->updated_at) + ]); + } + + // Migrate Shadowsocks servers + $ssServers = DB::table('v2_server_shadowsocks')->get(); + foreach ($ssServers as $server) { + DB::table('v2_server')->insert([ + 'type' => 'shadowsocks', + 'code' => (string) $server->id, + 'parent_id' => $server->parent_id, + 'group_ids' => $server->group_id ?: "[]", + 'route_ids' => $server->route_id ?: "[]", + 'name' => $server->name, + 'rate' => $server->rate, + 'tags' => $server->tags ?: "[]", + 'host' => $server->host, + 'port' => $server->port, + 'server_port' => $server->server_port, + 'protocol_settings' => json_encode([ + 'cipher' => $server->cipher, + 'obfs' => $server->obfs, + 'obfs_settings' => json_decode($server->obfs_settings) + ]), + 'show' => (bool) $server->show, + 'sort' => $server->sort, + 'created_at' => date('Y-m-d H:i:s', $server->created_at), + 'updated_at' => date('Y-m-d H:i:s', $server->updated_at) + ]); + } + + // Migrate Hysteria servers + $hysteriaServers = DB::table(table: 'v2_server_hysteria')->get(); + foreach ($hysteriaServers as $server) { + DB::table('v2_server')->insert([ + 'type' => 'hysteria', + 'code' => (string) $server->id, + 'parent_id' => $server->parent_id, + 'group_ids' => $server->group_id ?: "[]", + 'route_ids' => $server->route_id ?: "[]", + 'name' => $server->name, + 'rate' => $server->rate, + 'tags' => $server->tags ?: "[]", + 'host' => $server->host, + 'port' => $server->port, + 'server_port' => $server->server_port, + 'protocol_settings' => json_encode([ + 'version' => $server->version, + 'bandwidth' => [ + 'up' => $server->up_mbps, + 'down' => $server->down_mbps, + ], + 'obfs' => [ + 'open' => $server->is_obfs, + 'type' => 'salamander', + 'password' => Helper::getServerKey($server->created_at, 16), + ], + 'tls' => [ + 'server_name' => $server->server_name, + 'allow_insecure' => $server->insecure + ] + ]), + 'show' => $server->show, + 'sort' => $server->sort, + 'created_at' => date('Y-m-d H:i:s', $server->created_at), + 'updated_at' => date('Y-m-d H:i:s', $server->updated_at) + ]); + } + + // Update parent_id for all servers + $this->updateParentIds(); + + // Drop old tables + Schema::dropIfExists('v2_server_trojan'); + Schema::dropIfExists('v2_server_vmess'); + Schema::dropIfExists('v2_server_vless'); + Schema::dropIfExists('v2_server_shadowsocks'); + Schema::dropIfExists('v2_server_hysteria'); + } + + /** + * Update parent_id references for all servers + */ + private function updateParentIds(): void + { + // Get all servers that have a parent_id + $servers = DB::table('v2_server') + ->whereNotNull('parent_id') + ->get(); + + // Update each server's parent_id to reference the new table's id + foreach ($servers as $server) { + $parentId = DB::table('v2_server') + ->where('type', $server->type) + ->where('code', $server->parent_id) + ->value('id'); + + if ($parentId) { + DB::table('v2_server') + ->where('id', $server->id) + ->update(['parent_id' => $parentId]); + } + } + } + + /** + * Restore parent_id references when rolling back + */ + private function restoreParentIds(string $type, string $table): void + { + // Get all servers of the specified type that have a parent_id + $servers = DB::table($table) + ->whereNotNull('parent_id') + ->get(); + + // Update each server's parent_id to reference back to the original id + foreach ($servers as $server) { + $originalParentId = DB::table('v2_server') + ->where('type', $type) + ->where('id', $server->parent_id) + ->value('code'); + + if ($originalParentId) { + DB::table($table) + ->where('id', $server->id) + ->update(['parent_id' => $originalParentId]); + } + } + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // Recreate old tables + Schema::create('v2_server_trojan', function (Blueprint $table) { + $table->integer('id', true)->comment('节点ID'); + $table->string('group_id')->comment('节点组'); + $table->string('route_id')->nullable(); + $table->string('ips')->nullable(); + $table->string('excludes')->nullable(); + $table->integer('parent_id')->nullable()->comment('父节点'); + $table->string('tags')->nullable()->comment('节点标签'); + $table->string('name')->comment('节点名称'); + $table->string('rate', 11)->comment('倍率'); + $table->string('host')->comment('主机名'); + $table->string('port', 11)->comment('连接端口'); + $table->integer('server_port')->comment('服务端口'); + $table->boolean('allow_insecure')->default(false)->comment('是否允许不安全'); + $table->string('server_name')->nullable(); + $table->string('network')->nullable(); + $table->text('networkSettings')->nullable(); + $table->boolean('show')->default(false)->comment('是否显示'); + $table->integer('sort')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + + Schema::create('v2_server_vmess', function (Blueprint $table) { + $table->integer('id', true); + $table->string('group_id'); + $table->string('route_id')->nullable(); + $table->string('ips')->nullable(); + $table->string('excludes')->nullable(); + $table->string('name'); + $table->integer('parent_id')->nullable(); + $table->string('host'); + $table->string('port', 11); + $table->integer('server_port'); + $table->tinyInteger('tls')->default(0); + $table->string('tags')->nullable(); + $table->string('rate', 11); + $table->string('network', 11); + $table->text('rules')->nullable(); + $table->text('networkSettings')->nullable(); + $table->text('tlsSettings')->nullable(); + $table->boolean('show')->default(false); + $table->integer('sort')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + + Schema::create('v2_server_vless', function (Blueprint $table) { + $table->integer('id', true); + $table->text('group_id'); + $table->text('route_id')->nullable(); + $table->string('ips')->nullable(); + $table->string('excludes')->nullable(); + $table->string('name'); + $table->integer('parent_id')->nullable(); + $table->string('host'); + $table->integer('port'); + $table->integer('server_port'); + $table->boolean('tls'); + $table->text('tls_settings')->nullable(); + $table->string('flow', 64)->nullable(); + $table->string('network', 11); + $table->text('network_settings')->nullable(); + $table->text('tags')->nullable(); + $table->string('rate', 11); + $table->boolean('show')->default(false); + $table->integer('sort')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + + Schema::create('v2_server_shadowsocks', function (Blueprint $table) { + $table->integer('id', true); + $table->string('group_id'); + $table->string('route_id')->nullable(); + $table->string('ips')->nullable(); + $table->string('excludes')->nullable(); + $table->integer('parent_id')->nullable(); + $table->string('tags')->nullable(); + $table->string('name'); + $table->string('rate', 11); + $table->string('host'); + $table->string('port', 11); + $table->integer('server_port'); + $table->string('cipher'); + $table->char('obfs', 11)->nullable(); + $table->string('obfs_settings')->nullable(); + $table->tinyInteger('show')->default(0); + $table->integer('sort')->nullable(); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + + Schema::create('v2_server_hysteria', function (Blueprint $table) { + $table->integer('id', true); + $table->string('group_id'); + $table->string('route_id')->nullable(); + $table->string('ips')->nullable(); + $table->string('excludes')->nullable(); + $table->string('name'); + $table->integer('parent_id')->nullable(); + $table->string('host'); + $table->string('port', 11); + $table->integer('server_port'); + $table->string('tags')->nullable(); + $table->string('rate', 11); + $table->boolean('show')->default(false); + $table->integer('sort')->nullable(); + $table->tinyInteger('version', false, true)->default(1)->comment('hysteria版本,Version:1\2'); + $table->boolean('is_obfs')->default(true)->comment('是否开启obfs'); + $table->string('alpn')->nullable(); + $table->integer('up_mbps'); + $table->integer('down_mbps'); + $table->string('server_name', 64)->nullable(); + $table->boolean('insecure')->default(false); + $table->integer('created_at'); + $table->integer('updated_at'); + }); + + // Migrate data back to old tables + $servers = DB::table('v2_server')->get(); + foreach ($servers as $server) { + $settings = json_decode($server->protocol_settings, true); + $timestamp = strtotime($server->created_at); + $updated = strtotime($server->updated_at); + switch ($server->type) { + case 'trojan': + DB::table('v2_server_trojan')->insert([ + 'id' => (int) $server->code, + 'group_id' => $server->group_ids, + 'route_id' => $server->route_ids, + 'parent_id' => $server->parent_id, + 'tags' => $server->tags, + 'name' => $server->name, + 'rate' => (string) $server->rate, + 'host' => $server->host, + 'port' => $server->port, + 'server_port' => $server->server_port, + 'allow_insecure' => $settings['allow_insecure'], + 'server_name' => $settings['server_name'], + 'network' => $settings['network'] ?? null, + 'networkSettings' => $settings['network_settings'] ?? null, + 'show' => $server->show, + 'sort' => $server->sort, + 'created_at' => $timestamp, + 'updated_at' => $updated + ]); + break; + case 'vmess': + DB::table('v2_server_vmess')->insert([ + 'id' => (int) $server->code, + 'group_id' => $server->group_ids, + 'route_id' => $server->route_ids, + 'name' => $server->name, + 'parent_id' => $server->parent_id, + 'host' => $server->host, + 'port' => $server->port, + 'server_port' => $server->server_port, + 'tls' => $settings['tls'], + 'tags' => $server->tags, + 'rate' => (string) $server->rate, + 'network' => $settings['network'], + 'rules' => json_encode($settings['rules']), + 'networkSettings' => json_encode($settings['network_settings']), + 'tlsSettings' => json_encode($settings['tls_settings']), + 'show' => $server->show, + 'sort' => $server->sort, + 'created_at' => $timestamp, + 'updated_at' => $updated + ]); + break; + case 'vless': + // 处理 reality settings + $tlsSettings = $settings['tls_settings'] ?? new \stdClass(); + if (isset($settings['reality_settings'])) { + $tlsSettings = array_merge((array) $tlsSettings, [ + 'public_key' => $settings['reality_settings']['public_key'], + 'short_id' => $settings['reality_settings']['short_id'], + 'server_name' => explode(':', $settings['reality_settings']['dest'])[0], + 'server_port' => explode(':', $settings['reality_settings']['dest'])[1] ?? null, + 'private_key' => $settings['reality_settings']['private_key'] + ]); + } + + DB::table('v2_server_vless')->insert([ + 'id' => (int) $server->code, + 'group_id' => $server->group_ids, + 'route_id' => $server->route_ids, + 'name' => $server->name, + 'parent_id' => $server->parent_id, + 'host' => $server->host, + 'port' => $server->port, + 'server_port' => $server->server_port, + 'tls' => $settings['tls'], + 'tls_settings' => json_encode($tlsSettings), + 'flow' => $settings['flow'], + 'network' => $settings['network'], + 'network_settings' => json_encode($settings['network_settings']), + 'tags' => $server->tags, + 'rate' => (string) $server->rate, + 'show' => $server->show, + 'sort' => $server->sort, + 'created_at' => $timestamp, + 'updated_at' => $updated + ]); + break; + case 'shadowsocks': + DB::table('v2_server_shadowsocks')->insert([ + 'id' => (int) $server->code, + 'group_id' => $server->group_ids, + 'route_id' => $server->route_ids, + 'parent_id' => $server->parent_id, + 'tags' => $server->tags, + 'name' => $server->name, + 'rate' => (string) $server->rate, + 'host' => $server->host, + 'port' => $server->port, + 'server_port' => $server->server_port, + 'cipher' => $settings['cipher'], + 'obfs' => $settings['obfs'], + 'obfs_settings' => json_encode($settings['obfs_settings']), + 'show' => (int) $server->show, + 'sort' => $server->sort, + 'created_at' => $timestamp, + 'updated_at' => $updated + ]); + break; + case 'hysteria': + DB::table('v2_server_hysteria')->insert([ + 'id' => (int) $server->code, + 'group_id' => $server->group_ids, + 'route_id' => $server->route_ids, + 'name' => $server->name, + 'parent_id' => $server->parent_id, + 'host' => $server->host, + 'port' => $server->port, + 'server_port' => $server->server_port, + 'tags' => $server->tags, + 'rate' => (string) $server->rate, + 'show' => $server->show, + 'sort' => $server->sort, + 'up_mbps' => $settings['bandwidth']['up'], + 'down_mbps' => $settings['bandwidth']['down'], + 'server_name' => $settings['tls']['server_name'], + 'insecure' => $settings['tls']['allow_insecure'], + 'created_at' => $timestamp, + 'updated_at' => $updated + ]); + break; + } + } + + // Restore parent_id references for each server type + $this->restoreParentIds('trojan', 'v2_server_trojan'); + $this->restoreParentIds('vmess', 'v2_server_vmess'); + $this->restoreParentIds('vless', 'v2_server_vless'); + $this->restoreParentIds('shadowsocks', 'v2_server_shadowsocks'); + $this->restoreParentIds('hysteria', 'v2_server_hysteria'); + + // Drop new table + Schema::dropIfExists('v2_server'); + } +}; diff --git a/database/migrations/2025_01_10_152139_add_device_limit_column.php b/database/migrations/2025_01_10_152139_add_device_limit_column.php new file mode 100644 index 0000000..8015d10 --- /dev/null +++ b/database/migrations/2025_01_10_152139_add_device_limit_column.php @@ -0,0 +1,31 @@ +unsignedInteger('device_limit')->nullable()->after('speed_limit'); + }); + Schema::table('v2_user', function (Blueprint $table) { + $table->integer('device_limit')->nullable()->after('expired_at'); + $table->integer('online_count')->nullable()->after('device_limit'); + $table->timestamp('last_online_at')->nullable()->after('online_count'); + }); + } + + public function down(): void + { + Schema::table('v2_user', function (Blueprint $table) { + $table->dropColumn('device_limit'); + $table->dropColumn('online_count'); + $table->dropColumn('last_online_at'); + }); + Schema::table('v2_plan', function (Blueprint $table) { + $table->dropColumn('device_limit'); + }); + } +}; diff --git a/database/migrations/2025_01_12_190315_add_sort_to_v2_notice_table.php b/database/migrations/2025_01_12_190315_add_sort_to_v2_notice_table.php new file mode 100644 index 0000000..9cbef66 --- /dev/null +++ b/database/migrations/2025_01_12_190315_add_sort_to_v2_notice_table.php @@ -0,0 +1,30 @@ +integer('sort')->nullable()->after('id')->index(); + }); + + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('v2_notice', function (Blueprint $table) { + $table->dropColumn('sort'); + }); + } +}; diff --git a/database/migrations/2025_01_12_200936_modify_commission_status_in_v2_order_table.php b/database/migrations/2025_01_12_200936_modify_commission_status_in_v2_order_table.php new file mode 100644 index 0000000..668ef17 --- /dev/null +++ b/database/migrations/2025_01_12_200936_modify_commission_status_in_v2_order_table.php @@ -0,0 +1,33 @@ +where('commission_status', null)->update([ + 'commission_status' => 0 + ]); + Schema::table('v2_order', function (Blueprint $table) { + $table->integer('commission_status')->default(value: 0)->comment('0待确认1发放中2有效3无效')->change(); + }); + + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('v2_order', function (Blueprint $table) { + $table->integer('commission_status')->nullable()->comment('0待确认1发放中2有效3无效')->change(); + }); + } +}; diff --git a/database/migrations/2025_01_13_000000_convert_order_period_fields.php b/database/migrations/2025_01_13_000000_convert_order_period_fields.php new file mode 100644 index 0000000..dc6718c --- /dev/null +++ b/database/migrations/2025_01_13_000000_convert_order_period_fields.php @@ -0,0 +1,56 @@ + 'monthly', + 'quarter_price' => 'quarterly', + 'half_year_price' => 'half_yearly', + 'year_price' => 'yearly', + 'two_year_price' => 'two_yearly', + 'three_year_price' => 'three_yearly', + 'onetime_price' => 'onetime', + 'reset_price' => 'reset_traffic' + ]; + + /** + * Run the migrations. + */ + public function up(): void + { + // 批量更新订单的周期字段 + foreach (self::PERIOD_MAPPING as $oldPeriod => $newPeriod) { + DB::table('v2_order') + ->where('period', $oldPeriod) + ->update(['period' => $newPeriod]); + } + + // 检查是否还有未转换的记录 + $unconvertedCount = DB::table('v2_order') + ->whereNotIn('period', array_values(self::PERIOD_MAPPING)) + ->count(); + + if ($unconvertedCount > 0) { + Log::warning("Found {$unconvertedCount} orders with unconverted period values"); + } + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // 回滚操作 - 将新的周期值转换回旧的价格字段名 + foreach (self::PERIOD_MAPPING as $oldPeriod => $newPeriod) { + DB::table('v2_order') + ->where('period', $newPeriod) + ->update(['period' => $oldPeriod]); + } + } +}; \ No newline at end of file diff --git a/database/migrations/2025_01_15_000002_add_stat_performance_indexes.php b/database/migrations/2025_01_15_000002_add_stat_performance_indexes.php new file mode 100644 index 0000000..4640e7e --- /dev/null +++ b/database/migrations/2025_01_15_000002_add_stat_performance_indexes.php @@ -0,0 +1,93 @@ +index('t'); + $table->index('online_count'); + $table->index('created_at'); + }); + + Schema::table('v2_order', function (Blueprint $table) { + $table->index('created_at'); + $table->index('status'); + $table->index('total_amount'); + $table->index('commission_status'); + $table->index('invite_user_id'); + $table->index('commission_balance'); + }); + + Schema::table('v2_stat_server', function (Blueprint $table) { + $table->index('server_id'); + $table->index('record_at'); + $table->index('u'); + $table->index('d'); + }); + + Schema::table('v2_stat_user', function (Blueprint $table) { + $table->index('u'); + $table->index('d'); + }); + + Schema::table('v2_commission_log', function (Blueprint $table) { + $table->index('created_at'); + $table->index('get_amount'); + }); + + Schema::table('v2_ticket', function (Blueprint $table) { + $table->index('status'); + $table->index('created_at'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('v2_user', function (Blueprint $table) { + $table->dropIndex(['t']); + $table->dropIndex(['online_count']); + $table->dropIndex(['created_at']); + }); + + Schema::table('v2_order', function (Blueprint $table) { + $table->dropIndex(['created_at']); + $table->dropIndex(['status']); + $table->dropIndex(['total_amount']); + $table->dropIndex(['commission_status']); + $table->dropIndex(['invite_user_id']); + $table->dropIndex(['commission_balance']); + }); + + Schema::table('v2_stat_server', function (Blueprint $table) { + $table->dropIndex(['server_id']); + $table->dropIndex(['record_at']); + $table->dropIndex(['u']); + $table->dropIndex(['d']); + }); + + Schema::table('v2_stat_user', function (Blueprint $table) { + $table->dropIndex(['u']); + $table->dropIndex(['d']); + }); + + Schema::table('v2_commission_log', function (Blueprint $table) { + $table->dropIndex(['created_at']); + $table->dropIndex(['get_amount']); + }); + + Schema::table('v2_ticket', function (Blueprint $table) { + $table->dropIndex(['status']); + $table->dropIndex(['created_at']); + }); + } +}; \ No newline at end of file diff --git a/database/migrations/2025_01_16_142320_add_updated_at_index_to_v2_order_table.php b/database/migrations/2025_01_16_142320_add_updated_at_index_to_v2_order_table.php new file mode 100644 index 0000000..5278bbf --- /dev/null +++ b/database/migrations/2025_01_16_142320_add_updated_at_index_to_v2_order_table.php @@ -0,0 +1,28 @@ +index('updated_at'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('v2_order', function (Blueprint $table) { + $table->dropIndex(['updated_at']); + }); + } +}; diff --git a/database/migrations/2025_01_18_140511_create_plugins_table.php b/database/migrations/2025_01_18_140511_create_plugins_table.php new file mode 100644 index 0000000..be3d070 --- /dev/null +++ b/database/migrations/2025_01_18_140511_create_plugins_table.php @@ -0,0 +1,33 @@ +id(); + $table->string('name'); + $table->string('code')->unique(); + $table->string('version', 50); + $table->boolean('is_enabled')->default(false); + $table->json('config')->nullable(); + $table->timestamp('installed_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('v2_plugins'); + } +}; diff --git a/docker-compose.sample.yaml b/docker-compose.sample.yaml deleted file mode 100644 index 87960b5..0000000 --- a/docker-compose.sample.yaml +++ /dev/null @@ -1,27 +0,0 @@ -version: '3' -services: - xboard: - # build: - # context: . - image: ghcr.io/cedar2025/xboard:latest - volumes: - - ./:/www/ - # - ./.env:/www/.env - - redis-socket:/run/redis-socket # 挂载socket - environment: - - docker=true #用于给安装脚本判断是否为docker环境 - depends_on: - - redis - network_mode: host #默认使用Host模式,需要Bridge模式自己注释掉 - restart: always - # ports: - # - 7001:7001 - redis: - build: - context: .docker/services/redis - restart: always - volumes: - - ./.docker/.data/redis:/data/ # 挂载redis持久化数据 - - redis-socket:/run/redis-socket # 挂载socket -volumes: - redis-socket: \ No newline at end of file diff --git a/docs/1panel安装指南.md b/docs/1panel安装指南.md deleted file mode 100644 index 74ae6de..0000000 --- a/docs/1panel安装指南.md +++ /dev/null @@ -1,125 +0,0 @@ -当然可以。以下是增强了步骤性的部署教程: - -# 1panel 部署教程 - -本文将介绍如何使用 1panel 快速部署 Xboard。 - -## 安装部署 - -### 步骤 1:安装 1panel - -1. 执行以下命令安装 1panel: - - ``` - curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh - ``` - -2. 安装完成后,登录 1panel 进行环境的安装。 - -### 步骤 2:安装应用 - -1. 打开应用商店,安装以下应用: - - - ☑️ OpenResty 任意版本 (安装时需要勾选 "端口外部访问" 来打开防火墙> - - ☑️ MySQL 5.7.\* (arm 架构可以选择 mariadb 进行代替) - - ⚠️ :安装过程中配置默认即可。 - -### 步骤 3:添加站点 - -1. 在 1panel 面板中,选择“网站”并点击“创建网站”,然后选择“反向代理”。 -2. 在 “主域名” 中填写你指向服务器的域名, -3. 在 “代号” 中填写 `xboard` -4. 在 “在代理地址” 中填写 `127.0.0.1:7001`, -5. 最后点击“创建”按钮。 -6. 点击刚创建的网站的 "配置" > "反向代理" > "源文" 修改反向代理规则为以下内容: - - ``` - location ^~ / { - proxy_pass http://127.0.0.1:7001; - proxy_http_version 1.1; - proxy_set_header Connection ""; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Real-PORT $remote_port; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $http_host; - proxy_set_header Scheme $scheme; - proxy_set_header Server-Protocol $server_protocol; - proxy_set_header Server-Name $server_name; - proxy_set_header Server-Addr $server_addr; - proxy_set_header Server-Port $server_port; - proxy_cache off; - } - ``` - -### 步骤 4:创建数据库 - -1. 在 1panel 面板中,选择“数据库”并点击“创建数据库”。 -2. 在“名称”中填写 `xboard`。 -3. 在“用户”中填写 `xboard`。 -4. 在“权限”中选择“所有人(%)”。 -5. 最后点击“创建”按钮。 -6. 记住数据库账号密码进行下一步 - -### 步骤 5:安装 Xboard - -1. 通过 SSH 登录到服务器后,访问站点路径如:`/opt/1panel/apps/openresty/openresty/www/sites/xboard/index`。 -2. 如果系统没有安装 git,请执行以下命令安装 git: - - - Ubuntu/Debian: - - ``` - apt update - apt install -y git - ``` - - - CentOS/RHEL: - - ``` - yum update - yum install -y git - ``` - -3. 在站点目录中执行以下命令从 Github 克隆到当前目录: - - ``` - git clone -b docker-compose --depth 1 https://github.com/cedar2025/Xboard ./ - ``` - -4. 执行以下命令安装 Xboard: - - ``` - docker compose run -it --rm xboard php artisan xboard:install - ``` - -5. 根据提示输入上述创建的数据库账号密码,选择使用内置 redis 完成安装。 - 执行这条命令之后,会返回你的后台地址和管理员账号密码(你需要记录下来)。 - 你需要执行下面的“启动 Xboard”步骤之后才能访问后台。 - -### 步骤 6:启动 Xboard - -在站点目录中执行以下命令: - -``` -docker compose up -d -``` - -🎉: 到这里,你已经可以通过域名访问你的站点了。 - -⚠️: 请务必开启防火墙防止7001端口暴露到公网当中。 - -## 更新 - -1. 通过 SSH 登录到服务器后,访问站点路径如:`/opt/1panel/apps/openresty/openresty/www/sites/xboard/index`,然后在站点目录中执行以下命令: - - ``` - docker compose down xboard - docker compose pull - docker compose up -d - ``` - -🎉: 在此,你已完成 Xboard 的更新。 - -## 注意 - -- 启用 webman 后做的任何代码修改都需要重启生效。 diff --git a/docs/aapanel+docker安装指南.md b/docs/aapanel+docker安装指南.md deleted file mode 100644 index 5094da8..0000000 --- a/docs/aapanel+docker安装指南.md +++ /dev/null @@ -1,102 +0,0 @@ -## Docker-Compose 部署教程 -本文教你如何在命令行使用aapanel + docker-compose来快速Xboard - -### 部署 -1. 安装aaPanel + 和docker -``` -# 安装Docker -curl -sSL https://get.docker.com | bash -# Centos系统可能还需要执行下面命令来启动Docker -systemctl enable docker -systemctl start docker -``` -``` -# 安装宝塔 -URL=https://www.aapanel.com/script/install_6.0_en.sh && if [ -f /usr/bin/curl ];then curl -ksSO "$URL" ;else wget --no-check-certificate -O install_6.0_en.sh "$URL";fi;bash install_6.0_en.sh aapanel -``` - -安装完成后我们登陆 aaPanel 进行环境的安装。 -2. 选择使用LNMP的环境安装方式勾选如下信息 -☑️ Nginx 任意版本 -☑️ MySQL 5.7 -选择 Fast 快速编译后进行安装。 - -⚠️ :无需安装php 与 redis - -3. 添加站点 ->aaPanel 面板 > Website > Add site。 ->>在 Domain 填入你指向服务器的域名 ->>在 Database 选择MySQL ->>在 PHP Verison 选择纯静态 - -4. 安装 Xborad ->通过SSH登录到服务器后访问站点路径如:/www/wwwroot/你的站点域名。 ->以下命令都需要在站点目录进行执行。 -``` -# 删除目录下文件 -chattr -i .user.ini -rm -rf .htaccess 404.html 502.html index.html .user.ini -``` -> 执行命令从 Github 克隆到当前目录。 -``` -git clone https://github.com/cedar2025/Xboard.git ./ -``` -> 复制一份docker-compose.yaml文件 -``` -cp docker-compose.sample.yaml docker-compose.yaml -``` -> 执行命令安装依赖包以及Xboard -``` -docker compose run -it --rm xboard sh init.sh -``` -> 根据提示完成安装 -> 执行这条命令之后,会返回你的后台地址和管理员账号密码(你需要记录下来) -> 你需要执行下面的 **启动xborad** 步骤之后才能访问后台 - -5. 启动xboard -``` -docker compose up -d -``` -6. 设置反向代理 -> 站点设置 > 反向代理 > 添加反向代理 ->> 在 **代理名称** 填入 Xboard ->> 在 **目标URL** 填入 ```http://127.0.0.1:7001``` ->> 修改反向代理规则为: -``` -location ^~ / { - proxy_pass http://127.0.0.1:7001; - proxy_http_version 1.1; - proxy_set_header Connection ""; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Real-PORT $remote_port; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $http_host; - proxy_set_header Scheme $scheme; - proxy_set_header Server-Protocol $server_protocol; - proxy_set_header Server-Name $server_name; - proxy_set_header Server-Addr $server_addr; - proxy_set_header Server-Port $server_port; - proxy_cache off; -} -``` - -🎉: 到这里,你可以已经可以通过域名访问你的站点了 - -⚠️: 请务必开启防火墙防止7001端口暴露到公网当中。 - -### 更新 -1. 更新代码 ->通过SSH登录到服务器后访问站点路径如:/www/wwwroot/你的站点域名。 ->以下命令都需要在站点目录进行执行。 -``` -docker compose pull -docker compose run -it --rm xboard sh update.sh -``` -2. 重启Xboard -``` -docker compose restart -``` -🎉: 在此你已完成Xboard的更新 - -### 注意 -启用webman后做的任何代码修改都需要重启生效 diff --git a/docs/aapanel安装指南.md b/docs/aapanel安装指南.md deleted file mode 100644 index 430e054..0000000 --- a/docs/aapanel安装指南.md +++ /dev/null @@ -1,154 +0,0 @@ -## aapanel部署指南 -> 本文将教你如何使用aapanel进行部署 - -⚠️:Centos7有部分反馈部署失败,请尽量避免使用Centos7进行部署 -### 安装 -1. 安装aaPanel - -``` -URL=https://www.aapanel.com/script/install_6.0_en.sh && if [ -f /usr/bin/curl ];then curl -ksSO "$URL" ;else wget --no-check-certificate -O install_6.0_en.sh "$URL";fi;bash install_6.0_en.sh aapanel -``` - -安装完成后我们登陆 aaPanel 进行环境的安装。 -2. 选择使用LNMP的环境安装方式勾选如下信息 -☑️ Nginx 任意版本 -☑️ MySQL 5.7 -☑️ PHP 8.1 (如果没看到8.1先不选,去App Store安装) -选择 Fast 快速编译后进行安装。 - -3. 安装扩展 -> aaPanel 面板 > App Store > 找到PHP 8.1点击Setting > Install extentions选择以下扩展进行安装 -- redis -- fileinfo -- swoole4 -- readline -- event -- inotify (可选,热重载依赖) - -4. 解除被禁止函数 -> aaPanel 面板 > App Store > 找到PHP 8.1点击Setting > Disabled functions 将以下函数从列表中删除 -- putenv -- proc_open -- pcntl_alarm -- pcntl_signal - -5. 添加站点 ->aaPanel 面板 > Website > Add site。 ->>在 Domain 填入你指向服务器的域名 ->>在 Database 选择MySQL ->>在 PHP Verison 选择PHP-81 - -6. 安装 Xborad ->通过SSH登录到服务器后访问站点路径如:/www/wwwroot/你的站点域名。 ->以下命令都需要在站点目录进行执行。 -``` -# 删除目录下文件 -chattr -i .user.ini -rm -rf .htaccess 404.html 502.html index.html .user.ini -``` -> 执行命令从 Github 克隆到当前目录。 -``` -git clone https://github.com/cedar2025/Xboard.git ./ -``` -> 执行命令安装依赖包以及V2board -``` -sh init.sh -``` -> 根据提示完成安装 -7. 配置站点目录及伪静态 -> 添加完成后编辑添加的站点 > Site directory > Running directory 选择 /public 保存。 -> 添加完成后编辑添加的站点 > URL rewrite 填入伪静态信息。 -``` -location /downloads { -} - -location / { - try_files $uri $uri/ /index.php$is_args$query_string; -} - -location ~ .*\.(js|css)?$ -{ - expires 1h; - error_log off; - access_log /dev/null; -} -``` -8. 配置守护进程 ->Xboard的系统强依赖队列服务,正常使用XBoard必须启动队列服务。下面以aaPanel中supervisor服务来守护队列服务作为演示。 -- 1️⃣. aaPanel 面板 > App Store > Tools -- 2️⃣. 找到Supervisor进行安装,安装完成后点击设置 > Add Daemon按照如下填写 -- - 在 Name 填写 `Xboard` -- - 在 Run User 选择 www -- - 在 Run Dir 选择 站点目录 在 Start Command 填写 `php artisan horizon` 在 Processes 填写 1 - ->填写后点击Confirm添加即可运行。 - -9. 配置定时任务# -aaPanel 面板 > Cron。 -- 在 Type of Task 选择 Shell Script -- 在 Name of Task 填写 v2board -- 在 Period 选择 N Minutes 1 Minute -- 在 Script content 填写 `php /www/wwwroot/路径/artisan schedule:run` - -根据上述信息添加每1分钟执行一次的定时任务。 - - -### 开启webman -> 在上述安装的基础上开启webman提高性能 - -1. 配置php.ini -> 通过SSH登录到服务器后访问站点路径如:/www/wwwroot/你的站点域名。 -``` -cp /www/server/php/81/etc/php.ini cli-php.ini - -sed -i 's/^disable_functions[[:space:]]*=[[:space:]]*.*/disable_functions=header,header_remove,headers_sent,http_response_code,setcookie,session_create_id,session_id,session_name,session_save_path,session_status,session_start,session_write_close,session_regenerate_id,set_time_limit/g' cli-php.ini - -``` -2. 添加守护进程 ->下面以aaPanel中supervisor服务来守护队列服务作为演示。 -- 1️⃣. aaPanel 面板 > App Store > Tools -- 2️⃣. 找到Supervisor进行安装,安装完成后点击设置 > Add Daemon按照如下填写 -- - 在 Name 填写 webman -- - 在 Run User 选择 www -- - 在 Run Dir 选择 站点目录 在 Start Command 填写 ```/www/server/php/81/bin/php -c cli-php.ini webman.php start``` 在 Processes 填写 1 ->填写后点击Confirm添加即可运行。 - -3. 修改伪静态 -> 站点设置 > URL Rewrite(伪静态) 填入一下内容(覆盖前伪静态配置) - -``` -location ~* \.(jpg|jpeg|png|gif|js|css|svg|woff2|woff|ttf|eot|wasm|json|ico)$ { - -} -location ~ .* { - proxy_pass http://127.0.0.1:7010; - proxy_http_version 1.1; - proxy_set_header Connection ""; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Real-PORT $remote_port; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $http_host; - proxy_set_header Scheme $scheme; - proxy_set_header Server-Protocol $server_protocol; - proxy_set_header Server-Name $server_name; - proxy_set_header Server-Addr $server_addr; - proxy_set_header Server-Port $server_port; - } -``` - -> 在此你的webman已经成功部署了 - -### 更新 - -1. 更新代码 -> 通过SSH登录到服务器后访问站点路径如:/www/wwwroot/你的站点域名。 -``` -sh update.sh -``` -2. 重启webman 守护进程(如果启用了webman) -- 1️⃣. aaPanel 面板 > App Store > Tools -- 2️⃣. 找到Supervisor点击设置,找到名为webman的守护进程点击重启即可 - - -### 注意 -启用webman后做的任何代码修改都需要重启生效 diff --git a/docs/config迁移指南.md b/docs/config迁移指南.md deleted file mode 100644 index 746cd1f..0000000 --- a/docs/config迁移指南.md +++ /dev/null @@ -1,36 +0,0 @@ -#### config/v2board.php 迁移 -> xboard将配置储存到数据库了, 不再使用file进行储存,你需要对配置文件进行迁移。 -#### docker-compose 环境 -1. 在xboard 目录下创建 config文件夹 -2. 复制旧项目的 v2board.php 到config目录 -3. 修改docker-compose.yaml 取消下面代码的注释(删除 "#") -``` - # - ./config/v2board.php:/www/config/v2board.php -``` -4. 执行下面的命令即可完成迁移 -``` -docker compose down -docker compose run -it --rm xboard php artisan migrateFromV2b config -docker compose up -d -``` -#### aapanel 环境 -1. 将旧的 ```config/v2board.php``` 文件复制到 xboard的 ```config/v2board.php``` 下 -2. 执行下面的命令,即可完成迁移 -``` -php artisan migrateFromV2b config -``` -### aapanel + docker 环境 -1. 将旧的 ```config/v2board.php``` 文件复制到 xboard的 ```config/v2board.php``` 下 -2. 执行下面的命令,即可完成迁移 -``` -docker compose down -docker compose run -it --rm xboard php artisan migrateFromV2b config -docker compose up -d -``` - -## 注意 -> 修改后台路径需要重启才能生效 -``` -docker compose restart -``` -> 如果是是aapanel安装则需要重启 webman守护进程 diff --git a/docs/docker-compose安装指南.md b/docs/docker-compose安装指南.md deleted file mode 100644 index ac25f8b..0000000 --- a/docs/docker-compose安装指南.md +++ /dev/null @@ -1,77 +0,0 @@ -## Docker-Compose 部署教程 -本文教你如何在命令行使用docker-compose + sqlite来快速部署Xboard -如果你需要使用Mysql,你需要自行处理好Mysql的安装。 -### 部署 (使用docker-compose 2分钟部署) -> 在此提供Xboard安装、快速体验Xboard的步骤。 -使用docker compose + sqlite 快速部署站点(**无需安装Mysql以及redis**) -1. 安装docker -``` -curl -sSL https://get.docker.com | bash -``` -Centos系统可能需要执行下面命令来启动Docker。 -``` -systemctl enable docker -systemctl start docker -``` -2. 获取Docker compose 文件 -``` -git clone -b docker-compose --depth 1 https://github.com/cedar2025/Xboard -cd Xboard -``` -3. 执行数据库安装命令 -> 选择 **启用sqlite** 和 **Docker内置的Redis** -``` -docker compose run -it --rm -e enable_sqlite=true -e enable_redis=true -e admin_account=your_admin_email@example.com xboard php artisan xboard:install -``` -> 或者根据自己的需要在运行时选择 -``` -docker compose run -it --rm xboard php artisan xboard:install -``` -> 执行这条命令之后,会返回你的后台地址和管理员账号密码(你需要记录下来) -> 你需要执行下面的 **启动xborad** 步骤之后才能访问后台 - -4. 启动Xboard -``` -docker compose up -d -``` -> 安装完成之后即可访问你的站点 -5. 访问站点 -> 启动之后网站端口默认为7001, 你可以配置nginx反向代理使用80端口 - -网站地址: http://你的IP:7001/ -在此你已经成功部署了, 你可以访问网址体验Xboard的完整功能, - -> 如果你需要使用mysql,请自行安装Mysql后重新部署 - -### **更新** -1. 修改版本 -``` -cd Xboard -vi docker-compose.yaml -``` -> 修改docker-compose.yaml 当中image后面的版本号为你需要的版本 -> 如果为版本为latest 则可以忽略这一步,直接进行第二步 - -2. 更新数据库(可以执行多次都是安全的) -``` -docker compose pull -docker compose down -docker compose run -it --rm xboard php artisan xboard:update -docker compose up -d -``` -> 即可更新成功 - -### **回滚** -> 此回滚不回滚数据库,是否回滚数据库请查看相关文档 -1. 回退版本 -``` -vi docker-compose.yaml -``` -> 修改docker-compose.yaml 当中image后面的版本号为更新前的版本号 -2. 启动 -``` -docker compose up -d -``` - -### 注意 -启用webman后做的任何代码修改都需要重启生效 diff --git a/docs/en/development/device-limit.md b/docs/en/development/device-limit.md new file mode 100644 index 0000000..f56b9e7 --- /dev/null +++ b/docs/en/development/device-limit.md @@ -0,0 +1,176 @@ +# Online Device Limit Design + +## Overview + +This document describes the design and implementation of the online device limit feature in Xboard. + +## Design Goals + +1. Accurate Control + - Precise counting of online devices + - Real-time monitoring of device status + - Accurate device identification + +2. Performance Optimization + - Minimal impact on system performance + - Efficient device tracking + - Optimized resource usage + +3. User Experience + - Smooth connection experience + - Clear error messages + - Graceful handling of limit exceeded cases + +## Implementation Details + +### 1. Device Identification + +#### Device ID Generation +```php +public function generateDeviceId($user, $request) { + return md5( + $user->id . + $request->header('User-Agent') . + $request->ip() + ); +} +``` + +#### Device Information Storage +```php +[ + 'device_id' => 'unique_device_hash', + 'user_id' => 123, + 'ip' => '192.168.1.1', + 'user_agent' => 'Mozilla/5.0...', + 'last_active' => '2024-03-21 10:00:00' +] +``` + +### 2. Connection Management + +#### Connection Check +```php +public function checkDeviceLimit($user, $deviceId) { + $onlineDevices = $this->getOnlineDevices($user->id); + + if (count($onlineDevices) >= $user->device_limit) { + if (!in_array($deviceId, $onlineDevices)) { + throw new DeviceLimitExceededException(); + } + } + + return true; +} +``` + +#### Device Status Update +```php +public function updateDeviceStatus($userId, $deviceId) { + Redis::hset( + "user:{$userId}:devices", + $deviceId, + json_encode([ + 'last_active' => now(), + 'status' => 'online' + ]) + ); +} +``` + +### 3. Cleanup Mechanism + +#### Inactive Device Cleanup +```php +public function cleanupInactiveDevices() { + $inactiveThreshold = now()->subMinutes(30); + + foreach ($this->getUsers() as $user) { + $devices = $this->getOnlineDevices($user->id); + + foreach ($devices as $deviceId => $info) { + if ($info['last_active'] < $inactiveThreshold) { + $this->removeDevice($user->id, $deviceId); + } + } + } +} +``` + +## Error Handling + +### Error Types +1. Device Limit Exceeded + ```php + class DeviceLimitExceededException extends Exception { + protected $message = 'Device limit exceeded'; + protected $code = 4001; + } + ``` + +2. Invalid Device + ```php + class InvalidDeviceException extends Exception { + protected $message = 'Invalid device'; + protected $code = 4002; + } + ``` + +### Error Messages +```php +return [ + 'device_limit_exceeded' => 'Maximum number of devices reached', + 'invalid_device' => 'Device not recognized', + 'device_expired' => 'Device session expired' +]; +``` + +## Performance Considerations + +1. Cache Strategy + - Use Redis for device tracking + - Implement cache expiration + - Optimize cache structure + +2. Database Operations + - Minimize database queries + - Use batch operations + - Implement query optimization + +3. Memory Management + - Efficient data structure + - Regular cleanup of expired data + - Memory usage monitoring + +## Security Measures + +1. Device Verification + - Validate device information + - Check for suspicious patterns + - Implement rate limiting + +2. Data Protection + - Encrypt sensitive information + - Implement access control + - Regular security audits + +## Future Improvements + +1. Enhanced Features + - Device management interface + - Device activity history + - Custom device names + +2. Performance Optimization + - Improved caching strategy + - Better cleanup mechanism + - Reduced memory usage + +3. Security Enhancements + - Advanced device fingerprinting + - Fraud detection + - Improved encryption + +## Conclusion + +This design provides a robust and efficient solution for managing online device limits while maintaining good performance and user experience. Regular monitoring and updates will ensure the system remains effective and secure. \ No newline at end of file diff --git a/docs/en/development/performance.md b/docs/en/development/performance.md new file mode 100644 index 0000000..3741d49 --- /dev/null +++ b/docs/en/development/performance.md @@ -0,0 +1,100 @@ +# Performance Comparison Report + +## Test Environment + +### Hardware Configuration +- CPU: AMD EPYC 7K62 48-Core Processor +- Memory: 4GB +- Disk: NVMe SSD +- Network: 1Gbps + +### Software Environment +- OS: Ubuntu 22.04 LTS +- PHP: 8.2 +- MySQL: 5.7 +- Redis: 7.0 +- Docker: Latest stable version + +## Test Scenarios + +### 1. User Login Performance +- Concurrent users: 100 +- Test duration: 60 seconds +- Request type: POST +- Target endpoint: `/api/v1/passport/auth/login` + +Results: +- Average response time: 156ms +- 95th percentile: 245ms +- Maximum response time: 412ms +- Requests per second: 642 + +### 2. User Dashboard Loading +- Concurrent users: 100 +- Test duration: 60 seconds +- Request type: GET +- Target endpoint: `/api/v1/user/dashboard` + +Results: +- Average response time: 89ms +- 95th percentile: 167ms +- Maximum response time: 289ms +- Requests per second: 1121 + +### 3. Node List Query +- Concurrent users: 100 +- Test duration: 60 seconds +- Request type: GET +- Target endpoint: `/api/v1/user/server/nodes` + +Results: +- Average response time: 134ms +- 95th percentile: 223ms +- Maximum response time: 378ms +- Requests per second: 745 + +## Performance Optimization Measures + +1. Database Optimization + - Added indexes for frequently queried fields + - Optimized slow queries + - Implemented query caching + +2. Cache Strategy + - Using Redis for session storage + - Caching frequently accessed data + - Implementing cache warming + +3. Code Optimization + - Reduced database queries + - Optimized database connection pool + - Improved error handling + +## Comparison with Previous Version + +| Metric | Previous Version | Current Version | Improvement | +|--------|-----------------|-----------------|-------------| +| Login Response | 289ms | 156ms | 46% | +| Dashboard Loading | 178ms | 89ms | 50% | +| Node List Query | 256ms | 134ms | 48% | + +## Future Optimization Plans + +1. Infrastructure Level + - Implement horizontal scaling + - Add load balancing + - Optimize network configuration + +2. Application Level + - Further optimize database queries + - Implement more efficient caching strategies + - Reduce memory usage + +3. Monitoring and Maintenance + - Add performance monitoring + - Implement automatic scaling + - Regular performance testing + +## Conclusion + +The current version shows significant performance improvements compared to the previous version, with an average improvement of 48% in response times. The optimization measures implemented have effectively enhanced the system's performance and stability. \ No newline at end of file diff --git a/docs/en/installation/1panel.md b/docs/en/installation/1panel.md new file mode 100644 index 0000000..610b062 --- /dev/null +++ b/docs/en/installation/1panel.md @@ -0,0 +1,176 @@ +# Quick Deployment Guide for 1Panel + +This guide explains how to deploy Xboard using 1Panel. + +## 1. Environment Preparation + +Install 1Panel: +```bash +curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && \ +sudo bash quick_start.sh +``` + +## 2. Environment Configuration + +1. Install from App Store: + - OpenResty (any version) + - ⚠️ Check "External Port Access" to open firewall + - MySQL 5.7 (Use MariaDB for ARM architecture) + +2. Create Database: + - Database name: `xboard` + - Username: `xboard` + - Access rights: All hosts (%) + - Save the database password for installation + +## 3. Deployment Steps + +1. Add Website: + - Go to "Website" > "Create Website" > "Reverse Proxy" + - Domain: Enter your domain + - Code: `xboard` + - Proxy address: `127.0.0.1:7001` + +2. Configure Reverse Proxy: +```nginx +location ^~ / { + proxy_pass http://127.0.0.1:7001; + proxy_http_version 1.1; + proxy_set_header Connection ""; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Real-PORT $remote_port; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header Scheme $scheme; + proxy_set_header Server-Protocol $server_protocol; + proxy_set_header Server-Name $server_name; + proxy_set_header Server-Addr $server_addr; + proxy_set_header Server-Port $server_port; + proxy_cache off; +} +``` + +3. Install Xboard: +```bash +# Enter site directory +cd /opt/1panel/apps/openresty/openresty/www/sites/xboard/index + +# Install Git (if not installed) +## Ubuntu/Debian +apt update && apt install -y git +## CentOS/RHEL +yum update && yum install -y git + +# Clone repository +git clone -b compose --depth 1 https://github.com/cedar2025/Xboard ./ + +# Configure Docker Compose +``` + +4. Edit docker-compose.yml: +```yaml +services: + web: + image: ghcr.io/cedar2025/xboard:latest + volumes: + - ./.docker/.data/redis/:/data/ + - ./.env:/www/.env + - ./.docker/.data/:/www/.docker/.data + - ./storage/logs:/www/storage/logs + - ./storage/theme:/www/storage/theme + environment: + - docker=true + depends_on: + - redis + command: php artisan octane:start --host=0.0.0.0 --port=7001 + restart: on-failure + ports: + - 7001:7001 + networks: + - 1panel-network + + horizon: + image: ghcr.io/cedar2025/xboard:latest + volumes: + - ./.docker/.data/redis/:/data/ + - ./.env:/www/.env + - ./.docker/.data/:/www/.docker/.data + - ./storage/logs:/www/storage/logs + restart: on-failure + command: php artisan horizon + networks: + - 1panel-network + depends_on: + - redis + + redis: + image: redis:7-alpine + command: redis-server --unixsocket /data/redis.sock --unixsocketperm 777 --save 900 1 --save 300 10 --save 60 10000 + restart: unless-stopped + networks: + - 1panel-network + volumes: + - ./.docker/.data/redis:/data + +networks: + 1panel-network: + external: true +``` + +5. Initialize Installation: +```bash +# Install dependencies and initialize +docker compose run -it --rm web php artisan xboard:install +``` + +⚠️ Important Configuration Notes: +1. Database Configuration + - Database Host: Choose based on your deployment: + 1. If database and Xboard are in the same network, use `mysql` + 2. If connection fails, go to: Database -> Select Database -> Connection Info -> Container Connection, and use the "Host" value + 3. If using external database, enter your actual database host + - Database Port: `3306` (default port unless configured otherwise) + - Database Name: `xboard` (the database created earlier) + - Database User: `xboard` (the user created earlier) + - Database Password: Enter the password saved earlier + +2. Redis Configuration + - Choose to use built-in Redis + - No additional configuration needed + +3. Administrator Information + - Save the admin credentials displayed after installation + - Note down the admin panel access URL + +After configuration, start the services: +```bash +docker compose up -d +``` + +6. Start Services: +```bash +docker compose up -d +``` + +## 4. Version Update + +> 💡 Important Note: The update command varies depending on your installation version: +> - If you installed recently (new version), use this command: +```bash +docker compose pull && \ +docker compose run -it --rm web php artisan xboard:update && \ +docker compose up -d +``` +> - If you installed earlier (old version), replace `web` with `xboard`: +```bash +docker compose pull && \ +docker compose run -it --rm xboard php artisan xboard:update && \ +docker compose up -d +``` +> 🤔 Not sure which to use? Try the new version command first, if it fails, use the old version command. + +## Important Notes + +- ⚠️ Ensure firewall is enabled to prevent port 7001 exposure to public +- Service restart is required after code modifications +- SSL certificate configuration is recommended for secure access diff --git a/docs/images/admin.png b/docs/images/admin.png new file mode 100644 index 0000000..dd553ad Binary files /dev/null and b/docs/images/admin.png differ diff --git a/docs/images/dashboard.png b/docs/images/dashboard.png deleted file mode 100644 index 55eed63..0000000 Binary files a/docs/images/dashboard.png and /dev/null differ diff --git a/docs/images/user.png b/docs/images/user.png new file mode 100644 index 0000000..66bb749 Binary files /dev/null and b/docs/images/user.png differ diff --git a/docs/v2b_1.7.3迁移指南.md b/docs/v2b_1.7.3迁移指南.md deleted file mode 100644 index 2eb2778..0000000 --- a/docs/v2b_1.7.3迁移指南.md +++ /dev/null @@ -1,59 +0,0 @@ -## V2borad 1.7.3版本迁移指南 - -### 迁移脚本会对你的数据库做以下更改 -- v2_stat_order 更名为 v2_stat - - 字段 `order_amount` 修改为 `order_total` - - 字段 `commission_amount` 修改为 `commission_total` - - 添加 `paid_count` 字段 类型 integer nullable - - 添加 `paid_total` 字段 类型 integer nullable - - 添加 `register_count` 字段 类型 integer nullable - - 添加 `invite_count` 字段 类型 integer nullable - - 添加 `transfer_used_total` 字段 类型 string 长度 32 nullable - -- 添加 v2_log 数据表 -- 添加 v2_server_hysteria 数据表 -- 添加 v2_server_vless 数据表 - -## 迁移之前 -迁移之前你需要执行正常安装步骤(记得不可选择Sqlite) -> sqlite迁移请自行学习相关知识 -- [Docker Compose 纯命令行快速部署](./docs/docker-compose安装指南.md) -- [aapanel + Docker Compose](./docs/aapanel+docker安装指南.md) -- [aapanel 部署](./docs/) - -## 开始迁移 -> 针对docker与非docker用户提供不同的迁移步骤,你根据你的安装环境选择其一即可。 - -### docker 环境 -> 以下命令需要你打开SSH进入到项目目录进行执行 -1. 停止Xboard -``` -docker compose down -``` -2. 清空数据库 -``` -docker compose run -it --rm xboard php artisan db:wipe -``` -3. 导入旧数据库(重要) ->导入你1.7.3 v2board的数据库到当前数据库当中 - -4. 执行迁移命令 -``` -docker compose run -it --rm xboard php artisan migratefromv2b 1.7.3 -``` -## aapanel 环境 -1. 清空数据库 -``` -php artisan db:wipe -``` -2. 导入导入旧数据库(重要)数据库 ->导入你1.7.3 v2board的数据库到当前数据库当中 - -3. 执行迁移命令 -``` -php artisan migratefromv2b 1.7.3 -``` - -> 上述迁移完成之后你需要进行 配置文件迁移 -## config/v2board.php 配置文件迁移 [点击查看步骤](./config迁移指南.md) -> xboard将配置储存到数据库, 不再使用file进行储存,你需要对配置文件进行迁移。 diff --git a/docs/v2b_1.7.4迁移指南.md b/docs/v2b_1.7.4迁移指南.md deleted file mode 100644 index cc1f577..0000000 --- a/docs/v2b_1.7.4迁移指南.md +++ /dev/null @@ -1,48 +0,0 @@ -## V2borad 1.7.4版本迁移指南 - -### 迁移脚本会对你的数据库做以下更改 -- 添加 v2_server_vless 数据表 - -## 迁移之前 -迁移之前你需要执行正常安装步骤(记得不可选择Sqlite) -> sqlite迁移请自行学习相关知识 -- [Docker Compose 纯命令行快速部署](./docs/docker-compose安装指南.md) -- [aapanel + Docker Compose](./docs/aapanel+docker安装指南.md) -- [aapanel 部署](./docs/) - -## 开始迁移 -> 针对docker与非docker用户提供不同的迁移步骤,你根据你的安装环境选择其一即可。 - -### docker 环境 -> 以下命令需要你打开SSH进入到项目目录进行执行 -1. 停止Xboard -``` -docker compose down -``` -2. 清空数据库 -``` -docker compose run -it --rm xboard php artisan db:wipe -``` -3. 导入旧数据库(重要) ->导入你1.7.4 v2board的数据库到当前项目数据库当中 - -4. 执行迁移命令 -``` -docker compose run -it --rm xboard php artisan migratefromv2b 1.7.4 -``` -## aapanel 环境 -1. 清空数据库 -``` -php artisan db:wipe -``` -2. 导入旧数据库(重要)数据库 ->导入你1.7.4 v2board的数据库到当前项目数据库当中 - -3. 执行迁移命令 -``` -php artisan migratefromv2b 1.7.4 -``` - -> 上述迁移完成之后你需要进行 配置文件迁移 -## config/v2board.php 配置文件迁移 [点击查看步骤](./config迁移指南.md) -> xboard将配置储存到数据库, 不再使用file进行储存,你需要对配置文件进行迁移。 \ No newline at end of file diff --git a/docs/v2b_dev迁移指南.md b/docs/v2b_dev迁移指南.md deleted file mode 100644 index 08fc3df..0000000 --- a/docs/v2b_dev迁移指南.md +++ /dev/null @@ -1,56 +0,0 @@ -## V2borad Dev版本迁移指南 -> 请先按照官方升级指导升级到 2023/10/27的版本后再执行迁移操作 - -### 迁移脚本会对你的数据库做以下更改 -- v2_order - - 添加 `surplus_order_ids` 字段 类型 text nullable 折抵订单 -- v2_plan(影响功能:周期价值、 流量价值) - - 删除 `daily_unit_price` 字段 - - 删除 `transfer_unit_price` 字段 -- v2_server_hysteria (影响:Ignore Client Bandwidth 配置和混淆类型配置) - - 删除 `ignore_client_bandwidth` 字段 - - 删除 `obfs_type` 字段 - -## 迁移之前 -迁移之前你需要执行正常安装步骤(记得不可选择Sqlite) -> sqlite迁移请自行学习相关知识 -- [Docker Compose 纯命令行快速部署](./docs/docker-compose安装指南.md) -- [aapanel + Docker Compose](./docs/aapanel+docker安装指南.md) -- [aapanel 部署](./docs/) - -## 开始迁移 -> 针对docker与非docker用户提供不同的迁移步骤,你根据你的安装环境选择其一即可。 - -### docker 环境 -> 以下命令需要你打开SSH进入到项目目录进行执行 -1. 停止Xboard -``` -docker compose down -``` -2. 清空数据库 -``` -docker compose run -it --rm xboard php artisan db:wipe -``` -3. 导入旧数据库(重要)数据库 ->导入你dev v2board的数据库到当前数据库当中 - -4. 执行迁移命令 -``` -docker compose run -it --rm xboard php artisan migratefromv2b dev231027 -``` -## aapanel 环境 -1. 清空数据库 -``` -php artisan db:wipe -``` -2. 导入旧数据库(重要)数据库 ->导入你dev v2board的数据库到当前数据库当中 - -3. 执行迁移命令 -``` -php artisan migratefromv2b dev231027 -``` - -> 上述迁移完成之后你需要进行 配置文件迁移 -## config/v2board.php 配置文件迁移 [点击查看步骤](./config迁移指南.md) -> xboard将配置储存到数据库, 不再使用file进行储存,你需要对配置文件进行迁移。 \ No newline at end of file diff --git a/docs/v2b_wyx2685迁移指南.md b/docs/v2b_wyx2685迁移指南.md deleted file mode 100644 index 89a4972..0000000 --- a/docs/v2b_wyx2685迁移指南.md +++ /dev/null @@ -1,62 +0,0 @@ -## V2borad wyx2685版本迁移指南 -> 此迁移指南写于 2023/11/17 , 其他时间的版本可能会迁移失败 -- wyx2685 添加了设备限制的功能,如果你迁移过来你会失去这个功能 -- 你会失去wyx2685佬添加的 trojan的 **(我也不知道) 功能 -- 你的hysteria2 线路需要重新配置 - -### 迁移脚本会对你的数据库做以下更改 -- v2_plan - - 删除字段 `device_limit` nullable -- v2_server_hysteria - - 删除字段 `version` - - 删除字段 `obfs` - - 删除字段 `obfs_password` -- v2_server_trojan - - 删除字段 `network` - - 删除字段 `network_settings` -- v2_user - - 删除字段 `device_limit` - -## 迁移之前 -迁移之前你需要执行正常安装步骤(记得不可选择Sqlite) -> sqlite迁移请自行学习相关知识 -- [Docker Compose 纯命令行快速部署](./docs/docker-compose安装指南.md) -- [aapanel + Docker Compose](./docs/aapanel+docker安装指南.md) -- [aapanel 部署](./docs/) - -## 开始迁移 -> 针对docker与非docker用户提供不同的迁移步骤,你根据你的安装环境选择其一即可。 - -### docker 环境 -> 以下命令需要你打开SSH进入到项目目录进行执行 -1. 停止Xboard -``` -docker compose down -``` -2. 清空数据库 -``` -docker compose run -it --rm xboard php artisan db:wipe -``` -3. 导入旧数据库(重要)数据库 ->导入你wyx2685 v2board的数据库到当前数据库当中 - -4. 执行迁移命令 -``` -docker compose run -it --rm xboard php artisan migratefromv2b wyx2685 -``` -## aapanel 环境 -1. 清空数据库 -``` -php artisan db:wipe -``` -2. 导入旧数据库(重要)数据库 ->导入你wyx2685 v2board的数据库到当前数据库当中 - -3. 执行迁移命令 -``` -php artisan migratefromv2b wyx2685 -``` - -> 上述迁移完成之后你需要进行 配置文件迁移 -## config/v2board.php 配置文件迁移 [点击查看步骤](./config迁移指南.md) -> xboard将配置储存到数据库, 不再使用file进行储存,你需要对配置文件进行迁移。 \ No newline at end of file diff --git a/docs/在线设备数限制构思.md b/docs/zh-CN/development/device-limit.md similarity index 100% rename from docs/在线设备数限制构思.md rename to docs/zh-CN/development/device-limit.md diff --git a/docs/性能对比.md b/docs/zh-CN/development/performance.md similarity index 100% rename from docs/性能对比.md rename to docs/zh-CN/development/performance.md diff --git a/docs/zh-CN/installation/1panel.md b/docs/zh-CN/installation/1panel.md new file mode 100644 index 0000000..d76613d --- /dev/null +++ b/docs/zh-CN/installation/1panel.md @@ -0,0 +1,222 @@ +# Xboard 在 1Panel 环境下的部署指南 + +## 目录 +1. [环境要求](#环境要求) +2. [快速部署](#快速部署) +3. [详细配置](#详细配置) +4. [维护指南](#维护指南) +5. [故障排查](#故障排查) + +## 环境要求 + +### 硬件配置 +- CPU: 1核心及以上 +- 内存: 2GB及以上 +- 硬盘: 10GB及以上可用空间 + +### 软件要求 +- 操作系统: Ubuntu 20.04+ / CentOS 7+ / Debian 10+ +- 1Panel 最新版 +- Docker 和 Docker Compose + +## 快速部署 + +### 1. 安装 1Panel +```bash +curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && \ +sudo bash quick_start.sh +``` + +### 2. 基础环境配置 + +#### 2.1 安装必要组件 +在 1Panel 应用商店中安装: +- OpenResty + - ✅ 勾选"端口外部访问"选项 + - 📝 记录安装路径 +- MySQL 5.7 + > ARM 架构设备推荐使用 MariaDB 替代 + +#### 2.2 创建数据库 +1. 数据库配置: + - 名称: `xboard` + - 用户: `xboard` + - 访问权限: 所有主机(%) + - 🔐 请安全保存数据库密码 + +### 3. 站点配置 + +#### 3.1 创建站点 +1. 导航至:网站 > 创建网站 > 反向代理 +2. 填写信息: + - 域名: 您的站点域名 + - 代号: `xboard` + - 代理地址: `127.0.0.1:7001` + +#### 3.2 配置反向代理 +在站点配置中添加以下内容: +```nginx +location ^~ / { + proxy_pass http://127.0.0.1:7001; + proxy_http_version 1.1; + proxy_set_header Connection ""; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Real-PORT $remote_port; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header Scheme $scheme; + proxy_set_header Server-Protocol $server_protocol; + proxy_set_header Server-Name $server_name; + proxy_set_header Server-Addr $server_addr; + proxy_set_header Server-Port $server_port; + proxy_cache off; +} +``` + +### 4. 部署 Xboard + +#### 4.1 获取源码 +```bash +# 进入站点目录 +cd /opt/1panel/apps/openresty/openresty/www/sites/xboard/index + +# 安装 Git(如需要) +## Ubuntu/Debian +apt update && apt install -y git +## CentOS/RHEL +yum update && yum install -y git + +# 克隆项目 +git clone -b compose --depth 1 https://github.com/cedar2025/Xboard ./ +``` + +#### 4.2 配置 Docker Compose +创建或修改 `docker-compose.yml`: +```yaml +services: + web: + image: ghcr.io/cedar2025/xboard:latest + volumes: + - ./.docker/.data/redis/:/data/ + - ./.env:/www/.env + - ./.docker/.data/:/www/.docker/.data + - ./storage/logs:/www/storage/logs + - ./storage/theme:/www/storage/theme + environment: + - docker=true + depends_on: + - redis + command: php artisan octane:start --host=0.0.0.0 --port=7001 + restart: on-failure + ports: + - 7001:7001 + networks: + - 1panel-network + + horizon: + image: ghcr.io/cedar2025/xboard:latest + volumes: + - ./.docker/.data/redis/:/data/ + - ./.env:/www/.env + - ./.docker/.data/:/www/.docker/.data + - ./storage/logs:/www/storage/logs + restart: on-failure + command: php artisan horizon + networks: + - 1panel-network + depends_on: + - redis + + redis: + image: redis:7-alpine + command: redis-server --unixsocket /data/redis.sock --unixsocketperm 777 --save 900 1 --save 300 10 --save 60 10000 + restart: unless-stopped + networks: + - 1panel-network + volumes: + - ./.docker/.data/redis:/data + +networks: + 1panel-network: + external: true + +``` + +#### 4.3 初始化安装 +```bash +# 安装并初始化 +docker compose run -it --rm web php artisan xboard:install +``` + +⚠️ 重要配置说明: +1. 数据库配置 + - 数据库地址:根据部署方式选择以下配置 + 1. 如果数据库和 Xboard 在同一网络,一般填写 `mysql` + 2. 如果连接失败,请在 1Panel 面板中依次打开:数据库 -> 选择对应数据库 -> 连接信息 -> 容器连接,使用其中的"地址" + 3. 如果使用外部数据库,填写实际的数据库地址 + - 数据库端口:`3306`(如无特殊配置,使用默认端口) + - 数据库名称:`xboard`(之前创建的数据库名) + - 数据库用户:`xboard`(之前创建的用户名) + - 数据库密码:填写之前保存的密码 + +2. Redis 配置 + - 选择使用内置 Redis + - 无需额外配置 + +3. 管理员信息 + - 请妥善保存安装完成后返回的管理员账号和密码 + - 记录后台访问地址 + +完成配置后启动服务: +```bash +docker compose up -d +``` + +## 维护指南 + +### 版本更新 + +> 💡 重要提示:根据您安装的版本不同,更新命令可能略有差异: +> - 如果您是最近安装的新版本,使用下面的命令: +```bash +docker compose pull && \ +docker compose run -it --rm web php artisan xboard:update && \ +docker compose up -d +``` +> - 如果您是较早安装的旧版本,需要将命令中的 `web` 改为 `xboard`,即: +```bash +docker compose pull && \ +docker compose run -it --rm xboard php artisan xboard:update && \ +docker compose up -d +``` +> 🤔 不确定用哪个?可以先尝试使用新版命令,如果报错再使用旧版命令。 + +### 日常维护 +- 定期检查日志: `docker compose logs` +- 监控系统资源使用情况 +- 定期备份数据库和配置文件 + +## 故障排查 + +### 常见问题 +1. 无法访问网站 + - 检查防火墙配置 + - 验证端口是否正确开放 + - 检查 Docker 容器状态 + +2. 数据库连接失败 + - 验证数据库凭据 + - 检查数据库服务状态 + - 确认网络连接 + +### 安全建议 +- ⚠️ 确保 7001 端口不对外开放 +- 定期更新系统和组件 +- 配置 SSL 证书实现 HTTPS 访问 +- 使用强密码策略 +- 定期备份数据 + +### 获取帮助 +- 查看官方文档 +- 访问项目 GitHub 仓库 +- 加入社区讨论组 diff --git a/docs/zh-CN/installation/aapanel-docker.md b/docs/zh-CN/installation/aapanel-docker.md new file mode 100644 index 0000000..a34813f --- /dev/null +++ b/docs/zh-CN/installation/aapanel-docker.md @@ -0,0 +1,130 @@ +# Xboard 在 aaPanel + Docker 环境下的部署指南 + +## 目录 +1. [环境要求](#环境要求) +2. [快速部署](#快速部署) +3. [详细配置](#详细配置) +4. [维护指南](#维护指南) +5. [故障排查](#故障排查) + +## 环境要求 + +### 硬件配置 +- CPU: 1核心及以上 +- 内存: 2GB及以上 +- 硬盘: 10GB及以上可用空间 + +### 软件要求 +- 操作系统: Ubuntu 20.04+ / CentOS 7+ / Debian 10+ +- aaPanel 最新版 +- Docker 和 Docker Compose +- Nginx(任意版本) +- MySQL 5.7+ + +## 快速部署 + +### 1. 安装 aaPanel +```bash +curl -sSL https://www.aapanel.com/script/install_6.0_en.sh -o install_6.0_en.sh && \ +bash install_6.0_en.sh aapanel +``` + +### 2. 基础环境配置 + +#### 2.1 安装 Docker +```bash +# 安装 Docker +curl -sSL https://get.docker.com | bash + +# CentOS 系统需要执行: +systemctl enable docker +systemctl start docker +``` + +#### 2.2 安装必要组件 +在 aaPanel 面板中安装: +- Nginx(任意版本) +- MySQL 5.7 +- ⚠️ 无需安装 PHP 和 Redis + +### 3. 站点配置 + +#### 3.1 创建站点 +1. 导航至:aaPanel > Website > Add site +2. 填写信息: + - 域名:填写您的站点域名 + - 数据库:选择 MySQL + - PHP 版本:选择纯静态 + +#### 3.2 部署 Xboard +```bash +# 进入站点目录 +cd /www/wwwroot/你的域名 + +# 清理目录 +chattr -i .user.ini +rm -rf .htaccess 404.html 502.html index.html .user.ini + +# 克隆代码 +git clone https://github.com/cedar2025/Xboard.git ./ + +# 准备配置文件 +cp compose.sample.yaml compose.yaml + +# 安装依赖并初始化 +docker compose run -it --rm web sh init.sh +``` +> ⚠️ 请妥善保存安装完成后返回的后台地址和管理员账号密码 + +#### 3.3 启动服务 +```bash +docker compose up -d +``` + +#### 3.4 配置反向代理 +在站点配置中添加以下内容: +```nginx +location / { + proxy_pass http://127.0.0.1:7001; + proxy_http_version 1.1; + proxy_set_header Connection ""; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Real-PORT $remote_port; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header Scheme $scheme; + proxy_set_header Server-Protocol $server_protocol; + proxy_set_header Server-Name $server_name; + proxy_set_header Server-Addr $server_addr; + proxy_set_header Server-Port $server_port; + proxy_cache off; +} +``` + +## 维护指南 + +### 版本更新 + +> 💡 重要提示:根据您安装的版本不同,更新命令可能略有差异: +> - 如果您是最近安装的新版本,使用下面的命令: +```bash +docker compose pull && \ +docker compose run -it --rm web sh update.sh && \ +docker compose up -d +``` +> - 如果您是较早安装的旧版本,需要将命令中的 `web` 改为 `xboard`,即: +```bash +git config --global --add safe.directory $(pwd) +git fetch --all && git reset --hard origin/master && git pull origin master +docker compose pull && \ +docker compose run -it --rm xboard sh update.sh && \ +docker compose up -d +``` +> 🤔 不确定用哪个?可以先尝试使用新版命令,如果报错再使用旧版命令。 + +### 日常维护 +- 定期检查日志: `docker compose logs` +- 监控系统资源使用情况 +- 定期备份数据库和配置文件 + +## 故障排查 diff --git a/docs/zh-CN/installation/aapanel.md b/docs/zh-CN/installation/aapanel.md new file mode 100644 index 0000000..6aa917c --- /dev/null +++ b/docs/zh-CN/installation/aapanel.md @@ -0,0 +1,173 @@ +## Xboard 在 aaPanel 环境下的部署指南 + +## 目录 +1. [环境要求](#环境要求) +2. [快速部署](#快速部署) +3. [详细配置](#详细配置) +4. [维护指南](#维护指南) +5. [故障排查](#故障排查) + +## 环境要求 + +### 硬件配置 +- CPU: 1核心及以上 +- 内存: 2GB及以上 +- 硬盘: 10GB及以上可用空间 + +### 软件要求 +- 操作系统: Ubuntu 20.04+ / Debian 10+ (⚠️ 不建议使用 CentOS 7) +- aaPanel 最新版 +- PHP 8.2 +- MySQL 5.7+ +- Redis +- Nginx(任意版本) + +## 快速部署 + +### 1. 安装 aaPanel +```bash +URL=https://www.aapanel.com/script/install_6.0_en.sh && \ +if [ -f /usr/bin/curl ];then curl -ksSO "$URL" ;else wget --no-check-certificate -O install_6.0_en.sh "$URL";fi && \ +bash install_6.0_en.sh aapanel +``` + +### 2. 基础环境配置 + +#### 2.1 安装 LNMP 环境 +在 aaPanel 面板中安装: +- Nginx(任意版本) +- MySQL 5.7 +- PHP 8.2 + +#### 2.2 安装 PHP 扩展 +必需的 PHP 扩展: +- redis +- fileinfo +- swoole4 +- readline +- event + +#### 2.3 解除 PHP 禁用函数 +需要启用的函数: +- putenv +- proc_open +- pcntl_alarm +- pcntl_signal + +### 3. 站点配置 + +#### 3.1 创建站点 +1. 导航至:aaPanel > Website > Add site +2. 填写信息: + - 域名:填写您的站点域名 + - 数据库:选择 MySQL + - PHP 版本:选择 8.2 + +#### 3.2 部署 Xboard +```bash +# 进入站点目录 +cd /www/wwwroot/你的域名 + +# 清理目录 +chattr -i .user.ini +rm -rf .htaccess 404.html 502.html index.html .user.ini + +# 克隆代码 +git clone https://github.com/cedar2025/Xboard.git ./ + +# 安装依赖 +sh init.sh +``` + +#### 3.3 配置站点 +1. 设置运行目录为 `/public` +2. 添加伪静态规则: +```nginx +location /downloads { +} + +location / { + try_files $uri $uri/ /index.php$is_args$query_string; +} + +location ~ .*\.(js|css)?$ +{ + expires 1h; + error_log off; + access_log /dev/null; +} +``` + +## 详细配置 + +### 1. 配置守护进程 +1. 安装 Supervisor +2. 添加队列守护进程: + - 名称:`Xboard` + - 运行用户:`www` + - 运行目录:站点目录 + - 启动命令:`php artisan horizon` + - 进程数:1 + +### 2. 配置计划任务 +- 类型:Shell Script +- 任务名:v2board +- 周期:1分钟 +- 脚本内容:`php /www/wwwroot/站点目录/artisan schedule:run` + +### 3. Octane 配置(可选) +#### 3.1 添加 Octane 守护进程 +- 名称:Octane +- 运行用户:www +- 运行目录:站点目录 +- 启动命令:`/www/server/php/81/bin/php artisan octane:start --port 7010` +- 进程数:1 + +#### 3.2 Octane 专用伪静态规则 +```nginx +location ~* \.(jpg|jpeg|png|gif|js|css|svg|woff2|woff|ttf|eot|wasm|json|ico)$ { +} + +location ~ .* { + proxy_pass http://127.0.0.1:7010; + proxy_http_version 1.1; + proxy_set_header Connection ""; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Real-PORT $remote_port; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header Scheme $scheme; + proxy_set_header Server-Protocol $server_protocol; + proxy_set_header Server-Name $server_name; + proxy_set_header Server-Addr $server_addr; + proxy_set_header Server-Port $server_port; +} +``` + +## 维护指南 + +### 版本更新 +```bash +# 进入站点目录 +cd /www/wwwroot/你的域名 + +# 执行更新脚本 +git fetch --all && git reset --hard origin/master && git pull origin master +sh update.sh + +# 如果启用了 Octane,需要重启守护进程 +# aaPanel > App Store > Tools > Supervisor > 重启 Octane +``` + +### 日常维护 +- 定期检查日志 +- 监控系统资源使用情况 +- 定期备份数据库和配置文件 + +## 故障排查 + +### 常见问题 +1. 修改后台路径需要重启服务才能生效 +2. 启用 Octane 后的任何代码修改都需要重启才能生效 +3. PHP 扩展安装失败时,请检查 PHP 版本是否正确 +4. 数据库连接失败时,请检查数据库配置和权限 diff --git a/docs/zh-CN/installation/docker-compose.md b/docs/zh-CN/installation/docker-compose.md new file mode 100644 index 0000000..ba261f8 --- /dev/null +++ b/docs/zh-CN/installation/docker-compose.md @@ -0,0 +1,77 @@ +## Docker Compose 快速部署指南 + +本指南介绍如何使用 Docker Compose 快速部署 Xboard。默认使用 SQLite 数据库,无需额外安装 MySQL。 + +### 1. 环境准备 + +安装 Docker: +```bash +curl -sSL https://get.docker.com | bash + +# CentOS 系统需要执行: +systemctl enable docker +systemctl start docker +``` + +### 2. 部署步骤 + +1. 获取项目文件: +```bash +git clone -b compose --depth 1 https://github.com/cedar2025/Xboard +cd Xboard +``` + +2. 安装数据库: + +- 快速安装(推荐新手使用) +```bash +docker compose run -it --rm \ + -e ENABLE_SQLITE=true \ + -e ENABLE_REDIS=true \ + -e ADMIN_ACCOUNT=admin@demo.com \ + web php artisan xboard:install +``` +- 自定义配置安装(高级用户) +```bash +docker compose run -it --rm web php artisan xboard:install +``` +> 安装完成后请保存返回的后台地址和管理员账号密码 + +3. 启动服务: +```bash +docker compose up -d +``` + +4. 访问站点: +- 默认端口:7001 +- 网站地址:http://服务器IP:7001 + +### 3. 版本更新 + +> 💡 重要提示:根据您安装的版本不同,更新命令可能略有差异: +> - 如果您是最近安装的新版本,使用下面的命令: +```bash +cd Xboard +docker compose pull && \ +docker compose run -it --rm web php artisan xboard:update && \ +docker compose up -d +``` +> - 如果您是较早安装的旧版本,需要将命令中的 `web` 改为 `xboard`,即: +```bash +cd Xboard +docker compose pull && \ +docker compose run -it --rm xboard php artisan xboard:update && \ +docker compose up -d +``` +> 🤔 不确定用哪个?可以先尝试使用新版命令,如果报错再使用旧版命令。 + +### 4. 版本回滚 + +1. 修改 `docker-compose.yaml` 中的版本号为需要回滚的版本 +2. 执行:`docker compose up -d` + +### 注意事项 + +- 如需使用 MySQL,请自行安装并重新部署 +- 代码修改后需要重启服务才能生效 +- 可以配置 Nginx 反向代理使用 80 端口 diff --git a/docs/zh-CN/migration/config.md b/docs/zh-CN/migration/config.md new file mode 100644 index 0000000..3bbb559 --- /dev/null +++ b/docs/zh-CN/migration/config.md @@ -0,0 +1,54 @@ +## 配置迁移指南 + +本指南介绍如何将 v2board 的配置文件迁移到 Xboard。Xboard 使用数据库存储配置,不再使用文件存储。 + +### 1. Docker Compose 环境 + +1. 准备配置文件: +```bash +# 创建配置目录 +mkdir config + +# 复制旧配置文件 +cp 旧项目路径/config/v2board.php config/ +``` + +2. 修改 `docker-compose.yaml`,取消以下行的注释: +```yaml +- ./config/v2board.php:/www/config/v2board.php +``` + +3. 执行迁移: +```bash +docker compose run -it --rm web php artisan migrateFromV2b config +``` + +### 2. aaPanel 环境 + +1. 复制配置文件: +```bash +cp 旧项目路径/config/v2board.php config/v2board.php +``` + +2. 执行迁移: +```bash +php artisan migrateFromV2b config +``` + +### 3. aaPanel + Docker 环境 + +1. 复制配置文件: +```bash +cp 旧项目路径/config/v2board.php config/v2board.php +``` + +2. 执行迁移: +```bash +docker compose run -it --rm web php artisan migrateFromV2b config +``` + +### 注意事项 + +- 修改后台路径后需要重启服务: + - Docker 环境:`docker compose restart` + - aaPanel 环境:重启 Octane 守护进程 diff --git a/docs/zh-CN/migration/v2board-1.7.3.md b/docs/zh-CN/migration/v2board-1.7.3.md new file mode 100644 index 0000000..dc1afce --- /dev/null +++ b/docs/zh-CN/migration/v2board-1.7.3.md @@ -0,0 +1,63 @@ +## V2board 1.7.3 迁移指南 + +本指南介绍如何将 V2board 1.7.3 版本迁移到 Xboard。 + +### 1. 数据库变更说明 + +- `v2_stat_order` 表更名为 `v2_stat`: + - `order_amount` → `order_total` + - `commission_amount` → `commission_total` + - 新增字段: + - `paid_count` (integer, nullable) + - `paid_total` (integer, nullable) + - `register_count` (integer, nullable) + - `invite_count` (integer, nullable) + - `transfer_used_total` (string(32), nullable) + +- 新增数据表: + - `v2_log` + - `v2_server_hysteria` + - `v2_server_vless` + +### 2. 准备工作 + +⚠️ 请先完成 Xboard 基础安装(不支持 SQLite): +- [Docker Compose 部署](./docker-compose安装指南.md) +- [aaPanel + Docker 部署](./aapanel+docker安装指南.md) +- [aaPanel 部署](./aapanel安装指南.md) + +### 3. 迁移步骤 + +#### Docker 环境 + +```bash +# 1. 停止服务 +docker compose down + +# 2. 清空数据库 +docker compose run -it --rm web php artisan db:wipe + +# 3. 导入旧数据库(重要) +# 请手动导入 V2board 1.7.3 的数据库 + +# 4. 执行迁移 +docker compose run -it --rm web php artisan migratefromv2b 1.7.3 +``` + +#### aaPanel 环境 + +```bash +# 1. 清空数据库 +php artisan db:wipe + +# 2. 导入旧数据库(重要) +# 请手动导入 V2board 1.7.3 的数据库 + +# 3. 执行迁移 +php artisan migratefromv2b 1.7.3 +``` + +### 4. 配置迁移 + +完成数据迁移后,还需要迁移配置文件: +- [配置迁移指南](./config迁移指南.md) diff --git a/docs/zh-CN/migration/v2board-1.7.4.md b/docs/zh-CN/migration/v2board-1.7.4.md new file mode 100644 index 0000000..b75a39a --- /dev/null +++ b/docs/zh-CN/migration/v2board-1.7.4.md @@ -0,0 +1,51 @@ +## V2board 1.7.4 迁移指南 + +本指南介绍如何将 V2board 1.7.4 版本迁移到 Xboard。 + +### 1. 数据库变更说明 + +- 新增数据表: + - `v2_server_vless` + +### 2. 准备工作 + +⚠️ 请先完成 Xboard 基础安装(不支持 SQLite): +- [Docker Compose 部署](./docker-compose安装指南.md) +- [aaPanel + Docker 部署](./aapanel+docker安装指南.md) +- [aaPanel 部署](./aapanel安装指南.md) + +### 3. 迁移步骤 + +#### Docker 环境 + +```bash +# 1. 停止服务 +docker compose down + +# 2. 清空数据库 +docker compose run -it --rm web php artisan db:wipe + +# 3. 导入旧数据库(重要) +# 请手动导入 V2board 1.7.4 的数据库 + +# 4. 执行迁移 +docker compose run -it --rm web php artisan migratefromv2b 1.7.4 +``` + +#### aaPanel 环境 + +```bash +# 1. 清空数据库 +php artisan db:wipe + +# 2. 导入旧数据库(重要) +# 请手动导入 V2board 1.7.4 的数据库 + +# 3. 执行迁移 +php artisan migratefromv2b 1.7.4 +``` + +### 4. 配置迁移 + +完成数据迁移后,还需要迁移配置文件: +- [配置迁移指南](./config迁移指南.md) \ No newline at end of file diff --git a/docs/zh-CN/migration/v2board-dev.md b/docs/zh-CN/migration/v2board-dev.md new file mode 100644 index 0000000..0c58ce7 --- /dev/null +++ b/docs/zh-CN/migration/v2board-dev.md @@ -0,0 +1,61 @@ +## V2board Dev 迁移指南 + +本指南介绍如何将 V2board Dev(2023/10/27)版本迁移到 Xboard。 + +⚠️ 请先按照官方指南升级到 2023/10/27 版本后再执行迁移。 + +### 1. 数据库变更说明 + +- `v2_order` 表: + - 新增 `surplus_order_ids` (text, nullable) - 折抵订单 + +- `v2_plan` 表: + - 删除 `daily_unit_price` - 影响周期价值 + - 删除 `transfer_unit_price` - 影响流量价值 + +- `v2_server_hysteria` 表: + - 删除 `ignore_client_bandwidth` - 影响带宽配置 + - 删除 `obfs_type` - 影响混淆类型配置 + +### 2. 准备工作 + +⚠️ 请先完成 Xboard 基础安装(不支持 SQLite): +- [Docker Compose 部署](./docker-compose安装指南.md) +- [aaPanel + Docker 部署](./aapanel+docker安装指南.md) +- [aaPanel 部署](./aapanel安装指南.md) + +### 3. 迁移步骤 + +#### Docker 环境 + +```bash +# 1. 停止服务 +docker compose down + +# 2. 清空数据库 +docker compose run -it --rm web php artisan db:wipe + +# 3. 导入旧数据库(重要) +# 请手动导入 V2board Dev 的数据库 + +# 4. 执行迁移 +docker compose run -it --rm web php artisan migratefromv2b dev231027 +``` + +#### aaPanel 环境 + +```bash +# 1. 清空数据库 +php artisan db:wipe + +# 2. 导入旧数据库(重要) +# 请手动导入 V2board Dev 的数据库 + +# 3. 执行迁移 +php artisan migratefromv2b dev231027 +``` + +### 4. 配置迁移 + +完成数据迁移后,还需要迁移配置文件: +- [配置迁移指南](./config迁移指南.md) \ No newline at end of file diff --git a/docs/zh-CN/migration/v2board-wyx2685.md b/docs/zh-CN/migration/v2board-wyx2685.md new file mode 100644 index 0000000..5b54007 --- /dev/null +++ b/docs/zh-CN/migration/v2board-wyx2685.md @@ -0,0 +1,68 @@ +## V2board wyx2685 迁移指南 + +本指南介绍如何将 V2board wyx2685(2023/11/17)版本迁移到 Xboard。 + +⚠️ 迁移注意事项: +- 将失去设备限制功能 +- 将失去 Trojan 的特殊功能 +- Hysteria2 线路需要重新配置 + +### 1. 数据库变更说明 + +- `v2_plan` 表: + - 删除 `device_limit` (nullable) + +- `v2_server_hysteria` 表: + - 删除 `version` + - 删除 `obfs` + - 删除 `obfs_password` + +- `v2_server_trojan` 表: + - 删除 `network` + - 删除 `network_settings` + +- `v2_user` 表: + - 删除 `device_limit` + +### 2. 准备工作 + +⚠️ 请先完成 Xboard 基础安装(不支持 SQLite): +- [Docker Compose 部署](./docker-compose安装指南.md) +- [aaPanel + Docker 部署](./aapanel+docker安装指南.md) +- [aaPanel 部署](./aapanel安装指南.md) + +### 3. 迁移步骤 + +#### Docker 环境 + +```bash +# 1. 停止服务 +docker compose down + +# 2. 清空数据库 +docker compose run -it --rm web php artisan db:wipe + +# 3. 导入旧数据库(重要) +# 请手动导入 V2board wyx2685 的数据库 + +# 4. 执行迁移 +docker compose run -it --rm web php artisan migratefromv2b wyx2685 +``` + +#### aaPanel 环境 + +```bash +# 1. 清空数据库 +php artisan db:wipe + +# 2. 导入旧数据库(重要) +# 请手动导入 V2board wyx2685 的数据库 + +# 3. 执行迁移 +php artisan migratefromv2b wyx2685 +``` + +### 4. 配置迁移 + +完成数据迁移后,还需要迁移配置文件: +- [配置迁移指南](./config迁移指南.md) \ No newline at end of file diff --git a/init.sh b/init.sh index 9de403d..bbc573a 100644 --- a/init.sh +++ b/init.sh @@ -5,6 +5,6 @@ wget https://github.com/composer/composer/releases/latest/download/composer.phar php composer.phar install -vvv php artisan xboard:install -if [ -f "/etc/init.d/bt" ] || [ "$docker" ]; then +if [ -f "/etc/init.d/bt" ] || [ -f "/.dockerenv" ]; then chown -R www:www $(pwd); -fi +fi \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..b2a6ce6 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "chokidar": "^4.0.3" + } +} \ No newline at end of file diff --git a/patches/Http.patch b/patches/Http.patch deleted file mode 100644 index 87b842e..0000000 --- a/patches/Http.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/src/Http.php b/src/Http.php -index 6c6cb16..f1a7f3f 100644 ---- a/src/Http.php -+++ b/src/Http.php -@@ -680,7 +680,7 @@ - } - - // Parse $_POST. -- if ($_SERVER['REQUEST_METHOD'] === 'POST' && $_SERVER['CONTENT_TYPE']) { -+ if ($_SERVER['REQUEST_METHOD'] === 'POST') { - switch ($_SERVER['CONTENT_TYPE']) { - case 'multipart/form-data': - static::parseUploadFiles($http_body, $http_post_boundary); -@@ -691,6 +691,8 @@ - case 'application/x-www-form-urlencoded': - \parse_str($http_body, $_POST); - break; -+ default: -+ $_POST = \json_decode($http_body, true) ?? []; - } -- } -+ } - } \ No newline at end of file diff --git a/php.ini b/php.ini deleted file mode 100644 index f19ebe5..0000000 --- a/php.ini +++ /dev/null @@ -1,1942 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (usually C:\windows) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is the php.ini-development INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to an empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; Note: if open_basedir is set, the cache is disabled -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = On - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -;max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 128M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = On - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = On - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). -; This directive is DEPRECATED. -; Default Value: Off -; Development Value: Off -; Production Value: Off -; http://php.net/track-errors -;track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -;error_log = syslog - -; The syslog ident is a string which is prepended to every message logged -; to syslog. Only used when error_log is set to syslog. -;syslog.ident = php - -; The syslog facility is used to specify what type of program is logging -; the message. Only used when error_log is set to syslog. -;syslog.facility = user - -; Set this to disable filtering control characters (the default). -; Some loggers only accept NVT-ASCII, others accept anything that's not -; control characters. If your logger accepts everything, then no filtering -; is needed at all. -; Allowed values are: -; ascii (all printable ASCII characters and NL) -; no-ctrl (all characters except control characters) -; all (all characters) -; raw (like "all", but messages are not split at newlines) -; http://php.net/syslog.filter -;syslog.filter = ascii - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 8M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -;extension_dir = "./" -; On windows: -;extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -;sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -;cgi.discard_path=1 - -; FastCGI under IIS supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 2M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename -; -; For example: -; -; extension=mysqli -; -; When the extension library to load is not located in the default extension -; directory, You may specify an absolute path to the library file: -; -; extension=/path/to/extension/mysqli.so -; -; Note : The syntax used in previous PHP versions ('extension=.so' and -; 'extension='php_.dll') is supported for legacy reasons and may be -; deprecated in a future PHP major version. So, when it is possible, please -; move to the new ('extension=) syntax. -; -; Notes for Windows environments : -; -; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=bz2 -;extension=curl -;extension=fileinfo -;extension=gd2 -;extension=gettext -;extension=gmp -;extension=intl -;extension=imap -;extension=interbase -;extension=ldap -;extension=mbstring -;extension=exif ; Must be after mbstring as it depends on it -;extension=mysqli -;extension=oci8_12c ; Use with Oracle Database 12c Instant Client -;extension=odbc -;extension=openssl -;extension=pdo_firebird -;extension=pdo_mysql -;extension=pdo_oci -;extension=pdo_odbc -;extension=pdo_pgsql -;extension=pdo_sqlite -;extension=pgsql -;extension=shmop - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=snmp - -;extension=soap -;extension=sockets -;extension=sodium -;extension=sqlite3 -;extension=tidy -;extension=xmlrpc -;extension=xsl - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -date.timezone = America/Los_Angeles - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < input_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[imap] -; rsh/ssh logins are disabled by default. Use this INI entry if you want to -; enable them. Note that the IMAP library does not filter mailbox names before -; passing them to rsh/ssh command, thus passing untrusted data to this function -; with rsh/ssh enabled is insecure. -;imap.enable_insecure_rsh=0 - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -; Directory pointing to SQLite3 extensions -; http://php.net/sqlite3.extension-dir -;sqlite3.extension_dir = - -; SQLite defensive mode flag (only available from SQLite 3.26+) -; When the defensive flag is enabled, language features that allow ordinary -; SQL to deliberately corrupt the database file are disabled. This forbids -; writing directly to the schema, shadow tables (eg. FTS data tables), or -; the sqlite_dbpage virtual table. -; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html -; (for older SQLite versions, this flag has no use) -;sqlite3.defensive = 1 - -[Pcre] -; PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -; PCRE library recursion limit. -; Please note that if you set this value to a high number you may consume all -; the available process stack and eventually crash PHP (due to reaching the -; stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -; Enables or disables JIT compilation of patterns. This requires the PCRE -; library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = Off - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_memory_statistics = On - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept an uninitialized session ID, and -; regenerates the session ID if the browser sends an uninitialized session ID. -; Strict mode protects applications from session fixation via a session adoption -; vulnerability. It is disabled by default for maximum compatibility, but -; enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it -; inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) -; Current valid values are "Lax" or "Strict" -; https://tools.ietf.org/html/draft-west-first-party-cookies-07 -session.cookie_samesite = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any given request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 100 -; when the session.gc_probability value is 1 will give you approximately a 1% chance -; the gc will run on any given request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any given request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -;
is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute paths, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = 1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertionError on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a component's typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_translation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < input_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -; This directive specifies maximum stack depth for mbstring regular expressions. It is similar -; to the pcre.recursion_limit for PCRE. -; Default: 100000 -;mbstring.regex_stack_limit=100000 - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=0 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0x7FFFBFFF - -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=0 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -; If specified, it produces opcode dumps for debugging different stages of -; optimizations. -;opcache.opt_debug_level=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: diff --git a/phpunit.xml b/phpunit.xml deleted file mode 100755 index 61b6b64..0000000 --- a/phpunit.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - ./tests/Unit - - - - ./tests/Feature - - - - - ./app - - - - - - - - - - - - - - - - - - - diff --git a/plugins/.gitignore b/plugins/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/plugins/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/pm2.yaml b/pm2.yaml deleted file mode 100644 index 48c2425..0000000 --- a/pm2.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apps: - - name : 'V2Board' - script : 'php artisan horizon' - instances: 1 - out_file : './storage/logs/queue/queue.log' diff --git a/public/assets/admin/assets/index.css b/public/assets/admin/assets/index.css new file mode 100644 index 0000000..e0add00 --- /dev/null +++ b/public/assets/admin/assets/index.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--header-height: 4rem;--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 222.2 47.4% 11.2%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 222.2 84% 4.9%;--radius: .5rem}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 210 40% 98%;--primary-foreground: 222.2 47.4% 11.2%;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 212.7 26.8% 83.9%}.collapsibleDropdown{overflow:hidden}.collapsibleDropdown[data-state=open]{animation:slideDown .2s ease-out}.collapsibleDropdown[data-state=closed]{animation:slideUp .2s ease-out}@keyframes slideDown{0%{height:0}to{height:var(--radix-collapsible-content-height)}}@keyframes slideUp{0%{height:var(--radix-collapsible-content-height)}to{height:0}}*{border-color:hsl(var(--border))}body{min-height:100svh;width:100%;background-color:hsl(var(--background));color:hsl(var(--foreground))}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-left-1{left:-.25rem}.-right-1{right:-.25rem}.-right-5{right:-1.25rem}.-top-1\/2{top:-50%}.bottom-0{bottom:0}.bottom-5{bottom:1.25rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.left-5{left:1.25rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-5{right:1.25rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[1\]{z-index:1}.col-span-2{grid-column:span 2 / span 2}.-m-0\.5{margin:-.125rem}.m-1{margin:.25rem}.m-auto{margin:auto}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-ml-3{margin-left:-.75rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-auto{margin-right:auto}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-square{aspect-ratio:1 / 1}.size-10{width:2.5rem;height:2.5rem}.size-2\.5{width:.625rem;height:.625rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.h-0{height:0px}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[180px\]{height:180px}.h-\[1px\]{height:1px}.h-\[200px\]{height:200px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[90vh\]{height:90vh}.h-\[calc\(100\%-var\(--header-height\)\)\]{height:calc(100% - var(--header-height))}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[var\(--header-height\)\]{height:var(--header-height)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-0{max-height:0px}.max-h-12{max-height:3rem}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-\[90vh\]{max-height:90vh}.max-h-\[95\%\]{max-height:95%}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-6{min-height:1.5rem}.min-h-\[120px\]{min-height:120px}.min-h-\[200px\]{min-height:200px}.min-h-\[60px\]{min-height:60px}.w-0{width:0px}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[100px\]{width:100px}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[150px\]{width:150px}.w-\[180px\]{width:180px}.w-\[1px\]{width:1px}.w-\[200px\]{width:200px}.w-\[250px\]{width:250px}.w-\[300px\]{width:300px}.w-\[400px\]{width:400px}.w-\[50px\]{width:50px}.w-\[60px\]{width:60px}.w-\[70px\]{width:70px}.w-\[80px\]{width:80px}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0px}.min-w-20{min-width:5rem}.min-w-\[10em\]{min-width:10em}.min-w-\[300px\]{min-width:300px}.min-w-\[40px\]{min-width:40px}.min-w-\[4rem\]{min-width:4rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-32{max-width:8rem}.max-w-4xl{max-width:56rem}.max-w-52{max-width:13rem}.max-w-80{max-width:20rem}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[280px\]{max-width:280px}.max-w-\[300px\]{max-width:300px}.max-w-\[500px\]{max-width:500px}.max-w-\[60\%\]{max-width:60%}.max-w-\[600px\]{max-width:600px}.max-w-\[90\%\]{max-width:90%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[1\.2\]{flex:1.2}.flex-\[1\]{flex:1}.flex-\[2\]{flex:2}.flex-\[4\]{flex:4}.flex-\[5\]{flex:5}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-180{--tw-rotate: -180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-125{--tw-scale-x: 1.25;--tw-scale-y: 1.25;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[100px_1fr\]{grid-template-columns:100px 1fr}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-2{row-gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.625rem * var(--tw-space-x-reverse));margin-left:calc(.625rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-wrap{text-wrap:wrap}.text-nowrap{text-wrap:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-lg{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-lg{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-bl-none{border-bottom-left-radius:0}.rounded-br-none{border-bottom-right-radius:0}.rounded-tl-lg{border-top-left-radius:var(--radius)}.rounded-tl-none{border-top-left-radius:0}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-tr-lg{border-top-right-radius:var(--radius)}.rounded-tr-none{border-top-right-radius:0}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-x-0{border-left-width:0px;border-right-width:0px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-blue-500\/50{border-color:#3b82f680}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-foreground\/10{border-color:hsl(var(--foreground) / .1)}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-muted{border-color:hsl(var(--muted))}.border-muted-foreground\/25{border-color:hsl(var(--muted-foreground) / .25)}.border-orange-500\/50{border-color:#f9731680}.border-primary{border-color:hsl(var(--primary))}.border-primary\/40{border-color:hsl(var(--primary) / .4)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-l-slate-500{--tw-border-opacity: 1;border-left-color:rgb(100 116 139 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-r-muted{border-right-color:hsl(var(--muted))}.border-t-transparent{border-top-color:transparent}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-destructive\/15{background-color:hsl(var(--destructive) / .15)}.bg-destructive\/80{background-color:hsl(var(--destructive) / .8)}.bg-emerald-500\/80{background-color:#10b981cc}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/70{background-color:#22c55eb3}.bg-inherit{background-color:inherit}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground{background-color:hsl(var(--primary-foreground))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-slate-100\/80{background-color:#f1f5f9cc}.bg-transparent{background-color:transparent}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/80{background-color:#eab308cc}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-background\/95{--tw-gradient-from: hsl(var(--background) / .95) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background\/80{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background) / .8) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-background\/60{--tw-gradient-to: hsl(var(--background) / .6) var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-primary{fill:hsl(var(--primary))}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-0\.5{padding-bottom:.125rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-7{padding-right:1.75rem}.pr-8{padding-right:2rem}.pr-9{padding-right:2.25rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.625rem\]{font-size:.625rem}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[7rem\]{font-size:7rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-10{line-height:2.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/70{color:hsl(var(--foreground) / .7)}.text-foreground\/90{color:hsl(var(--foreground) / .9)}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/30{color:hsl(var(--muted-foreground) / .3)}.text-muted-foreground\/40{color:hsl(var(--muted-foreground) / .4)}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/90{color:hsl(var(--primary) / .9)}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-destructive\/50{--tw-shadow-color: hsl(var(--destructive) / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-emerald-500\/50{--tw-shadow-color: rgb(16 185 129 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-yellow-500\/50{--tw-shadow-color: rgb(234 179 8 / .5);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-gray-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity, 1))}.ring-gray-300\/20{--tw-ring-color: rgb(209 213 219 / .2)}.ring-green-500\/20{--tw-ring-color: rgb(34 197 94 / .2)}.ring-primary\/20{--tw-ring-color: hsl(var(--primary) / .2)}.ring-offset-2{--tw-ring-offset-width: 2px}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.ring-offset-white{--tw-ring-offset-color: #fff}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-\[1px\]{--tw-backdrop-blur: blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\]{transition-property:margin;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[max-height\,padding\]{transition-property:max-height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[opacity\]{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-100{transition-delay:.1s}.delay-150{transition-delay:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.duration-700{animation-duration:.7s}.delay-100{animation-delay:.1s}.delay-150{animation-delay:.15s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}html{overflow-y:scroll}.sticky{position:sticky!important;z-index:2;background-color:hsl(var(--card))}.sticky.before\:right-0:before,.sticky.before\:left-0:before{content:"";position:absolute;top:0;bottom:0;width:2px;background:linear-gradient(to right,rgba(0,0,0,.08),transparent);opacity:1;transition:opacity .3s ease}.sticky.before\:right-0:before{right:-1px;background:linear-gradient(to right,rgba(0,0,0,.08),transparent)}.sticky.before\:right-0:after{content:"";position:absolute;top:0;right:-8px;bottom:0;width:8px;pointer-events:none;background:linear-gradient(to right,rgba(0,0,0,.05),transparent)}.sticky.before\:left-0:before{left:-1px;background:linear-gradient(to left,rgba(0,0,0,.08),transparent)}.sticky.before\:left-0:after{content:"";position:absolute;top:0;left:-8px;bottom:0;width:8px;pointer-events:none;background:linear-gradient(to left,rgba(0,0,0,.05),transparent)}.sticky:hover:before{opacity:.8}.dark .sticky.before\:right-0:before,.dark .sticky.before\:left-0:before{background:linear-gradient(to right,rgba(255,255,255,.05),transparent)}.dark .sticky.before\:right-0:after,.dark .sticky.before\:left-0:after{background:linear-gradient(to right,rgba(255,255,255,.03),transparent)}.\*\:\!inline-block>*{display:inline-block!important}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:bottom-0:before{content:var(--tw-content);bottom:0}.before\:left-0:before{content:var(--tw-content);left:0}.before\:right-0:before{content:var(--tw-content);right:0}.before\:top-0:before{content:var(--tw-content);top:0}.before\:w-\[1px\]:before{content:var(--tw-content);width:1px}.before\:bg-border:before{content:var(--tw-content);background-color:hsl(var(--border))}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bottom-0:after{content:var(--tw-content);bottom:0}.after\:left-0:after{content:var(--tw-content);left:0}.after\:hidden:after{content:var(--tw-content);display:none}.after\:h-32:after{content:var(--tw-content);height:8rem}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:bg-\[linear-gradient\(180deg\,_transparent_10\%\,_hsl\(var\(--background\)\)_70\%\)\]:after{content:var(--tw-content);background-image:linear-gradient(180deg,transparent 10%,hsl(var(--background)) 70%)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-ring:focus-within{--tw-ring-color: hsl(var(--ring))}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rotate-180:hover{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-background:hover{background-color:hsl(var(--background))}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-200:hover{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity, 1))}.hover\:bg-card\/80:hover{background-color:hsl(var(--card) / .8)}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-destructive\/25:hover{background-color:hsl(var(--destructive) / .25)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-100:hover{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.hover\:bg-inherit:hover{background-color:inherit}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted) / .4)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted) / .6)}.hover\:bg-muted\/70:hover{background-color:hsl(var(--muted) / .7)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary-foreground\/10:hover{background-color:hsl(var(--secondary-foreground) / .1)}.hover\:bg-secondary\/70:hover{background-color:hsl(var(--secondary) / .7)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-slate-200\/80:hover{background-color:#e2e8f0cc}.hover\:bg-transparent:hover{background-color:transparent}.hover\:bg-yellow-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.hover\:bg-opacity-80:hover{--tw-bg-opacity: .8}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-foreground\/70:hover{color:hsl(var(--foreground) / .7)}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-black\/30:hover{--tw-shadow-color: rgb(0 0 0 / .3);--tw-shadow: var(--tw-shadow-colored)}.hover\:ring-primary:hover{--tw-ring-color: hsl(var(--primary))}.focus\:z-10:focus{z-index:10}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-destructive:focus{color:hsl(var(--destructive))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color: hsl(var(--primary))}.focus-visible\:ring-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:scale-90:active{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:via-background\/90{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background) / .9) var(--tw-gradient-via-position), var(--tw-gradient-to)}.group:hover .group-hover\:to-background\/70{--tw-gradient-to: hsl(var(--background) / .7) var(--tw-gradient-to-position)}.group\/id:hover .group-hover\/id\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group[data-collapsed=true] .group-\[\[data-collapsed\=true\]\]\:justify-center{justify-content:center}.group[data-collapsed=true] .group-\[\[data-collapsed\=true\]\]\:px-2{padding-left:.5rem;padding-right:.5rem}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\:focus-visible\]\:outline-none:has(:focus-visible){outline:2px solid transparent;outline-offset:2px}.has-\[\:focus-visible\]\:ring-1:has(:focus-visible){--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.has-\[\:focus-visible\]\:ring-neutral-950:has(:focus-visible){--tw-ring-opacity: 1;--tw-ring-color: rgb(10 10 10 / var(--tw-ring-opacity, 1))}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[state\=dragging\]\:cursor-grabbing[data-state=dragging]{cursor:grabbing}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent) / .5)}.data-\[disabled\]\:bg-muted-foreground[data-disabled],.data-\[fixed\]\:bg-muted-foreground[data-fixed]{background-color:hsl(var(--muted-foreground))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[collapsed\=true\]\:py-2[data-collapsed=true]{padding-top:.5rem;padding-bottom:.5rem}.data-\[disabled\]\:text-muted[data-disabled],.data-\[fixed\]\:text-muted[data-fixed]{color:hsl(var(--muted))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=closed\]\:duration-300[data-state=closed],.data-\[state\=open\]\:duration-300[data-state=open]{transition-duration:.3s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed],.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=closed\]\:duration-300[data-state=closed],.data-\[state\=open\]\:duration-300[data-state=open]{animation-duration:.3s}.data-\[disabled\]\:hover\:bg-muted-foreground:hover[data-disabled],.data-\[fixed\]\:hover\:bg-muted-foreground:hover[data-fixed]{background-color:hsl(var(--muted-foreground))}.group[data-state=open] .group-data-\[state\=\"open\"\]\:-rotate-180{--tw-rotate: -180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:border-blue-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 78 216 / var(--tw-border-opacity, 1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(23 37 84 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-green-500\/10:is(.dark *){background-color:#22c55e1a}.dark\:bg-red-500\/10:is(.dark *){background-color:#ef44441a}.dark\:bg-red-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-500\/10:is(.dark *){background-color:#eab3081a}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.dark\:ring-gray-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity, 1))}.dark\:ring-gray-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity, 1))}.dark\:placeholder\:text-gray-500:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-gray-500:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-blue-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 64 175 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-blue-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-red-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-red-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:has-\[\:focus-visible\]\:ring-neutral-300:has(:focus-visible):is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(212 212 212 / var(--tw-ring-opacity, 1))}@media (min-width: 640px){.sm\:absolute{position:absolute}.sm\:inset-auto{inset:auto}.sm\:bottom-\[calc\(100\%\+10px\)\]{bottom:calc(100% + 10px)}.sm\:left-0{left:0}.sm\:right-0{right:0}.sm\:my-0{margin-top:0;margin-bottom:0}.sm\:my-4{margin-top:1rem;margin-bottom:1rem}.sm\:mt-0{margin-top:0}.sm\:hidden{display:none}.sm\:h-\[80vh\]{height:80vh}.sm\:h-full{height:100%}.sm\:max-h-\[500px\]{max-height:500px}.sm\:max-h-\[600px\]{max-height:600px}.sm\:max-h-\[700px\]{max-height:700px}.sm\:max-h-\[800px\]{max-height:800px}.sm\:w-48{width:12rem}.sm\:w-\[480px\]{width:480px}.sm\:w-\[540px\]{width:540px}.sm\:w-\[90vw\]{width:90vw}.sm\:w-full{width:100%}.sm\:max-w-72{max-width:18rem}.sm\:max-w-\[1025px\]{max-width:1025px}.sm\:max-w-\[425px\]{max-width:425px}.sm\:max-w-\[700px\]{max-width:700px}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-xl{max-width:36rem}.sm\:translate-y-5{--tw-translate-y: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width: 768px){.md\:absolute{position:absolute}.md\:bottom-0{bottom:0}.md\:right-8{right:2rem}.md\:right-auto{right:auto}.md\:top-8{top:2rem}.md\:col-span-1{grid-column:span 1 / span 1}.md\:ml-14{margin-left:3.5rem}.md\:ml-64{margin-left:16rem}.md\:block{display:block}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:h-svh{height:100svh}.md\:max-h-screen{max-height:100vh}.md\:w-14{width:3.5rem}.md\:w-32{width:8rem}.md\:w-64{width:16rem}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[31rem\]{max-width:31rem}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:overflow-y-hidden{overflow-y:hidden}.md\:border-none{border-style:none}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-2{padding-top:.5rem;padding-bottom:.5rem}.md\:pt-0{padding-top:0}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.after\:md\:block:after{content:var(--tw-content);display:block}}@media (min-width: 1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-1\/5{width:20%}.lg\:w-\[250px\]{width:250px}.lg\:max-w-none{max-width:none}.lg\:max-w-xl{max-width:36rem}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:gap-8{gap:2rem}.lg\:space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.lg\:space-x-12>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(3rem * var(--tw-space-x-reverse));margin-left:calc(3rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.lg\:space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.lg\:p-8{padding:2rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}}@media (min-width: 1280px){.xl\:mr-2{margin-right:.5rem}.xl\:flex{display:flex}.xl\:inline-flex{display:inline-flex}.xl\:h-10{height:2.5rem}.xl\:w-60{width:15rem}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:justify-start{justify-content:flex-start}.xl\:px-3{padding-left:.75rem;padding-right:.75rem}.xl\:py-2{padding-top:.5rem;padding-bottom:.5rem}}.\[\&\:\:-webkit-calendar-picker-indicator\]\:hidden::-webkit-calendar-picker-indicator{display:none}.\[\&\:has\(\>\.day-range-end\)\]\:rounded-r-md:has(>.day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\>\.day-range-start\)\]\:rounded-l-md:has(>.day-range-start){border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:rounded-md:has([aria-selected]){border-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px} diff --git a/public/assets/admin/assets/index.js b/public/assets/admin/assets/index.js new file mode 100644 index 0000000..d0748b7 --- /dev/null +++ b/public/assets/admin/assets/index.js @@ -0,0 +1,9 @@ +import{r as m,j as e,t as xl,c as hl,I as Pa,a as Es,S as aa,u as ms,b as na,d as fl,O as ra,e as pl,f as q,g as gl,h as jl,i as vl,k as bl,B as yl,l as Nl,Q as _l,m as wl,R as Cl,n as Sl,P as kl,o as Pl,p as Tl,q as Ja,F as Dl,C as El,s as Rl,v as Vl,w as Il,x as Fl,y as Qa,z as I,A as h,D as de,E as me,G as Za,H as Pt,J as Tt,K as la,L as Ae,T as Dt,M as Et,N as Xa,U as en,V as sn,W as oa,X as tn,Y as Ml,Z as an,_ as nn,$ as rn,a0 as ln,a1 as Rs,a2 as on,a3 as Ol,a4 as cn,a5 as dn,a6 as zl,a7 as Ll,a8 as Al,a9 as $l,aa as ql,ab as Kl,ac as Hl,ad as Ul,ae as Bl,af as Gl,ag as Wl,ah as mn,ai as Yl,aj as Jl,ak as Vs,al as un,am as Ql,an as Zl,ao as xn,ap as ia,aq as Xl,ar as eo,as as Ta,at as so,au as hn,av as to,aw as fn,ax as ao,ay as no,az as ro,aA as lo,aB as oo,aC as io,aD as pn,aE as co,aF as mo,aG as uo,aH as De,aI as xo,aJ as gn,aK as ho,aL as fo,aM as jn,aN as vn,aO as bn,aP as po,aQ as go,aR as yn,aS as Nn,aT as _n,aU as jo,aV as vo,aW as wn,aX as bo,aY as ca,aZ as Cn,a_ as yo,a$ as Sn,b0 as No,b1 as kn,b2 as _o,b3 as Pn,b4 as Tn,b5 as wo,b6 as Co,b7 as Dn,b8 as So,b9 as ko,ba as En,bb as Po,bc as Rn,bd as To,be as Do,bf as We,bg as se,bh as Ge,bi as ct,bj as Eo,bk as Ro,bl as Vo,bm as Io,bn as Fo,bo as Mo,bp as Da,bq as Ea,br as Oo,bs as zo,bt as Lo,bu as Ao,bv as $o,bw as Wt,bx as Yt,by as qo,bz as Ko,bA as Vn,bB as Ho,bC as Uo,bD as In,bE as Bo,bF as ve,bG as Go,bH as Ra,bI as Jt,bJ as Qt,bK as Wo,bL as Yo,bM as Fn,bN as Jo,bO as da,bP as Qo,bQ as Zo,bR as Xo,bS as Mn,bT as On,bU as zn,bV as ei,bW as si,bX as ti,bY as ai,bZ as Ln,b_ as ni,b$ as as,c0 as ri,c1 as li,c2 as oi,c3 as Nt,c4 as Se,c5 as Va,c6 as ii,c7 as An,c8 as $n,c9 as qn,ca as Kn,cb as Hn,cc as Un,cd as ci,ce as di,cf as mi,cg as Rt,ch as Is,ci as ns,cj as Ke,ck as He,cl as Je,cm as Qe,cn as Ze,co as ui,cp as xi,cq as hi,cr as fi,cs as pi,ct as gi,cu as ji,cv as vi,cw as bi,cx as Zt,cy as ma,cz as ua,cA as yi,cB as us,cC as xs,cD as dt,cE as Ni,cF as _t,cG as _i,cH as Ia,cI as Bn,cJ as Fa,cK as wt,cL as wi,cM as Ci,cN as Si,cO as ki,cP as Gn,cQ as Pi,cR as Ti,cS as Wn,cT as Xt,cU as Yn,cV as Di,cW as Jn,cX as Qn,cY as Ei,cZ as Ri,c_ as Vi,c$ as Ii,d0 as Fi}from"./vendor.js";import"./index.js";var Eh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Rh(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}function Mi(s){if(s.__esModule)return s;var n=s.default;if(typeof n=="function"){var a=function l(){return this instanceof l?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};a.prototype=n.prototype}else a={};return Object.defineProperty(a,"__esModule",{value:!0}),Object.keys(s).forEach(function(l){var r=Object.getOwnPropertyDescriptor(s,l);Object.defineProperty(a,l,r.get?r:{enumerable:!0,get:function(){return s[l]}})}),a}const Oi={theme:"system",setTheme:()=>null},Zn=m.createContext(Oi);function zi({children:s,defaultTheme:n="system",storageKey:a="vite-ui-theme",...l}){const[r,c]=m.useState(()=>localStorage.getItem(a)||n);m.useEffect(()=>{const u=window.document.documentElement;if(u.classList.remove("light","dark"),r==="system"){const x=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";u.classList.add(x);return}u.classList.add(r)},[r]);const i={theme:r,setTheme:u=>{localStorage.setItem(a,u),c(u)}};return e.jsx(Zn.Provider,{...l,value:i,children:s})}const Li=()=>{const s=m.useContext(Zn);if(s===void 0)throw new Error("useTheme must be used within a ThemeProvider");return s},Ai=function(){const n=typeof document<"u"&&document.createElement("link").relList;return n&&n.supports&&n.supports("modulepreload")?"modulepreload":"preload"}(),$i=function(s,n){return new URL(s,n).href},Ma={},ne=function(n,a,l){let r=Promise.resolve();if(a&&a.length>0){const i=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),x=u?.nonce||u?.getAttribute("nonce");r=Promise.allSettled(a.map(o=>{if(o=$i(o,l),o in Ma)return;Ma[o]=!0;const d=o.endsWith(".css"),p=d?'[rel="stylesheet"]':"";if(!!l)for(let f=i.length-1;f>=0;f--){const g=i[f];if(g.href===o&&(!d||g.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${p}`))return;const R=document.createElement("link");if(R.rel=d?"stylesheet":Ai,d||(R.as="script"),R.crossOrigin="",R.href=o,x&&R.setAttribute("nonce",x),document.head.appendChild(R),d)return new Promise((f,g)=>{R.addEventListener("load",f),R.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${o}`)))})}))}function c(i){const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=i,window.dispatchEvent(u),!u.defaultPrevented)throw i}return r.then(i=>{for(const u of i||[])u.status==="rejected"&&c(u.reason);return n().catch(c)})};function _(...s){return xl(hl(s))}const Bs=Es("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),V=m.forwardRef(({className:s,variant:n,size:a,asChild:l=!1,children:r,disabled:c,loading:i=!1,leftSection:u,rightSection:x,...o},d)=>{const p=l?aa:"button";return e.jsxs(p,{className:_(Bs({variant:n,size:a,className:s})),disabled:i||c,ref:d,...o,children:[(u&&i||!u&&!x&&i)&&e.jsx(Pa,{className:"mr-2 h-4 w-4 animate-spin"}),!i&&u&&e.jsx("div",{className:"mr-2",children:u}),r,!i&&x&&e.jsx("div",{className:"ml-2",children:x}),x&&i&&e.jsx(Pa,{className:"ml-2 h-4 w-4 animate-spin"})]})});V.displayName="Button";function Ls({className:s,minimal:n=!1}){const a=ms();return e.jsx("div",{className:_("h-svh w-full",s),children:e.jsxs("div",{className:"m-auto flex h-full w-full flex-col items-center justify-center gap-2",children:[!n&&e.jsx("h1",{className:"text-[7rem] font-bold leading-tight",children:"500"}),e.jsxs("span",{className:"font-medium",children:["Oops! Something went wrong ",":')"]}),e.jsxs("p",{className:"text-center text-muted-foreground",children:["We apologize for the inconvenience. ",e.jsx("br",{})," Please try again later."]}),!n&&e.jsxs("div",{className:"mt-6 flex gap-4",children:[e.jsx(V,{variant:"outline",onClick:()=>a(-1),children:"Go Back"}),e.jsx(V,{onClick:()=>a("/"),children:"Back to Home"})]})]})})}function Oa(){const s=ms();return e.jsx("div",{className:"h-svh",children:e.jsxs("div",{className:"m-auto flex h-full w-full flex-col items-center justify-center gap-2",children:[e.jsx("h1",{className:"text-[7rem] font-bold leading-tight",children:"404"}),e.jsx("span",{className:"font-medium",children:"Oops! Page Not Found!"}),e.jsxs("p",{className:"text-center text-muted-foreground",children:["It seems like the page you're looking for ",e.jsx("br",{}),"does not exist or might have been removed."]}),e.jsxs("div",{className:"mt-6 flex gap-4",children:[e.jsx(V,{variant:"outline",onClick:()=>s(-1),children:"Go Back"}),e.jsx(V,{onClick:()=>s("/"),children:"Back to Home"})]})]})})}function qi(){return e.jsx("div",{className:"h-svh",children:e.jsxs("div",{className:"m-auto flex h-full w-full flex-col items-center justify-center gap-2",children:[e.jsx("h1",{className:"text-[7rem] font-bold leading-tight",children:"503"}),e.jsx("span",{className:"font-medium",children:"Website is under maintenance!"}),e.jsxs("p",{className:"text-center text-muted-foreground",children:["The site is not available at the moment. ",e.jsx("br",{}),"We'll be back online shortly."]}),e.jsx("div",{className:"mt-6 flex gap-4",children:e.jsx(V,{variant:"outline",children:"Learn more"})})]})})}function Ki(s){return typeof s>"u"}function Hi(s){return s===null}function Ui(s){return Hi(s)||Ki(s)}class Bi{storage;prefixKey;constructor(n){this.storage=n.storage,this.prefixKey=n.prefixKey}getKey(n){return`${this.prefixKey}${n}`.toUpperCase()}set(n,a,l=null){const r=JSON.stringify({value:a,time:Date.now(),expire:l!==null?new Date().getTime()+l*1e3:null});this.storage.setItem(this.getKey(n),r)}get(n,a=null){const l=this.storage.getItem(this.getKey(n));if(!l)return{value:a,time:0};try{const r=JSON.parse(l),{value:c,time:i,expire:u}=r;return Ui(u)||u>new Date().getTime()?{value:c,time:i}:(this.remove(n),{value:a,time:0})}catch{return this.remove(n),{value:a,time:0}}}remove(n){this.storage.removeItem(this.getKey(n))}clear(){this.storage.clear()}}function Xn({prefixKey:s="",storage:n=sessionStorage}){return new Bi({prefixKey:s,storage:n})}const er="Xboard_",Gi=function(s={}){return Xn({prefixKey:s.prefixKey||"",storage:localStorage})},Wi=function(s={}){return Xn({prefixKey:s.prefixKey||"",storage:sessionStorage})},Vt=Gi({prefixKey:er});Wi({prefixKey:er});const sr="access_token";function nt(){return Vt.get(sr)}function tr(){Vt.remove(sr)}const za=["/sign-in","/sign-in-2","/sign-up","/forgot-password","/otp"];function Yi({children:s}){const n=ms(),a=na(),l=nt();return m.useEffect(()=>{if(!l.value&&!za.includes(a.pathname)){const r=encodeURIComponent(a.pathname+a.search);n(`/sign-in?redirect=${r}`)}},[l.value,a.pathname,a.search,n]),za.includes(a.pathname)||l.value?e.jsx(e.Fragment,{children:s}):null}const Ji=()=>e.jsx(Yi,{children:e.jsx(ra,{})}),Qi=fl([{path:"/sign-in",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>Nc);return{default:s}},void 0,import.meta.url)).default})},{element:e.jsx(Ji,{}),children:[{path:"/",lazy:async()=>({Component:(await ne(()=>Promise.resolve().then(()=>Ec),void 0,import.meta.url)).default}),errorElement:e.jsx(Ls,{}),children:[{index:!0,lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>em);return{default:s}},void 0,import.meta.url)).default})},{path:"config",errorElement:e.jsx(Ls,{}),children:[{path:"system",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>nm);return{default:s}},void 0,import.meta.url)).default}),children:[{index:!0,lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>im);return{default:s}},void 0,import.meta.url)).default})},{path:"safe",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>xm);return{default:s}},void 0,import.meta.url)).default})},{path:"subscribe",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>jm);return{default:s}},void 0,import.meta.url)).default})},{path:"invite",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>_m);return{default:s}},void 0,import.meta.url)).default})},{path:"frontend",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>Pm);return{default:s}},void 0,import.meta.url)).default})},{path:"server",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>Vm);return{default:s}},void 0,import.meta.url)).default})},{path:"email",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>zm);return{default:s}},void 0,import.meta.url)).default})},{path:"telegram",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>Km);return{default:s}},void 0,import.meta.url)).default})},{path:"APP",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>Wm);return{default:s}},void 0,import.meta.url)).default})}]},{path:"payment",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>lu);return{default:s}},void 0,import.meta.url)).default})},{path:"plugin",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>cu);return{default:s}},void 0,import.meta.url)).default})},{path:"theme",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>xu);return{default:s}},void 0,import.meta.url)).default})},{path:"notice",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>bu);return{default:s}},void 0,import.meta.url)).default})},{path:"knowledge",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>Pu);return{default:s}},void 0,import.meta.url)).default})}]},{path:"server",errorElement:e.jsx(Ls,{}),children:[{path:"manage",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>Xu);return{default:s}},void 0,import.meta.url)).default})},{path:"group",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>nx);return{default:s}},void 0,import.meta.url)).default})},{path:"route",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>dx);return{default:s}},void 0,import.meta.url)).default})}]},{path:"finance",errorElement:e.jsx(Ls,{}),children:[{path:"plan",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>vx);return{default:s}},void 0,import.meta.url)).default})},{path:"order",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>Vx);return{default:s}},void 0,import.meta.url)).default})},{path:"coupon",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>qx);return{default:s}},void 0,import.meta.url)).default})}]},{path:"user",errorElement:e.jsx(Ls,{}),children:[{path:"manage",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>mh);return{default:s}},void 0,import.meta.url)).default})},{path:"ticket",lazy:async()=>({Component:(await ne(async()=>{const{default:s}=await Promise.resolve().then(()=>Ph);return{default:s}},void 0,import.meta.url)).default})}]}]}]},{path:"/500",Component:Ls},{path:"/404",Component:Oa},{path:"/503",Component:qi},{path:"*",Component:Oa}]),Zi="locale";function Xi(){return Vt.get(Zi)}function ar(){tr();const s=window.location.pathname,n=s&&!["/404","/sign-in"].includes(s),a=new URL(window.location.href),r=`${a.pathname.split("/")[1]?`/${a.pathname.split("/")[1]}`:""}#/sign-in`;window.location.href=r+(n?`?redirect=${s}`:"")}const ec=["/passport/auth/login","/passport/auth/token2Login","/passport/auth/register","/guest/comm/config","/passport/comm/sendEmailVerify","/passport/auth/forget"];function sc(){const s=window.settings?.base_url||"/";return s.endsWith("/")?s+"api/v2":s+"/api/v2"}const F=pl.create({baseURL:sc(),timeout:12e3,headers:{"Content-Type":"application/json"}});F.interceptors.request.use(s=>{s.method?.toLowerCase()==="get"&&(s.params={...s.params,t:Date.now()});const n=nt();if(!ec.includes(s.url?.split("?")[0]||"")){if(!n.value)return ar(),Promise.reject({code:-1,message:"未登录"});s.headers.Authorization=n.value}return s.headers["Content-Language"]=Xi().value||"zh-CN",s},s=>Promise.reject(s));F.interceptors.response.use(s=>s?.data||{code:-1,message:"未知错误"},s=>{const n=s.response?.status,a=s.response?.data?.message;return(n===401||n===403)&&ar(),q.error(a||{401:"登录已过期",403:"没有权限",404:"资源或接口不存在"}[n]||"未知异常"),Promise.reject(s.response?.data||{data:null,code:-1,message:"未知错误"})});function tc(){return F.get("/user/info")}const At={token:nt()?.value||"",userInfo:null,isLoggedIn:!!nt()?.value,loading:!1,error:null},tt=gl("user/fetchUserInfo",async()=>(await tc()).data,{condition:(s,{getState:n})=>{const{user:a}=n();return!!a.token&&!a.loading}}),nr=jl({name:"user",initialState:At,reducers:{setToken(s,n){s.token=n.payload,s.isLoggedIn=!!n.payload},resetUserState:()=>At},extraReducers:s=>{s.addCase(tt.pending,n=>{n.loading=!0,n.error=null}).addCase(tt.fulfilled,(n,a)=>{n.loading=!1,n.userInfo=a.payload,n.error=null}).addCase(tt.rejected,(n,a)=>{if(n.loading=!1,n.error=a.error.message||"Failed to fetch user info",!n.token)return At})}}),{setToken:ac,resetUserState:nc}=nr.actions,rc=s=>s.user.userInfo,lc=nr.reducer,rr=vl({reducer:{user:lc}});nt()?.value&&rr.dispatch(tt());bl.use(yl).use(Nl).init({resources:{"en-US":window.XBOARD_TRANSLATIONS?.["en-US"]||{},"zh-CN":window.XBOARD_TRANSLATIONS?.["zh-CN"]||{},"ko-KR":window.XBOARD_TRANSLATIONS?.["ko-KR"]||{}},fallbackLng:"zh-CN",supportedLngs:["en-US","zh-CN","ko-KR"],detection:{order:["querystring","localStorage","navigator"],lookupQuerystring:"lang",lookupLocalStorage:"i18nextLng",caches:["localStorage"]},interpolation:{escapeValue:!1}});const oc=new _l;wl.createRoot(document.getElementById("root")).render(e.jsx(Cl.StrictMode,{children:e.jsx(Sl,{client:oc,children:e.jsx(kl,{store:rr,children:e.jsxs(zi,{defaultTheme:"light",storageKey:"vite-ui-theme",children:[e.jsx(Pl,{router:Qi}),e.jsx(Tl,{richColors:!0,position:"top-right"})]})})})}));const Me=m.forwardRef(({className:s,...n},a)=>e.jsx("div",{ref:a,className:_("rounded-xl border bg-card text-card-foreground shadow",s),...n}));Me.displayName="Card";const $e=m.forwardRef(({className:s,...n},a)=>e.jsx("div",{ref:a,className:_("flex flex-col space-y-1.5 p-6",s),...n}));$e.displayName="CardHeader";const cs=m.forwardRef(({className:s,...n},a)=>e.jsx("h3",{ref:a,className:_("font-semibold leading-none tracking-tight",s),...n}));cs.displayName="CardTitle";const Hs=m.forwardRef(({className:s,...n},a)=>e.jsx("p",{ref:a,className:_("text-sm text-muted-foreground",s),...n}));Hs.displayName="CardDescription";const qe=m.forwardRef(({className:s,...n},a)=>e.jsx("div",{ref:a,className:_("p-6 pt-0",s),...n}));qe.displayName="CardContent";const ic=m.forwardRef(({className:s,...n},a)=>e.jsx("div",{ref:a,className:_("flex items-center p-6 pt-0",s),...n}));ic.displayName="CardFooter";const cc=Es("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Ct=m.forwardRef(({className:s,...n},a)=>e.jsx(Ja,{ref:a,className:_(cc(),s),...n}));Ct.displayName=Ja.displayName;const ue=Dl,lr=m.createContext({}),y=({...s})=>e.jsx(lr.Provider,{value:{name:s.name},children:e.jsx(El,{...s})}),It=()=>{const s=m.useContext(lr),n=m.useContext(or),{getFieldState:a,formState:l}=Rl(),r=a(s.name,l);if(!s)throw new Error("useFormField should be used within ");const{id:c}=n;return{id:c,name:s.name,formItemId:`${c}-form-item`,formDescriptionId:`${c}-form-item-description`,formMessageId:`${c}-form-item-message`,...r}},or=m.createContext({}),b=m.forwardRef(({className:s,...n},a)=>{const l=m.useId();return e.jsx(or.Provider,{value:{id:l},children:e.jsx("div",{ref:a,className:_("space-y-2",s),...n})})});b.displayName="FormItem";const N=m.forwardRef(({className:s,...n},a)=>{const{error:l,formItemId:r}=It();return e.jsx(Ct,{ref:a,className:_(l&&"text-destructive",s),htmlFor:r,...n})});N.displayName="FormLabel";const w=m.forwardRef(({...s},n)=>{const{error:a,formItemId:l,formDescriptionId:r,formMessageId:c}=It();return e.jsx(aa,{ref:n,id:l,"aria-describedby":a?`${r} ${c}`:`${r}`,"aria-invalid":!!a,...s})});w.displayName="FormControl";const M=m.forwardRef(({className:s,...n},a)=>{const{formDescriptionId:l}=It();return e.jsx("p",{ref:a,id:l,className:_("text-[0.8rem] text-muted-foreground",s),...n})});M.displayName="FormDescription";const E=m.forwardRef(({className:s,children:n,...a},l)=>{const{error:r,formMessageId:c}=It(),i=r?String(r?.message):n;return i?e.jsx("p",{ref:l,id:c,className:_("text-[0.8rem] font-medium text-destructive",s),...a,children:i}):null});E.displayName="FormMessage";const D=m.forwardRef(({className:s,type:n,...a},l)=>e.jsx("input",{type:n,className:_("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",s),ref:l,...a}));D.displayName="Input";const ir=m.forwardRef(({className:s,...n},a)=>{const[l,r]=m.useState(!1);return e.jsxs("div",{className:"relative rounded-md",children:[e.jsx("input",{type:l?"text":"password",className:_("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",s),ref:a,...n}),e.jsx(V,{type:"button",size:"icon",variant:"ghost",className:"absolute right-1 top-1/2 h-6 w-6 -translate-y-1/2 rounded-md text-muted-foreground",onClick:()=>r(c=>!c),children:l?e.jsx(Vl,{size:18}):e.jsx(Il,{size:18})})]})});ir.displayName="PasswordInput";const dc=s=>F({url:"/passport/auth/login",method:"post",data:s});function he(s=void 0,n="YYYY-MM-DD HH:mm:ss"){return s==null?"":(Math.floor(s).toString().length===10&&(s=s*1e3),Fl(s).format(n))}function mc(s=void 0,n="YYYY-MM-DD"){return he(s,n)}function qs(s){const n=typeof s=="string"?parseFloat(s):s;return isNaN(n)?"0.00":n.toFixed(2)}function Ps(s,n=!0){if(s==null)return n?"¥0.00":"0.00";const a=typeof s=="string"?parseFloat(s):s;if(isNaN(a))return n?"¥0.00":"0.00";const r=(a/100).toFixed(2).replace(/\.?0+$/,c=>c.includes(".")?".00":c);return n?`¥${r}`:r}function St(s){return new Promise(n=>{(async()=>{try{if(navigator.clipboard)await navigator.clipboard.writeText(s);else{const l=document.createElement("textarea");l.value=s,l.style.position="fixed",l.style.opacity="0",document.body.appendChild(l),l.select();const r=document.execCommand("copy");if(document.body.removeChild(l),!r)throw new Error("execCommand failed")}n(!0)}catch(l){console.error(l),n(!1)}})()})}function ss(s){const n=s/1024,a=n/1024,l=a/1024,r=l/1024;return r>=1?qs(r)+" TB":l>=1?qs(l)+" GB":a>=1?qs(a)+" MB":qs(n)+" KB"}const uc="access_token";function xc(s){Vt.set(uc,s)}function hc({className:s,onForgotPassword:n,...a}){const l=ms(),r=Qa(),{t:c}=I("auth"),i=h.object({email:h.string().min(1,{message:c("signIn.validation.emailRequired")}),password:h.string().min(1,{message:c("signIn.validation.passwordRequired")}).min(7,{message:c("signIn.validation.passwordLength")})}),u=de({resolver:me(i),defaultValues:{email:"",password:""}});async function x(o){try{const{data:d}=await dc(o);xc(d.auth_data),r(ac(d.auth_data)),await r(tt()).unwrap(),l("/")}catch(d){console.error("Login failed:",d),d.response?.data?.message&&u.setError("root",{message:d.response.data.message})}}return e.jsx("div",{className:_("grid gap-6",s),...a,children:e.jsx(ue,{...u,children:e.jsx("form",{onSubmit:u.handleSubmit(x),className:"space-y-4",children:e.jsxs("div",{className:"space-y-4",children:[u.formState.errors.root&&e.jsx("div",{className:"text-sm text-destructive",children:u.formState.errors.root.message}),e.jsx(y,{control:u.control,name:"email",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:c("signIn.email")}),e.jsx(w,{children:e.jsx(D,{placeholder:c("signIn.emailPlaceholder"),autoComplete:"email",...o})}),e.jsx(E,{})]})}),e.jsx(y,{control:u.control,name:"password",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:c("signIn.password")}),e.jsx(w,{children:e.jsx(ir,{placeholder:c("signIn.passwordPlaceholder"),autoComplete:"current-password",...o})}),e.jsx(E,{})]})}),e.jsx("div",{className:"flex items-center justify-between",children:e.jsx(V,{variant:"link",type:"button",className:"px-0 text-sm font-normal text-muted-foreground hover:text-primary",onClick:n,children:c("signIn.forgotPassword")})}),e.jsx(V,{className:"w-full",size:"lg",loading:u.formState.isSubmitting,children:c("signIn.submit")})]})})})})}const pe=Za,ze=Xa,fc=en,mt=la,cr=m.forwardRef(({className:s,...n},a)=>e.jsx(Pt,{ref:a,className:_("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...n}));cr.displayName=Pt.displayName;const fe=m.forwardRef(({className:s,children:n,...a},l)=>e.jsxs(fc,{children:[e.jsx(cr,{}),e.jsxs(Tt,{ref:l,className:_("max-h-[95%] overflow-auto fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",s),...a,children:[n,e.jsxs(la,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[e.jsx(Ae,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));fe.displayName=Tt.displayName;const be=({className:s,...n})=>e.jsx("div",{className:_("flex flex-col space-y-1.5 text-center sm:text-left",s),...n});be.displayName="DialogHeader";const Le=({className:s,...n})=>e.jsx("div",{className:_("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...n});Le.displayName="DialogFooter";const ge=m.forwardRef(({className:s,...n},a)=>e.jsx(Dt,{ref:a,className:_("text-lg font-semibold leading-none tracking-tight",s),...n}));ge.displayName=Dt.displayName;const Te=m.forwardRef(({className:s,...n},a)=>e.jsx(Et,{ref:a,className:_("text-sm text-muted-foreground",s),...n}));Te.displayName=Et.displayName;const Us=Es("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),J=m.forwardRef(({className:s,variant:n,size:a,asChild:l=!1,...r},c)=>{const i=l?aa:"button";return e.jsx(i,{className:_(Us({variant:n,size:a,className:s})),ref:c,...r})});J.displayName="Button";const _s=zl,ws=Ll,pc=Al,gc=m.forwardRef(({className:s,inset:n,children:a,...l},r)=>e.jsxs(sn,{ref:r,className:_("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",n&&"pl-8",s),...l,children:[a,e.jsx(oa,{className:"ml-auto h-4 w-4"})]}));gc.displayName=sn.displayName;const jc=m.forwardRef(({className:s,...n},a)=>e.jsx(tn,{ref:a,className:_("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",s),...n}));jc.displayName=tn.displayName;const ds=m.forwardRef(({className:s,sideOffset:n=4,...a},l)=>e.jsx(Ml,{children:e.jsx(an,{ref:l,sideOffset:n,className:_("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",s),...a})}));ds.displayName=an.displayName;const je=m.forwardRef(({className:s,inset:n,...a},l)=>e.jsx(nn,{ref:l,className:_("relative flex cursor-default cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n&&"pl-8",s),...a}));je.displayName=nn.displayName;const vc=m.forwardRef(({className:s,children:n,checked:a,...l},r)=>e.jsxs(rn,{ref:r,className:_("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),checked:a,...l,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(ln,{children:e.jsx(Rs,{className:"h-4 w-4"})})}),n]}));vc.displayName=rn.displayName;const bc=m.forwardRef(({className:s,children:n,...a},l)=>e.jsxs(on,{ref:l,className:_("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...a,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(ln,{children:e.jsx(Ol,{className:"h-4 w-4 fill-current"})})}),n]}));bc.displayName=on.displayName;const xa=m.forwardRef(({className:s,inset:n,...a},l)=>e.jsx(cn,{ref:l,className:_("px-2 py-1.5 text-sm font-semibold",n&&"pl-8",s),...a}));xa.displayName=cn.displayName;const rt=m.forwardRef(({className:s,...n},a)=>e.jsx(dn,{ref:a,className:_("-mx-1 my-1 h-px bg-muted",s),...n}));rt.displayName=dn.displayName;const ea=({className:s,...n})=>e.jsx("span",{className:_("ml-auto text-xs tracking-widest opacity-60",s),...n});ea.displayName="DropdownMenuShortcut";const $t=[{code:"en-US",name:"English",flag:$l,shortName:"EN"},{code:"zh-CN",name:"中文",flag:ql,shortName:"CN"},{code:"ko-KR",name:"한국어",flag:Kl,shortName:"KR"}];function dr(){const{i18n:s}=I(),n=r=>{s.changeLanguage(r)},a=$t.find(r=>r.code===s.language)||$t[1],l=a.flag;return e.jsxs(_s,{children:[e.jsx(ws,{asChild:!0,children:e.jsxs(J,{variant:"ghost",size:"sm",className:"h-8 px-2 gap-1",children:[e.jsx(l,{className:"h-4 w-5 rounded-sm shadow-sm"}),e.jsx("span",{className:"text-sm font-medium",children:a.shortName})]})}),e.jsx(ds,{align:"end",className:"w-[120px]",children:$t.map(r=>{const c=r.flag,i=r.code===s.language;return e.jsxs(je,{onClick:()=>n(r.code),className:_("flex items-center gap-2 px-2 py-1.5 cursor-pointer",i&&"bg-accent"),children:[e.jsx(c,{className:"h-4 w-5 rounded-sm shadow-sm"}),e.jsx("span",{className:_("text-sm",i&&"font-medium"),children:r.name})]},r.code)})})]})}function yc(){const[s,n]=m.useState(!1),{t:a}=I("auth"),l=a("signIn.resetPassword.command");return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"container relative grid h-svh flex-col items-center justify-center bg-primary-foreground lg:max-w-none lg:px-0",children:[e.jsx("div",{className:"absolute right-4 top-4 md:right-8 md:top-8",children:e.jsx(dr,{})}),e.jsxs("div",{className:"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[480px] lg:p-8",children:[e.jsxs("div",{className:"flex flex-col space-y-2 text-center",children:[e.jsx("h1",{className:"text-3xl font-bold",children:window?.settings?.title}),e.jsx("p",{className:"text-sm text-muted-foreground",children:window?.settings?.description})]}),e.jsxs(Me,{className:"p-6",children:[e.jsxs("div",{className:"flex flex-col space-y-2 text-left",children:[e.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:a("signIn.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a("signIn.description")})]}),e.jsx(hc,{onForgotPassword:()=>n(!0)})]})]})]}),e.jsx(pe,{open:s,onOpenChange:n,children:e.jsx(fe,{children:e.jsxs(be,{children:[e.jsx(ge,{children:a("signIn.resetPassword.title")}),e.jsx(Te,{children:a("signIn.resetPassword.description")}),e.jsx("div",{className:"mt-4",children:e.jsxs("div",{className:"relative",children:[e.jsx("pre",{className:"rounded-md bg-secondary p-4 pr-12 text-sm",children:l}),e.jsx(J,{variant:"ghost",size:"icon",className:"absolute right-2 top-2 h-8 w-8 hover:bg-secondary-foreground/10",onClick:()=>St(l).then(()=>{q.success(a("common:copy.success"))}),children:e.jsx(Hl,{className:"h-4 w-4"})})]})})]})})})]})}const Nc=Object.freeze(Object.defineProperty({__proto__:null,default:yc},Symbol.toStringTag,{value:"Module"})),we=m.forwardRef(({className:s,fadedBelow:n=!1,fixedHeight:a=!1,...l},r)=>e.jsx("div",{ref:r,className:_("relative flex h-full w-full flex-col",n&&"after:pointer-events-none after:absolute after:bottom-0 after:left-0 after:hidden after:h-32 after:w-full after:bg-[linear-gradient(180deg,_transparent_10%,_hsl(var(--background))_70%)] after:md:block",a&&"md:h-svh",s),...l}));we.displayName="Layout";const Ce=m.forwardRef(({className:s,...n},a)=>e.jsx("div",{ref:a,className:_("flex h-[var(--header-height)] flex-none items-center gap-4 bg-background p-4 md:px-8",s),...n}));Ce.displayName="LayoutHeader";const Pe=m.forwardRef(({className:s,fixedHeight:n,...a},l)=>e.jsx("div",{ref:l,className:_("flex-1 overflow-hidden px-4 py-6 md:px-8",n&&"h-[calc(100%-var(--header-height))]",s),...a}));Pe.displayName="LayoutBody";const mr=Ul,ur=Bl,xr=Gl,ce=Wl,oe=Yl,ie=Jl,te=m.forwardRef(({className:s,sideOffset:n=4,...a},l)=>e.jsx(mn,{ref:l,sideOffset:n,className:_("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",s),...a}));te.displayName=mn.displayName;function Ft(){const{pathname:s}=na();return{checkActiveNav:a=>{if(a==="/"&&s==="/")return!0;const l=a.replace(/^\//,""),r=s.replace(/^\//,"");return l?r.startsWith(l):!1}}}function hr({key:s,defaultValue:n}){const[a,l]=m.useState(()=>{const r=localStorage.getItem(s);return r!==null?JSON.parse(r):n});return m.useEffect(()=>{localStorage.setItem(s,JSON.stringify(a))},[a,s]),[a,l]}function _c(){const[s,n]=hr({key:"collapsed-sidebar-items",defaultValue:[]}),a=r=>!s.includes(r);return{isExpanded:a,toggleItem:r=>{a(r)?n([...s,r]):n(s.filter(c=>c!==r))}}}function wc({links:s,isCollapsed:n,className:a,closeNav:l}){const{t:r}=I(),c=({sub:i,...u})=>{const x=`${r(u.title)}-${u.href}`;return n&&i?m.createElement(kc,{...u,sub:i,key:x,closeNav:l}):n?m.createElement(Sc,{...u,key:x,closeNav:l}):i?m.createElement(Cc,{...u,sub:i,key:x,closeNav:l}):m.createElement(fr,{...u,key:x,closeNav:l})};return e.jsx("div",{"data-collapsed":n,className:_("group border-b bg-background py-2 transition-[max-height,padding] duration-500 data-[collapsed=true]:py-2 md:border-none",a),children:e.jsx(ce,{delayDuration:0,children:e.jsx("nav",{className:"grid gap-1 group-[[data-collapsed=true]]:justify-center group-[[data-collapsed=true]]:px-2",children:s.map(c)})})})}function fr({title:s,icon:n,label:a,href:l,closeNav:r,subLink:c=!1}){const{checkActiveNav:i}=Ft(),{t:u}=I();return e.jsxs(Vs,{to:l,onClick:r,className:_(Bs({variant:i(l)?"secondary":"ghost",size:"sm"}),"h-12 justify-start text-wrap rounded-none px-6",c&&"h-10 w-full border-l border-l-slate-500 px-2"),"aria-current":i(l)?"page":void 0,children:[e.jsx("div",{className:"mr-2",children:n}),u(s),a&&e.jsx("div",{className:"ml-2 rounded-lg bg-primary px-1 text-[0.625rem] text-primary-foreground",children:u(a)})]})}function Cc({title:s,icon:n,label:a,sub:l,closeNav:r}){const{checkActiveNav:c}=Ft(),{isExpanded:i,toggleItem:u}=_c(),{t:x}=I(),o=!!l?.find(T=>c(T.href)),d=x(s),p=i(d)||o;return e.jsxs(mr,{open:p,onOpenChange:()=>u(d),children:[e.jsxs(ur,{className:_(Bs({variant:o?"secondary":"ghost",size:"sm"}),"group h-12 w-full justify-start rounded-none px-6"),children:[e.jsx("div",{className:"mr-2",children:n}),x(s),a&&e.jsx("div",{className:"ml-2 rounded-lg bg-primary px-1 text-[0.625rem] text-primary-foreground",children:x(a)}),e.jsx("span",{className:_('ml-auto transition-all group-data-[state="open"]:-rotate-180'),children:e.jsx(un,{stroke:1})})]}),e.jsx(xr,{className:"collapsibleDropdown",asChild:!0,children:e.jsx("ul",{children:l.map(T=>e.jsx("li",{className:"my-1 ml-8",children:e.jsx(fr,{...T,subLink:!0,closeNav:r})},x(T.title)))})})]})}function Sc({title:s,icon:n,label:a,href:l,closeNav:r}){const{checkActiveNav:c}=Ft(),{t:i}=I();return e.jsxs(oe,{delayDuration:0,children:[e.jsx(ie,{asChild:!0,children:e.jsxs(Vs,{to:l,onClick:r,className:_(Bs({variant:c(l)?"secondary":"ghost",size:"icon"}),"h-12 w-12"),children:[n,e.jsx("span",{className:"sr-only",children:i(s)})]})}),e.jsxs(te,{side:"right",className:"flex items-center gap-4",children:[i(s),a&&e.jsx("span",{className:"ml-auto text-muted-foreground",children:i(a)})]})]})}function kc({title:s,icon:n,label:a,sub:l,closeNav:r}){const{checkActiveNav:c}=Ft(),{t:i}=I(),u=!!l?.find(x=>c(x.href));return e.jsxs(_s,{children:[e.jsxs(oe,{delayDuration:0,children:[e.jsx(ie,{asChild:!0,children:e.jsx(ws,{asChild:!0,children:e.jsx(V,{variant:u?"secondary":"ghost",size:"icon",className:"h-12 w-12",children:n})})}),e.jsxs(te,{side:"right",className:"flex items-center gap-4",children:[i(s)," ",a&&e.jsx("span",{className:"ml-auto text-muted-foreground",children:i(a)}),e.jsx(un,{size:18,className:"-rotate-90 text-muted-foreground"})]})]}),e.jsxs(ds,{side:"right",align:"start",sideOffset:4,children:[e.jsxs(xa,{children:[i(s)," ",a?`(${i(a)})`:""]}),e.jsx(rt,{}),l.map(({title:x,icon:o,label:d,href:p})=>e.jsx(je,{asChild:!0,children:e.jsxs(Vs,{to:p,onClick:r,className:`${c(p)?"bg-secondary":""}`,children:[o," ",e.jsx("span",{className:"ml-2 max-w-52 text-wrap",children:i(x)}),d&&e.jsx("span",{className:"ml-auto text-xs",children:i(d)})]})},`${i(x)}-${p}`))]})]})}const pr=[{title:"nav:dashboard",label:"",href:"/",icon:e.jsx(Ql,{size:18})},{title:"nav:systemManagement",label:"",href:"",icon:e.jsx(Zl,{size:18}),sub:[{title:"nav:systemConfig",label:"",href:"/config/system",icon:e.jsx(xn,{size:18})},{title:"nav:pluginManagement",label:"",href:"/config/plugin",icon:e.jsx(ia,{size:18})},{title:"nav:themeConfig",label:"",href:"/config/theme",icon:e.jsx(Xl,{size:18})},{title:"nav:noticeManagement",label:"",href:"/config/notice",icon:e.jsx(eo,{size:18})},{title:"nav:paymentConfig",label:"",href:"/config/payment",icon:e.jsx(Ta,{size:18})},{title:"nav:knowledgeManagement",label:"",href:"/config/knowledge",icon:e.jsx(so,{size:18})}]},{title:"nav:nodeManagement",label:"",href:"",icon:e.jsx(hn,{size:18}),sub:[{title:"nav:nodeManagement",label:"",href:"/server/manage",icon:e.jsx(to,{size:18})},{title:"nav:permissionGroupManagement",label:"",href:"/server/group",icon:e.jsx(fn,{size:18})},{title:"nav:routeManagement",label:"",href:"/server/route",icon:e.jsx(ao,{size:18})}]},{title:"nav:subscriptionManagement",label:"",href:"",icon:e.jsx(no,{size:18}),sub:[{title:"nav:planManagement",label:"",href:"/finance/plan",icon:e.jsx(ro,{size:18})},{title:"nav:orderManagement",label:"",href:"/finance/order",icon:e.jsx(Ta,{size:18})},{title:"nav:couponManagement",label:"",href:"/finance/coupon",icon:e.jsx(lo,{size:18})}]},{title:"nav:userManagement",label:"",href:"",icon:e.jsx(oo,{size:18}),sub:[{title:"nav:userManagement",label:"",href:"/user/manage",icon:e.jsx(io,{size:18})},{title:"nav:ticketManagement",label:"",href:"/user/ticket",icon:e.jsx(pn,{size:18})}]}];function Pc({className:s,isCollapsed:n,setIsCollapsed:a}){const[l,r]=m.useState(!1),{t:c}=I();return m.useEffect(()=>{l?document.body.classList.add("overflow-hidden"):document.body.classList.remove("overflow-hidden")},[l]),e.jsxs("aside",{className:_(`fixed left-0 right-0 top-0 z-50 w-full border-r-2 border-r-muted transition-[width] md:bottom-0 md:right-auto md:h-svh ${n?"md:w-14":"md:w-64"}`,s),children:[e.jsx("div",{onClick:()=>r(!1),className:`absolute inset-0 transition-[opacity] delay-100 duration-700 ${l?"h-svh opacity-50":"h-0 opacity-0"} w-full bg-black md:hidden`}),e.jsxs(we,{children:[e.jsxs(Ce,{className:"sticky top-0 justify-between px-4 py-3 shadow md:px-4",children:[e.jsxs("div",{className:`flex items-center ${n?"":"gap-2"}`,children:[e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",className:`transition-all ${n?"h-6 w-6":"h-8 w-8"}`,children:[e.jsx("rect",{width:"256",height:"256",fill:"none"}),e.jsx("line",{x1:"208",y1:"128",x2:"128",y2:"208",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"16"}),e.jsx("line",{x1:"192",y1:"40",x2:"40",y2:"192",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"16"}),e.jsx("span",{className:"sr-only",children:"Website Name"})]}),e.jsx("div",{className:`flex flex-col justify-end truncate ${n?"invisible w-0":"visible w-auto"}`,children:e.jsx("span",{className:"font-medium",children:window?.settings?.title})})]}),e.jsx(V,{variant:"ghost",size:"icon",className:"md:hidden","aria-label":c("common:toggleNavigation"),"aria-controls":"sidebar-menu","aria-expanded":l,onClick:()=>r(i=>!i),children:l?e.jsx(co,{}):e.jsx(mo,{})})]}),e.jsx(wc,{id:"sidebar-menu",className:`h-full flex-1 overflow-auto ${l?"max-h-screen":"max-h-0 py-0 md:max-h-screen md:py-2"}`,closeNav:()=>r(!1),isCollapsed:n,links:pr}),e.jsx("div",{className:_("px-4 py-3 text-xs text-muted-foreground/70 border-t border-border/50 bg-muted/20","transition-all duration-200 ease-in-out",n?"text-center":"text-left"),children:e.jsxs("div",{className:_("flex items-center gap-1.5",n?"justify-center":"justify-start"),children:[e.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-green-500/70"}),e.jsxs("span",{className:"tracking-wide",children:["v",window?.settings?.version]})]})}),e.jsx(V,{onClick:()=>a(i=>!i),size:"icon",variant:"outline",className:"absolute -right-5 top-1/2 hidden rounded-full md:inline-flex","aria-label":c("common:toggleSidebar"),children:e.jsx(uo,{stroke:1.5,className:`h-5 w-5 ${n?"rotate-180":""}`})})]})]})}function Tc(){const[s,n]=hr({key:"collapsed-sidebar",defaultValue:!1});return m.useEffect(()=>{const a=()=>{n(window.innerWidth<768?!1:s)};return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}},[s,n]),[s,n]}function Dc(){const[s,n]=Tc();return e.jsxs("div",{className:"relative h-full overflow-hidden bg-background",children:[e.jsx(Pc,{isCollapsed:s,setIsCollapsed:n}),e.jsx("main",{id:"content",className:`overflow-x-hidden pt-16 transition-[margin] md:overflow-y-hidden md:pt-0 ${s?"md:ml-14":"md:ml-64"} h-full`,children:e.jsx(ra,{})})]})}const Ec=Object.freeze(Object.defineProperty({__proto__:null,default:Dc},Symbol.toStringTag,{value:"Module"})),Cs=m.forwardRef(({className:s,...n},a)=>e.jsx(De,{ref:a,className:_("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",s),...n}));Cs.displayName=De.displayName;const Rc=({children:s,...n})=>e.jsx(pe,{...n,children:e.jsx(fe,{className:"overflow-hidden p-0",children:e.jsx(Cs,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:s})})}),Fs=m.forwardRef(({className:s,...n},a)=>e.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[e.jsx(xo,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),e.jsx(De.Input,{ref:a,className:_("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",s),...n})]}));Fs.displayName=De.Input.displayName;const Ss=m.forwardRef(({className:s,...n},a)=>e.jsx(De.List,{ref:a,className:_("max-h-[300px] overflow-y-auto overflow-x-hidden",s),...n}));Ss.displayName=De.List.displayName;const Ms=m.forwardRef((s,n)=>e.jsx(De.Empty,{ref:n,className:"py-6 text-center text-sm",...s}));Ms.displayName=De.Empty.displayName;const Oe=m.forwardRef(({className:s,...n},a)=>e.jsx(De.Group,{ref:a,className:_("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",s),...n}));Oe.displayName=De.Group.displayName;const Gs=m.forwardRef(({className:s,...n},a)=>e.jsx(De.Separator,{ref:a,className:_("-mx-1 h-px bg-border",s),...n}));Gs.displayName=De.Separator.displayName;const ke=m.forwardRef(({className:s,...n},a)=>e.jsx(De.Item,{ref:a,className:_("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...n}));ke.displayName=De.Item.displayName;function Vc(){const s=[];for(const n of pr)if(n.href&&s.push(n),n.sub)for(const a of n.sub)s.push({...a,parent:n.title});return s}function Ie(){const[s,n]=m.useState(!1),a=ms(),l=Vc(),{t:r}=I("search"),{t:c}=I("nav");m.useEffect(()=>{const u=x=>{x.key==="k"&&(x.metaKey||x.ctrlKey)&&(x.preventDefault(),n(o=>!o))};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[]);const i=m.useCallback(u=>{n(!1),a(u)},[a]);return e.jsxs(e.Fragment,{children:[e.jsxs(J,{variant:"outline",className:"relative h-9 w-9 p-0 xl:h-10 xl:w-60 xl:justify-start xl:px-3 xl:py-2",onClick:()=>n(!0),children:[e.jsx(gn,{className:"h-4 w-4 xl:mr-2"}),e.jsx("span",{className:"hidden xl:inline-flex",children:r("placeholder")}),e.jsx("span",{className:"sr-only",children:r("shortcut.label")}),e.jsx("kbd",{className:"pointer-events-none absolute right-1.5 top-2 hidden h-6 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 xl:flex",children:r("shortcut.key")})]}),e.jsxs(Rc,{open:s,onOpenChange:n,children:[e.jsx(Fs,{placeholder:r("placeholder")}),e.jsxs(Ss,{children:[e.jsx(Ms,{children:r("noResults")}),e.jsx(Oe,{heading:r("title"),children:l.map(u=>e.jsxs(ke,{value:`${u.parent?u.parent+" ":""}${u.title}`,onSelect:()=>i(u.href),children:[e.jsx("div",{className:"mr-2",children:u.icon}),e.jsx("span",{children:c(u.title)}),u.parent&&e.jsx("span",{className:"ml-2 text-xs text-muted-foreground",children:c(u.parent)})]},u.href))})]})]})]})}function Ee(){const{theme:s,setTheme:n}=Li();return m.useEffect(()=>{const a=s==="dark"?"#020817":"#fff",l=document.querySelector("meta[name='theme-color']");l&&l.setAttribute("content",a)},[s]),e.jsxs(e.Fragment,{children:[e.jsx(V,{size:"icon",variant:"ghost",className:"rounded-full",onClick:()=>n(s==="light"?"dark":"light"),children:s==="light"?e.jsx(ho,{size:20}):e.jsx(fo,{size:20})}),e.jsx(dr,{})]})}const gr=m.forwardRef(({className:s,...n},a)=>e.jsx(jn,{ref:a,className:_("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",s),...n}));gr.displayName=jn.displayName;const jr=m.forwardRef(({className:s,...n},a)=>e.jsx(vn,{ref:a,className:_("aspect-square h-full w-full",s),...n}));jr.displayName=vn.displayName;const vr=m.forwardRef(({className:s,...n},a)=>e.jsx(bn,{ref:a,className:_("flex h-full w-full items-center justify-center rounded-full bg-muted",s),...n}));vr.displayName=bn.displayName;function Re(){const s=ms(),n=Qa(),a=po(rc),{t:l}=I(["common"]),r=()=>{tr(),n(nc()),s("/sign-in")},c=a?.email?.split("@")[0]||l("common:user"),i=c.substring(0,2).toUpperCase();return e.jsxs(_s,{children:[e.jsx(ws,{asChild:!0,children:e.jsx(V,{variant:"ghost",className:"relative h-8 w-8 rounded-full",children:e.jsxs(gr,{className:"h-8 w-8",children:[e.jsx(jr,{src:a?.avatar_url,alt:c}),e.jsx(vr,{children:i})]})})}),e.jsxs(ds,{className:"w-56",align:"end",forceMount:!0,children:[e.jsx(xa,{className:"font-normal",children:e.jsxs("div",{className:"flex flex-col space-y-1",children:[e.jsx("p",{className:"text-sm font-medium leading-none",children:c}),e.jsx("p",{className:"text-xs leading-none text-muted-foreground",children:a?.email||l("common:defaultEmail")})]})}),e.jsx(rt,{}),e.jsx(je,{asChild:!0,children:e.jsxs(Vs,{to:"/config/system",children:[l("common:settings"),e.jsx(ea,{children:"⌘S"})]})}),e.jsx(rt,{}),e.jsxs(je,{onClick:r,children:[l("common:logout"),e.jsx(ea,{children:"⇧⌘Q"})]})]})]})}const A=window?.settings?.secure_path,Ic=s=>F.get(A+"/stat/getOrder",{params:s}),Fc=()=>F.get(A+"/stat/getStats"),La=s=>F.get(A+"/stat/getTrafficRank",{params:s}),Mc=()=>F.get(A+"/theme/getThemes"),Oc=s=>F.post(A+"/theme/getThemeConfig",{name:s}),zc=(s,n)=>F.post(A+"/theme/saveThemeConfig",{name:s,config:n}),Lc=s=>{const n=new FormData;return n.append("file",s),F.post(A+"/theme/upload",n,{headers:{"Content-Type":"multipart/form-data"}})},Ac=s=>F.post(A+"/theme/delete",{name:s}),$c=s=>F.post(A+"/config/save",s),br=()=>F.get(A+"/server/manage/getNodes"),qc=s=>F.post(A+"/server/manage/save",s),Kc=s=>F.post(A+"/server/manage/drop",s),Hc=s=>F.post(A+"/server/manage/copy",s),Uc=s=>F.post(A+"/server/manage/update",s),Bc=s=>F.post(A+"/server/manage/sort",s),Mt=()=>F.get(A+"/server/group/fetch"),Gc=s=>F.post(A+"/server/group/save",s),Wc=s=>F.post(A+"/server/group/drop",s),yr=()=>F.get(A+"/server/route/fetch"),Yc=s=>F.post(A+"/server/route/save",s),Jc=s=>F.post(A+"/server/route/drop",s),Qc=()=>F.get(A+"/payment/fetch"),Zc=()=>F.get(A+"/payment/getPaymentMethods"),Xc=s=>F.post(A+"/payment/getPaymentForm",s),ed=s=>F.post(A+"/payment/save",s),sd=s=>F.post(A+"/payment/drop",s),td=s=>F.post(A+"/payment/show",s),ad=s=>F.post(A+"/payment/sort",s),nd=s=>F.post(A+"/notice/save",s),rd=s=>F.post(A+"/notice/drop",s),ld=s=>F.post(A+"/notice/show",s),od=()=>F.get(A+"/knowledge/fetch"),id=s=>F.get(A+"/knowledge/fetch?id="+s),cd=s=>F.post(A+"/knowledge/save",s),dd=s=>F.post(A+"/knowledge/drop",s),md=s=>F.post(A+"/knowledge/show",s),ud=s=>F.post(A+"/knowledge/sort",s),Os=()=>F.get(A+"/plan/fetch"),xd=s=>F.post(A+"/plan/save",s),qt=s=>F.post(A+"/plan/update",s),hd=s=>F.post(A+"/plan/drop",s),fd=s=>F.post(A+"/plan/sort",{ids:s}),pd=async s=>F.post(A+"/order/fetch",s),gd=s=>F.post(A+"/order/detail",s),jd=s=>F.post(A+"/order/paid",s),vd=s=>F.post(A+"/order/cancel",s),Aa=s=>F.post(A+"/order/update",s),bd=s=>F.post(A+"/order/assign",s),yd=s=>F.post(A+"/coupon/fetch",s),Nd=s=>F.post(A+"/coupon/generate",s),_d=s=>F.post(A+"/coupon/drop",s),wd=s=>F.post(A+"/coupon/update",s),Cd=s=>F.post(A+"/user/fetch",s),Sd=s=>F.post(A+"/user/update",s),kd=s=>F.post(A+"/user/resetSecret",s),Pd=s=>F.post(A+"/user/generate",s),Td=s=>F.post(A+"/stat/getStatUser",s),Dd=s=>F.post(A+"/ticket/fetch",s),Ed=s=>F.get(A+"/ticket/fetch?id= "+s),Rd=s=>F.post(A+"/ticket/reply",s),Nr=s=>F.post(A+"/ticket/close",{id:s}),hs=(s="")=>F.get(A+"/config/fetch?key="+s),fs=s=>F.post(A+"/config/save",s),Vd=()=>F.get(A+"/config/getEmailTemplate"),Id=()=>F.post(A+"/config/testSendMail"),Fd=()=>F.post(A+"/config/setTelegramWebhook"),ha=go,Ot=m.forwardRef(({className:s,...n},a)=>e.jsx(yn,{ref:a,className:_("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",s),...n}));Ot.displayName=yn.displayName;const Ns=m.forwardRef(({className:s,...n},a)=>e.jsx(Nn,{ref:a,className:_("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",s),...n}));Ns.displayName=Nn.displayName;const bt=m.forwardRef(({className:s,...n},a)=>e.jsx(_n,{ref:a,className:_("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",s),...n}));bt.displayName=_n.displayName;const G=jo,js=So,W=vo,U=m.forwardRef(({className:s,children:n,...a},l)=>e.jsxs(wn,{ref:l,className:_("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",s),...a,children:[n,e.jsx(bo,{asChild:!0,children:e.jsx(ca,{className:"h-4 w-4 opacity-50"})})]}));U.displayName=wn.displayName;const _r=m.forwardRef(({className:s,...n},a)=>e.jsx(Cn,{ref:a,className:_("flex cursor-default items-center justify-center py-1",s),...n,children:e.jsx(yo,{className:"h-4 w-4"})}));_r.displayName=Cn.displayName;const wr=m.forwardRef(({className:s,...n},a)=>e.jsx(Sn,{ref:a,className:_("flex cursor-default items-center justify-center py-1",s),...n,children:e.jsx(ca,{className:"h-4 w-4"})}));wr.displayName=Sn.displayName;const B=m.forwardRef(({className:s,children:n,position:a="popper",...l},r)=>e.jsx(No,{children:e.jsxs(kn,{ref:r,className:_("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",s),position:a,...l,children:[e.jsx(_r,{}),e.jsx(_o,{className:_("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:n}),e.jsx(wr,{})]})}));B.displayName=kn.displayName;const Md=m.forwardRef(({className:s,...n},a)=>e.jsx(Pn,{ref:a,className:_("px-2 py-1.5 text-sm font-semibold",s),...n}));Md.displayName=Pn.displayName;const L=m.forwardRef(({className:s,children:n,...a},l)=>e.jsxs(Tn,{ref:l,className:_("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...a,children:[e.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(wo,{children:e.jsx(Rs,{className:"h-4 w-4"})})}),e.jsx(Co,{children:n})]}));L.displayName=Tn.displayName;const Od=m.forwardRef(({className:s,...n},a)=>e.jsx(Dn,{ref:a,className:_("-mx-1 my-1 h-px bg-muted",s),...n}));Od.displayName=Dn.displayName;function zs({className:s,classNames:n,showOutsideDays:a=!0,...l}){return e.jsx(ko,{showOutsideDays:a,className:_("p-3",s),classNames:{months:"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",month:"space-y-4",caption:"flex justify-center pt-1 relative items-center",caption_label:"text-sm font-medium",nav:"space-x-1 flex items-center",nav_button:_(Us({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-y-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:_("relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md",l.mode==="range"?"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md":"[&:has([aria-selected])]:rounded-md"),day:_(Us({variant:"ghost"}),"h-8 w-8 p-0 font-normal aria-selected:opacity-100"),day_range_start:"day-range-start",day_range_end:"day-range-end",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...n},components:{IconLeft:({className:r,...c})=>e.jsx(En,{className:_("h-4 w-4",r),...c}),IconRight:({className:r,...c})=>e.jsx(oa,{className:_("h-4 w-4",r),...c})},...l})}zs.displayName="Calendar";const rs=To,ls=Do,Xe=m.forwardRef(({className:s,align:n="center",sideOffset:a=4,...l},r)=>e.jsx(Po,{children:e.jsx(Rn,{ref:r,align:n,sideOffset:a,className:_("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",s),...l})}));Xe.displayName=Rn.displayName;const vs={income:{main:"hsl(var(--primary))",gradient:{start:"hsl(var(--primary))",end:"transparent"}},commission:{main:"hsl(var(--secondary))",gradient:{start:"hsl(var(--secondary))",end:"transparent"}}},et=s=>(s/100).toFixed(2),zd=({active:s,payload:n,label:a})=>{const{t:l}=I();return s&&n&&n.length?e.jsxs("div",{className:"rounded-lg border bg-background p-3 shadow-sm",children:[e.jsx("div",{className:"mb-2 text-sm font-medium",children:a}),n.map((r,c)=>e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx("div",{className:"h-2 w-2 rounded-full",style:{backgroundColor:r.color}}),e.jsxs("span",{className:"text-muted-foreground",children:[l(r.name),":"]}),e.jsx("span",{className:"font-medium",children:r.name.includes(l("dashboard:overview.amount"))?`¥${et(r.value)}`:l("dashboard:overview.transactions",{count:r.value})})]},c))]}):null},Ld=[{value:"7d",label:"dashboard:overview.last7Days"},{value:"30d",label:"dashboard:overview.last30Days"},{value:"90d",label:"dashboard:overview.last90Days"},{value:"180d",label:"dashboard:overview.last180Days"},{value:"365d",label:"dashboard:overview.lastYear"},{value:"custom",label:"dashboard:overview.customRange"}],Ad=(s,n)=>{const a=new Date;if(s==="custom"&&n)return{startDate:n.from,endDate:n.to};let l;switch(s){case"7d":l=We(a,7);break;case"30d":l=We(a,30);break;case"90d":l=We(a,90);break;case"180d":l=We(a,180);break;case"365d":l=We(a,365);break;default:l=We(a,30)}return{startDate:l,endDate:a}};function $d(){const[s,n]=m.useState("amount"),[a,l]=m.useState("30d"),[r,c]=m.useState({from:We(new Date,7),to:new Date}),{t:i}=I(),{startDate:u,endDate:x}=Ad(a,r),{data:o}=se({queryKey:["orderStat",{start_date:Ge(u,"yyyy-MM-dd"),end_date:Ge(x,"yyyy-MM-dd")}],queryFn:async()=>{const{data:d}=await Ic({start_date:Ge(u,"yyyy-MM-dd"),end_date:Ge(x,"yyyy-MM-dd")});return d},refetchInterval:3e4});return e.jsxs(Me,{children:[e.jsx($e,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(cs,{children:i("dashboard:overview.title")}),e.jsxs(Hs,{children:[o?.summary.start_date," ",i("dashboard:overview.to")," ",o?.summary.end_date]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-1",children:[e.jsxs(G,{value:a,onValueChange:d=>l(d),children:[e.jsx(U,{className:"w-[120px]",children:e.jsx(W,{placeholder:i("dashboard:overview.selectTimeRange")})}),e.jsx(B,{children:Ld.map(d=>e.jsx(L,{value:d.value,children:i(d.label)},d.value))})]}),a==="custom"&&e.jsxs(rs,{children:[e.jsx(ls,{asChild:!0,children:e.jsxs(J,{variant:"outline",className:_("min-w-0 justify-start text-left font-normal",!r&&"text-muted-foreground"),children:[e.jsx(ct,{className:"mr-2 h-4 w-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:r?.from?r.to?e.jsxs(e.Fragment,{children:[Ge(r.from,"yyyy-MM-dd")," -"," ",Ge(r.to,"yyyy-MM-dd")]}):Ge(r.from,"yyyy-MM-dd"):i("dashboard:overview.selectDate")})]})}),e.jsx(Xe,{className:"w-auto p-0",align:"end",children:e.jsx(zs,{mode:"range",defaultMonth:r?.from,selected:{from:r?.from,to:r?.to},onSelect:d=>{d?.from&&d?.to&&c({from:d.from,to:d.to})},numberOfMonths:2})})]})]}),e.jsx(ha,{value:s,onValueChange:d=>n(d),children:e.jsxs(Ot,{children:[e.jsx(Ns,{value:"amount",children:i("dashboard:overview.amount")}),e.jsx(Ns,{value:"count",children:i("dashboard:overview.count")})]})})]})]})}),e.jsxs(qe,{children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:i("dashboard:overview.totalIncome")}),e.jsxs("div",{className:"text-2xl font-bold",children:["¥",et(o?.summary?.paid_total||0)]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:i("dashboard:overview.totalTransactions",{count:o?.summary?.paid_count||0})}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[i("dashboard:overview.avgOrderAmount")," ¥",et(o?.summary?.avg_paid_amount||0)]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:i("dashboard:overview.totalCommission")}),e.jsxs("div",{className:"text-2xl font-bold",children:["¥",et(o?.summary?.commission_total||0)]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:i("dashboard:overview.totalTransactions",{count:o?.summary?.commission_count||0})}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[i("dashboard:overview.commissionRate")," ",o?.summary?.commission_rate.toFixed(2)||0,"%"]})]})]}),e.jsx("div",{className:"h-[400px] w-full",children:e.jsx(Eo,{width:"100%",height:"100%",children:e.jsxs(Ro,{data:o?.list||[],margin:{top:20,right:20,left:0,bottom:0},children:[e.jsxs("defs",{children:[e.jsxs("linearGradient",{id:"incomeGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:vs.income.gradient.start,stopOpacity:.2}),e.jsx("stop",{offset:"100%",stopColor:vs.income.gradient.end,stopOpacity:.1})]}),e.jsxs("linearGradient",{id:"commissionGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:vs.commission.gradient.start,stopOpacity:.2}),e.jsx("stop",{offset:"100%",stopColor:vs.commission.gradient.end,stopOpacity:.1})]})]}),e.jsx(Vo,{dataKey:"date",axisLine:!1,tickLine:!1,tick:{fill:"hsl(var(--muted-foreground))",fontSize:12},tickFormatter:d=>Ge(new Date(d),"MM-dd",{locale:Oo})}),e.jsx(Io,{axisLine:!1,tickLine:!1,tick:{fill:"hsl(var(--muted-foreground))",fontSize:12},tickFormatter:d=>s==="amount"?`¥${et(d)}`:i("dashboard:overview.transactions",{count:d})}),e.jsx(Fo,{strokeDasharray:"3 3",vertical:!1,stroke:"hsl(var(--border))",opacity:.3}),e.jsx(Mo,{content:e.jsx(zd,{})}),s==="amount"?e.jsxs(e.Fragment,{children:[e.jsx(Da,{type:"monotone",dataKey:"paid_total",name:i("dashboard:overview.orderAmount"),stroke:vs.income.main,fill:"url(#incomeGradient)",strokeWidth:2}),e.jsx(Da,{type:"monotone",dataKey:"commission_total",name:i("dashboard:overview.commissionAmount"),stroke:vs.commission.main,fill:"url(#commissionGradient)",strokeWidth:2})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ea,{dataKey:"paid_count",name:i("dashboard:overview.orderCount"),fill:vs.income.main,radius:[4,4,0,0],maxBarSize:40}),e.jsx(Ea,{dataKey:"commission_count",name:i("dashboard:overview.commissionCount"),fill:vs.commission.main,radius:[4,4,0,0],maxBarSize:40})]})]})})})]})]})}function le({className:s,...n}){return e.jsx("div",{className:_("animate-pulse rounded-md bg-primary/10",s),...n})}function qd(){return e.jsxs(Me,{children:[e.jsxs($e,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(le,{className:"h-4 w-[120px]"}),e.jsx(le,{className:"h-4 w-4"})]}),e.jsxs(qe,{children:[e.jsx(le,{className:"h-8 w-[140px] mb-2"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(le,{className:"h-4 w-4"}),e.jsx(le,{className:"h-4 w-[100px]"})]})]})]})}function Kd(){return e.jsx("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-4",children:Array.from({length:8}).map((s,n)=>e.jsx(qd,{},n))})}var Z=(s=>(s[s.PENDING=0]="PENDING",s[s.PROCESSING=1]="PROCESSING",s[s.CANCELLED=2]="CANCELLED",s[s.COMPLETED=3]="COMPLETED",s[s.DISCOUNTED=4]="DISCOUNTED",s))(Z||{});const Zs={0:"待支付",1:"开通中",2:"已取消",3:"已完成",4:"已折抵"},Xs={0:"yellow-500",1:"blue-500",2:"red-500",3:"green-500",4:"green-500"};var Ye=(s=>(s[s.NEW=1]="NEW",s[s.RENEWAL=2]="RENEWAL",s[s.UPGRADE=3]="UPGRADE",s[s.RESET_FLOW=4]="RESET_FLOW",s))(Ye||{}),re=(s=>(s[s.PENDING=0]="PENDING",s[s.PROCESSING=1]="PROCESSING",s[s.VALID=2]="VALID",s[s.INVALID=3]="INVALID",s))(re||{});const xt={0:"待确认",1:"发放中",2:"有效",3:"无效"},ht={0:"yellow-500",1:"blue-500",2:"green-500",3:"red-500"};var xe=(s=>(s.MONTH_PRICE="month_price",s.QUARTER_PRICE="quarter_price",s.HALF_YEAR_PRICE="half_year_price",s.YEAR_PRICE="year_price",s.TWO_YEAR_PRICE="two_year_price",s.THREE_YEAR_PRICE="three_year_price",s.ONETIME_PRICE="onetime_price",s.RESET_PRICE="reset_price",s))(xe||{});const Hd={month_price:"月付",quarter_price:"季付",half_year_price:"半年付",year_price:"年付",two_year_price:"两年付",three_year_price:"三年付",onetime_price:"一次性",reset_price:"流量重置包"};var Ne=(s=>(s.Shadowsocks="shadowsocks",s.Vmess="vmess",s.Trojan="trojan",s.Hysteria="hysteria",s.Vless="vless",s))(Ne||{});const Ts=[{type:"shadowsocks",label:"Shadowsocks"},{type:"vmess",label:"VMess"},{type:"trojan",label:"Trojan"},{type:"hysteria",label:"Hysteria"},{type:"vless",label:"VLess"}],is={shadowsocks:"#489851",vmess:"#CB3180",trojan:"#EBB749",hysteria:"#5684e6",vless:"#1a1a1a"};var Fe=(s=>(s[s.AMOUNT=1]="AMOUNT",s[s.PERCENTAGE=2]="PERCENTAGE",s))(Fe||{});const Ud={1:"按金额优惠",2:"按比例优惠"};var at=(s=>(s[s.OPENING=0]="OPENING",s[s.CLOSED=1]="CLOSED",s))(at||{}),ts=(s=>(s[s.LOW=0]="LOW",s[s.MIDDLE=1]="MIDDLE",s[s.HIGH=2]="HIGH",s))(ts||{});function bs({title:s,value:n,icon:a,trend:l,description:r,onClick:c,highlight:i,className:u}){return e.jsxs(Me,{className:_("transition-colors",c&&"cursor-pointer hover:bg-muted/50",i&&"border-primary/50",u),onClick:c,children:[e.jsxs($e,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(cs,{className:"text-sm font-medium",children:s}),a]}),e.jsxs(qe,{children:[e.jsx("div",{className:"text-2xl font-bold",children:n}),l?e.jsxs("div",{className:"flex items-center pt-1",children:[e.jsx(Ko,{className:_("h-4 w-4",l.isPositive?"text-emerald-500":"text-red-500")}),e.jsxs("span",{className:_("ml-1 text-xs",l.isPositive?"text-emerald-500":"text-red-500"),children:[l.isPositive?"+":"-",Math.abs(l.value),"%"]}),e.jsx("span",{className:"ml-1 text-xs text-muted-foreground",children:l.label})]}):e.jsx("p",{className:"text-xs text-muted-foreground",children:r})]})]})}function Bd({className:s}){const n=ms(),{t:a}=I(),{data:l,isLoading:r}=se({queryKey:["dashboardStats"],queryFn:async()=>(await Fc()).data,refetchInterval:1e3*60*5});if(r||!l)return e.jsx(Kd,{});const c=()=>{const i=new URLSearchParams;i.set("commission_status",re.PENDING.toString()),i.set("status",Z.COMPLETED.toString()),i.set("commission_balance","gt:0"),n(`/finance/order?${i.toString()}`)};return e.jsxs("div",{className:_("grid gap-4 md:grid-cols-2 lg:grid-cols-4",s),children:[e.jsx(bs,{title:a("dashboard:stats.todayIncome"),value:Ps(l.todayIncome),icon:e.jsx(zo,{className:"h-4 w-4 text-emerald-500"}),trend:{value:l.dayIncomeGrowth,label:a("dashboard:stats.vsYesterday"),isPositive:l.dayIncomeGrowth>0}}),e.jsx(bs,{title:a("dashboard:stats.monthlyIncome"),value:Ps(l.currentMonthIncome),icon:e.jsx(Lo,{className:"h-4 w-4 text-blue-500"}),trend:{value:l.monthIncomeGrowth,label:a("dashboard:stats.vsLastMonth"),isPositive:l.monthIncomeGrowth>0}}),e.jsx(bs,{title:a("dashboard:stats.pendingTickets"),value:l.ticketPendingTotal,icon:e.jsx(Ao,{className:_("h-4 w-4",l.ticketPendingTotal>0?"text-orange-500":"text-muted-foreground")}),description:l.ticketPendingTotal>0?a("dashboard:stats.hasPendingTickets"):a("dashboard:stats.noPendingTickets"),onClick:()=>n("/user/ticket"),highlight:l.ticketPendingTotal>0}),e.jsx(bs,{title:a("dashboard:stats.pendingCommission"),value:l.commissionPendingTotal,icon:e.jsx($o,{className:_("h-4 w-4",l.commissionPendingTotal>0?"text-blue-500":"text-muted-foreground")}),description:l.commissionPendingTotal>0?a("dashboard:stats.hasPendingCommission"):a("dashboard:stats.noPendingCommission"),onClick:c,highlight:l.commissionPendingTotal>0}),e.jsx(bs,{title:a("dashboard:stats.monthlyNewUsers"),value:l.currentMonthNewUsers,icon:e.jsx(Wt,{className:"h-4 w-4 text-blue-500"}),trend:{value:l.userGrowth,label:a("dashboard:stats.vsLastMonth"),isPositive:l.userGrowth>0}}),e.jsx(bs,{title:a("dashboard:stats.totalUsers"),value:l.totalUsers,icon:e.jsx(Wt,{className:"h-4 w-4 text-muted-foreground"}),description:a("dashboard:stats.activeUsers",{count:l.activeUsers})}),e.jsx(bs,{title:a("dashboard:stats.monthlyUpload"),value:ss(l.monthTraffic.upload),icon:e.jsx(Yt,{className:"h-4 w-4 text-emerald-500"}),description:a("dashboard:stats.todayTraffic",{value:ss(l.todayTraffic.upload)})}),e.jsx(bs,{title:a("dashboard:stats.monthlyDownload"),value:ss(l.monthTraffic.download),icon:e.jsx(qo,{className:"h-4 w-4 text-blue-500"}),description:a("dashboard:stats.todayTraffic",{value:ss(l.todayTraffic.download)})})]})}const lt=m.forwardRef(({className:s,children:n,...a},l)=>e.jsxs(Vn,{ref:l,className:_("relative overflow-hidden",s),...a,children:[e.jsx(Ho,{className:"h-full w-full rounded-[inherit]",children:n}),e.jsx(kt,{}),e.jsx(Uo,{})]}));lt.displayName=Vn.displayName;const kt=m.forwardRef(({className:s,orientation:n="vertical",...a},l)=>e.jsx(In,{ref:l,orientation:n,className:_("flex touch-none select-none transition-colors",n==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",n==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",s),...a,children:e.jsx(Bo,{className:"relative flex-1 rounded-full bg-border"})}));kt.displayName=In.displayName;const sa={today:{getValue:()=>{const s=Wo();return{start:s,end:Yo(s,1)}}},last7days:{getValue:()=>{const s=new Date;return{start:We(s,7),end:s}}},last30days:{getValue:()=>{const s=new Date;return{start:We(s,30),end:s}}},custom:{getValue:()=>null}};function $a({selectedRange:s,customDateRange:n,onRangeChange:a,onCustomRangeChange:l}){const{t:r}=I(),c={today:r("dashboard:trafficRank.today"),last7days:r("dashboard:trafficRank.last7days"),last30days:r("dashboard:trafficRank.last30days"),custom:r("dashboard:trafficRank.customRange")};return e.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-1",children:[e.jsxs(G,{value:s,onValueChange:a,children:[e.jsx(U,{className:"w-[120px]",children:e.jsx(W,{placeholder:r("dashboard:trafficRank.selectTimeRange")})}),e.jsx(B,{position:"popper",className:"z-50",children:Object.entries(sa).map(([i])=>e.jsx(L,{value:i,children:c[i]},i))})]}),s==="custom"&&e.jsxs(rs,{children:[e.jsx(ls,{asChild:!0,children:e.jsxs(J,{variant:"outline",className:_("min-w-0 justify-start text-left font-normal",!n&&"text-muted-foreground"),children:[e.jsx(ct,{className:"mr-2 h-4 w-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:n?.from?n.to?e.jsxs(e.Fragment,{children:[Ge(n.from,"yyyy-MM-dd")," -"," ",Ge(n.to,"yyyy-MM-dd")]}):Ge(n.from,"yyyy-MM-dd"):e.jsx("span",{children:r("dashboard:trafficRank.selectDateRange")})})]})}),e.jsx(Xe,{className:"w-auto p-0",align:"end",children:e.jsx(zs,{mode:"range",defaultMonth:n?.from,selected:{from:n?.from,to:n?.to},onSelect:i=>{i?.from&&i?.to&&l({from:i.from,to:i.to})},numberOfMonths:2})})]})]})}const As=s=>`${(s/1024/1024/1024).toFixed(2)} GB`;function Gd({className:s}){const{t:n}=I(),[a,l]=m.useState("today"),[r,c]=m.useState({from:We(new Date,7),to:new Date}),[i,u]=m.useState("today"),[x,o]=m.useState({from:We(new Date,7),to:new Date}),d=m.useMemo(()=>a==="custom"?{start:r.from,end:r.to}:sa[a].getValue(),[a,r]),p=m.useMemo(()=>i==="custom"?{start:x.from,end:x.to}:sa[i].getValue(),[i,x]),{data:T}=se({queryKey:["nodeTrafficRank",d.start,d.end],queryFn:()=>La({type:"node",start_time:ve.round(d.start.getTime()/1e3),end_time:ve.round(d.end.getTime()/1e3)}),refetchInterval:3e4}),{data:R}=se({queryKey:["userTrafficRank",p.start,p.end],queryFn:()=>La({type:"user",start_time:ve.round(p.start.getTime()/1e3),end_time:ve.round(p.end.getTime()/1e3)}),refetchInterval:3e4});return e.jsxs("div",{className:_("grid gap-4 md:grid-cols-2",s),children:[e.jsxs(Me,{children:[e.jsx($e,{className:"flex-none pb-2",children:e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs(cs,{className:"flex items-center text-base font-medium",children:[e.jsx(Go,{className:"mr-2 h-4 w-4"}),n("dashboard:trafficRank.nodeTrafficRank")]}),e.jsxs("div",{className:"flex min-w-0 items-center gap-1",children:[e.jsx($a,{selectedRange:a,customDateRange:r,onRangeChange:l,onCustomRangeChange:c}),e.jsx(Ra,{className:"h-4 w-4 flex-shrink-0 text-muted-foreground"})]})]})}),e.jsx(qe,{className:"flex-1",children:T?.data?e.jsxs(lt,{className:"h-[400px] pr-4",children:[e.jsx("div",{className:"space-y-3",children:T.data.map(f=>e.jsx(ce,{delayDuration:200,children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx("div",{className:"flex cursor-pointer items-center justify-between space-x-2 rounded-lg bg-muted/50 p-2 transition-colors hover:bg-muted/70",children:e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"truncate text-sm font-medium",children:f.name}),e.jsxs("span",{className:_("ml-2 flex items-center text-xs font-medium",f.change>=0?"text-green-600":"text-red-600"),children:[f.change>=0?e.jsx(Jt,{className:"mr-1 h-3 w-3"}):e.jsx(Qt,{className:"mr-1 h-3 w-3"}),Math.abs(f.change),"%"]})]}),e.jsxs("div",{className:"mt-1 flex items-center gap-2",children:[e.jsx("div",{className:"h-2 flex-1 overflow-hidden rounded-full bg-muted",children:e.jsx("div",{className:"h-full bg-primary transition-all",style:{width:`${f.value/T.data[0].value*100}%`}})}),e.jsx("span",{className:"text-xs text-muted-foreground",children:As(f.value)})]})]})})}),e.jsx(te,{side:"right",className:"space-y-2 p-4",children:e.jsxs("div",{className:"grid grid-cols-2 gap-x-4 gap-y-2 text-sm",children:[e.jsxs("span",{className:"text-muted-foreground",children:[n("dashboard:trafficRank.currentTraffic"),":"]}),e.jsx("span",{className:"font-medium",children:As(f.value)}),e.jsxs("span",{className:"text-muted-foreground",children:[n("dashboard:trafficRank.previousTraffic"),":"]}),e.jsx("span",{className:"font-medium",children:As(f.previousValue)}),e.jsxs("span",{className:"text-muted-foreground",children:[n("dashboard:trafficRank.changeRate"),":"]}),e.jsxs("span",{className:_("font-medium",f.change>=0?"text-green-600":"text-red-600"),children:[f.change>=0?"+":"",f.change,"%"]})]})})]})},f.id))}),e.jsx(kt,{orientation:"vertical"})]}):e.jsx("div",{className:"flex h-[400px] items-center justify-center",children:e.jsx("div",{className:"animate-pulse",children:n("common:loading")})})})]}),e.jsxs(Me,{children:[e.jsx($e,{className:"flex-none pb-2",children:e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs(cs,{className:"flex items-center text-base font-medium",children:[e.jsx(Wt,{className:"mr-2 h-4 w-4"}),n("dashboard:trafficRank.userTrafficRank")]}),e.jsxs("div",{className:"flex min-w-0 items-center gap-1",children:[e.jsx($a,{selectedRange:i,customDateRange:x,onRangeChange:u,onCustomRangeChange:o}),e.jsx(Ra,{className:"h-4 w-4 flex-shrink-0 text-muted-foreground"})]})]})}),e.jsx(qe,{className:"flex-1",children:R?.data?e.jsxs(lt,{className:"h-[400px] pr-4",children:[e.jsx("div",{className:"space-y-3",children:R.data.map(f=>e.jsx(ce,{children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx("div",{className:"flex cursor-pointer items-center justify-between space-x-2 rounded-lg bg-muted/50 p-2 transition-colors hover:bg-muted/70",children:e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"truncate text-sm font-medium",children:f.name}),e.jsxs("span",{className:_("ml-2 flex items-center text-xs font-medium",f.change>=0?"text-green-600":"text-red-600"),children:[f.change>=0?e.jsx(Jt,{className:"mr-1 h-3 w-3"}):e.jsx(Qt,{className:"mr-1 h-3 w-3"}),Math.abs(f.change),"%"]})]}),e.jsxs("div",{className:"mt-1 flex items-center gap-2",children:[e.jsx("div",{className:"h-2 flex-1 overflow-hidden rounded-full bg-muted",children:e.jsx("div",{className:"h-full bg-primary transition-all",style:{width:`${f.value/R.data[0].value*100}%`}})}),e.jsx("span",{className:"text-xs text-muted-foreground",children:As(f.value)})]})]})})}),e.jsx(te,{side:"right",className:"space-y-2 p-4",children:e.jsxs("div",{className:"grid grid-cols-2 gap-x-4 gap-y-2 text-sm",children:[e.jsxs("span",{className:"text-muted-foreground",children:[n("dashboard:trafficRank.currentTraffic"),":"]}),e.jsx("span",{className:"font-medium",children:As(f.value)}),e.jsxs("span",{className:"text-muted-foreground",children:[n("dashboard:trafficRank.previousTraffic"),":"]}),e.jsx("span",{className:"font-medium",children:As(f.previousValue)}),e.jsxs("span",{className:"text-muted-foreground",children:[n("dashboard:trafficRank.changeRate"),":"]}),e.jsxs("span",{className:_("font-medium",f.change>=0?"text-green-600":"text-red-600"),children:[f.change>=0?"+":"",f.change,"%"]})]})})]})},f.id))}),e.jsx(kt,{orientation:"vertical"})]}):e.jsx("div",{className:"flex h-[400px] items-center justify-center",children:e.jsx("div",{className:"animate-pulse",children:n("common:loading")})})})]})]})}const Wd=Es("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/10",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function K({className:s,variant:n,...a}){return e.jsx("div",{className:_(Wd({variant:n}),s),...a})}const _e=window?.settings?.secure_path,Cr=5*60*1e3,ta=new Map,Yd=s=>{const n=ta.get(s);return n?Date.now()-n.timestamp>Cr?(ta.delete(s),null):n.data:null},Jd=(s,n)=>{ta.set(s,{data:n,timestamp:Date.now()})},Qd=async(s,n=Cr)=>{const a=Yd(s);if(a)return a;const l=await F.get(s);return Jd(s,l),l},qa={getList:()=>Qd(`${_e}/notice/fetch`),save:s=>F.post(`${_e}/notice/save`,s),drop:s=>F.post(`${_e}/notice/drop`,{id:s}),updateStatus:s=>F.post(`${_e}/notice/show`,{id:s}),sort:s=>F.post(`${_e}/notice/sort`,{ids:s})},Ka={getSystemStatus:()=>F.get(`${_e}/system/getSystemStatus`),getQueueStats:()=>F.get(`${_e}/system/getQueueStats`),getQueueWorkload:()=>F.get(`${_e}/system/getQueueWorkload`),getQueueMasters:()=>F.get(`${_e}/system/getQueueMasters`),getSystemLog:s=>F.get(`${_e}/system/getSystemLog`,{params:s})},Ds={getPluginList:()=>F.get(`${_e}/plugin/getPlugins`),installPlugin:s=>F.post(`${_e}/plugin/install`,{code:s}),uninstallPlugin:s=>F.post(`${_e}/plugin/uninstall`,{code:s}),enablePlugin:s=>F.post(`${_e}/plugin/enable`,{code:s}),disablePlugin:s=>F.post(`${_e}/plugin/disable`,{code:s}),getPluginConfig:s=>F.get(`${_e}/plugin/config`,{params:{code:s}}),updatePluginConfig:(s,n)=>F.post(`${_e}/plugin/config`,{code:s,config:n})},yt=m.forwardRef(({className:s,value:n,...a},l)=>e.jsx(Fn,{ref:l,className:_("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",s),...a,children:e.jsx(Jo,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(n||0)}%)`}})}));yt.displayName=Fn.displayName;function Zd(){const{t:s}=I(),[n,a]=m.useState(null),[l,r]=m.useState(null),[c,i]=m.useState(!0),[u,x]=m.useState(!1),o=async()=>{try{x(!0);const[T,R]=await Promise.all([Ka.getSystemStatus(),Ka.getQueueStats()]);a(T.data),r(R.data)}catch(T){console.error("Error fetching system data:",T)}finally{i(!1),x(!1)}};m.useEffect(()=>{o();const T=setInterval(o,3e4);return()=>clearInterval(T)},[]);const d=()=>{o()};if(c)return e.jsx("div",{className:"flex items-center justify-center p-6",children:e.jsx(da,{className:"h-6 w-6 animate-spin"})});const p=T=>T?e.jsx(Mn,{className:"h-5 w-5 text-green-500"}):e.jsx(On,{className:"h-5 w-5 text-red-500"});return e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs(Me,{children:[e.jsxs($e,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs(cs,{className:"flex items-center gap-2",children:[e.jsx(Qo,{className:"h-5 w-5"}),s("dashboard:queue.title")]}),e.jsx(Hs,{children:s("dashboard:queue.status.description")})]}),e.jsx(J,{variant:"outline",size:"icon",onClick:d,disabled:u,children:e.jsx(Zo,{className:_("h-4 w-4",u&&"animate-spin")})})]}),e.jsx(qe,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2 rounded-lg bg-muted/50 p-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[p(l?.status||!1),e.jsx("span",{className:"font-medium",children:s("dashboard:queue.status.running")})]}),e.jsx(K,{variant:l?.status?"secondary":"destructive",children:l?.status?s("dashboard:queue.status.normal"):s("dashboard:queue.status.abnormal")})]}),e.jsx("div",{className:"text-sm text-muted-foreground",children:s("dashboard:queue.status.waitTime",{seconds:l?.wait?.default||0})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsx(ce,{children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsxs("div",{className:"space-y-2 rounded-lg bg-muted/50 p-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:s("dashboard:queue.details.recentJobs")}),e.jsx("p",{className:"text-2xl font-bold",children:l?.recentJobs||0}),e.jsx(yt,{value:(l?.recentJobs||0)/(l?.periods?.recentJobs||1)*100,className:"h-1"})]})}),e.jsx(te,{children:e.jsx("p",{children:s("dashboard:queue.details.statisticsPeriod",{hours:l?.periods?.recentJobs||0})})})]})}),e.jsx(ce,{children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsxs("div",{className:"space-y-2 rounded-lg bg-muted/50 p-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:s("dashboard:queue.details.jobsPerMinute")}),e.jsx("p",{className:"text-2xl font-bold",children:l?.jobsPerMinute||0}),e.jsx(yt,{value:(l?.jobsPerMinute||0)/(l?.queueWithMaxThroughput?.throughput||1)*100,className:"h-1"})]})}),e.jsx(te,{children:e.jsx("p",{children:s("dashboard:queue.details.maxThroughput",{value:l?.queueWithMaxThroughput?.throughput||0})})})]})})]})]})})]}),e.jsxs(Me,{children:[e.jsxs($e,{children:[e.jsxs(cs,{className:"flex items-center gap-2",children:[e.jsx(Xo,{className:"h-5 w-5"}),s("dashboard:queue.jobDetails")]}),e.jsx(Hs,{children:s("dashboard:queue.details.description")})]}),e.jsx(qe,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2 rounded-lg bg-muted/50 p-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:s("dashboard:queue.details.failedJobs7Days")}),e.jsx("p",{className:"text-2xl font-bold text-destructive",children:l?.failedJobs||0}),e.jsx("div",{className:"text-xs text-muted-foreground",children:s("dashboard:queue.details.retentionPeriod",{hours:l?.periods?.failedJobs||0})})]}),e.jsxs("div",{className:"space-y-2 rounded-lg bg-muted/50 p-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:s("dashboard:queue.details.longestRunningQueue")}),e.jsxs("p",{className:"text-2xl font-bold",children:[l?.queueWithMaxRuntime?.runtime||0,"s"]}),e.jsx("div",{className:"truncate text-xs text-muted-foreground",children:l?.queueWithMaxRuntime?.name||"N/A"})]})]}),e.jsxs("div",{className:"rounded-lg bg-muted/50 p-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:s("dashboard:queue.details.activeProcesses")}),e.jsxs("span",{className:"font-medium",children:[l?.processes||0," /"," ",(l?.processes||0)+(l?.pausedMasters||0)]})]}),e.jsx(yt,{value:(l?.processes||0)/((l?.processes||0)+(l?.pausedMasters||0))*100,className:"mt-2 h-1"})]})]})})]})]})}function Xd(){const{t:s}=I();return e.jsxs(we,{children:[e.jsxs(Ce,{children:[e.jsx("div",{className:"flex items-center",children:e.jsx("h1",{className:"text-2xl font-bold tracking-tight md:text-3xl",children:s("dashboard:title")})}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ie,{}),e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsx(Pe,{children:e.jsx("div",{className:"space-y-6",children:e.jsxs("div",{className:"grid gap-6",children:[e.jsx(Bd,{}),e.jsx($d,{}),e.jsx(Gd,{}),e.jsx(Zd,{})]})})})]})}const em=Object.freeze(Object.defineProperty({__proto__:null,default:Xd},Symbol.toStringTag,{value:"Module"})),ye=m.forwardRef(({className:s,orientation:n="horizontal",decorative:a=!0,...l},r)=>e.jsx(zn,{ref:r,decorative:a,orientation:n,className:_("shrink-0 bg-border",n==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",s),...l}));ye.displayName=zn.displayName;function sm({className:s,items:n,...a}){const{pathname:l}=na(),r=ms(),[c,i]=m.useState(l??"/settings"),u=o=>{i(o),r(o)},{t:x}=I("settings");return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"p-1 md:hidden",children:e.jsxs(G,{value:c,onValueChange:u,children:[e.jsx(U,{className:"h-12 sm:w-48",children:e.jsx(W,{placeholder:"Theme"})}),e.jsx(B,{children:n.map(o=>e.jsx(L,{value:o.href,children:e.jsxs("div",{className:"flex gap-x-4 px-2 py-1",children:[e.jsx("span",{className:"scale-125",children:o.icon}),e.jsx("span",{className:"text-md",children:x(o.title)})]})},o.href))})]})}),e.jsx("div",{className:"hidden w-full overflow-x-auto bg-background px-1 py-2 md:block",children:e.jsx("nav",{className:_("flex space-x-2 lg:flex-col lg:space-x-0 lg:space-y-1",s),...a,children:n.map(o=>e.jsxs(Vs,{to:o.href,className:_(Bs({variant:"ghost"}),l===o.href?"bg-muted hover:bg-muted":"hover:bg-transparent hover:underline","justify-start"),children:[e.jsx("span",{className:"mr-2",children:o.icon}),x(o.title)]},o.href))})})]})}const tm=[{title:"site.title",key:"site",icon:e.jsx(ei,{size:18}),href:"/config/system",description:"site.description"},{title:"safe.title",key:"safe",icon:e.jsx(fn,{size:18}),href:"/config/system/safe",description:"safe.description"},{title:"subscribe.title",key:"subscribe",icon:e.jsx(pn,{size:18}),href:"/config/system/subscribe",description:"subscribe.description"},{title:"invite.title",key:"invite",icon:e.jsx(si,{size:18}),href:"/config/system/invite",description:"invite.description"},{title:"server.title",key:"server",icon:e.jsx(hn,{size:18}),href:"/config/system/server",description:"server.description"},{title:"email.title",key:"email",icon:e.jsx(ti,{size:18}),href:"/config/system/email",description:"email.description"},{title:"telegram.title",key:"telegram",icon:e.jsx(ai,{size:18}),href:"/config/system/telegram",description:"telegram.description"},{title:"app.title",key:"app",icon:e.jsx(xn,{size:18}),href:"/config/system/app",description:"app.description"}];function am(){const{t:s}=I("settings");return e.jsxs(we,{fadedBelow:!0,fixedHeight:!0,children:[e.jsxs(Ce,{children:[e.jsx(Ie,{}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("h1",{className:"text-2xl font-bold tracking-tight md:text-3xl",children:s("title")}),e.jsx("div",{className:"text-muted-foreground",children:s("description")})]}),e.jsx(ye,{className:"my-6"}),e.jsxs("div",{className:"flex flex-1 flex-col space-y-8 overflow-auto lg:flex-row lg:space-x-12 lg:space-y-0",children:[e.jsx("aside",{className:"sticky top-0 lg:w-1/5",children:e.jsx(sm,{items:tm})}),e.jsx("div",{className:"w-full p-1 pr-4 lg:max-w-xl",children:e.jsx("div",{className:"pb-16",children:e.jsx(ra,{})})})]})]})]})}const nm=Object.freeze(Object.defineProperty({__proto__:null,default:am},Symbol.toStringTag,{value:"Module"})),H=m.forwardRef(({className:s,...n},a)=>e.jsx(Ln,{className:_("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",s),...n,ref:a,children:e.jsx(ni,{className:_("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));H.displayName=Ln.displayName;const ps=m.forwardRef(({className:s,...n},a)=>e.jsx("textarea",{className:_("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",s),ref:a,...n}));ps.displayName="Textarea";const rm=h.object({logo:h.string().nullable().default(""),force_https:h.number().nullable().default(0),stop_register:h.number().nullable().default(0),app_name:h.string().nullable().default(""),app_description:h.string().nullable().default(""),app_url:h.string().nullable().default(""),subscribe_url:h.string().nullable().default(""),try_out_plan_id:h.number().nullable().default(0),try_out_hour:h.coerce.number().nullable().default(0),tos_url:h.string().nullable().default(""),currency:h.string().nullable().default(""),currency_symbol:h.string().nullable().default("")});function lm(){const{t:s}=I("settings"),[n,a]=m.useState(!1),l=m.useRef(null),{data:r}=se({queryKey:["settings","site"],queryFn:()=>hs("site")}),{data:c}=se({queryKey:["plans"],queryFn:()=>Os()}),i=de({resolver:me(rm),defaultValues:{},mode:"onBlur"}),{mutateAsync:u}=as({mutationFn:fs,onSuccess:d=>{d.data&&q.success(s("common.autoSaved"))}});m.useEffect(()=>{if(r?.data?.site){const d=r?.data?.site;Object.entries(d).forEach(([p,T])=>{i.setValue(p,T)}),l.current=d}},[r]);const x=m.useCallback(ve.debounce(async d=>{if(!ve.isEqual(d,l.current)){a(!0);try{const p=Object.entries(d).reduce((T,[R,f])=>(T[R]=f===null?"":f,T),{});await u(p),l.current=d}finally{a(!1)}}},1e3),[u]),o=m.useCallback(d=>{x(d)},[x]);return m.useEffect(()=>{const d=i.watch(p=>{o(p)});return()=>d.unsubscribe()},[i.watch,o]),e.jsx(ue,{...i,children:e.jsxs("div",{className:"space-y-4",children:[e.jsx(y,{control:i.control,name:"app_name",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("site.form.siteName.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("site.form.siteName.placeholder"),...d,value:d.value||"",onChange:p=>{d.onChange(p),o(i.getValues())}})}),e.jsx(M,{children:s("site.form.siteName.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:i.control,name:"app_description",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("site.form.siteDescription.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("site.form.siteDescription.placeholder"),...d,value:d.value||"",onChange:p=>{d.onChange(p),o(i.getValues())}})}),e.jsx(M,{children:s("site.form.siteDescription.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:i.control,name:"app_url",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("site.form.siteUrl.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("site.form.siteUrl.placeholder"),...d,value:d.value||"",onChange:p=>{d.onChange(p),o(i.getValues())}})}),e.jsx(M,{children:s("site.form.siteUrl.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:i.control,name:"force_https",render:({field:d})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("site.form.forceHttps.label")}),e.jsx(M,{children:s("site.form.forceHttps.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:!!d.value,onCheckedChange:p=>{d.onChange(Number(p)),o(i.getValues())}})})]})}),e.jsx(y,{control:i.control,name:"logo",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("site.form.logo.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("site.form.logo.placeholder"),...d,value:d.value||"",onChange:p=>{d.onChange(p),o(i.getValues())}})}),e.jsx(M,{children:s("site.form.logo.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:i.control,name:"subscribe_url",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("site.form.subscribeUrl.label")}),e.jsx(w,{children:e.jsx(ps,{placeholder:s("site.form.subscribeUrl.placeholder"),...d,value:d.value||"",onChange:p=>{d.onChange(p),o(i.getValues())}})}),e.jsx(M,{children:s("site.form.subscribeUrl.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:i.control,name:"tos_url",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("site.form.tosUrl.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("site.form.tosUrl.placeholder"),...d,value:d.value||"",onChange:p=>{d.onChange(p),o(i.getValues())}})}),e.jsx(M,{children:s("site.form.tosUrl.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:i.control,name:"stop_register",render:({field:d})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("site.form.stopRegister.label")}),e.jsx(M,{children:s("site.form.stopRegister.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:!!d.value,onCheckedChange:p=>{d.onChange(Number(p)),o(i.getValues())}})})]})}),e.jsx(y,{control:i.control,name:"try_out_plan_id",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("site.form.tryOut.label")}),e.jsx(w,{children:e.jsxs(G,{value:d.value?.toString(),onValueChange:p=>{d.onChange(Number(p)),o(i.getValues())},children:[e.jsx(U,{children:e.jsx(W,{placeholder:s("site.form.tryOut.placeholder")})}),e.jsxs(B,{children:[e.jsx(L,{value:"0",children:s("site.form.tryOut.placeholder")}),c?.data?.map(p=>e.jsx(L,{value:p.id.toString(),children:p.name},p.id.toString()))]})]})}),e.jsx(M,{children:s("site.form.tryOut.description")}),e.jsx(E,{})]})}),!!i.watch("try_out_plan_id")&&e.jsx(y,{control:i.control,name:"try_out_hour",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"",children:s("site.form.tryOut.duration.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("site.form.tryOut.duration.placeholder"),...d,value:d.value||"",onChange:p=>{d.onChange(p),o(i.getValues())}})}),e.jsx(M,{children:s("site.form.tryOut.duration.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:i.control,name:"currency",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("site.form.currency.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("site.form.currency.placeholder"),...d,value:d.value||"",onChange:p=>{d.onChange(p),o(i.getValues())}})}),e.jsx(M,{children:s("site.form.currency.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:i.control,name:"currency_symbol",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("site.form.currencySymbol.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("site.form.currencySymbol.placeholder"),...d,value:d.value||"",onChange:p=>{d.onChange(p),o(i.getValues())}})}),e.jsx(M,{children:s("site.form.currencySymbol.description")}),e.jsx(E,{})]})}),n&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("site.form.saving")})]})})}function om(){const{t:s}=I("settings");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:s("site.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("site.description")})]}),e.jsx(ye,{}),e.jsx(lm,{})]})}const im=Object.freeze(Object.defineProperty({__proto__:null,default:om},Symbol.toStringTag,{value:"Module"})),cm=h.object({email_verify:h.boolean().nullable(),safe_mode_enable:h.boolean().nullable(),secure_path:h.string().nullable(),email_whitelist_enable:h.boolean().nullable(),email_whitelist_suffix:h.array(h.string().nullable()).nullable(),email_gmail_limit_enable:h.boolean().nullable(),recaptcha_enable:h.boolean().nullable(),recaptcha_key:h.string().nullable(),recaptcha_site_key:h.string().nullable(),register_limit_by_ip_enable:h.boolean().nullable(),register_limit_count:h.coerce.string().transform(s=>s===""?null:s).nullable(),register_limit_expire:h.coerce.string().transform(s=>s===""?null:s).nullable(),password_limit_enable:h.boolean().nullable(),password_limit_count:h.coerce.string().transform(s=>s===""?null:s).nullable(),password_limit_expire:h.coerce.string().transform(s=>s===""?null:s).nullable()}),dm={email_verify:!1,safe_mode_enable:!1,secure_path:"",email_whitelist_enable:!1,email_whitelist_suffix:[],email_gmail_limit_enable:!1,recaptcha_enable:!1,recaptcha_key:"",recaptcha_site_key:"",register_limit_by_ip_enable:!1,register_limit_count:"",register_limit_expire:"",password_limit_enable:!1,password_limit_count:"",password_limit_expire:""};function mm(){const{t:s}=I("settings"),[n,a]=m.useState(!1),l=m.useRef(null),r=de({resolver:me(cm),defaultValues:dm,mode:"onBlur"}),{data:c}=se({queryKey:["settings","safe"],queryFn:()=>hs("safe")}),{mutateAsync:i}=as({mutationFn:fs,onSuccess:o=>{o.data&&q.success(s("common.autoSaved"))}});m.useEffect(()=>{if(c?.data.safe){const o=c.data.safe;Object.entries(o).forEach(([d,p])=>{typeof p=="number"?r.setValue(d,String(p)):r.setValue(d,p)}),l.current=o}},[c]);const u=m.useCallback(ve.debounce(async o=>{if(!ve.isEqual(o,l.current)){a(!0);try{await i(o),l.current=o}finally{a(!1)}}},1e3),[i]),x=m.useCallback(o=>{u(o)},[u]);return m.useEffect(()=>{const o=r.watch(d=>{x(d)});return()=>o.unsubscribe()},[r.watch,x]),e.jsx(ue,{...r,children:e.jsxs("div",{className:"space-y-4",children:[e.jsx(y,{control:r.control,name:"email_verify",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("safe.form.emailVerify.label")}),e.jsx(M,{children:s("safe.form.emailVerify.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),e.jsx(y,{control:r.control,name:"email_gmail_limit_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("safe.form.gmailLimit.label")}),e.jsx(M,{children:s("safe.form.gmailLimit.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),e.jsx(y,{control:r.control,name:"safe_mode_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("safe.form.safeMode.label")}),e.jsx(M,{children:s("safe.form.safeMode.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),e.jsx(y,{control:r.control,name:"secure_path",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("safe.form.securePath.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("safe.form.securePath.placeholder"),...o,value:o.value||"",onChange:d=>{o.onChange(d),x(r.getValues())}})}),e.jsx(M,{children:s("safe.form.securePath.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"email_whitelist_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("safe.form.emailWhitelist.label")}),e.jsx(M,{children:s("safe.form.emailWhitelist.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),r.watch("email_whitelist_enable")&&e.jsx(y,{control:r.control,name:"email_whitelist_suffix",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("safe.form.emailWhitelist.suffixes.label")}),e.jsx(w,{children:e.jsx(ps,{placeholder:s("safe.form.emailWhitelist.suffixes.placeholder"),...o,value:(o.value||[]).join(` +`),onChange:d=>{const p=d.target.value.split(` +`).filter(Boolean);o.onChange(p),x(r.getValues())}})}),e.jsx(M,{children:s("safe.form.emailWhitelist.suffixes.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"recaptcha_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("safe.form.recaptcha.enable.label")}),e.jsx(M,{children:s("safe.form.recaptcha.enable.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),r.watch("recaptcha_enable")&&e.jsxs(e.Fragment,{children:[e.jsx(y,{control:r.control,name:"recaptcha_key",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("safe.form.recaptcha.key.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("safe.form.recaptcha.key.placeholder"),...o,value:o.value||"",onChange:d=>{o.onChange(d),x(r.getValues())}})}),e.jsx(M,{children:s("safe.form.recaptcha.key.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"recaptcha_site_key",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("safe.form.recaptcha.siteKey.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("safe.form.recaptcha.siteKey.placeholder"),...o,value:o.value||"",onChange:d=>{o.onChange(d),x(r.getValues())}})}),e.jsx(M,{children:s("safe.form.recaptcha.siteKey.description")}),e.jsx(E,{})]})})]}),e.jsx(y,{control:r.control,name:"register_limit_by_ip_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("safe.form.registerLimit.enable.label")}),e.jsx(M,{children:s("safe.form.registerLimit.enable.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),r.watch("register_limit_by_ip_enable")&&e.jsxs(e.Fragment,{children:[e.jsx(y,{control:r.control,name:"register_limit_count",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("safe.form.registerLimit.count.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("safe.form.registerLimit.count.placeholder"),...o,value:o.value||"",onChange:d=>{o.onChange(d),x(r.getValues())}})}),e.jsx(M,{children:s("safe.form.registerLimit.count.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"register_limit_expire",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("safe.form.registerLimit.expire.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("safe.form.registerLimit.expire.placeholder"),...o,value:o.value||"",onChange:d=>{o.onChange(d),x(r.getValues())}})}),e.jsx(M,{children:s("safe.form.registerLimit.expire.description")}),e.jsx(E,{})]})})]}),e.jsx(y,{control:r.control,name:"password_limit_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("safe.form.passwordLimit.enable.label")}),e.jsx(M,{children:s("safe.form.passwordLimit.enable.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),r.watch("password_limit_enable")&&e.jsxs(e.Fragment,{children:[e.jsx(y,{control:r.control,name:"password_limit_count",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("safe.form.passwordLimit.count.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("safe.form.passwordLimit.count.placeholder"),...o,value:o.value||"",onChange:d=>{o.onChange(d),x(r.getValues())}})}),e.jsx(M,{children:s("safe.form.passwordLimit.count.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"password_limit_expire",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("safe.form.passwordLimit.expire.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("safe.form.passwordLimit.expire.placeholder"),...o,value:o.value||"",onChange:d=>{o.onChange(d),x(r.getValues())}})}),e.jsx(M,{children:s("safe.form.passwordLimit.expire.description")}),e.jsx(E,{})]})})]}),n&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("safe.form.saving")})]})})}function um(){const{t:s}=I("settings");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:s("safe.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("safe.description")})]}),e.jsx(ye,{}),e.jsx(mm,{})]})}const xm=Object.freeze(Object.defineProperty({__proto__:null,default:um},Symbol.toStringTag,{value:"Module"})),hm=h.object({plan_change_enable:h.boolean().nullable().default(!1),reset_traffic_method:h.coerce.number().nullable().default(0),surplus_enable:h.boolean().nullable().default(!1),new_order_event_id:h.coerce.number().nullable().default(0),renew_order_event_id:h.coerce.number().nullable().default(0),change_order_event_id:h.coerce.number().nullable().default(0),show_info_to_server_enable:h.boolean().nullable().default(!1),show_protocol_to_server_enable:h.boolean().nullable().default(!1),default_remind_expire:h.boolean().nullable().default(!1),default_remind_traffic:h.boolean().nullable().default(!1),subscribe_path:h.string().nullable().default("s")}),fm={plan_change_enable:!1,reset_traffic_method:0,surplus_enable:!1,new_order_event_id:0,renew_order_event_id:0,change_order_event_id:0,show_info_to_server_enable:!1,show_protocol_to_server_enable:!1,default_remind_expire:!1,default_remind_traffic:!1,subscribe_path:"s"};function pm(){const{t:s}=I("settings"),[n,a]=m.useState(!1),l=m.useRef(null),r=de({resolver:me(hm),defaultValues:fm,mode:"onBlur"}),{data:c}=se({queryKey:["settings","subscribe"],queryFn:()=>hs("subscribe")}),{mutateAsync:i}=as({mutationFn:fs,onSuccess:o=>{o.data&&q.success(s("common.autoSaved"))}});m.useEffect(()=>{if(c?.data?.subscribe){const o=c?.data?.subscribe;Object.entries(o).forEach(([d,p])=>{r.setValue(d,p)}),l.current=o}},[c]);const u=m.useCallback(ve.debounce(async o=>{if(!ve.isEqual(o,l.current)){a(!0);try{await i(o),l.current=o}finally{a(!1)}}},1e3),[i]),x=m.useCallback(o=>{u(o)},[u]);return m.useEffect(()=>{const o=r.watch(d=>{x(d)});return()=>o.unsubscribe()},[r.watch,x]),e.jsx(ue,{...r,children:e.jsxs("div",{className:"space-y-4",children:[e.jsx(y,{control:r.control,name:"plan_change_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("subscribe.plan_change_enable.title")}),e.jsx(M,{children:s("subscribe.plan_change_enable.description")}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"reset_traffic_method",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("subscribe.reset_traffic_method.title")}),e.jsxs(G,{onValueChange:o.onChange,value:o.value?.toString()||"0",children:[e.jsx(w,{children:e.jsx(U,{children:e.jsx(W,{placeholder:"请选择重置方式"})})}),e.jsxs(B,{children:[e.jsx(L,{value:"0",children:s("subscribe.reset_traffic_method.options.monthly_first")}),e.jsx(L,{value:"1",children:s("subscribe.reset_traffic_method.options.monthly_reset")}),e.jsx(L,{value:"2",children:s("subscribe.reset_traffic_method.options.no_reset")}),e.jsx(L,{value:"3",children:s("subscribe.reset_traffic_method.options.yearly_first")}),e.jsx(L,{value:"4",children:s("subscribe.reset_traffic_method.options.yearly_reset")})]})]}),e.jsx(M,{children:s("subscribe.reset_traffic_method.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"surplus_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("subscribe.surplus_enable.title")}),e.jsx(M,{children:s("subscribe.surplus_enable.description")}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"new_order_event_id",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("subscribe.new_order_event.title")}),e.jsx("div",{className:"relative w-max",children:e.jsx(w,{children:e.jsxs(G,{onValueChange:o.onChange,value:o.value?.toString(),children:[e.jsx(U,{children:e.jsx(W,{placeholder:"请选择"})}),e.jsxs(B,{children:[e.jsx(L,{value:"0",children:s("subscribe.new_order_event.options.no_action")}),e.jsx(L,{value:"1",children:s("subscribe.new_order_event.options.reset_traffic")})]})]})})}),e.jsx(M,{children:s("subscribe.new_order_event.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"renew_order_event_id",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("subscribe.renew_order_event.title")}),e.jsx("div",{className:"relative w-max",children:e.jsx(w,{children:e.jsxs(G,{onValueChange:o.onChange,value:o.value?.toString(),children:[e.jsx(U,{children:e.jsx(W,{placeholder:"请选择"})}),e.jsxs(B,{children:[e.jsx(L,{value:"0",children:s("subscribe.renew_order_event.options.no_action")}),e.jsx(L,{value:"1",children:s("subscribe.renew_order_event.options.reset_traffic")})]})]})})}),e.jsx(M,{children:s("renew_order_event.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"change_order_event_id",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("subscribe.change_order_event.title")}),e.jsx("div",{className:"relative w-max",children:e.jsx(w,{children:e.jsxs(G,{onValueChange:o.onChange,value:o.value?.toString(),children:[e.jsx(U,{children:e.jsx(W,{placeholder:"请选择"})}),e.jsxs(B,{children:[e.jsx(L,{value:"0",children:s("subscribe.change_order_event.options.no_action")}),e.jsx(L,{value:"1",children:s("subscribe.change_order_event.options.reset_traffic")})]})]})})}),e.jsx(M,{children:s("subscribe.change_order_event.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"subscribe_path",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("subscribe.subscribe_path.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:"subscribe",...o,value:o.value||"",onChange:d=>{o.onChange(d),x(r.getValues())}})}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:[s("subscribe.subscribe_path.description"),e.jsx("br",{}),s("subscribe.subscribe_path.current_format",{path:o.value||"s"})]}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"show_info_to_server_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("subscribe.show_info_to_server.title")}),e.jsx(M,{children:s("subscribe.show_info_to_server.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),e.jsx(y,{control:r.control,name:"show_protocol_to_server_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("subscribe.show_protocol_to_server.title")}),e.jsx(M,{children:s("subscribe.show_protocol_to_server.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value||!1,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),n&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("common.saving")})]})})}function gm(){const{t:s}=I("settings");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:s("subscribe.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("subscribe.description")})]}),e.jsx(ye,{}),e.jsx(pm,{})]})}const jm=Object.freeze(Object.defineProperty({__proto__:null,default:gm},Symbol.toStringTag,{value:"Module"})),vm=h.object({invite_force:h.boolean().default(!1),invite_commission:h.coerce.string().default("0"),invite_gen_limit:h.coerce.string().default("0"),invite_never_expire:h.boolean().default(!1),commission_first_time_enable:h.boolean().default(!1),commission_auto_check_enable:h.boolean().default(!1),commission_withdraw_limit:h.coerce.string().default("0"),commission_withdraw_method:h.array(h.string()).default(["支付宝","USDT","Paypal"]),withdraw_close_enable:h.boolean().default(!1),commission_distribution_enable:h.boolean().default(!1),commission_distribution_l1:h.coerce.number().default(0),commission_distribution_l2:h.coerce.number().default(0),commission_distribution_l3:h.coerce.number().default(0)}),bm={invite_force:!1,invite_commission:"0",invite_gen_limit:"0",invite_never_expire:!1,commission_first_time_enable:!1,commission_auto_check_enable:!1,commission_withdraw_limit:"0",commission_withdraw_method:["支付宝","USDT","Paypal"],withdraw_close_enable:!1,commission_distribution_enable:!1,commission_distribution_l1:0,commission_distribution_l2:0,commission_distribution_l3:0};function ym(){const{t:s}=I("settings"),[n,a]=m.useState(!1),l=m.useRef(null),r=de({resolver:me(vm),defaultValues:bm,mode:"onBlur"}),{data:c}=se({queryKey:["settings","invite"],queryFn:()=>hs("invite")}),{mutateAsync:i}=as({mutationFn:fs,onSuccess:o=>{o.data&&q.success(s("common.autoSaved"))}});m.useEffect(()=>{if(c?.data?.invite){const o=c?.data?.invite;Object.entries(o).forEach(([d,p])=>{typeof p=="number"?r.setValue(d,String(p)):r.setValue(d,p)}),l.current=o}},[c]);const u=m.useCallback(ve.debounce(async o=>{if(!ve.isEqual(o,l.current)){a(!0);try{await i(o),l.current=o}finally{a(!1)}}},1e3),[i]),x=m.useCallback(o=>{u(o)},[u]);return m.useEffect(()=>{const o=r.watch(d=>{x(d)});return()=>o.unsubscribe()},[r.watch,x]),e.jsx(ue,{...r,children:e.jsxs("div",{className:"space-y-4",children:[e.jsx(y,{control:r.control,name:"invite_force",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("invite.invite_force.title")}),e.jsx(M,{children:s("invite.invite_force.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),e.jsx(y,{control:r.control,name:"invite_commission",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("invite.invite_commission.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("invite.invite_commission.placeholder"),...o,value:o.value||""})}),e.jsx(M,{children:s("invite.invite_commission.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"invite_gen_limit",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("invite.invite_gen_limit.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("invite.invite_gen_limit.placeholder"),...o,value:o.value||""})}),e.jsx(M,{children:s("invite.invite_gen_limit.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"invite_never_expire",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("invite.invite_never_expire.title")}),e.jsx(M,{children:s("invite.invite_never_expire.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),e.jsx(y,{control:r.control,name:"commission_first_time_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("invite.commission_first_time.title")}),e.jsx(M,{children:s("invite.commission_first_time.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),e.jsx(y,{control:r.control,name:"commission_auto_check_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("invite.commission_auto_check.title")}),e.jsx(M,{children:s("invite.commission_auto_check.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),e.jsx(y,{control:r.control,name:"commission_withdraw_limit",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("invite.commission_withdraw_limit.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("invite.commission_withdraw_limit.placeholder"),...o,value:o.value||""})}),e.jsx(M,{children:s("invite.commission_withdraw_limit.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"commission_withdraw_method",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("invite.commission_withdraw_method.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("invite.commission_withdraw_method.placeholder"),...o,value:Array.isArray(o.value)?o.value.join(","):"",onChange:d=>{const p=d.target.value.split(",").filter(Boolean);o.onChange(p),x(r.getValues())}})}),e.jsx(M,{children:s("invite.commission_withdraw_method.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"withdraw_close_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("invite.withdraw_close.title")}),e.jsx(M,{children:s("invite.withdraw_close.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),e.jsx(y,{control:r.control,name:"commission_distribution_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("invite.commission_distribution.title")}),e.jsx(M,{children:s("invite.commission_distribution.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:o.value,onCheckedChange:d=>{o.onChange(d),x(r.getValues())}})})]})}),r.watch("commission_distribution_enable")&&e.jsxs(e.Fragment,{children:[e.jsx(y,{control:r.control,name:"commission_distribution_l1",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:s("invite.commission_distribution.l1")}),e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:s("invite.commission_distribution.placeholder"),...o,value:o.value||"",onChange:d=>{const p=d.target.value?Number(d.target.value):0;o.onChange(p),x(r.getValues())}})}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"commission_distribution_l2",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:s("invite.commission_distribution.l2")}),e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:s("invite.commission_distribution.placeholder"),...o,value:o.value||"",onChange:d=>{const p=d.target.value?Number(d.target.value):0;o.onChange(p),x(r.getValues())}})}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"commission_distribution_l3",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:s("invite.commission_distribution.l3")}),e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:s("invite.commission_distribution.placeholder"),...o,value:o.value||"",onChange:d=>{const p=d.target.value?Number(d.target.value):0;o.onChange(p),x(r.getValues())}})}),e.jsx(E,{})]})})]}),n&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("invite.saving")})]})})}function Nm(){const{t:s}=I("settings");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:s("invite.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("invite.description")})]}),e.jsx(ye,{}),e.jsx(ym,{})]})}const _m=Object.freeze(Object.defineProperty({__proto__:null,default:Nm},Symbol.toStringTag,{value:"Module"})),wm=h.object({frontend_theme:h.string().nullable(),frontend_theme_sidebar:h.string().nullable(),frontend_theme_header:h.string().nullable(),frontend_theme_color:h.string().nullable(),frontend_background_url:h.string().url().nullable()}),Cm={frontend_theme:"",frontend_theme_sidebar:"",frontend_theme_header:"",frontend_theme_color:"",frontend_background_url:""};function Sm(){const{data:s}=se({queryKey:["settings","frontend"],queryFn:()=>hs("frontend")}),n=de({resolver:me(wm),defaultValues:Cm,mode:"onChange"});m.useEffect(()=>{if(s?.data?.frontend){const l=s?.data?.frontend;Object.entries(l).forEach(([r,c])=>{n.setValue(r,c)})}},[s]);function a(l){fs(l).then(({data:r})=>{r&&q.success("更新成功")})}return e.jsx(ue,{...n,children:e.jsxs("form",{onSubmit:n.handleSubmit(a),className:"space-y-8",children:[e.jsx(y,{control:n.control,name:"frontend_theme_sidebar",render:({field:l})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:"边栏风格"}),e.jsx(M,{children:"边栏风格"})]}),e.jsx(w,{children:e.jsx(H,{checked:l.value,onCheckedChange:l.onChange})})]})}),e.jsx(y,{control:n.control,name:"frontend_theme_header",render:({field:l})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:"头部风格"}),e.jsx(M,{children:"边栏风格"})]}),e.jsx(w,{children:e.jsx(H,{checked:l.value,onCheckedChange:l.onChange})})]})}),e.jsx(y,{control:n.control,name:"frontend_theme_color",render:({field:l})=>e.jsxs(b,{children:[e.jsx(N,{children:"主题色"}),e.jsxs("div",{className:"relative w-max",children:[e.jsx(w,{children:e.jsxs("select",{className:_(Bs({variant:"outline"}),"w-[200px] appearance-none font-normal"),...l,children:[e.jsx("option",{value:"default",children:"默认"}),e.jsx("option",{value:"black",children:"黑色"}),e.jsx("option",{value:"blackblue",children:"暗蓝色"}),e.jsx("option",{value:"green",children:"奶绿色"})]})}),e.jsx(ca,{className:"absolute right-3 top-2.5 h-4 w-4 opacity-50"})]}),e.jsx(M,{children:"主题色"}),e.jsx(E,{})]})}),e.jsx(y,{control:n.control,name:"frontend_background_url",render:({field:l})=>e.jsxs(b,{children:[e.jsx(N,{children:"背景"}),e.jsx(w,{children:e.jsx(D,{placeholder:"请输入图片地址",...l})}),e.jsx(M,{children:"将会在后台登录页面进行展示。"}),e.jsx(E,{})]})}),e.jsx(V,{type:"submit",children:"保存设置"})]})})}function km(){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:"个性化设置"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"自定义系统界面外观,包括主题风格、布局、颜色方案、背景图等个性化选项。"})]}),e.jsx(ye,{}),e.jsx(Sm,{})]})}const Pm=Object.freeze(Object.defineProperty({__proto__:null,default:km},Symbol.toStringTag,{value:"Module"})),Tm=h.object({server_pull_interval:h.coerce.number().nullable(),server_push_interval:h.coerce.number().nullable(),server_token:h.string().nullable(),device_limit_mode:h.coerce.number().nullable()}),Dm={server_pull_interval:0,server_push_interval:0,server_token:"",device_limit_mode:0};function Em(){const{t:s}=I("settings"),[n,a]=m.useState(!1),l=m.useRef(null),r=de({resolver:me(Tm),defaultValues:Dm,mode:"onBlur"}),{data:c}=se({queryKey:["settings","server"],queryFn:()=>hs("server")}),{mutateAsync:i}=as({mutationFn:fs,onSuccess:d=>{d.data&&q.success(s("common.AutoSaved"))}});m.useEffect(()=>{if(c?.data.server){const d=c.data.server;Object.entries(d).forEach(([p,T])=>{r.setValue(p,T)}),l.current=d}},[c]);const u=m.useCallback(ve.debounce(async d=>{if(!ve.isEqual(d,l.current)){a(!0);try{await i(d),l.current=d}finally{a(!1)}}},1e3),[i]),x=m.useCallback(d=>{u(d)},[u]);m.useEffect(()=>{const d=r.watch(p=>{x(p)});return()=>d.unsubscribe()},[r.watch,x]);const o=()=>{const d=Math.floor(Math.random()*17)+16,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let T="";for(let R=0;Re.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("server.server_token.title")}),e.jsx(w,{children:e.jsxs("div",{className:"relative",children:[e.jsx(D,{placeholder:s("server.server_token.placeholder"),...d,value:d.value||"",className:"pr-10"}),e.jsx(ce,{children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(J,{type:"button",variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-full px-3 py-2",onClick:p=>{p.preventDefault(),o()},children:e.jsx(ri,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"})})}),e.jsx(te,{children:e.jsx("p",{children:s("server.server_token.generate_tooltip")})})]})})]})}),e.jsx(M,{children:s("server.server_token.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"server_pull_interval",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("server.server_pull_interval.title")}),e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:s("server.server_pull_interval.placeholder"),...d,value:d.value||"",onChange:p=>{const T=p.target.value?Number(p.target.value):null;d.onChange(T)}})}),e.jsx(M,{children:s("server.server_pull_interval.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"server_push_interval",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("server.server_push_interval.title")}),e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:s("server.server_push_interval.placeholder"),...d,value:d.value||"",onChange:p=>{const T=p.target.value?Number(p.target.value):null;d.onChange(T)}})}),e.jsx(M,{children:s("server.server_push_interval.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"device_limit_mode",render:({field:d})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("server.device_limit_mode.title")}),e.jsxs(G,{onValueChange:d.onChange,value:d.value?.toString()||"0",children:[e.jsx(w,{children:e.jsx(U,{children:e.jsx(W,{placeholder:s("server.device_limit_mode.placeholder")})})}),e.jsxs(B,{children:[e.jsx(L,{value:"0",children:s("server.device_limit_mode.strict")}),e.jsx(L,{value:"1",children:s("server.device_limit_mode.relaxed")})]})]}),e.jsx(M,{children:s("server.device_limit_mode.description")}),e.jsx(E,{})]})}),n&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("server.saving")})]})})}function Rm(){const{t:s}=I("settings");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:s("server.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("server.description")})]}),e.jsx(ye,{}),e.jsx(Em,{})]})}const Vm=Object.freeze(Object.defineProperty({__proto__:null,default:Rm},Symbol.toStringTag,{value:"Module"}));function Im({open:s,onOpenChange:n,result:a}){const l=!a.error;return e.jsx(pe,{open:s,onOpenChange:n,children:e.jsxs(fe,{className:"sm:max-w-[425px]",children:[e.jsxs(be,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[l?e.jsx(Mn,{className:"h-5 w-5 text-green-500"}):e.jsx(On,{className:"h-5 w-5 text-destructive"}),e.jsx(ge,{children:l?"邮件发送成功":"邮件发送失败"})]}),e.jsx(Te,{children:l?"测试邮件已成功发送,请检查收件箱":"发送测试邮件时遇到错误"})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx("div",{className:"font-medium",children:"发送详情"}),e.jsxs("div",{className:"grid grid-cols-[100px_1fr] items-center gap-2 text-sm",children:[e.jsx("div",{className:"text-muted-foreground",children:"收件地址"}),e.jsx("div",{children:a.email}),e.jsx("div",{className:"text-muted-foreground",children:"邮件主题"}),e.jsx("div",{children:a.subject}),e.jsx("div",{className:"text-muted-foreground",children:"模板名称"}),e.jsx("div",{children:a.template_name})]})]}),a.error&&e.jsxs("div",{className:"grid gap-2",children:[e.jsx("div",{className:"font-medium text-destructive",children:"错误信息"}),e.jsx("div",{className:"rounded-md bg-destructive/10 p-3 text-sm text-destructive break-all",children:a.error})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx("div",{className:"font-medium",children:"配置信息"}),e.jsx(lt,{className:"h-[200px] rounded-md border p-4",children:e.jsx("div",{className:"grid gap-2 text-sm",children:e.jsxs("div",{className:"grid grid-cols-[100px_1fr] items-center gap-2",children:[e.jsx("div",{className:"text-muted-foreground",children:"驱动"}),e.jsx("div",{children:a.config.driver}),e.jsx("div",{className:"text-muted-foreground",children:"服务器"}),e.jsx("div",{children:a.config.host}),e.jsx("div",{className:"text-muted-foreground",children:"端口"}),e.jsx("div",{children:a.config.port}),e.jsx("div",{className:"text-muted-foreground",children:"加密方式"}),e.jsx("div",{children:a.config.encryption||"无"}),e.jsx("div",{className:"text-muted-foreground",children:"发件人"}),e.jsx("div",{children:a.config.from.address?`${a.config.from.address}${a.config.from.name?` (${a.config.from.name})`:""}`:"未设置"}),e.jsx("div",{className:"text-muted-foreground",children:"用户名"}),e.jsx("div",{children:a.config.username||"未设置"})]})})})]})]})]})})}const Fm=h.object({email_template:h.string().nullable().default("classic"),email_host:h.string().nullable().default(""),email_port:h.coerce.number().nullable().default(465),email_username:h.string().nullable().default(""),email_password:h.string().nullable().default(""),email_encryption:h.string().nullable().default(""),email_from_address:h.string().email().nullable().default(""),remind_mail_enable:h.boolean().nullable().default(!1)});function Mm(){const{t:s}=I("settings"),[n,a]=m.useState(null),[l,r]=m.useState(!1),c=m.useRef(null),[i,u]=m.useState(!1),x=de({resolver:me(Fm),defaultValues:{},mode:"onBlur"}),{data:o}=se({queryKey:["settings","email"],queryFn:()=>hs("email")}),{data:d}=se({queryKey:["emailTemplate"],queryFn:()=>Vd()}),{mutateAsync:p}=as({mutationFn:fs,onSuccess:S=>{S.data&&q.success(s("common.autoSaved"))}}),{mutate:T,isPending:R}=as({mutationFn:Id,onMutate:()=>{a(null),r(!1)},onSuccess:S=>{a(S.data),r(!0),S.data.error?q.error(s("email.test.error")):q.success(s("email.test.success"))}});m.useEffect(()=>{if(o?.data.email){const S=o.data.email;Object.entries(S).forEach(([j,C])=>{x.setValue(j,C)}),c.current=S}},[o]);const f=m.useCallback(ve.debounce(async S=>{if(!ve.isEqual(S,c.current)){u(!0);try{await p(S),c.current=S}finally{u(!1)}}},1e3),[p]),g=m.useCallback(S=>{f(S)},[f]);return m.useEffect(()=>{const S=x.watch(j=>{g(j)});return()=>S.unsubscribe()},[x.watch,g]),e.jsxs(e.Fragment,{children:[e.jsx(ue,{...x,children:e.jsxs("div",{className:"space-y-4",children:[e.jsx(y,{control:x.control,name:"email_host",render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("email.email_host.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("common.placeholder"),...S,value:S.value||""})}),e.jsx(M,{children:s("email.email_host.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"email_port",render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("email.email_port.title")}),e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:s("common.placeholder"),...S,value:S.value||"",onChange:j=>{const C=j.target.value?Number(j.target.value):null;S.onChange(C)}})}),e.jsx(M,{children:s("email.email_port.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"email_encryption",render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("email.email_encryption.title")}),e.jsxs(G,{onValueChange:S.onChange,value:S.value||"none",children:[e.jsx(w,{children:e.jsx(U,{children:e.jsx(W,{placeholder:"请选择加密方式"})})}),e.jsxs(B,{children:[e.jsx(L,{value:"none",children:s("email.email_encryption.none")}),e.jsx(L,{value:"ssl",children:s("email.email_encryption.ssl")}),e.jsx(L,{value:"tls",children:s("email.email_encryption.tls")})]})]}),e.jsx(M,{children:s("email.email_encryption.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"email_username",render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("email.email_username.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("common.placeholder"),...S,value:S.value||""})}),e.jsx(M,{children:s("email.email_username.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"email_password",render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("email.email_password.title")}),e.jsx(w,{children:e.jsx(D,{type:"password",placeholder:s("common.placeholder"),...S,value:S.value||""})}),e.jsx(M,{children:s("email.email_password.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"email_from_address",render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("email.email_from.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("common.placeholder"),...S,value:S.value||""})}),e.jsx(M,{children:s("email.email_from.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"email_template",render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("email.email_template.title")}),e.jsxs(G,{onValueChange:j=>{S.onChange(j),g(x.getValues())},value:S.value||void 0,children:[e.jsx(w,{children:e.jsx(U,{className:"w-[200px]",children:e.jsx(W,{placeholder:s("email.email_template.placeholder")})})}),e.jsx(B,{children:d?.data?.map(j=>e.jsx(L,{value:j,children:j},j))})]}),e.jsx(M,{children:s("email.email_template.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"remind_mail_enable",render:({field:S})=>e.jsxs(b,{children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:s("email.remind_mail.title")}),e.jsx(M,{children:s("email.remind_mail.description")})]}),e.jsx(w,{children:e.jsx(H,{checked:S.value||!1,onCheckedChange:j=>{S.onChange(j),g(x.getValues())}})})]})}),e.jsx("div",{className:"flex items-center justify-between",children:e.jsx(V,{onClick:()=>T(),loading:R,disabled:R,children:s(R?"test.sending":"test.title")})})]})}),i&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("saving")}),n&&e.jsx(Im,{open:l,onOpenChange:r,result:n})]})}function Om(){const{t:s}=I("settings");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:s("email.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("email.description")})]}),e.jsx(ye,{}),e.jsx(Mm,{})]})}const zm=Object.freeze(Object.defineProperty({__proto__:null,default:Om},Symbol.toStringTag,{value:"Module"})),Lm=h.object({telegram_bot_enable:h.boolean().nullable(),telegram_bot_token:h.string().nullable(),telegram_discuss_link:h.string().nullable()}),Am={telegram_bot_enable:!1,telegram_bot_token:"",telegram_discuss_link:""};function $m(){const{t:s}=I("settings"),[n,a]=m.useState(!1),l=m.useRef(null),r=de({resolver:me(Lm),defaultValues:Am,mode:"onBlur"}),{data:c}=se({queryKey:["settings","telegram"],queryFn:()=>hs("telegram")}),{mutateAsync:i}=as({mutationFn:fs,onSuccess:p=>{p.data&&q.success(s("common.autoSaved"))}}),{mutate:u,isPending:x}=as({mutationFn:Fd,onSuccess:p=>{p.data&&q.success(s("telegram.webhook.success"))}});m.useEffect(()=>{if(c?.data.telegram){const p=c.data.telegram;Object.entries(p).forEach(([T,R])=>{r.setValue(T,R)}),l.current=p}},[c]);const o=m.useCallback(ve.debounce(async p=>{if(!ve.isEqual(p,l.current)){a(!0);try{await i(p),l.current=p}finally{a(!1)}}},1e3),[i]),d=m.useCallback(p=>{o(p)},[o]);return m.useEffect(()=>{const p=r.watch(T=>{d(T)});return()=>p.unsubscribe()},[r.watch,d]),e.jsx(ue,{...r,children:e.jsxs("div",{className:"space-y-4",children:[e.jsx(y,{control:r.control,name:"telegram_bot_token",render:({field:p})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("telegram.bot_token.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("telegram.bot_token.placeholder"),...p,value:p.value||""})}),e.jsx(M,{children:s("telegram.bot_token.description")}),e.jsx(E,{})]})}),r.watch("telegram_bot_token")&&e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("telegram.webhook.title")}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(V,{loading:x,disabled:x,onClick:()=>u(),children:s(x?"telegram.webhook.setting":"telegram.webhook.button")}),n&&e.jsx("span",{className:"text-sm text-muted-foreground",children:s("common.saving")})]}),e.jsx(M,{children:s("telegram.webhook.description")}),e.jsx(E,{})]}),e.jsx(y,{control:r.control,name:"telegram_bot_enable",render:({field:p})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("telegram.bot_enable.title")}),e.jsx(M,{children:s("telegram.bot_enable.description")}),e.jsx(w,{children:e.jsx(H,{checked:p.value||!1,onCheckedChange:T=>{p.onChange(T),d(r.getValues())}})}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"telegram_discuss_link",render:({field:p})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("telegram.discuss_link.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("telegram.discuss_link.placeholder"),...p,value:p.value||""})}),e.jsx(M,{children:s("telegram.discuss_link.description")}),e.jsx(E,{})]})}),n&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("common.saving")})]})})}function qm(){const{t:s}=I("settings");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:s("telegram.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("telegram.description")})]}),e.jsx(ye,{}),e.jsx($m,{})]})}const Km=Object.freeze(Object.defineProperty({__proto__:null,default:qm},Symbol.toStringTag,{value:"Module"})),Hm=h.object({windows_version:h.string().nullable(),windows_download_url:h.string().nullable(),macos_version:h.string().nullable(),macos_download_url:h.string().nullable(),android_version:h.string().nullable(),android_download_url:h.string().nullable()}),Um={windows_version:"",windows_download_url:"",macos_version:"",macos_download_url:"",android_version:"",android_download_url:""};function Bm(){const{t:s}=I("settings"),[n,a]=m.useState(!1),l=m.useRef(null),r=de({resolver:me(Hm),defaultValues:Um,mode:"onBlur"}),{data:c}=se({queryKey:["settings","app"],queryFn:()=>hs("app")}),{mutateAsync:i}=as({mutationFn:fs,onSuccess:o=>{o.data&&q.success(s("app.save_success"))}});m.useEffect(()=>{if(c?.data.app){const o=c.data.app;Object.entries(o).forEach(([d,p])=>{r.setValue(d,p)}),l.current=o}},[c]);const u=m.useCallback(ve.debounce(async o=>{if(!ve.isEqual(o,l.current)){a(!0);try{await i(o),l.current=o}finally{a(!1)}}},1e3),[i]),x=m.useCallback(o=>{u(o)},[u]);return m.useEffect(()=>{const o=r.watch(d=>{x(d)});return()=>o.unsubscribe()},[r.watch,x]),e.jsx(ue,{...r,children:e.jsxs("div",{className:"space-y-4",children:[e.jsx(y,{control:r.control,name:"windows_version",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("app.windows.version.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("common.placeholder"),...o,value:o.value||""})}),e.jsx(M,{children:s("app.windows.version.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"windows_download_url",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("app.windows.download.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("common.placeholder"),...o,value:o.value||""})}),e.jsx(M,{children:s("app.windows.download.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"macos_version",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("app.macos.version.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("common.placeholder"),...o,value:o.value||""})}),e.jsx(M,{children:s("app.macos.version.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"macos_download_url",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("app.macos.download.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("common.placeholder"),...o,value:o.value||""})}),e.jsx(M,{children:s("app.macos.download.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"android_version",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("app.android.version.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("common.placeholder"),...o,value:o.value||""})}),e.jsx(M,{children:s("app.android.version.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"android_download_url",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{className:"text-base",children:s("app.android.download.title")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("common.placeholder"),...o,value:o.value||""})}),e.jsx(M,{children:s("app.android.download.description")}),e.jsx(E,{})]})}),n&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("common.saving")})]})})}function Gm(){const{t:s}=I("settings");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:s("app.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("app.description")})]}),e.jsx(ye,{}),e.jsx(Bm,{})]})}const Wm=Object.freeze(Object.defineProperty({__proto__:null,default:Gm},Symbol.toStringTag,{value:"Module"})),fa=m.forwardRef(({className:s,...n},a)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:a,className:_("w-full caption-bottom text-sm",s),...n})}));fa.displayName="Table";const pa=m.forwardRef(({className:s,...n},a)=>e.jsx("thead",{ref:a,className:_("[&_tr]:border-b",s),...n}));pa.displayName="TableHeader";const ga=m.forwardRef(({className:s,...n},a)=>e.jsx("tbody",{ref:a,className:_("[&_tr:last-child]:border-0",s),...n}));ga.displayName="TableBody";const Ym=m.forwardRef(({className:s,...n},a)=>e.jsx("tfoot",{ref:a,className:_("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",s),...n}));Ym.displayName="TableFooter";const ys=m.forwardRef(({className:s,...n},a)=>e.jsx("tr",{ref:a,className:_("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",s),...n}));ys.displayName="TableRow";const ja=m.forwardRef(({className:s,...n},a)=>e.jsx("th",{ref:a,className:_("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",s),...n}));ja.displayName="TableHead";const Ks=m.forwardRef(({className:s,...n},a)=>e.jsx("td",{ref:a,className:_("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",s),...n}));Ks.displayName="TableCell";const Jm=m.forwardRef(({className:s,...n},a)=>e.jsx("caption",{ref:a,className:_("mt-4 text-sm text-muted-foreground",s),...n}));Jm.displayName="TableCaption";function Qm({table:s}){const[n,a]=m.useState(""),{t:l}=I("common");m.useEffect(()=>{a((s.getState().pagination.pageIndex+1).toString())},[s.getState().pagination.pageIndex]);const r=c=>{const i=parseInt(c);!isNaN(i)&&i>=1&&i<=s.getPageCount()?s.setPageIndex(i-1):a((s.getState().pagination.pageIndex+1).toString())};return e.jsxs("div",{className:"flex flex-col-reverse gap-4 px-2 py-4 sm:flex-row sm:items-center sm:justify-between",children:[e.jsx("div",{className:"flex-1 text-sm text-muted-foreground",children:l("table.pagination.selected",{selected:s.getFilteredSelectedRowModel().rows.length,total:s.getFilteredRowModel().rows.length})}),e.jsxs("div",{className:"flex flex-col-reverse items-center gap-4 sm:flex-row sm:gap-6 lg:gap-8",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("p",{className:"text-sm font-medium",children:l("table.pagination.itemsPerPage")}),e.jsxs(G,{value:`${s.getState().pagination.pageSize}`,onValueChange:c=>{s.setPageSize(Number(c))},children:[e.jsx(U,{className:"h-8 w-[70px]",children:e.jsx(W,{placeholder:s.getState().pagination.pageSize})}),e.jsx(B,{side:"top",children:[10,20,30,40,50,100,500].map(c=>e.jsx(L,{value:`${c}`,children:c},c))})]})]}),e.jsxs("div",{className:"flex items-center justify-center space-x-2 text-sm font-medium",children:[e.jsx("span",{children:l("table.pagination.page")}),e.jsx(D,{type:"text",value:n,onChange:c=>a(c.target.value),onBlur:c=>r(c.target.value),onKeyDown:c=>{c.key==="Enter"&&r(c.currentTarget.value)},className:"h-8 w-[50px] text-center"}),e.jsx("span",{children:l("table.pagination.pageOf",{total:s.getPageCount()})})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsxs(V,{variant:"outline",className:"hidden h-8 w-8 p-0 lg:flex",onClick:()=>s.setPageIndex(0),disabled:!s.getCanPreviousPage(),children:[e.jsx("span",{className:"sr-only",children:l("table.pagination.firstPage")}),e.jsx(li,{className:"h-4 w-4"})]}),e.jsxs(V,{variant:"outline",className:"h-8 w-8 p-0",onClick:()=>s.previousPage(),disabled:!s.getCanPreviousPage(),children:[e.jsx("span",{className:"sr-only",children:l("table.pagination.previousPage")}),e.jsx(En,{className:"h-4 w-4"})]}),e.jsxs(V,{variant:"outline",className:"h-8 w-8 p-0",onClick:()=>s.nextPage(),disabled:!s.getCanNextPage(),children:[e.jsx("span",{className:"sr-only",children:l("table.pagination.nextPage")}),e.jsx(oa,{className:"h-4 w-4"})]}),e.jsxs(V,{variant:"outline",className:"hidden h-8 w-8 p-0 lg:flex",onClick:()=>s.setPageIndex(s.getPageCount()-1),disabled:!s.getCanNextPage(),children:[e.jsx("span",{className:"sr-only",children:l("table.pagination.lastPage")}),e.jsx(oi,{className:"h-4 w-4"})]})]})]})]})}function es({table:s,toolbar:n,draggable:a=!1,onDragStart:l,onDragEnd:r,onDragOver:c,onDragLeave:i,onDrop:u,showPagination:x=!0,isLoading:o=!1}){const{t:d}=I("common"),p=m.useRef(null),T=s.getAllColumns().filter(S=>S.getIsPinned()==="left"),R=s.getAllColumns().filter(S=>S.getIsPinned()==="right"),f=S=>T.slice(0,S).reduce((j,C)=>j+(C.getSize()??0),0),g=S=>R.slice(S+1).reduce((j,C)=>j+(C.getSize()??0),0);return e.jsxs("div",{className:"space-y-4",children:[typeof n=="function"?n(s):n,e.jsx("div",{ref:p,className:"relative overflow-auto rounded-md border bg-card",children:e.jsx("div",{className:"overflow-auto",children:e.jsxs(fa,{children:[e.jsx(pa,{children:s.getHeaderGroups().map(S=>e.jsx(ys,{className:"hover:bg-transparent",children:S.headers.map((j,C)=>{const k=j.column.getIsPinned()==="left",v=j.column.getIsPinned()==="right",P=k?f(T.indexOf(j.column)):void 0,z=v?g(R.indexOf(j.column)):void 0;return e.jsx(ja,{colSpan:j.colSpan,style:{width:j.getSize(),...k&&{left:P},...v&&{right:z}},className:_("h-11 bg-card px-4 text-muted-foreground",(k||v)&&["sticky z-20","before:absolute before:bottom-0 before:top-0 before:w-[1px] before:bg-border",k&&"before:right-0",v&&"before:left-0"]),children:j.isPlaceholder?null:Nt(j.column.columnDef.header,j.getContext())},j.id)})},S.id))}),e.jsx(ga,{children:s.getRowModel().rows?.length?s.getRowModel().rows.map((S,j)=>e.jsx(ys,{"data-state":S.getIsSelected()&&"selected",className:"hover:bg-muted/50",draggable:a,onDragStart:C=>l?.(C,j),onDragEnd:r,onDragOver:c,onDragLeave:i,onDrop:C=>u?.(C,j),children:S.getVisibleCells().map((C,k)=>{const v=C.column.getIsPinned()==="left",P=C.column.getIsPinned()==="right",z=v?f(T.indexOf(C.column)):void 0,Q=P?g(R.indexOf(C.column)):void 0;return e.jsx(Ks,{style:{width:C.column.getSize(),...v&&{left:z},...P&&{right:Q}},className:_("bg-card",(v||P)&&["sticky z-20","before:absolute before:bottom-0 before:top-0 before:w-[1px] before:bg-border",v&&"before:right-0",P&&"before:left-0"]),children:Nt(C.column.columnDef.cell,C.getContext())},C.id)})},S.id)):e.jsx(ys,{children:e.jsx(Ks,{colSpan:s.getAllColumns().length,className:"h-24 text-center",children:d("table.noData")})})})]})})}),x&&e.jsx(Qm,{table:s})]})}const Zm=s=>h.object({id:h.number().nullable(),name:h.string().min(2,s("form.validation.name.min")).max(30,s("form.validation.name.max")),icon:h.string().optional().nullable(),notify_domain:h.string().refine(a=>!a||/^https?:\/\/\S+/.test(a),s("form.validation.notify_domain.url")).optional().nullable(),handling_fee_fixed:h.coerce.number().min(0).optional().nullable(),handling_fee_percent:h.coerce.number().min(0).max(100).optional().nullable(),payment:h.string().min(1,s("form.validation.payment.required")),config:h.record(h.string(),h.string())}),Ha={id:null,name:"",icon:"",notify_domain:"",handling_fee_fixed:0,handling_fee_percent:0,payment:"",config:{}};function Sr({refetch:s,dialogTrigger:n,type:a="add",defaultFormValues:l=Ha}){const{t:r}=I("payment"),[c,i]=m.useState(!1),[u,x]=m.useState(!1),[o,d]=m.useState([]),[p,T]=m.useState([]),R=Zm(r),f=de({resolver:me(R),defaultValues:l,mode:"onChange"}),g=f.watch("payment");m.useEffect(()=>{c&&(async()=>{const{data:C}=await Zc();d(C)})()},[c]),m.useEffect(()=>{if(!g||!c)return;(async()=>{const C={payment:g,...a==="edit"&&{id:Number(f.getValues("id"))}};Xc(C).then(({data:k})=>{T(k);const v=k.reduce((P,z)=>(z.field_name&&(P[z.field_name]=z.value??""),P),{});f.setValue("config",v)})})()},[g,c,f,a]);const S=async j=>{x(!0);try{(await ed(j)).data&&(q.success(r("form.messages.success")),f.reset(Ha),s(),i(!1))}finally{x(!1)}};return e.jsxs(pe,{open:c,onOpenChange:i,children:[e.jsx(ze,{asChild:!0,children:n||e.jsxs(V,{variant:"outline",size:"sm",className:"space-x-2",children:[e.jsx(Se,{icon:"ion:add"})," ",e.jsx("div",{children:r("form.add.button")})]})}),e.jsxs(fe,{className:"sm:max-w-[425px]",children:[e.jsx(be,{children:e.jsx(ge,{children:r(a==="add"?"form.add.title":"form.edit.title")})}),e.jsx(ue,{...f,children:e.jsxs("form",{onSubmit:f.handleSubmit(S),className:"space-y-4",children:[e.jsx(y,{control:f.control,name:"name",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.name.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:r("form.fields.name.placeholder"),...j})}),e.jsx(M,{children:r("form.fields.name.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:f.control,name:"icon",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.icon.label")}),e.jsx(w,{children:e.jsx(D,{...j,value:j.value||"",placeholder:r("form.fields.icon.placeholder")})}),e.jsx(M,{children:r("form.fields.icon.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:f.control,name:"notify_domain",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.notify_domain.label")}),e.jsx(w,{children:e.jsx(D,{...j,value:j.value||"",placeholder:r("form.fields.notify_domain.placeholder")})}),e.jsx(M,{children:r("form.fields.notify_domain.description")}),e.jsx(E,{})]})}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsx(y,{control:f.control,name:"handling_fee_percent",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.handling_fee_percent.label")}),e.jsx(w,{children:e.jsx(D,{type:"number",...j,value:j.value||"",placeholder:r("form.fields.handling_fee_percent.placeholder")})}),e.jsx(E,{})]})}),e.jsx(y,{control:f.control,name:"handling_fee_fixed",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.handling_fee_fixed.label")}),e.jsx(w,{children:e.jsx(D,{type:"number",...j,value:j.value||"",placeholder:r("form.fields.handling_fee_fixed.placeholder")})}),e.jsx(E,{})]})})]}),e.jsx(y,{control:f.control,name:"payment",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.payment.label")}),e.jsxs(G,{onValueChange:j.onChange,defaultValue:j.value,children:[e.jsx(w,{children:e.jsx(U,{children:e.jsx(W,{placeholder:r("form.fields.payment.placeholder")})})}),e.jsx(B,{children:o.map(C=>e.jsx(L,{value:C,children:C},C))})]}),e.jsx(M,{children:r("form.fields.payment.description")}),e.jsx(E,{})]})}),p.length>0&&e.jsx("div",{className:"space-y-4",children:p.map(j=>e.jsx(y,{control:f.control,name:`config.${j.field_name}`,render:({field:C})=>e.jsxs(b,{children:[e.jsx(N,{children:j.label}),e.jsx(w,{children:e.jsx(D,{...C,value:C.value||""})}),e.jsx(E,{})]})},j.field_name))}),e.jsxs(Le,{children:[e.jsx(mt,{asChild:!0,children:e.jsx(V,{type:"button",variant:"outline",children:r("form.buttons.cancel")})}),e.jsx(V,{type:"submit",disabled:u,children:r("form.buttons.submit")})]})]})})]})]})}function O({column:s,title:n,tooltip:a,className:l}){return s.getCanSort()?e.jsx("div",{className:"flex items-center gap-1",children:e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs(V,{variant:"ghost",size:"default",className:_("-ml-3 flex h-8 items-center gap-2 text-nowrap font-medium hover:bg-muted/60",l),onClick:()=>s.toggleSorting(s.getIsSorted()==="asc"),children:[e.jsx("span",{children:n}),a&&e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(Va,{className:"h-4 w-4 cursor-pointer text-muted-foreground"})}),e.jsx(te,{children:a})]})}),s.getIsSorted()==="asc"?e.jsx(Jt,{className:"h-4 w-4 text-foreground/70"}):s.getIsSorted()==="desc"?e.jsx(Qt,{className:"h-4 w-4 text-foreground/70"}):e.jsx(ii,{className:"h-4 w-4 text-muted-foreground/70 transition-colors hover:text-foreground/70"})]})})}):e.jsxs("div",{className:_("flex items-center space-x-1 text-nowrap py-2 font-medium text-muted-foreground",l),children:[e.jsx("span",{children:n}),a&&e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{children:e.jsx(Va,{className:"h-4 w-4 text-muted-foreground"})}),e.jsx(te,{children:a})]})})]})}const Xm=ci,eu=di,su=mi,kr=m.forwardRef(({className:s,...n},a)=>e.jsx(An,{className:_("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...n,ref:a}));kr.displayName=An.displayName;const Pr=m.forwardRef(({className:s,...n},a)=>e.jsxs(su,{children:[e.jsx(kr,{}),e.jsx($n,{ref:a,className:_("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",s),...n})]}));Pr.displayName=$n.displayName;const Tr=({className:s,...n})=>e.jsx("div",{className:_("flex flex-col space-y-2 text-center sm:text-left",s),...n});Tr.displayName="AlertDialogHeader";const Dr=({className:s,...n})=>e.jsx("div",{className:_("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...n});Dr.displayName="AlertDialogFooter";const Er=m.forwardRef(({className:s,...n},a)=>e.jsx(qn,{ref:a,className:_("text-lg font-semibold",s),...n}));Er.displayName=qn.displayName;const Rr=m.forwardRef(({className:s,...n},a)=>e.jsx(Kn,{ref:a,className:_("text-sm text-muted-foreground",s),...n}));Rr.displayName=Kn.displayName;const Vr=m.forwardRef(({className:s,...n},a)=>e.jsx(Hn,{ref:a,className:_(Us(),s),...n}));Vr.displayName=Hn.displayName;const Ir=m.forwardRef(({className:s,...n},a)=>e.jsx(Un,{ref:a,className:_(Us({variant:"outline"}),"mt-2 sm:mt-0",s),...n}));Ir.displayName=Un.displayName;function Ue({onConfirm:s,children:n,title:a="确认操作",description:l="确定要执行此操作吗?",cancelText:r="取消",confirmText:c="确认",variant:i="default",className:u}){return e.jsxs(Xm,{children:[e.jsx(eu,{asChild:!0,children:n}),e.jsxs(Pr,{className:_("sm:max-w-[425px]",u),children:[e.jsxs(Tr,{children:[e.jsx(Er,{children:a}),e.jsx(Rr,{children:l})]}),e.jsxs(Dr,{children:[e.jsx(Ir,{asChild:!0,children:e.jsx(V,{variant:"outline",children:r})}),e.jsx(Vr,{asChild:!0,children:e.jsx(V,{variant:i,onClick:s,children:c})})]})]})]})}const Fr=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M11.29 15.29a2 2 0 0 0-.12.15a.8.8 0 0 0-.09.18a.6.6 0 0 0-.06.18a1.4 1.4 0 0 0 0 .2a.84.84 0 0 0 .08.38a.9.9 0 0 0 .54.54a.94.94 0 0 0 .76 0a.9.9 0 0 0 .54-.54A1 1 0 0 0 13 16a1 1 0 0 0-.29-.71a1 1 0 0 0-1.42 0M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2m0 18a8 8 0 1 1 8-8a8 8 0 0 1-8 8m0-13a3 3 0 0 0-2.6 1.5a1 1 0 1 0 1.73 1A1 1 0 0 1 12 9a1 1 0 0 1 0 2a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-.18A3 3 0 0 0 12 7"})}),tu=({refetch:s,isSortMode:n=!1})=>{const{t:a}=I("payment");return[{id:"drag-handle",header:()=>null,cell:()=>e.jsx("div",{className:n?"cursor-move":"opacity-0",children:e.jsx(Rt,{className:"size-4"})}),size:40,enableSorting:!1},{accessorKey:"id",header:({column:l})=>e.jsx(O,{column:l,title:a("table.columns.id")}),cell:({row:l})=>e.jsx(K,{variant:"outline",children:l.getValue("id")}),enableSorting:!0,size:60},{accessorKey:"enable",header:({column:l})=>e.jsx(O,{column:l,title:a("table.columns.enable")}),cell:({row:l})=>e.jsx(H,{defaultChecked:l.getValue("enable"),onCheckedChange:async()=>{const{data:r}=await td({id:l.original.id});r||s()}}),enableSorting:!1,size:100},{accessorKey:"name",header:({column:l})=>e.jsx(O,{column:l,title:a("table.columns.name")}),cell:({row:l})=>e.jsx("div",{className:"flex items-center",children:e.jsx("span",{className:"max-w-[200px] truncate font-medium",children:l.getValue("name")})}),enableSorting:!1,size:200},{accessorKey:"payment",header:({column:l})=>e.jsx(O,{column:l,title:a("table.columns.payment")}),cell:({row:l})=>e.jsx("div",{className:"flex items-center",children:e.jsx("span",{className:"max-w-[200px] truncate font-medium",children:l.getValue("payment")})}),enableSorting:!1,size:200},{accessorKey:"notify_url",header:({column:l})=>e.jsxs("div",{className:"flex items-center",children:[e.jsx(O,{column:l,title:a("table.columns.notify_url")}),e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{className:"ml-1",children:e.jsx(Fr,{className:"h-4 w-4"})}),e.jsx(te,{children:a("table.columns.notify_url_tooltip")})]})})]}),cell:({row:l})=>e.jsx("div",{className:"flex items-center",children:e.jsx("span",{className:"max-w-[300px] truncate font-medium",children:l.getValue("notify_url")})}),enableSorting:!1,size:3e3},{id:"actions",header:({column:l})=>e.jsx(O,{className:"justify-end",column:l,title:a("table.columns.actions")}),cell:({row:l})=>e.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[e.jsx(Sr,{refetch:s,dialogTrigger:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-muted",children:[e.jsx(Is,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),e.jsx("span",{className:"sr-only",children:a("table.actions.edit")})]}),type:"edit",defaultFormValues:l.original}),e.jsx(Ue,{title:a("table.actions.delete.title"),description:a("table.actions.delete.description"),onConfirm:async()=>{const{data:r}=await sd({id:l.original.id});r&&s()},children:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-destructive/10",children:[e.jsx(ns,{className:"h-4 w-4 text-muted-foreground hover:text-destructive"}),e.jsx("span",{className:"sr-only",children:a("table.actions.delete.title")})]})})]}),size:100}]};function au({table:s,refetch:n,saveOrder:a,isSortMode:l}){const{t:r}=I("payment"),c=s.getState().columnFilters.length>0;return e.jsxs("div",{className:"flex items-center justify-between",children:[l?e.jsx("p",{className:"text-sm text-muted-foreground",children:r("table.toolbar.sort.hint")}):e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Sr,{refetch:n}),e.jsx(D,{placeholder:r("table.toolbar.search"),value:s.getColumn("name")?.getFilterValue()??"",onChange:i=>s.getColumn("name")?.setFilterValue(i.target.value),className:"h-8 w-[250px]"}),c&&e.jsxs(V,{variant:"ghost",onClick:()=>s.resetColumnFilters(),children:[r("table.toolbar.reset"),e.jsx(Ae,{className:"ml-2 h-4 w-4"})]})]}),s.getRowCount()>0&&e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(V,{variant:l?"default":"outline",onClick:a,size:"sm",children:r(l?"table.toolbar.sort.save":"table.toolbar.sort.edit")})})]})}function nu(){const[s,n]=m.useState([]),[a,l]=m.useState([]),[r,c]=m.useState(!1),[i,u]=m.useState([]),[x,o]=m.useState({"drag-handle":!1}),[d,p]=m.useState({pageSize:20,pageIndex:0}),{refetch:T}=se({queryKey:["paymentList"],queryFn:async()=>{const{data:j}=await Qc();return u(j?.map(C=>({...C,enable:!!C.enable}))||[]),j}});m.useEffect(()=>{o({"drag-handle":r,actions:!r}),p({pageSize:r?99999:10,pageIndex:0})},[r]);const R=(j,C)=>{r&&(j.dataTransfer.setData("text/plain",C.toString()),j.currentTarget.classList.add("opacity-50"))},f=(j,C)=>{if(!r)return;j.preventDefault(),j.currentTarget.classList.remove("bg-muted");const k=parseInt(j.dataTransfer.getData("text/plain"));if(k===C)return;const v=[...i],[P]=v.splice(k,1);v.splice(C,0,P),u(v)},g=async()=>{r?ad({ids:i.map(j=>j.id)}).then(()=>{T(),c(!1),q.success("排序保存成功")}):c(!0)},S=Ke({data:i,columns:tu({refetch:T,isSortMode:r}),state:{sorting:a,columnFilters:s,columnVisibility:x,pagination:d},onSortingChange:l,onColumnFiltersChange:n,onColumnVisibilityChange:o,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),getSortedRowModel:Ze(),initialState:{columnPinning:{right:["actions"]}},pageCount:r?1:void 0});return e.jsx(es,{table:S,toolbar:j=>e.jsx(au,{table:j,refetch:T,saveOrder:g,isSortMode:r}),draggable:r,onDragStart:R,onDragEnd:j=>j.currentTarget.classList.remove("opacity-50"),onDragOver:j=>{j.preventDefault(),j.currentTarget.classList.add("bg-muted")},onDragLeave:j=>j.currentTarget.classList.remove("bg-muted"),onDrop:f,showPagination:!r})}function ru(){const{t:s}=I("payment");return e.jsxs(we,{children:[e.jsxs(Ce,{className:"flex items-center justify-between",children:[e.jsx(Ie,{}),e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{children:[e.jsx("header",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("div",{className:"mb-2",children:e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:s("title")})}),e.jsx("p",{className:"text-muted-foreground",children:s("description")})]})}),e.jsx("section",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx(nu,{})})]})]})}const lu=Object.freeze(Object.defineProperty({__proto__:null,default:ru},Symbol.toStringTag,{value:"Module"}));function ou({pluginName:s,onClose:n,onSuccess:a}){const{t:l}=I("plugin"),[r,c]=m.useState(!0),[i,u]=m.useState(!1),[x,o]=m.useState(null),d=ui({config:xi(hi())}),p=de({resolver:me(d),defaultValues:{config:{}}});m.useEffect(()=>{(async()=>{try{const{data:g}=await Ds.getPluginConfig(s);o(g),p.reset({config:Object.fromEntries(Object.entries(g).map(([S,j])=>[S,j.value]))})}catch{q.error(l("messages.configLoadError"))}finally{c(!1)}})()},[s]);const T=async f=>{u(!0);try{await Ds.updatePluginConfig(s,f.config),q.success(l("messages.configSaveSuccess")),a()}catch{q.error(l("messages.configSaveError"))}finally{u(!1)}},R=(f,g)=>{switch(g.type){case"string":return e.jsx(y,{control:p.control,name:`config.${f}`,render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{children:g.label||g.description}),e.jsx(w,{children:e.jsx(D,{placeholder:g.placeholder,...S})}),g.description&&g.label&&e.jsx("p",{className:"text-sm text-muted-foreground",children:g.description}),e.jsx(E,{})]})},f);case"number":case"percentage":return e.jsx(y,{control:p.control,name:`config.${f}`,render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{children:g.label||g.description}),e.jsx(w,{children:e.jsxs("div",{className:"relative",children:[e.jsx(D,{type:"number",placeholder:g.placeholder,...S,onChange:j=>{const C=Number(j.target.value);g.type==="percentage"?S.onChange(Math.min(100,Math.max(0,C))):S.onChange(C)},className:g.type==="percentage"?"pr-8":"",min:g.type==="percentage"?0:void 0,max:g.type==="percentage"?100:void 0,step:g.type==="percentage"?1:void 0}),g.type==="percentage"&&e.jsx("div",{className:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3",children:e.jsx(fi,{className:"h-4 w-4 text-muted-foreground"})})]})}),g.description&&g.label&&e.jsx("p",{className:"text-sm text-muted-foreground",children:g.description}),e.jsx(E,{})]})},f);case"select":return e.jsx(y,{control:p.control,name:`config.${f}`,render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{children:g.label||g.description}),e.jsxs(G,{onValueChange:S.onChange,defaultValue:S.value,children:[e.jsx(w,{children:e.jsx(U,{children:e.jsx(W,{placeholder:g.placeholder})})}),e.jsx(B,{children:g.options?.map(j=>e.jsx(L,{value:j.value,children:j.label},j.value))})]}),g.description&&g.label&&e.jsx("p",{className:"text-sm text-muted-foreground",children:g.description}),e.jsx(E,{})]})},f);case"boolean":return e.jsx(y,{control:p.control,name:`config.${f}`,render:({field:S})=>e.jsxs(b,{className:"flex flex-row items-center justify-between rounded-lg border p-4",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(N,{className:"text-base",children:g.label||g.description}),g.description&&g.label&&e.jsx("p",{className:"text-sm text-muted-foreground",children:g.description})]}),e.jsx(w,{children:e.jsx(H,{checked:S.value,onCheckedChange:S.onChange})})]})},f);case"text":return e.jsx(y,{control:p.control,name:`config.${f}`,render:({field:S})=>e.jsxs(b,{children:[e.jsx(N,{children:g.label||g.description}),e.jsx(w,{children:e.jsx(ps,{placeholder:g.placeholder,...S})}),g.description&&g.label&&e.jsx("p",{className:"text-sm text-muted-foreground",children:g.description}),e.jsx(E,{})]})},f);default:return null}};return r?e.jsxs("div",{className:"space-y-4",children:[e.jsx(le,{className:"h-4 w-[200px]"}),e.jsx(le,{className:"h-10 w-full"}),e.jsx(le,{className:"h-4 w-[200px]"}),e.jsx(le,{className:"h-10 w-full"})]}):e.jsx(ue,{...p,children:e.jsxs("form",{onSubmit:p.handleSubmit(T),className:"space-y-4",children:[x&&Object.entries(x).map(([f,g])=>R(f,g)),e.jsxs("div",{className:"flex justify-end space-x-2",children:[e.jsx(V,{type:"button",variant:"outline",onClick:n,disabled:i,children:l("config.cancel")}),e.jsx(V,{type:"submit",loading:i,disabled:i,children:l("config.save")})]})]})})}function iu(){const{t:s}=I("plugin"),[n,a]=m.useState(null),[l,r]=m.useState(!1),[c,i]=m.useState(null),[u,x]=m.useState(""),[o,d]=m.useState("all"),{data:p,isLoading:T,refetch:R}=se({queryKey:["pluginList"],queryFn:async()=>{const{data:v}=await Ds.getPluginList();return v}}),f=p?["all",...new Set(p.map(v=>v.category||"other"))]:["all"],g=p?.filter(v=>{const P=v.name.toLowerCase().includes(u.toLowerCase())||v.description.toLowerCase().includes(u.toLowerCase())||v.code.toLowerCase().includes(u.toLowerCase()),z=o==="all"||v.category===o;return P&&z}),S=async v=>{a(v),Ds.installPlugin(v).then(()=>{q.success(s("messages.installSuccess")),R()}).catch(P=>{q.error(P.message||s("messages.installError"))}).finally(()=>{a(null)})},j=async v=>{a(v),Ds.uninstallPlugin(v).then(()=>{q.success(s("messages.uninstallSuccess")),R()}).catch(P=>{q.error(P.message||s("messages.uninstallError"))}).finally(()=>{a(null)})},C=async(v,P)=>{a(v),(P?Ds.disablePlugin:Ds.enablePlugin)(v).then(()=>{q.success(s(P?"messages.disableSuccess":"messages.enableSuccess")),R()}).catch(Q=>{q.error(Q.message||s(P?"messages.disableError":"messages.enableError"))}).finally(()=>{a(null)})},k=v=>{p?.find(P=>P.code===v),i(v),r(!0)};return e.jsxs(we,{children:[e.jsxs(Ce,{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx(ia,{className:"h-6 w-6"}),e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:s("title")})]}),e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{children:[e.jsxs("div",{className:"mb-8 space-y-4",children:[e.jsxs("div",{className:"flex flex-col gap-4 md:flex-row md:items-center md:justify-between",children:[e.jsxs("div",{className:"relative max-w-sm flex-1",children:[e.jsx(gn,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(D,{placeholder:s("search.placeholder"),value:u,onChange:v=>x(v.target.value),className:"pl-9"})]}),e.jsxs(G,{value:o,onValueChange:d,children:[e.jsx(U,{className:"w-[180px]",children:e.jsx(W,{placeholder:s("category.placeholder")})}),e.jsx(B,{children:f.map(v=>e.jsx(L,{value:v,children:s(`category.${v}`)},v))})]})]}),e.jsxs(ha,{defaultValue:"all",className:"w-full",children:[e.jsxs(Ot,{children:[e.jsx(Ns,{value:"all",children:s("tabs.all")}),e.jsx(Ns,{value:"installed",children:s("tabs.installed")}),e.jsx(Ns,{value:"available",children:s("tabs.available")})]}),e.jsx(bt,{value:"all",className:"mt-6",children:e.jsx("div",{className:"space-y-4",children:T?e.jsxs(e.Fragment,{children:[e.jsx(Ht,{}),e.jsx(Ht,{}),e.jsx(Ht,{})]}):g?.map(v=>e.jsx(Kt,{plugin:v,onInstall:S,onUninstall:j,onToggleEnable:C,onOpenConfig:k,isLoading:n===v.name},v.name))})}),e.jsx(bt,{value:"installed",className:"mt-6",children:e.jsx("div",{className:"space-y-4",children:g?.filter(v=>v.is_installed).map(v=>e.jsx(Kt,{plugin:v,onInstall:S,onUninstall:j,onToggleEnable:C,onOpenConfig:k,isLoading:n===v.name},v.name))})}),e.jsx(bt,{value:"available",className:"mt-6",children:e.jsx("div",{className:"space-y-4",children:g?.filter(v=>!v.is_installed).map(v=>e.jsx(Kt,{plugin:v,onInstall:S,onUninstall:j,onToggleEnable:C,onOpenConfig:k,isLoading:n===v.name},v.code))})})]})]}),e.jsx(pe,{open:l,onOpenChange:r,children:e.jsxs(fe,{className:"sm:max-w-lg",children:[e.jsxs(be,{children:[e.jsxs(ge,{children:[p?.find(v=>v.code===c)?.name," ",s("config.title")]}),e.jsx(Te,{children:s("config.description")})]}),c&&e.jsx(ou,{pluginName:c,onClose:()=>r(!1),onSuccess:()=>{r(!1),R()}})]})})]})]})}function Kt({plugin:s,onInstall:n,onUninstall:a,onToggleEnable:l,onOpenConfig:r,isLoading:c}){const{t:i}=I("plugin");return e.jsxs(Me,{className:"group relative overflow-hidden transition-all hover:shadow-md",children:[e.jsxs($e,{children:[e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(cs,{children:s.name}),s.is_installed&&e.jsx(K,{variant:s.is_enabled?"success":"secondary",children:s.is_enabled?i("status.enabled"):i("status.disabled")})]}),e.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(ia,{className:"h-4 w-4"}),e.jsx("code",{className:"rounded bg-muted px-1 py-0.5",children:s.code})]}),e.jsxs("div",{children:["v",s.version]})]})]})}),e.jsx(Hs,{children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"mt-2",children:s.description}),e.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:e.jsxs("div",{className:"flex items-center gap-1",children:[i("author"),": ",s.author]})})]})})]}),e.jsx(qe,{children:e.jsx("div",{className:"flex items-center justify-end space-x-2",children:s.is_installed?e.jsxs(e.Fragment,{children:[e.jsxs(V,{variant:"outline",size:"sm",onClick:()=>r(s.code),disabled:!s.is_enabled||c,children:[e.jsx(pi,{className:"mr-2 h-4 w-4"}),i("button.config")]}),e.jsxs(V,{variant:s.is_enabled?"destructive":"default",size:"sm",onClick:()=>l(s.code,s.is_enabled),disabled:c,children:[e.jsx(gi,{className:"mr-2 h-4 w-4"}),s.is_enabled?i("button.disable"):i("button.enable")]}),e.jsx(Ue,{title:i("uninstall.title"),description:i("uninstall.description"),confirmText:i("uninstall.button"),variant:"destructive",onConfirm:()=>a(s.code),children:e.jsx(V,{variant:"ghost",size:"icon",className:"h-8 w-8 text-muted-foreground hover:text-destructive",disabled:c,children:e.jsx(ns,{className:"h-4 w-4"})})})]}):e.jsx(V,{onClick:()=>n(s.code),disabled:c,loading:c,children:i("button.install")})})})]})}function Ht(){return e.jsxs(Me,{children:[e.jsxs($e,{children:[e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(le,{className:"h-6 w-[200px]"}),e.jsx(le,{className:"h-6 w-[80px]"})]}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(le,{className:"h-5 w-[120px]"}),e.jsx(le,{className:"h-5 w-[60px]"})]})]})}),e.jsxs("div",{className:"space-y-2 pt-2",children:[e.jsx(le,{className:"h-4 w-[300px]"}),e.jsx(le,{className:"h-4 w-[150px]"})]})]}),e.jsx(qe,{children:e.jsxs("div",{className:"flex justify-end space-x-2",children:[e.jsx(le,{className:"h-9 w-[100px]"}),e.jsx(le,{className:"h-9 w-[100px]"}),e.jsx(le,{className:"h-8 w-8"})]})})]})}const cu=Object.freeze(Object.defineProperty({__proto__:null,default:iu},Symbol.toStringTag,{value:"Module"})),du=(s,n)=>{let a=null;switch(s.field_type){case"input":a=e.jsx(D,{placeholder:s.placeholder,...n});break;case"textarea":a=e.jsx(ps,{placeholder:s.placeholder,...n});break;case"select":a=e.jsx("select",{className:_(Us({variant:"outline"}),"w-full appearance-none font-normal"),...n,children:s.select_options&&Object.keys(s.select_options).map(l=>e.jsx("option",{value:l,children:s.select_options?.[l]},l))});break;default:a=null;break}return a};function mu({themeKey:s,themeInfo:n}){const{t:a}=I("theme"),[l,r]=m.useState(!1),[c,i]=m.useState(!1),[u,x]=m.useState(!1),o=de({defaultValues:n.configs.reduce((T,R)=>(T[R.field_name]="",T),{})}),d=async()=>{i(!0),Oc(s).then(({data:T})=>{Object.entries(T).forEach(([R,f])=>{o.setValue(R,f)})}).finally(()=>{i(!1)})},p=async T=>{x(!0),zc(s,T).then(()=>{q.success(a("config.success")),r(!1)}).finally(()=>{x(!1)})};return e.jsxs(pe,{open:l,onOpenChange:T=>{r(T),T?d():o.reset()},children:[e.jsx(ze,{asChild:!0,children:e.jsx(V,{variant:"outline",children:a("card.configureTheme")})}),e.jsxs(fe,{className:"max-h-[90vh] overflow-auto sm:max-w-[425px]",children:[e.jsxs(be,{children:[e.jsx(ge,{children:a("config.title",{name:n.name})}),e.jsx(Te,{children:a("config.description")})]}),c?e.jsx("div",{className:"flex h-40 items-center justify-center",children:e.jsx(da,{className:"h-6 w-6 animate-spin"})}):e.jsx(ue,{...o,children:e.jsxs("form",{onSubmit:o.handleSubmit(p),className:"space-y-4",children:[n.configs.map(T=>e.jsx(y,{control:o.control,name:T.field_name,render:({field:R})=>e.jsxs(b,{children:[e.jsx(N,{children:T.label}),e.jsx(w,{children:du(T,R)}),e.jsx(E,{})]})},T.field_name)),e.jsxs(Le,{className:"mt-6 gap-2",children:[e.jsx(V,{type:"button",variant:"secondary",onClick:()=>r(!1),children:a("config.cancel")}),e.jsx(V,{type:"submit",loading:u,children:a("config.save")})]})]})})]})]})}function uu(){const{t:s}=I("theme"),[n,a]=m.useState(null),[l,r]=m.useState(!1),[c,i]=m.useState(!1),[u,x]=m.useState(!1),[o,d]=m.useState(null),p=m.useRef(null),[T,R]=m.useState(0),{data:f,isLoading:g,refetch:S}=se({queryKey:["themeList"],queryFn:async()=>{const{data:$}=await Mc();return $}}),j=async $=>{a($),$c({frontend_theme:$}).then(()=>{q.success("主题切换成功"),S()}).finally(()=>{a(null)})},C=async $=>{if(!$.name.endsWith(".zip")){q.error(s("upload.error.format"));return}r(!0),Lc($).then(()=>{q.success("主题上传成功"),i(!1),S()}).finally(()=>{r(!1),p.current&&(p.current.value="")})},k=$=>{$.preventDefault(),$.stopPropagation(),$.type==="dragenter"||$.type==="dragover"?x(!0):$.type==="dragleave"&&x(!1)},v=$=>{$.preventDefault(),$.stopPropagation(),x(!1),$.dataTransfer.files&&$.dataTransfer.files[0]&&C($.dataTransfer.files[0])},P=()=>{o&&R($=>$===0?o.images.length-1:$-1)},z=()=>{o&&R($=>$===o.images.length-1?0:$+1)},Q=($,X)=>{R(0),d({name:$,images:X})};return e.jsxs(we,{children:[e.jsxs(Ce,{className:"flex items-center justify-between",children:[e.jsx(Ie,{}),e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"",children:[e.jsxs("header",{className:"mb-8",children:[e.jsx("div",{className:"mb-2",children:e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:s("title")})}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"text-muted-foreground",children:s("description")}),e.jsxs(V,{onClick:()=>i(!0),variant:"outline",className:"ml-4 shrink-0",size:"sm",children:[e.jsx(Yt,{className:"mr-2 h-4 w-4"}),s("upload.button")]})]})]}),e.jsx("section",{className:"grid gap-6 md:grid-cols-1 lg:grid-cols-2 xl:grid-cols-3",children:g?e.jsxs(e.Fragment,{children:[e.jsx(Ua,{}),e.jsx(Ua,{})]}):f?.themes&&Object.entries(f.themes).map(([$,X])=>e.jsx(Me,{className:"group relative overflow-hidden transition-all hover:shadow-md",style:{backgroundImage:X.background_url?`url(${X.background_url})`:"none",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsxs("div",{className:_("relative z-10 h-full transition-colors",X.background_url?"group-hover:from-background/98 bg-gradient-to-t from-background/95 via-background/80 to-background/60 backdrop-blur-[1px] group-hover:via-background/90 group-hover:to-background/70":"bg-background"),children:[!!X.can_delete&&e.jsx("div",{className:"absolute right-2 top-2",children:e.jsx(Ue,{title:s("card.delete.title"),description:s("card.delete.description"),confirmText:s("card.delete.button"),variant:"destructive",onConfirm:async()=>{if($===f?.active){q.error(s("card.delete.error.active"));return}a($),Ac($).then(()=>{q.success("主题删除成功"),S()}).finally(()=>{a(null)})},children:e.jsx(V,{disabled:n===$,loading:n===$,variant:"ghost",size:"icon",className:"h-8 w-8 text-muted-foreground hover:text-destructive",children:e.jsx(ns,{className:"h-4 w-4"})})})}),e.jsxs($e,{children:[e.jsx(cs,{children:X.name}),e.jsx(Hs,{children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{children:X.description}),X.version&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("card.version",{version:X.version})})]})})]}),e.jsxs(qe,{className:"flex items-center justify-end space-x-3",children:[X.images&&Array.isArray(X.images)&&X.images.length>0&&e.jsx(V,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>Q(X.name,X.images),children:e.jsx(ji,{className:"h-4 w-4"})}),e.jsx(mu,{themeKey:$,themeInfo:X}),e.jsx(V,{onClick:()=>j($),disabled:n===$||$===f.active,loading:n===$,variant:$===f.active?"secondary":"default",children:$===f.active?s("card.currentTheme"):s("card.activateTheme")})]})]})},$))}),e.jsx(pe,{open:c,onOpenChange:i,children:e.jsxs(fe,{className:"sm:max-w-md",children:[e.jsxs(be,{children:[e.jsx(ge,{children:s("upload.title")}),e.jsx(Te,{children:s("upload.description")})]}),e.jsxs("div",{className:_("relative mt-4 flex h-64 flex-col items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 px-5 py-10 text-center transition-colors",u&&"border-primary/50 bg-muted/50"),onDragEnter:k,onDragLeave:k,onDragOver:k,onDrop:v,children:[e.jsx("input",{type:"file",ref:p,className:"hidden",accept:".zip",onChange:$=>{const X=$.target.files?.[0];X&&C(X)}}),l?e.jsxs("div",{className:"flex flex-col items-center space-y-2",children:[e.jsx("div",{className:"h-10 w-10 animate-spin rounded-full border-b-2 border-primary"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:s("upload.uploading")})]}):e.jsx(e.Fragment,{children:e.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[e.jsx("div",{className:"rounded-full border-2 border-muted-foreground/25 p-3",children:e.jsx(Yt,{className:"h-6 w-6 text-muted-foreground/50"})}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"text-sm font-medium",children:[s("upload.dragText")," ",e.jsx("button",{type:"button",onClick:()=>p.current?.click(),className:"mx-1 text-primary hover:underline",children:s("upload.clickText")})]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:s("upload.supportText")})]})]})})]})]})}),e.jsx(pe,{open:!!o,onOpenChange:$=>{$||(d(null),R(0))},children:e.jsxs(fe,{className:"max-w-4xl",children:[e.jsxs(be,{children:[e.jsxs(ge,{children:[o?.name," ",s("preview.title")]}),e.jsx(Te,{className:"text-center",children:o&&s("preview.imageCount",{current:T+1,total:o.images.length})})]}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"aspect-[16/9] overflow-hidden rounded-lg border bg-muted",children:o?.images[T]&&e.jsx("img",{src:o.images[T],alt:`${o.name} 预览图 ${T+1}`,className:"h-full w-full object-contain"})}),o&&o.images.length>1&&e.jsxs(e.Fragment,{children:[e.jsx(V,{variant:"outline",size:"icon",className:"absolute left-4 top-1/2 h-8 w-8 -translate-y-1/2 rounded-full bg-background/80 hover:bg-background",onClick:P,children:e.jsx(vi,{className:"h-4 w-4"})}),e.jsx(V,{variant:"outline",size:"icon",className:"absolute right-4 top-1/2 h-8 w-8 -translate-y-1/2 rounded-full bg-background/80 hover:bg-background",onClick:z,children:e.jsx(bi,{className:"h-4 w-4"})})]})]}),o&&o.images.length>1&&e.jsx("div",{className:"mt-4 flex gap-2 overflow-x-auto pb-2",children:o.images.map(($,X)=>e.jsx("button",{onClick:()=>R(X),className:_("relative h-16 w-16 flex-shrink-0 overflow-hidden rounded-md border-2",T===X?"border-primary":"border-transparent"),children:e.jsx("img",{src:$,alt:`缩略图 ${X+1}`,className:"h-full w-full object-cover"})},X))})]})})]})]})}function Ua(){return e.jsxs(Me,{children:[e.jsxs($e,{children:[e.jsx(le,{className:"h-6 w-[200px]"}),e.jsx(le,{className:"h-4 w-[300px]"})]}),e.jsxs(qe,{className:"flex items-center justify-end space-x-3",children:[e.jsx(le,{className:"h-10 w-[100px]"}),e.jsx(le,{className:"h-10 w-[100px]"})]})]})}const xu=Object.freeze(Object.defineProperty({__proto__:null,default:uu},Symbol.toStringTag,{value:"Module"})),va=m.forwardRef(({className:s,value:n,onChange:a,...l},r)=>{const[c,i]=m.useState("");m.useEffect(()=>{if(c.includes(",")){const x=new Set([...n,...c.split(",").map(o=>o.trim())]);a(Array.from(x)),i("")}},[c,a,n]);const u=()=>{if(c){const x=new Set([...n,c]);a(Array.from(x)),i("")}};return e.jsxs("div",{className:_(" has-[:focus-visible]:outline-none has-[:focus-visible]:ring-1 has-[:focus-visible]:ring-neutral-950 dark:has-[:focus-visible]:ring-neutral-300 flex w-full flex-wrap gap-2 rounded-md border border-input shadow-sm px-3 py-2 text-sm ring-offset-white disabled:cursor-not-allowed disabled:opacity-50",s),children:[n.map(x=>e.jsxs(K,{variant:"secondary",children:[x,e.jsx(J,{variant:"ghost",size:"icon",className:"ml-2 h-3 w-3",onClick:()=>{a(n.filter(o=>o!==x))},children:e.jsx(Zt,{className:"w-3"})})]},x)),e.jsx("input",{className:"flex-1 outline-none placeholder:text-muted-foreground bg-transparent",value:c,onChange:x=>i(x.target.value),onKeyDown:x=>{x.key==="Enter"||x.key===","?(x.preventDefault(),u()):x.key==="Backspace"&&c.length===0&&n.length>0&&(x.preventDefault(),a(n.slice(0,-1)))},...l,ref:r})]})});va.displayName="InputTags";const hu=h.object({id:h.number().nullable(),title:h.string().min(1).max(250),content:h.string().min(1),show:h.boolean(),tags:h.array(h.string()),img_url:h.string().nullable()}),fu={id:null,show:!1,tags:[],img_url:"",title:"",content:""};function Mr({refetch:s,dialogTrigger:n,type:a="add",defaultFormValues:l=fu}){const{t:r}=I("notice"),[c,i]=m.useState(!1),u=de({resolver:me(hu),defaultValues:l,mode:"onChange",shouldFocusError:!0}),x=new ma({html:!0});return e.jsx(ue,{...u,children:e.jsxs(pe,{onOpenChange:i,open:c,children:[e.jsx(ze,{asChild:!0,children:n||e.jsxs(V,{variant:"outline",size:"sm",className:"space-x-2",children:[e.jsx(Se,{icon:"ion:add"})," ",e.jsx("div",{children:r("form.add.button")})]})}),e.jsxs(fe,{className:"sm:max-w-[1025px]",children:[e.jsxs(be,{children:[e.jsx(ge,{children:r(a==="add"?"form.add.title":"form.edit.title")}),e.jsx(Te,{})]}),e.jsx(y,{control:u.control,name:"title",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.title.label")}),e.jsx("div",{className:"relative ",children:e.jsx(w,{children:e.jsx(D,{placeholder:r("form.fields.title.placeholder"),...o})})}),e.jsx(E,{})]})}),e.jsx(y,{control:u.control,name:"content",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.content.label")}),e.jsx(w,{children:e.jsx(ua,{style:{height:"500px"},value:o.value,renderHTML:d=>x.render(d),onChange:({text:d})=>{o.onChange(d)}})}),e.jsx(E,{})]})}),e.jsx(y,{control:u.control,name:"img_url",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.img_url.label")}),e.jsx("div",{className:"relative",children:e.jsx(w,{children:e.jsx(D,{type:"text",placeholder:r("form.fields.img_url.placeholder"),...o,value:o.value||""})})}),e.jsx(E,{})]})}),e.jsx(y,{control:u.control,name:"show",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.show.label")}),e.jsx("div",{className:"relative py-2",children:e.jsx(w,{children:e.jsx(H,{checked:o.value,onCheckedChange:o.onChange})})}),e.jsx(E,{})]})}),e.jsx(y,{control:u.control,name:"tags",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.fields.tags.label")}),e.jsx(w,{children:e.jsx(va,{value:o.value,onChange:o.onChange,placeholder:r("form.fields.tags.placeholder"),className:"w-full"})}),e.jsx(E,{})]})}),e.jsxs(Le,{children:[e.jsx(mt,{asChild:!0,children:e.jsx(V,{type:"button",variant:"outline",children:r("form.buttons.cancel")})}),e.jsx(V,{type:"submit",onClick:o=>{o.preventDefault(),u.handleSubmit(async d=>{nd(d).then(({data:p})=>{p&&(q.success(r("form.buttons.success")),s(),i(!1))})})()},children:r("form.buttons.submit")})]})]})]})})}function pu({table:s,refetch:n,saveOrder:a,isSortMode:l}){const{t:r}=I("notice"),c=s.getState().columnFilters.length>0;return e.jsxs("div",{className:"flex items-center justify-between space-x-2 ",children:[e.jsxs("div",{className:"flex flex-1 items-center space-x-2",children:[!l&&e.jsx(Mr,{refetch:n}),!l&&e.jsx(D,{placeholder:r("table.toolbar.search"),value:s.getColumn("title")?.getFilterValue()??"",onChange:i=>s.getColumn("title")?.setFilterValue(i.target.value),className:"h-8 w-[150px] lg:w-[250px]"}),c&&!l&&e.jsxs(V,{variant:"ghost",onClick:()=>s.resetColumnFilters(),className:"h-9 px-2 lg:px-3",children:[r("table.toolbar.reset"),e.jsx(Ae,{className:"ml-2 h-4 w-4"})]})]}),s.getRowCount()>0&&e.jsx("div",{className:"flex items-center space-x-2",children:e.jsx(V,{variant:l?"default":"outline",onClick:a,className:"h-8",size:"sm",children:r(l?"table.toolbar.sort.save":"table.toolbar.sort.edit")})})]})}const gu=s=>{const{t:n}=I("notice");return[{id:"drag-handle",header:"",cell:()=>e.jsx("div",{className:"flex items-center justify-center",children:e.jsx(yi,{className:"h-4 w-4 text-muted-foreground cursor-move"})}),size:40,enableSorting:!1},{accessorKey:"id",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.id")}),cell:({row:a})=>e.jsx(K,{variant:"outline",className:"font-mono",children:a.getValue("id")}),enableSorting:!0,size:60},{accessorKey:"show",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.show")}),cell:({row:a})=>e.jsx("div",{className:"flex items-center",children:e.jsx(H,{defaultChecked:a.getValue("show"),onCheckedChange:async()=>{const{data:l}=await ld({id:a.original.id});l||s()}})}),enableSorting:!1,size:100},{accessorKey:"title",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.title")}),cell:({row:a})=>e.jsx("div",{className:"flex max-w-[500px] items-center",children:e.jsx("span",{className:"truncate font-medium",children:a.getValue("title")})}),enableSorting:!1,size:6e3},{id:"actions",header:({column:a})=>e.jsx(O,{className:"justify-end",column:a,title:n("table.columns.actions")}),cell:({row:a})=>e.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[e.jsx(Mr,{refetch:s,dialogTrigger:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-muted",children:[e.jsx(Is,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),e.jsx("span",{className:"sr-only",children:n("table.actions.edit")})]}),type:"edit",defaultFormValues:a.original}),e.jsx(Ue,{title:n("table.actions.delete.title"),description:n("table.actions.delete.description"),onConfirm:async()=>{rd({id:a.original.id}).then(()=>{q.success(n("table.actions.delete.success")),s()})},children:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-red-100 dark:hover:bg-red-900",children:[e.jsx(ns,{className:"h-4 w-4 text-muted-foreground hover:text-red-600 dark:hover:text-red-400"}),e.jsx("span",{className:"sr-only",children:n("table.actions.delete.title")})]})})]}),size:100}]};function ju(){const[s,n]=m.useState({}),[a,l]=m.useState({}),[r,c]=m.useState([]),[i,u]=m.useState([]),[x,o]=m.useState(!1),[d,p]=m.useState({}),[T,R]=m.useState({pageSize:50,pageIndex:0}),[f,g]=m.useState([]),{refetch:S}=se({queryKey:["notices"],queryFn:async()=>{const{data:P}=await qa.getList();return g(P),P}});m.useEffect(()=>{l({"drag-handle":x,content:!x,created_at:!x,actions:!x}),R({pageSize:x?99999:50,pageIndex:0})},[x]);const j=(P,z)=>{x&&(P.dataTransfer.setData("text/plain",z.toString()),P.currentTarget.classList.add("opacity-50"))},C=(P,z)=>{if(!x)return;P.preventDefault(),P.currentTarget.classList.remove("bg-muted");const Q=parseInt(P.dataTransfer.getData("text/plain"));if(Q===z)return;const $=[...f],[X]=$.splice(Q,1);$.splice(z,0,X),g($)},k=async()=>{if(!x){o(!0);return}qa.sort(f.map(P=>P.id)).then(()=>{q.success("排序保存成功"),o(!1),S()}).finally(()=>{o(!1)})},v=Ke({data:f??[],columns:gu(S),state:{sorting:i,columnVisibility:a,rowSelection:s,columnFilters:r,columnSizing:d,pagination:T},enableRowSelection:!0,onRowSelectionChange:n,onSortingChange:u,onColumnFiltersChange:c,onColumnVisibilityChange:l,onColumnSizingChange:p,onPaginationChange:R,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),getSortedRowModel:Ze(),getFacetedRowModel:us(),getFacetedUniqueValues:xs(),initialState:{columnPinning:{right:["actions"]}}});return e.jsx("div",{className:"space-y-4",children:e.jsx(es,{table:v,toolbar:P=>e.jsx(pu,{table:P,refetch:S,saveOrder:k,isSortMode:x}),draggable:x,onDragStart:j,onDragEnd:P=>P.currentTarget.classList.remove("opacity-50"),onDragOver:P=>{P.preventDefault(),P.currentTarget.classList.add("bg-muted")},onDragLeave:P=>P.currentTarget.classList.remove("bg-muted"),onDrop:C,showPagination:!x})})}function vu(){const{t:s}=I("notice");return e.jsxs(we,{children:[e.jsxs(Ce,{className:"flex items-center justify-between",children:[e.jsx(Ie,{}),e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsx("div",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("div",{className:"mb-2",children:e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:s("title")})}),e.jsx("p",{className:"text-muted-foreground",children:s("description")})]})}),e.jsx("div",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx(ju,{})})]})]})}const bu=Object.freeze(Object.defineProperty({__proto__:null,default:vu},Symbol.toStringTag,{value:"Module"})),yu=h.object({id:h.number().nullable(),language:h.string().max(250),category:h.string().max(250),title:h.string().min(1).max(250),body:h.string().min(1),show:h.boolean()}),Nu={id:null,language:"zh-CN",category:"",title:"",body:"",show:!1};function Or({refreshData:s,dialogTrigger:n,type:a="add",defaultFormValues:l=Nu}){const{t:r}=I("knowledge"),[c,i]=m.useState(!1),u=de({resolver:me(yu),defaultValues:l,mode:"onChange",shouldFocusError:!0}),x=new ma({html:!0});return m.useEffect(()=>{c&&l.id&&id(l.id).then(({data:o})=>{u.reset(o)})},[l.id,u,c]),e.jsxs(pe,{onOpenChange:i,open:c,children:[e.jsx(ze,{asChild:!0,children:n||e.jsxs(V,{variant:"outline",size:"sm",className:"space-x-2",children:[e.jsx(Se,{icon:"ion:add"})," ",e.jsx("div",{children:r("form.add")})]})}),e.jsxs(fe,{className:"sm:max-w-[1025px]",children:[e.jsxs(be,{children:[e.jsx(ge,{children:r(a==="add"?"form.add":"form.edit")}),e.jsx(Te,{})]}),e.jsxs(ue,{...u,children:[e.jsx(y,{control:u.control,name:"title",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.title")}),e.jsx("div",{className:"relative ",children:e.jsx(w,{children:e.jsx(D,{placeholder:r("form.titlePlaceholder"),...o})})}),e.jsx(E,{})]})}),e.jsx(y,{control:u.control,name:"category",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.category")}),e.jsx("div",{className:"relative ",children:e.jsx(w,{children:e.jsx(D,{placeholder:r("form.categoryPlaceholder"),...o})})}),e.jsx(E,{})]})}),e.jsx(y,{control:u.control,name:"language",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.language")}),e.jsx(w,{children:e.jsxs(G,{value:o.value,onValueChange:o.onChange,children:[e.jsx(U,{children:e.jsx(W,{placeholder:r("form.languagePlaceholder")})}),e.jsx(B,{children:[{value:"en-US"},{value:"ja-JP"},{value:"ko-KR"},{value:"vi-VN"},{value:"zh-CN"},{value:"zh-TW"}].map(d=>e.jsx(L,{value:d.value,className:"cursor-pointer",children:r(`languages.${d.value}`)},d.value))})]})})]})}),e.jsx(y,{control:u.control,name:"body",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.content")}),e.jsx(w,{children:e.jsx(ua,{style:{height:"500px"},value:o.value,renderHTML:d=>x.render(d),onChange:({text:d})=>{o.onChange(d)}})}),e.jsx(E,{})]})}),e.jsx(y,{control:u.control,name:"show",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.show")}),e.jsx("div",{className:"relative py-2",children:e.jsx(w,{children:e.jsx(H,{checked:o.value,onCheckedChange:o.onChange})})}),e.jsx(E,{})]})}),e.jsxs(Le,{children:[e.jsx(mt,{asChild:!0,children:e.jsx(V,{type:"button",variant:"outline",children:r("form.cancel")})}),e.jsx(V,{type:"submit",onClick:()=>{u.handleSubmit(o=>{cd(o).then(({data:d})=>{d&&(u.reset(),q.success(r("messages.operationSuccess")),i(!1),s())})})()},children:r("form.submit")})]})]})]})]})}function _u({column:s,title:n,options:a}){const l=s?.getFacetedUniqueValues(),r=new Set(s?.getFilterValue());return e.jsxs(rs,{children:[e.jsx(ls,{asChild:!0,children:e.jsxs(V,{variant:"outline",size:"sm",className:"h-8 border-dashed",children:[e.jsx(dt,{className:"mr-2 h-4 w-4"}),n,r?.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(ye,{orientation:"vertical",className:"mx-2 h-4"}),e.jsx(K,{variant:"secondary",className:"rounded-sm px-1 font-normal lg:hidden",children:r.size}),e.jsx("div",{className:"hidden space-x-1 lg:flex",children:r.size>2?e.jsxs(K,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:[r.size," selected"]}):a.filter(c=>r.has(c.value)).map(c=>e.jsx(K,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:c.label},c.value))})]})]})}),e.jsx(Xe,{className:"w-[200px] p-0",align:"start",children:e.jsxs(Cs,{children:[e.jsx(Fs,{placeholder:n}),e.jsxs(Ss,{children:[e.jsx(Ms,{children:"No results found."}),e.jsx(Oe,{children:a.map(c=>{const i=r.has(c.value);return e.jsxs(ke,{onSelect:()=>{i?r.delete(c.value):r.add(c.value);const u=Array.from(r);s?.setFilterValue(u.length?u:void 0)},children:[e.jsx("div",{className:_("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",i?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:e.jsx(Rs,{className:_("h-4 w-4")})}),c.icon&&e.jsx(c.icon,{className:"mr-2 h-4 w-4 text-muted-foreground"}),e.jsx("span",{children:c.label}),l?.get(c.value)&&e.jsx("span",{className:"ml-auto flex h-4 w-4 items-center justify-center font-mono text-xs",children:l.get(c.value)})]},c.value)})}),r.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(Gs,{}),e.jsx(Oe,{children:e.jsx(ke,{onSelect:()=>s?.setFilterValue(void 0),className:"justify-center text-center",children:"Clear filters"})})]})]})]})})]})}function wu({table:s,refetch:n,saveOrder:a,isSortMode:l}){const r=s.getState().columnFilters.length>0,{t:c}=I("knowledge");return e.jsxs("div",{className:"flex items-center justify-between",children:[l?e.jsx("p",{className:"text-sm text-muted-foreground",children:c("toolbar.sortModeHint")}):e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Or,{refreshData:n}),e.jsx(D,{placeholder:c("toolbar.searchPlaceholder"),value:s.getColumn("title")?.getFilterValue()??"",onChange:i=>s.getColumn("title")?.setFilterValue(i.target.value),className:"h-8 w-[250px]"}),s.getColumn("category")&&e.jsx(_u,{column:s.getColumn("category"),title:c("columns.category"),options:Array.from(new Set(s.getCoreRowModel().rows.map(i=>i.getValue("category")))).map(i=>({label:i,value:i}))}),r&&e.jsxs(V,{variant:"ghost",onClick:()=>s.resetColumnFilters(),children:[c("toolbar.reset"),e.jsx(Ae,{className:"ml-2 h-4 w-4"})]})]}),s.getRowCount()>0&&e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(V,{variant:l?"default":"outline",onClick:a,size:"sm",children:c(l?"toolbar.saveSort":"toolbar.editSort")})})]})}const Cu=({refetch:s,isSortMode:n=!1})=>{const{t:a}=I("knowledge");return[{id:"drag-handle",header:()=>null,cell:()=>e.jsx("div",{className:n?"cursor-move":"opacity-0",children:e.jsx(Rt,{className:"size-4"})}),size:40,enableSorting:!1},{accessorKey:"id",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.id")}),cell:({row:l})=>e.jsx(K,{variant:"outline",className:"justify-center",children:l.getValue("id")}),enableSorting:!0,size:70},{accessorKey:"show",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.status")}),cell:({row:l})=>e.jsx("div",{className:"flex items-center",children:e.jsx(H,{defaultChecked:l.getValue("show"),onCheckedChange:async()=>{md({id:l.original.id}).then(({data:r})=>{r||s()})}})}),enableSorting:!1,size:100},{accessorKey:"title",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.title")}),cell:({row:l})=>e.jsx("div",{className:"flex space-x-2",children:e.jsx("span",{className:"line-clamp-2 font-medium",children:l.getValue("title")})}),enableSorting:!0,size:600},{accessorKey:"category",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.category")}),cell:({row:l})=>e.jsx(K,{variant:"secondary",className:"max-w-[180px] truncate",children:l.getValue("category")}),enableSorting:!0,size:1800},{id:"actions",header:({column:l})=>e.jsx(O,{className:"justify-end",column:l,title:a("columns.actions")}),cell:({row:l})=>e.jsxs("div",{className:"flex items-center justify-end space-x-1",children:[e.jsx(Or,{refreshData:s,dialogTrigger:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-muted",children:[e.jsx(Is,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),e.jsx("span",{className:"sr-only",children:a("form.edit")})]}),type:"edit",defaultFormValues:l.original}),e.jsx(Ue,{title:a("messages.deleteConfirm"),description:a("messages.deleteDescription"),confirmText:a("messages.deleteButton"),variant:"destructive",onConfirm:async()=>{dd({id:l.original.id}).then(({data:r})=>{r&&(q.success(a("messages.operationSuccess")),s())})},children:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-red-100 dark:hover:bg-red-900",children:[e.jsx(ns,{className:"h-4 w-4 text-muted-foreground hover:text-red-600 dark:hover:text-red-400"}),e.jsx("span",{className:"sr-only",children:a("messages.deleteButton")})]})})]}),size:100}]};function Su(){const[s,n]=m.useState([]),[a,l]=m.useState([]),[r,c]=m.useState(!1),[i,u]=m.useState([]),[x,o]=m.useState({"drag-handle":!1}),[d,p]=m.useState({pageSize:20,pageIndex:0}),{refetch:T,isLoading:R,data:f}=se({queryKey:["knowledge"],queryFn:async()=>{const{data:k}=await od();return u(k||[]),k}});m.useEffect(()=>{o({"drag-handle":r,actions:!r}),p({pageSize:r?99999:10,pageIndex:0})},[r]);const g=(k,v)=>{r&&(k.dataTransfer.setData("text/plain",v.toString()),k.currentTarget.classList.add("opacity-50"))},S=(k,v)=>{if(!r)return;k.preventDefault(),k.currentTarget.classList.remove("bg-muted");const P=parseInt(k.dataTransfer.getData("text/plain"));if(P===v)return;const z=[...i],[Q]=z.splice(P,1);z.splice(v,0,Q),u(z)},j=async()=>{r?ud({ids:i.map(k=>k.id)}).then(()=>{T(),c(!1),q.success("排序保存成功")}):c(!0)},C=Ke({data:i,columns:Cu({refetch:T,isSortMode:r}),state:{sorting:a,columnFilters:s,columnVisibility:x,pagination:d},onSortingChange:l,onColumnFiltersChange:n,onColumnVisibilityChange:o,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),getSortedRowModel:Ze(),initialState:{columnPinning:{right:["actions"]}}});return e.jsx(es,{table:C,toolbar:k=>e.jsx(wu,{table:k,refetch:T,saveOrder:j,isSortMode:r}),draggable:r,onDragStart:g,onDragEnd:k=>k.currentTarget.classList.remove("opacity-50"),onDragOver:k=>{k.preventDefault(),k.currentTarget.classList.add("bg-muted")},onDragLeave:k=>k.currentTarget.classList.remove("bg-muted"),onDrop:S,showPagination:!r})}function ku(){const{t:s}=I("knowledge");return e.jsxs(we,{children:[e.jsxs(Ce,{children:[e.jsx(Ie,{}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsx("div",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight mb-2",children:s("title")}),e.jsx("p",{className:"text-muted-foreground",children:s("description")})]})}),e.jsx("div",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx(Su,{})})]})]})}const Pu=Object.freeze(Object.defineProperty({__proto__:null,default:ku},Symbol.toStringTag,{value:"Module"}));function Tu(s,n){const[a,l]=m.useState(s);return m.useEffect(()=>{const r=setTimeout(()=>l(s),n);return()=>{clearTimeout(r)}},[s,n]),a}function Ut(s,n){if(s.length===0)return{};if(!n)return{"":s};const a={};return s.forEach(l=>{const r=l[n]||"";a[r]||(a[r]=[]),a[r].push(l)}),a}function Du(s,n){const a=JSON.parse(JSON.stringify(s));for(const[l,r]of Object.entries(a))a[l]=r.filter(c=>!n.find(i=>i.value===c.value));return a}function Eu(s,n){for(const[,a]of Object.entries(s))if(a.some(l=>n.find(r=>r.value===l.value)))return!0;return!1}const zr=m.forwardRef(({className:s,...n},a)=>Ni(r=>r.filtered.count===0)?e.jsx("div",{ref:a,className:_("py-6 text-center text-sm",s),"cmdk-empty":"",role:"presentation",...n}):null);zr.displayName="CommandEmpty";const ot=m.forwardRef(({value:s,onChange:n,placeholder:a,defaultOptions:l=[],options:r,delay:c,onSearch:i,loadingIndicator:u,emptyIndicator:x,maxSelected:o=Number.MAX_SAFE_INTEGER,onMaxSelected:d,hidePlaceholderWhenSelected:p,disabled:T,groupBy:R,className:f,badgeClassName:g,selectFirstItem:S=!0,creatable:j=!1,triggerSearchOnFocus:C=!1,commandProps:k,inputProps:v,hideClearAllButton:P=!1},z)=>{const Q=m.useRef(null),[$,X]=m.useState(!1),Ws=m.useRef(!1),[Ca,Sa]=m.useState(!1),[ee,Ys]=m.useState(s||[]),[ks,ka]=m.useState(Ut(l,R)),[gs,Lt]=m.useState(""),Js=Tu(gs,c||500);m.useImperativeHandle(z,()=>({selectedValue:[...ee],input:Q.current,focus:()=>Q.current?.focus()}),[ee]);const ut=m.useCallback(Y=>{const ae=ee.filter(Ve=>Ve.value!==Y.value);Ys(ae),n?.(ae)},[n,ee]),ol=m.useCallback(Y=>{const ae=Q.current;ae&&((Y.key==="Delete"||Y.key==="Backspace")&&ae.value===""&&ee.length>0&&(ee[ee.length-1].fixed||ut(ee[ee.length-1])),Y.key==="Escape"&&ae.blur())},[ut,ee]);m.useEffect(()=>{s&&Ys(s)},[s]),m.useEffect(()=>{if(!r||i)return;const Y=Ut(r||[],R);JSON.stringify(Y)!==JSON.stringify(ks)&&ka(Y)},[l,r,R,i,ks]),m.useEffect(()=>{const Y=async()=>{Sa(!0);const Ve=await i?.(Js);ka(Ut(Ve||[],R)),Sa(!1)};(async()=>{!i||!$||(C&&await Y(),Js&&await Y())})()},[Js,R,$,C]);const il=()=>{if(!j||Eu(ks,[{value:gs,label:gs}])||ee.find(ae=>ae.value===gs))return;const Y=e.jsx(ke,{value:gs,className:"cursor-pointer",onMouseDown:ae=>{ae.preventDefault(),ae.stopPropagation()},onSelect:ae=>{if(ee.length>=o){d?.(ee.length);return}Lt("");const Ve=[...ee,{value:ae,label:ae}];Ys(Ve),n?.(Ve)},children:`Create "${gs}"`});if(!i&&gs.length>0||i&&Js.length>0&&!Ca)return Y},cl=m.useCallback(()=>{if(x)return i&&!j&&Object.keys(ks).length===0?e.jsx(ke,{value:"-",disabled:!0,children:x}):e.jsx(zr,{children:x})},[j,x,i,ks]),dl=m.useMemo(()=>Du(ks,ee),[ks,ee]),ml=m.useCallback(()=>{if(k?.filter)return k.filter;if(j)return(Y,ae)=>Y.toLowerCase().includes(ae.toLowerCase())?1:-1},[j,k?.filter]),ul=m.useCallback(()=>{const Y=ee.filter(ae=>ae.fixed);Ys(Y),n?.(Y)},[n,ee]);return e.jsxs(Cs,{...k,onKeyDown:Y=>{ol(Y),k?.onKeyDown?.(Y)},className:_("h-auto overflow-visible bg-transparent",k?.className),shouldFilter:k?.shouldFilter!==void 0?k.shouldFilter:!i,filter:ml(),children:[e.jsx("div",{className:_("rounded-md border border-input text-sm ring-offset-background focus-within:ring-1 focus-within:ring-ring ",{"px-3 py-2":ee.length!==0,"cursor-text":!T&&ee.length!==0},f),onClick:()=>{T||Q.current?.focus()},children:e.jsxs("div",{className:"flex flex-wrap gap-1",children:[ee.map(Y=>e.jsxs(K,{className:_("data-[disabled]:bg-muted-foreground data-[disabled]:text-muted data-[disabled]:hover:bg-muted-foreground","data-[fixed]:bg-muted-foreground data-[fixed]:text-muted data-[fixed]:hover:bg-muted-foreground",g),"data-fixed":Y.fixed,"data-disabled":T||void 0,children:[Y.label,e.jsx("button",{className:_("ml-1 rounded-full outline-none ring-offset-background focus:ring-2 focus:ring-ring focus:ring-offset-2",(T||Y.fixed)&&"hidden"),onKeyDown:ae=>{ae.key==="Enter"&&ut(Y)},onMouseDown:ae=>{ae.preventDefault(),ae.stopPropagation()},onClick:()=>ut(Y),children:e.jsx(Zt,{className:"h-3 w-3 text-muted-foreground hover:text-foreground"})})]},Y.value)),e.jsx(De.Input,{...v,ref:Q,value:gs,disabled:T,onValueChange:Y=>{Lt(Y),v?.onValueChange?.(Y)},onBlur:Y=>{Ws.current===!1&&X(!1),v?.onBlur?.(Y)},onFocus:Y=>{X(!0),C&&i?.(Js),v?.onFocus?.(Y)},placeholder:p&&ee.length!==0?"":a,className:_("flex-1 bg-transparent outline-none placeholder:text-muted-foreground",{"w-full":p,"px-3 py-2":ee.length===0,"ml-1":ee.length!==0},v?.className)}),e.jsx("button",{type:"button",onClick:ul,className:_((P||T||ee.length<1||ee.filter(Y=>Y.fixed).length===ee.length)&&"hidden"),children:e.jsx(Zt,{})})]})}),e.jsx("div",{className:"relative",children:$&&e.jsx(Ss,{className:"absolute top-1 z-10 w-full rounded-md border bg-popover text-popover-foreground shadow-md outline-none animate-in",onMouseLeave:()=>{Ws.current=!1},onMouseEnter:()=>{Ws.current=!0},onMouseUp:()=>{Q.current?.focus()},children:Ca?e.jsx(e.Fragment,{children:u}):e.jsxs(e.Fragment,{children:[cl(),il(),!S&&e.jsx(ke,{value:"-",className:"hidden"}),Object.entries(dl).map(([Y,ae])=>e.jsx(Oe,{heading:Y,className:"h-full overflow-auto",children:e.jsx(e.Fragment,{children:ae.map(Ve=>e.jsx(ke,{value:Ve.value,disabled:Ve.disable,onMouseDown:Qs=>{Qs.preventDefault(),Qs.stopPropagation()},onSelect:()=>{if(ee.length>=o){d?.(ee.length);return}Lt("");const Qs=[...ee,Ve];Ys(Qs),n?.(Qs)},className:_("cursor-pointer",Ve.disable&&"cursor-default text-muted-foreground"),children:Ve.label},Ve.value))})},Y))]})})})]})});ot.displayName="MultipleSelector";const Ru=s=>h.object({id:h.number().optional(),name:h.string().min(2,s("messages.nameValidation.min")).max(50,s("messages.nameValidation.max")).regex(/^[a-zA-Z0-9\u4e00-\u9fa5_-]+$/,s("messages.nameValidation.pattern"))});function zt({refetch:s,dialogTrigger:n,defaultValues:a={name:""},type:l="add"}){const{t:r}=I("group"),c=de({resolver:me(Ru(r)),defaultValues:a,mode:"onChange"}),[i,u]=m.useState(!1),[x,o]=m.useState(!1),d=async p=>{o(!0),Gc(p).then(()=>{q.success(r(l==="edit"?"messages.updateSuccess":"messages.createSuccess")),s&&s(),c.reset(),u(!1)}).finally(()=>{o(!1)})};return e.jsxs(pe,{open:i,onOpenChange:u,children:[e.jsx(ze,{asChild:!0,children:n||e.jsxs(V,{variant:"outline",size:"sm",className:"space-x-2",children:[e.jsx(Se,{icon:"ion:add"}),e.jsx("span",{children:r("form.add")})]})}),e.jsxs(fe,{className:"sm:max-w-[425px]",children:[e.jsxs(be,{children:[e.jsx(ge,{children:r(l==="edit"?"form.edit":"form.create")}),e.jsx(Te,{children:r(l==="edit"?"form.editDescription":"form.createDescription")})]}),e.jsx(ue,{...c,children:e.jsxs("form",{onSubmit:c.handleSubmit(d),className:"space-y-4",children:[e.jsx(y,{control:c.control,name:"name",render:({field:p})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.name")}),e.jsx(w,{children:e.jsx(D,{placeholder:r("form.namePlaceholder"),...p,className:"w-full"})}),e.jsx(M,{children:r("form.nameDescription")}),e.jsx(E,{})]})}),e.jsxs(Le,{className:"gap-2",children:[e.jsx(mt,{asChild:!0,children:e.jsx(V,{type:"button",variant:"outline",children:r("form.cancel")})}),e.jsxs(V,{type:"submit",disabled:x||!c.formState.isValid,children:[x&&e.jsx(da,{className:"mr-2 h-4 w-4 animate-spin"}),r(l==="edit"?"form.update":"form.create")]})]})]})})]})]})}const Lr=m.createContext(void 0);function Vu({children:s,refetch:n}){const[a,l]=m.useState(!1),[r,c]=m.useState(null),[i,u]=m.useState(Ne.Shadowsocks);return e.jsx(Lr.Provider,{value:{isOpen:a,setIsOpen:l,editingServer:r,setEditingServer:c,serverType:i,setServerType:u,refetch:n},children:s})}function Ar(){const s=m.useContext(Lr);if(s===void 0)throw new Error("useServerEdit must be used within a ServerEditProvider");return s}function Bt({dialogTrigger:s,value:n,setValue:a,templateType:l}){const{t:r}=I("server");m.useEffect(()=>{console.log(n)},[n]);const[c,i]=m.useState(!1),[u,x]=m.useState(()=>{if(!n||Object.keys(n).length===0)return"";try{return JSON.stringify(n,null,2)}catch{return""}}),[o,d]=m.useState(null),p=j=>{if(!j)return null;try{const C=JSON.parse(j);return typeof C!="object"||C===null?r("network_settings.validation.must_be_object"):null}catch{return r("network_settings.validation.invalid_json")}},T={tcp:{label:"TCP",content:{acceptProxyProtocol:!1,header:{type:"none"}}},"tcp-http":{label:"TCP + HTTP",content:{acceptProxyProtocol:!1,header:{type:"http",request:{version:"1.1",method:"GET",path:["/"],headers:{Host:["www.example.com"]}},response:{version:"1.1",status:"200",reason:"OK"}}}},grpc:{label:"gRPC",content:{serviceName:"GunService"}},ws:{label:"WebSocket",content:{path:"/",headers:{Host:"v2ray.com"}}}},R=()=>{switch(l){case"tcp":return["tcp","tcp-http"];case"grpc":return["grpc"];case"ws":return["ws"];default:return[]}},f=()=>{const j=p(u||"");if(j){q.error(j);return}try{if(!u){a(null),i(!1);return}a(JSON.parse(u)),i(!1)}catch{q.error(r("network_settings.errors.save_failed"))}},g=j=>{x(j),d(p(j))},S=j=>{const C=T[j];if(C){const k=JSON.stringify(C.content,null,2);x(k),d(null)}};return m.useEffect(()=>{c&&console.log(n)},[c,n]),m.useEffect(()=>{c&&n&&Object.keys(n).length>0&&x(JSON.stringify(n,null,2))},[c,n]),e.jsxs(pe,{open:c,onOpenChange:j=>{!j&&c&&f(),i(j)},children:[e.jsx(ze,{asChild:!0,children:s??e.jsx(J,{variant:"link",children:r("network_settings.edit_protocol")})}),e.jsxs(fe,{className:"sm:max-w-[425px]",children:[e.jsx(be,{children:e.jsx(ge,{children:r("network_settings.edit_protocol_config")})}),e.jsxs("div",{className:"space-y-4",children:[R().length>0&&e.jsx("div",{className:"flex flex-wrap gap-2 pt-2",children:R().map(j=>e.jsx(J,{variant:"outline",size:"sm",onClick:()=>S(j),children:r("network_settings.use_template",{template:T[j].label})},j))}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ps,{className:`min-h-[200px] font-mono text-sm ${o?"border-red-500 focus-visible:ring-red-500":""}`,value:u,placeholder:R().length>0?r("network_settings.json_config_placeholder_with_template"):r("network_settings.json_config_placeholder"),onChange:j=>g(j.target.value)}),o&&e.jsx("p",{className:"text-sm text-red-500",children:o})]})]}),e.jsxs(Le,{className:"gap-2",children:[e.jsx(J,{variant:"outline",onClick:()=>i(!1),children:r("common.cancel")}),e.jsx(J,{onClick:f,disabled:!!o,children:r("common.confirm")})]})]})]})}function Vh(s){throw new Error('Could not dynamically require "'+s+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}const Iu={},Fu=Object.freeze(Object.defineProperty({__proto__:null,default:Iu},Symbol.toStringTag,{value:"Module"})),Ih=Mi(Fu),Ba=s=>s.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),Mu=()=>{try{const s=_i.box.keyPair(),n=Ba(Ia.encodeBase64(s.secretKey)),a=Ba(Ia.encodeBase64(s.publicKey));return{privateKey:n,publicKey:a}}catch(s){throw console.error("Error generating x25519 key pair:",s),s}},Ou=()=>{try{return Mu()}catch(s){throw console.error("Error generating key pair:",s),s}},zu=s=>{const n=new Uint8Array(Math.ceil(s/2));return window.crypto.getRandomValues(n),Array.from(n).map(a=>a.toString(16).padStart(2,"0")).join("").substring(0,s)},Lu=()=>{const s=Math.floor(Math.random()*8)*2+2;return zu(s)},Au=h.object({cipher:h.string().default("aes-128-gcm"),obfs:h.string().default("0"),obfs_settings:h.object({path:h.string().default(""),host:h.string().default("")}).default({})}),$u=h.object({tls:h.coerce.number().default(0),tls_settings:h.object({server_name:h.string().default(""),allow_insecure:h.boolean().default(!1)}).default({}),network:h.string().default("tcp"),network_settings:h.record(h.any()).default({})}),qu=h.object({server_name:h.string().default(""),allow_insecure:h.boolean().default(!1),network:h.string().default("tcp"),network_settings:h.record(h.any()).default({})}),Ku=h.object({version:h.coerce.number().default(2),alpn:h.string().default("h2"),obfs:h.object({open:h.coerce.boolean().default(!1),type:h.string().default("salamander"),password:h.string().default("")}).default({}),tls:h.object({server_name:h.string().default(""),allow_insecure:h.boolean().default(!1)}).default({}),bandwidth:h.object({up:h.string().default(""),down:h.string().default("")}).default({})}),Hu=h.object({tls:h.coerce.number().default(0),tls_settings:h.object({server_name:h.string().default(""),allow_insecure:h.boolean().default(!1)}).default({}),reality_settings:h.object({server_port:h.coerce.number().default(443),server_name:h.string().default(""),allow_insecure:h.boolean().default(!1),public_key:h.string().default(""),private_key:h.string().default(""),short_id:h.string().default("")}).default({}),network:h.string().default("tcp"),network_settings:h.record(h.any()).default({}),flow:h.string().default("")}),os={shadowsocks:{schema:Au,ciphers:["aes-128-gcm","aes-192-gcm","aes-256-gcm","chacha20-ietf-poly1305","2022-blake3-aes-128-gcm","2022-blake3-aes-256-gcm"]},vmess:{schema:$u,networkOptions:[{value:"tcp",label:"TCP"},{value:"ws",label:"Websocket"},{value:"grpc",label:"gRPC"}]},trojan:{schema:qu,networkOptions:[{value:"tcp",label:"TCP"},{value:"ws",label:"Websocket"},{value:"grpc",label:"gRPC"}]},hysteria:{schema:Ku,versions:["1","2"],alpnOptions:["hysteria","http/1.1","h2","h3"]},vless:{schema:Hu,networkOptions:[{value:"tcp",label:"TCP"},{value:"ws",label:"Websocket"},{value:"grpc",label:"gRPC"},{value:"kcp",label:"mKCP"},{value:"httpupgrade",label:"HttpUpgrade"},{value:"xhttp",label:"XHTTP"}],flowOptions:["none","xtls-rprx-direct","xtls-rprx-splice","xtls-rprx-vision"]}},Uu=({serverType:s,value:n,onChange:a})=>{const{t:l}=I("server"),r=s?os[s]:null,c=r?.schema||h.record(h.any()),i=s?c.parse({}):{},u=de({resolver:me(c),defaultValues:i,mode:"onChange"});if(m.useEffect(()=>{if(!n||Object.keys(n).length===0){if(s){const f=c.parse({});u.reset(f)}}else u.reset(n)},[s,n,a,u,c]),m.useEffect(()=>{const f=u.watch(g=>{a(g)});return()=>f.unsubscribe()},[u,a]),!s||!r)return null;const R={shadowsocks:()=>e.jsxs(e.Fragment,{children:[e.jsx(y,{control:u.control,name:"cipher",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.shadowsocks.cipher.label")}),e.jsx(w,{children:e.jsxs(G,{onValueChange:f.onChange,value:f.value,children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.shadowsocks.cipher.placeholder")})}),e.jsx(B,{children:e.jsx(js,{children:os.shadowsocks.ciphers.map(g=>e.jsx(L,{value:g,children:g},g))})})]})})]})}),e.jsx(y,{control:u.control,name:"obfs",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.shadowsocks.obfs.label")}),e.jsx(w,{children:e.jsxs(G,{onValueChange:f.onChange,value:f.value,children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.shadowsocks.obfs.placeholder")})}),e.jsx(B,{children:e.jsxs(js,{children:[e.jsx(L,{value:"0",children:l("dynamic_form.shadowsocks.obfs.none")}),e.jsx(L,{value:"http",children:l("dynamic_form.shadowsocks.obfs.http")})]})})]})})]})}),u.watch("obfs")==="http"&&e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{control:u.control,name:"obfs_settings.path",render:({field:f})=>e.jsxs(b,{className:"flex-1",children:[e.jsx(w,{children:e.jsx(D,{type:"text",placeholder:l("dynamic_form.shadowsocks.obfs_settings.path"),...f})}),e.jsx(E,{})]})}),e.jsx(y,{control:u.control,name:"obfs_settings.host",render:({field:f})=>e.jsxs(b,{className:"flex-[2]",children:[e.jsx(w,{children:e.jsx(D,{type:"text",placeholder:l("dynamic_form.shadowsocks.obfs_settings.host"),...f})}),e.jsx(E,{})]})})]})]}),vmess:()=>e.jsxs(e.Fragment,{children:[e.jsx(y,{control:u.control,name:"tls",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.vmess.tls.label")}),e.jsx(w,{children:e.jsxs(G,{value:f.value?.toString(),onValueChange:g=>f.onChange(Number(g)),children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.vmess.tls.placeholder")})}),e.jsxs(B,{children:[e.jsx(L,{value:"0",children:l("dynamic_form.vmess.tls.disabled")}),e.jsx(L,{value:"1",children:l("dynamic_form.vmess.tls.enabled")})]})]})})]})}),u.watch("tls")==1&&e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{control:u.control,name:"tls_settings.server_name",render:({field:f})=>e.jsxs(b,{className:"flex-[2]",children:[e.jsx(N,{children:l("dynamic_form.vmess.tls_settings.server_name.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:l("dynamic_form.vmess.tls_settings.server_name.placeholder"),...f})})]})}),e.jsx(y,{control:u.control,name:"tls_settings.allow_insecure",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.vmess.tls_settings.allow_insecure")}),e.jsx("div",{className:"py-2 text-center",children:e.jsx(w,{children:e.jsx(H,{checked:f.value,onCheckedChange:f.onChange})})})]})})]}),e.jsx(y,{control:u.control,name:"network",render:({field:f})=>e.jsxs(b,{children:[e.jsxs(N,{children:[l("dynamic_form.vmess.network.label"),e.jsx(Bt,{value:u.watch("network_settings"),setValue:g=>u.setValue("network_settings",g),templateType:u.watch("network")})]}),e.jsx(w,{children:e.jsxs(G,{onValueChange:f.onChange,value:f.value,children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.vmess.network.placeholder")})}),e.jsx(B,{children:e.jsx(js,{children:os.vmess.networkOptions.map(g=>e.jsx(L,{value:g.value,className:"cursor-pointer",children:g.label},g.value))})})]})})]})})]}),trojan:()=>e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{control:u.control,name:"server_name",render:({field:f})=>e.jsxs(b,{className:"flex-[2]",children:[e.jsx(N,{children:l("dynamic_form.trojan.server_name.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:l("dynamic_form.trojan.server_name.placeholder"),...f,value:f.value||""})})]})}),e.jsx(y,{control:u.control,name:"allow_insecure",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.trojan.allow_insecure")}),e.jsx("div",{className:"py-2 text-center",children:e.jsx(w,{children:e.jsx(H,{checked:f.value||!1,onCheckedChange:f.onChange})})})]})})]}),e.jsx(y,{control:u.control,name:"network",render:({field:f})=>e.jsxs(b,{children:[e.jsxs(N,{children:[l("dynamic_form.trojan.network.label"),e.jsx(Bt,{value:u.watch("network_settings")||{},setValue:g=>u.setValue("network_settings",g),templateType:u.watch("network")||"tcp"})]}),e.jsx(w,{children:e.jsxs(G,{onValueChange:f.onChange,value:f.value||"tcp",children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.trojan.network.placeholder")})}),e.jsx(B,{children:e.jsx(js,{children:os.trojan.networkOptions.map(g=>e.jsx(L,{value:g.value,className:"cursor-pointer",children:g.label},g.value))})})]})})]})})]}),hysteria:()=>e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{control:u.control,name:"version",render:({field:f})=>e.jsxs(b,{className:"flex-1",children:[e.jsx(N,{children:l("dynamic_form.hysteria.version.label")}),e.jsx(w,{children:e.jsxs(G,{value:(f.value||2).toString(),onValueChange:g=>f.onChange(Number(g)),children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.hysteria.version.placeholder")})}),e.jsx(B,{children:e.jsx(js,{children:os.hysteria.versions.map(g=>e.jsxs(L,{value:g,className:"cursor-pointer",children:["V",g]},g))})})]})})]})}),u.watch("version")==1&&e.jsx(y,{control:u.control,name:"alpn",render:({field:f})=>e.jsxs(b,{className:"flex-[2]",children:[e.jsx(N,{children:l("dynamic_form.hysteria.alpn.label")}),e.jsx(w,{children:e.jsxs(G,{value:f.value||"h2",onValueChange:f.onChange,children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.hysteria.alpn.placeholder")})}),e.jsx(B,{children:e.jsx(js,{children:os.hysteria.alpnOptions.map(g=>e.jsx(L,{value:g,children:g},g))})})]})})]})})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{control:u.control,name:"obfs.open",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.hysteria.obfs.label")}),e.jsx("div",{className:"py-2 text-center",children:e.jsx(w,{children:e.jsx(H,{checked:f.value||!1,onCheckedChange:f.onChange})})})]})}),!!u.watch("obfs.open")&&e.jsxs(e.Fragment,{children:[u.watch("version")=="2"&&e.jsx(y,{control:u.control,name:"obfs.type",render:({field:f})=>e.jsxs(b,{className:"flex-1",children:[e.jsx(N,{children:l("dynamic_form.hysteria.obfs.type.label")}),e.jsx(w,{children:e.jsxs(G,{value:f.value||"salamander",onValueChange:f.onChange,children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.hysteria.obfs.type.placeholder")})}),e.jsx(B,{children:e.jsx(js,{children:e.jsx(L,{value:"salamander",children:l("dynamic_form.hysteria.obfs.type.salamander")})})})]})})]})}),e.jsx(y,{control:u.control,name:"obfs.password",render:({field:f})=>e.jsxs(b,{className:u.watch("version")==2?"w-full":"flex-[2]",children:[e.jsx(N,{children:l("dynamic_form.hysteria.obfs.password.label")}),e.jsxs("div",{className:"relative",children:[e.jsx(w,{children:e.jsx(D,{placeholder:l("dynamic_form.hysteria.obfs.password.placeholder"),...f,value:f.value||"",className:"pr-9"})}),e.jsx(J,{type:"button",variant:"ghost",size:"icon",onClick:()=>{const g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",S=Array.from(crypto.getRandomValues(new Uint8Array(16))).map(j=>g[j%g.length]).join("");u.setValue("obfs.password",S),q.success(l("dynamic_form.hysteria.obfs.password.generate_success"))},className:"absolute right-0 top-0 h-full px-2 active:scale-90 transition-transform duration-150",children:e.jsx(Se,{icon:"ion:refresh-outline",className:"h-4 w-4 transition-transform hover:rotate-180 duration-300"})})]})]})})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{control:u.control,name:"tls.server_name",render:({field:f})=>e.jsxs(b,{className:"flex-[2]",children:[e.jsx(N,{children:l("dynamic_form.hysteria.tls.server_name.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:l("dynamic_form.hysteria.tls.server_name.placeholder"),...f,value:f.value||""})})]})}),e.jsx(y,{control:u.control,name:"tls.allow_insecure",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.hysteria.tls.allow_insecure")}),e.jsx("div",{className:"py-2 text-center",children:e.jsx(w,{children:e.jsx(H,{checked:f.value||!1,onCheckedChange:f.onChange})})})]})})]}),e.jsx(y,{control:u.control,name:"bandwidth.up",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.hysteria.bandwidth.up.label")}),e.jsxs("div",{className:"relative flex",children:[e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:l("dynamic_form.hysteria.bandwidth.up.placeholder")+(u.watch("version")==2?l("dynamic_form.hysteria.bandwidth.up.bbr_tip"):""),className:"rounded-br-none rounded-tr-none",...f,value:f.value||""})}),e.jsx("div",{className:"pointer-events-none z-[-1] flex items-center rounded-md rounded-bl-none rounded-tl-none border border-l-0 border-input px-3 shadow-sm",children:e.jsx("span",{className:"text-gray-500",children:l("dynamic_form.hysteria.bandwidth.up.suffix")})})]})]})}),e.jsx(y,{control:u.control,name:"bandwidth.down",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.hysteria.bandwidth.down.label")}),e.jsxs("div",{className:"relative flex",children:[e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:l("dynamic_form.hysteria.bandwidth.down.placeholder")+(u.watch("version")==2?l("dynamic_form.hysteria.bandwidth.down.bbr_tip"):""),className:"rounded-br-none rounded-tr-none",...f,value:f.value||""})}),e.jsx("div",{className:"pointer-events-none z-[-1] flex items-center rounded-md rounded-bl-none rounded-tl-none border border-l-0 border-input px-3 shadow-sm",children:e.jsx("span",{className:"text-gray-500",children:l("dynamic_form.hysteria.bandwidth.down.suffix")})})]})]})})]}),vless:()=>e.jsxs(e.Fragment,{children:[e.jsx(y,{control:u.control,name:"tls",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.vless.tls.label")}),e.jsx(w,{children:e.jsxs(G,{value:f.value?.toString(),onValueChange:g=>f.onChange(Number(g)),children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.vless.tls.placeholder")})}),e.jsxs(B,{children:[e.jsx(L,{value:"0",children:l("dynamic_form.vless.tls.none")}),e.jsx(L,{value:"1",children:l("dynamic_form.vless.tls.tls")}),e.jsx(L,{value:"2",children:l("dynamic_form.vless.tls.reality")})]})]})})]})}),u.watch("tls")=="1"&&e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{control:u.control,name:"tls_settings.server_name",render:({field:f})=>e.jsxs(b,{className:"flex-[2]",children:[e.jsx(N,{children:l("dynamic_form.vless.tls_settings.server_name.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:l("dynamic_form.vless.tls_settings.server_name.placeholder"),...f})})]})}),e.jsx(y,{control:u.control,name:"tls_settings.allow_insecure",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.vless.tls_settings.allow_insecure")}),e.jsx("div",{className:"py-2 text-center",children:e.jsx(w,{children:e.jsx(H,{checked:f.value,onCheckedChange:f.onChange})})})]})})]}),u.watch("tls")==2&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{control:u.control,name:"reality_settings.server_name",render:({field:f})=>e.jsxs(b,{className:"flex-[2]",children:[e.jsx(N,{children:l("dynamic_form.vless.reality_settings.server_name.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:l("dynamic_form.vless.reality_settings.server_name.placeholder"),...f})})]})}),e.jsx(y,{control:u.control,name:"reality_settings.server_port",render:({field:f})=>e.jsxs(b,{className:"flex-1",children:[e.jsx(N,{children:l("dynamic_form.vless.reality_settings.server_port.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:l("dynamic_form.vless.reality_settings.server_port.placeholder"),...f})})]})}),e.jsx(y,{control:u.control,name:"reality_settings.allow_insecure",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.vless.reality_settings.allow_insecure")}),e.jsx("div",{className:"py-2 text-center",children:e.jsx(w,{children:e.jsx(H,{checked:f.value,onCheckedChange:f.onChange})})})]})})]}),e.jsx("div",{className:"flex items-end gap-2",children:e.jsx(y,{control:u.control,name:"reality_settings.private_key",render:({field:f})=>e.jsxs(b,{className:"flex-1",children:[e.jsx(N,{children:l("dynamic_form.vless.reality_settings.private_key.label")}),e.jsxs("div",{className:"relative",children:[e.jsx(w,{children:e.jsx(D,{...f,className:"pr-9"})}),e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(J,{type:"button",variant:"ghost",size:"icon",onClick:()=>{try{const g=Ou();u.setValue("reality_settings.private_key",g.privateKey),u.setValue("reality_settings.public_key",g.publicKey),q.success(l("dynamic_form.vless.reality_settings.key_pair.success"))}catch{q.error(l("dynamic_form.vless.reality_settings.key_pair.error"))}},className:"absolute right-0 top-0 h-full px-2 active:scale-90 transition-transform duration-150",children:e.jsx(Se,{icon:"ion:key-outline",className:"h-4 w-4 transition-transform hover:rotate-180 duration-300"})})}),e.jsx(_t,{children:e.jsx(te,{children:e.jsx("p",{children:l("dynamic_form.vless.reality_settings.key_pair.generate")})})})]})]})]})})}),e.jsx(y,{control:u.control,name:"reality_settings.public_key",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.vless.reality_settings.public_key.label")}),e.jsx(w,{children:e.jsx(D,{...f})})]})}),e.jsx(y,{control:u.control,name:"reality_settings.short_id",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.vless.reality_settings.short_id.label")}),e.jsxs("div",{className:"relative",children:[e.jsx(w,{children:e.jsx(D,{...f,className:"pr-9",placeholder:l("dynamic_form.vless.reality_settings.short_id.placeholder")})}),e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(J,{type:"button",variant:"ghost",size:"icon",onClick:()=>{const g=Lu();u.setValue("reality_settings.short_id",g),q.success(l("dynamic_form.vless.reality_settings.short_id.success"))},className:"absolute right-0 top-0 h-full px-2 active:scale-90 transition-transform duration-150",children:e.jsx(Se,{icon:"ion:refresh-outline",className:"h-4 w-4 transition-transform hover:rotate-180 duration-300"})})}),e.jsx(_t,{children:e.jsx(te,{children:e.jsx("p",{children:l("dynamic_form.vless.reality_settings.short_id.generate")})})})]})]}),e.jsx(M,{className:"text-xs text-muted-foreground",children:l("dynamic_form.vless.reality_settings.short_id.description")})]})})]}),e.jsx(y,{control:u.control,name:"network",render:({field:f})=>e.jsxs(b,{children:[e.jsxs(N,{children:[l("dynamic_form.vless.network.label"),e.jsx(Bt,{value:u.watch("network_settings"),setValue:g=>u.setValue("network_settings",g),templateType:u.watch("network")})]}),e.jsx(w,{children:e.jsxs(G,{onValueChange:f.onChange,value:f.value,children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.vless.network.placeholder")})}),e.jsx(B,{children:e.jsx(js,{children:os.vless.networkOptions.map(g=>e.jsx(L,{value:g.value,className:"cursor-pointer",children:g.label},g.value))})})]})})]})}),e.jsx(y,{control:u.control,name:"flow",render:({field:f})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dynamic_form.vless.flow.label")}),e.jsx(w,{children:e.jsxs(G,{onValueChange:g=>f.onChange(g==="none"?null:g),value:f.value||"none",children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dynamic_form.vless.flow.placeholder")})}),e.jsx(B,{children:os.vless.flowOptions.map(g=>e.jsx(L,{value:g,children:g},g))})]})})]})})]})};return e.jsx(ce,{children:R[s]?.()})},Bu=h.object({id:h.number().optional().nullable(),code:h.string().optional(),name:h.string().min(1,"form.name.error"),rate:h.string().min(1,"form.rate.error"),tags:h.array(h.string()).default([]),excludes:h.array(h.string()).default([]),ips:h.array(h.string()).default([]),group_ids:h.array(h.string()).default([]),host:h.string().min(1,"form.host.error"),port:h.string().min(1,"form.port.error"),server_port:h.string().min(1,"form.server_port.error"),parent_id:h.string().default("0").nullable(),route_ids:h.array(h.string()).default([]),protocol_settings:h.record(h.any()).default({}).nullable()}),ft={id:null,code:"",name:"",rate:"1",tags:[],excludes:[],ips:[],group_ids:[],host:"",port:"",server_port:"",parent_id:"0",route_ids:[],protocol_settings:null};function Gu(){const{t:s}=I("server"),{isOpen:n,setIsOpen:a,editingServer:l,setEditingServer:r,serverType:c,setServerType:i,refetch:u}=Ar(),[x,o]=m.useState([]),[d,p]=m.useState([]),[T,R]=m.useState([]),f=de({resolver:me(Bu),defaultValues:ft,mode:"onChange"});m.useEffect(()=>{g()},[n]),m.useEffect(()=>{l?.type&&l.type!==c&&i(l.type)},[l,c,i]),m.useEffect(()=>{l?l.type===c&&f.reset({...ft,...l}):f.reset({...ft,protocol_settings:os[c].schema.parse({})})},[l,f,c]);const g=async()=>{if(!n)return;const[v,P,z]=await Promise.all([Mt(),yr(),br()]);o(v.data?.map(Q=>({label:Q.name,value:Q.id.toString()}))||[]),p(P.data?.map(Q=>({label:Q.remarks,value:Q.id.toString()}))||[]),R(z.data||[])},S=m.useMemo(()=>T?.filter(v=>(v.parent_id===0||v.parent_id===null)&&v.type===c&&v.id!==f.watch("id")),[c,T,f]),j=()=>e.jsxs(_s,{children:[e.jsx(ws,{asChild:!0,children:e.jsxs(V,{variant:"outline",size:"sm",className:"space-x-2",children:[e.jsx(Se,{icon:"ion:add"}),e.jsx("div",{children:s("form.add_node")})]})}),e.jsx(ds,{align:"start",children:e.jsx(pc,{children:Ts.map(({type:v,label:P})=>e.jsx(je,{onClick:()=>{i(v),a(!0)},className:"cursor-pointer",children:e.jsx(K,{variant:"outline",className:"text-white",style:{background:is[v]},children:P})},v))})})]}),C=()=>{a(!1),r(null),f.reset(ft)},k=async()=>{const v=f.getValues();(await qc({...v,type:c})).data&&(C(),q.success(s("form.success")),u())};return e.jsxs(pe,{open:n,onOpenChange:C,children:[j(),e.jsxs(fe,{className:"sm:max-w-[425px]",children:[e.jsxs(be,{children:[e.jsx(ge,{children:s(l?"form.edit_node":"form.new_node")}),e.jsx(Te,{})]}),e.jsxs(ue,{...f,children:[e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{control:f.control,name:"name",render:({field:v})=>e.jsxs(b,{className:"flex-[2]",children:[e.jsx(N,{children:s("form.name.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("form.name.placeholder"),...v})}),e.jsx(E,{})]})}),e.jsx(y,{control:f.control,name:"rate",render:({field:v})=>e.jsxs(b,{className:"flex-[1]",children:[e.jsx(N,{children:s("form.rate.label")}),e.jsx("div",{className:"relative flex",children:e.jsx(w,{children:e.jsx(D,{type:"number",min:"0",step:"0.1",...v})})}),e.jsx(E,{})]})})]}),e.jsx(y,{control:f.control,name:"code",render:({field:v})=>e.jsxs(b,{children:[e.jsxs(N,{children:[s("form.code.label"),e.jsx("span",{className:"ml-1 text-xs text-muted-foreground",children:s("form.code.optional")})]}),e.jsx(w,{children:e.jsx(D,{placeholder:s("form.code.placeholder"),...v,value:v.value||""})}),e.jsx(E,{})]})}),e.jsx(y,{control:f.control,name:"tags",render:({field:v})=>e.jsxs(b,{children:[e.jsx(N,{children:s("form.tags.label")}),e.jsx(w,{children:e.jsx(va,{value:v.value,onChange:v.onChange,placeholder:s("form.tags.placeholder"),className:"w-full"})}),e.jsx(E,{})]})}),e.jsx(y,{control:f.control,name:"group_ids",render:({field:v})=>e.jsxs(b,{children:[e.jsxs(N,{className:"flex items-center justify-between",children:[s("form.groups.label"),e.jsx(zt,{dialogTrigger:e.jsx(V,{variant:"link",children:s("form.groups.add")}),refetch:g})]}),e.jsx(w,{children:e.jsx(ot,{options:x,onChange:P=>v.onChange(P.map(z=>z.value)),value:x?.filter(P=>v.value.includes(P.value)),placeholder:s("form.groups.placeholder"),emptyIndicator:e.jsx("p",{className:"text-center text-lg leading-10 text-gray-600 dark:text-gray-400",children:s("form.groups.empty")})})}),e.jsx(E,{})]})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(y,{control:f.control,name:"host",render:({field:v})=>e.jsxs(b,{children:[e.jsx(N,{children:s("form.host.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:s("form.host.placeholder"),...v})}),e.jsx(E,{})]})}),e.jsxs("div",{className:"flex space-x-2",children:[e.jsx(y,{control:f.control,name:"port",render:({field:v})=>e.jsxs(b,{className:"flex-1",children:[e.jsxs(N,{className:"flex items-center gap-1.5",children:[s("form.port.label"),e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(Se,{icon:"ph:info-light",className:"size-3.5 cursor-help text-muted-foreground"})}),e.jsx(_t,{children:e.jsx(te,{side:"top",sideOffset:8,className:"max-w-80 p-3",children:e.jsx("p",{children:s("form.port.tooltip")})})})]})})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(w,{children:e.jsx(D,{placeholder:s("form.port.placeholder"),...v})}),e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(V,{type:"button",variant:"ghost",size:"icon",className:"size-6 shrink-0 text-muted-foreground/50 hover:text-muted-foreground",onClick:()=>{const P=v.value;P&&f.setValue("server_port",P)},children:e.jsx(Se,{icon:"tabler:arrows-right",className:"size-3"})})}),e.jsx(te,{side:"right",children:e.jsx("p",{children:s("form.port.sync")})})]})})]}),e.jsx(E,{})]})}),e.jsx(y,{control:f.control,name:"server_port",render:({field:v})=>e.jsxs(b,{className:"flex-1",children:[e.jsxs(N,{className:"flex items-center gap-1.5",children:[s("form.server_port.label"),e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(Se,{icon:"ph:info-light",className:"size-3.5 cursor-help text-muted-foreground"})}),e.jsx(_t,{children:e.jsx(te,{side:"top",sideOffset:8,className:"max-w-80 p-3",children:e.jsx("p",{children:s("form.server_port.tooltip")})})})]})})]}),e.jsx(w,{children:e.jsx(D,{placeholder:s("form.server_port.placeholder"),...v})}),e.jsx(E,{})]})})]})]}),n&&e.jsx(Uu,{serverType:c,value:f.watch("protocol_settings"),onChange:v=>f.setValue("protocol_settings",v,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!0})}),e.jsx(y,{control:f.control,name:"parent_id",render:({field:v})=>e.jsxs(b,{children:[e.jsx(N,{children:s("form.parent.label")}),e.jsxs(G,{onValueChange:v.onChange,value:v.value?.toString()||"0",children:[e.jsx(w,{children:e.jsx(U,{children:e.jsx(W,{placeholder:s("form.parent.placeholder")})})}),e.jsxs(B,{children:[e.jsx(L,{value:"0",children:s("form.parent.none")}),S?.map(P=>e.jsx(L,{value:P.id.toString(),className:"cursor-pointer",children:P.name},P.id))]})]}),e.jsx(E,{})]})}),e.jsx(y,{control:f.control,name:"route_ids",render:({field:v})=>e.jsxs(b,{children:[e.jsx(N,{children:s("form.route.label")}),e.jsx(w,{children:e.jsx(ot,{options:d,onChange:P=>v.onChange(P.map(z=>z.value)),value:d?.filter(P=>v.value.includes(P.value)),placeholder:s("form.route.placeholder"),emptyIndicator:e.jsx("p",{className:"text-center text-lg leading-10 text-gray-600 dark:text-gray-400",children:s("form.route.empty")})})}),e.jsx(E,{})]})})]}),e.jsxs(Le,{className:"mt-6",children:[e.jsx(V,{type:"button",variant:"outline",onClick:C,children:s("form.cancel")}),e.jsx(V,{type:"submit",onClick:k,children:s("form.submit")})]})]})]})]})}function Ga({column:s,title:n,options:a}){const l=s?.getFacetedUniqueValues(),r=new Set(s?.getFilterValue());return e.jsxs(rs,{children:[e.jsx(ls,{asChild:!0,children:e.jsxs(V,{variant:"outline",size:"sm",className:"h-8 border-dashed",children:[e.jsx(dt,{className:"mr-2 h-4 w-4"}),n,r?.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(ye,{orientation:"vertical",className:"mx-2 h-4"}),e.jsx(K,{variant:"secondary",className:"rounded-sm px-1 font-normal lg:hidden",children:r.size}),e.jsx("div",{className:"hidden space-x-1 lg:flex",children:r.size>2?e.jsxs(K,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:[r.size," selected"]}):a.filter(c=>r.has(c.value)).map(c=>e.jsx(K,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:c.label},c.value))})]})]})}),e.jsx(Xe,{className:"w-[200px] p-0",align:"start",children:e.jsxs(Cs,{children:[e.jsx(Fs,{placeholder:n}),e.jsxs(Ss,{children:[e.jsx(Ms,{children:"No results found."}),e.jsx(Oe,{children:a.map(c=>{const i=r.has(c.value);return e.jsxs(ke,{onSelect:()=>{i?r.delete(c.value):r.add(c.value);const u=Array.from(r);s?.setFilterValue(u.length?u:void 0)},className:"cursor-pointer",children:[e.jsx("div",{className:_("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",i?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:e.jsx(Rs,{className:_("h-4 w-4")})}),c.icon&&e.jsx(c.icon,{className:`mr-2 h-4 w-4 text-muted-foreground text-${c.color}`}),e.jsx("span",{children:c.label}),l?.get(c.value)&&e.jsx("span",{className:"ml-auto flex h-4 w-4 items-center justify-center font-mono text-xs",children:l.get(c.value)})]},c.value)})}),r.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(Gs,{}),e.jsx(Oe,{children:e.jsx(ke,{onSelect:()=>s?.setFilterValue(void 0),className:"justify-center text-center cursor-pointer",children:"Clear filters"})})]})]})]})})]})}const Wu=[{value:Ne.Shadowsocks,label:Ts.find(s=>s.type===Ne.Shadowsocks)?.label,color:is[Ne.Shadowsocks]},{value:Ne.Vmess,label:Ts.find(s=>s.type===Ne.Vmess)?.label,color:is[Ne.Vmess]},{value:Ne.Trojan,label:Ts.find(s=>s.type===Ne.Trojan)?.label,color:is[Ne.Trojan]},{value:Ne.Hysteria,label:Ts.find(s=>s.type===Ne.Hysteria)?.label,color:is[Ne.Hysteria]},{value:Ne.Vless,label:Ts.find(s=>s.type===Ne.Vless)?.label,color:is[Ne.Vless]}];function Yu({table:s,saveOrder:n,isSortMode:a,groups:l}){const r=s.getState().columnFilters.length>0,{t:c}=I("server"),i=l.map(u=>({label:u,value:u}));return e.jsxs("div",{className:"flex items-center justify-between ",children:[e.jsxs("div",{className:"flex flex-1 flex-col-reverse items-start gap-y-2 sm:flex-row sm:items-center sm:space-x-2",children:[!a&&e.jsxs(e.Fragment,{children:[e.jsx(Gu,{}),e.jsx(D,{placeholder:c("toolbar.search"),value:s.getColumn("name")?.getFilterValue()??"",onChange:u=>s.getColumn("name")?.setFilterValue(u.target.value),className:"h-8 w-[150px] lg:w-[250px]"}),e.jsxs("div",{className:"flex gap-x-2",children:[s.getColumn("type")&&e.jsx(Ga,{column:s.getColumn("type"),title:c("toolbar.type"),options:Wu}),s.getColumn("groups")&&e.jsx(Ga,{column:s.getColumn("groups"),title:c("columns.groups.title"),options:i})]}),r&&e.jsxs(V,{variant:"ghost",onClick:()=>s.resetColumnFilters(),className:"h-8 px-2 lg:px-3",children:[c("toolbar.reset"),e.jsx(Ae,{className:"ml-2 h-4 w-4"})]})]}),a&&e.jsx("div",{className:"flex items-center space-x-2",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:c("toolbar.sort.tip")})})]}),s.getRowCount()>0&&e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(V,{variant:a?"default":"outline",onClick:n,size:"sm",children:c(a?"toolbar.sort.save":"toolbar.sort.edit")})})]})}const it=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M15.71 12.71a6 6 0 1 0-7.42 0a10 10 0 0 0-6.22 8.18a1 1 0 0 0 2 .22a8 8 0 0 1 15.9 0a1 1 0 0 0 1 .89h.11a1 1 0 0 0 .88-1.1a10 10 0 0 0-6.25-8.19M12 12a4 4 0 1 1 4-4a4 4 0 0 1-4 4"})}),pt={0:"bg-destructive/80 shadow-sm shadow-destructive/50",1:"bg-yellow-500/80 shadow-sm shadow-yellow-500/50",2:"bg-emerald-500/80 shadow-sm shadow-emerald-500/50"},Ju=s=>{const{t:n}=I("server");return[{id:"drag-handle",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.sort")}),cell:()=>e.jsx("div",{className:"flex items-center justify-center",children:e.jsx(Rt,{className:"size-4 cursor-move text-muted-foreground transition-colors hover:text-primary","aria-hidden":"true"})}),size:50},{accessorKey:"id",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.nodeId")}),cell:({row:a})=>{const l=a.getValue("id"),r=a.original.code;return e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsxs("div",{className:"group/id flex items-center space-x-2",children:[e.jsxs(K,{variant:"outline",className:_("border-2 font-medium transition-all duration-200 hover:opacity-80","flex items-center gap-1.5"),style:{borderColor:is[a.original.type]},children:[e.jsx(Bn,{className:"size-3"}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"flex items-center gap-0.5",children:r??l}),a.original.parent?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-sm text-muted-foreground/30",children:"→"}),e.jsx("span",{children:a.original.parent?.code||a.original.parent?.id})]}):""]})]}),e.jsx(V,{variant:"ghost",size:"icon",className:"size-5 text-muted-foreground/40 opacity-0 transition-all duration-200 hover:text-muted-foreground group-hover/id:opacity-100",onClick:c=>{c.stopPropagation(),St(r||l.toString()).then(()=>{q.success(n("common:copy.success"))})},children:e.jsx(Fa,{className:"size-3"})})]})}),e.jsxs(te,{side:"top",className:"flex flex-col gap-1 p-3",children:[e.jsxs("p",{className:"font-medium",children:[Ts.find(c=>c.type===a.original.type)?.label,a.original.parent_id?" (子节点)":""]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:r?"点击括号内容或复制按钮可复制节点代码":"点击复制按钮可复制节点ID"})]})]})})},size:200,enableSorting:!0},{accessorKey:"show",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.show")}),cell:({row:a})=>{const[l,r]=m.useState(!!a.getValue("show"));return e.jsx(H,{checked:l,onCheckedChange:async c=>{r(c),Uc({id:a.original.id,type:a.original.type,show:c?1:0}).catch(()=>{r(!c),s()})},style:{backgroundColor:l?is[a.original.type]:void 0}})},size:50,enableSorting:!1},{accessorKey:"name",header:({column:a})=>e.jsx("div",{className:"flex items-center",children:e.jsx(O,{column:a,title:n("columns.node"),tooltip:e.jsxs("div",{className:"grid grid-cols-1 gap-3 p-2",children:[e.jsxs("div",{className:"flex items-center space-x-2.5",children:[e.jsx("span",{className:_("h-2.5 w-2.5 rounded-full",pt[0])}),e.jsx("span",{className:"text-sm font-medium",children:n("columns.status.0")})]}),e.jsxs("div",{className:"flex items-center space-x-2.5",children:[e.jsx("span",{className:_("h-2.5 w-2.5 rounded-full",pt[1])}),e.jsx("span",{className:"text-sm font-medium",children:n("columns.status.1")})]}),e.jsxs("div",{className:"flex items-center space-x-2.5",children:[e.jsx("span",{className:_("h-2.5 w-2.5 rounded-full",pt[2])}),e.jsx("span",{className:"text-sm font-medium",children:n("columns.status.2")})]})]})})}),cell:({row:a})=>e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{children:e.jsxs("div",{className:"flex items-center space-x-2.5",children:[e.jsx("span",{className:_("size-2.5 flex-shrink-0 rounded-full transition-all duration-200",pt[a.original.available_status])}),e.jsx("span",{className:"text-left font-medium transition-colors hover:text-primary",children:a.getValue("name")})]})}),e.jsx(te,{children:e.jsx("p",{className:"font-medium",children:n(`columns.status.${a.original.available_status}`)})})]})}),enableSorting:!1,size:200},{accessorKey:"host",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.address")}),cell:({row:a})=>{const l=`${a.original.host}:${a.original.port}`,r=a.original.port!==a.original.server_port;return e.jsxs("div",{className:"group relative flex min-w-0 items-start",children:[e.jsxs("div",{className:"flex min-w-0 flex-wrap items-baseline gap-x-1 gap-y-0.5 pr-7",children:[e.jsx("div",{className:"flex items-center ",children:e.jsxs("span",{className:"font-mono text-sm font-medium text-foreground/90",children:[a.original.host,":",a.original.port]})}),r&&e.jsxs("span",{className:"whitespace-nowrap text-[0.7rem] tracking-tight text-muted-foreground/40",children:["(",n("columns.internalPort")," ",a.original.server_port,")"]})]}),e.jsx("div",{className:"absolute right-0 top-0",children:e.jsx(ce,{delayDuration:0,children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(V,{variant:"ghost",size:"icon",className:"size-6 text-muted-foreground/40 opacity-0 transition-all duration-200 hover:bg-muted/50 hover:text-muted-foreground group-hover:opacity-100",onClick:c=>{c.stopPropagation(),St(l).then(()=>{q.success(n("common:copy.success"))})},children:e.jsx(Fa,{className:"size-3"})})}),e.jsx(te,{side:"top",sideOffset:10,children:n("columns.copyAddress")})]})})})]})},enableSorting:!1,enableHiding:!0},{accessorKey:"online",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.onlineUsers.title"),tooltip:n("columns.onlineUsers.tooltip")}),cell:({row:a})=>e.jsxs("div",{className:"flex items-center space-x-2 px-4",children:[e.jsx(it,{className:"size-4"}),e.jsx("span",{className:"font-medium",children:a.getValue("online")})]}),size:80,enableSorting:!0,enableHiding:!0},{accessorKey:"rate",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.rate.title"),tooltip:n("columns.rate.tooltip")}),cell:({row:a})=>e.jsxs(K,{variant:"secondary",className:"font-medium",children:[a.getValue("rate")," x"]}),size:80,enableSorting:!1,enableHiding:!0},{accessorKey:"groups",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.groups.title"),tooltip:n("columns.groups.tooltip")}),cell:({row:a})=>{const l=a.getValue("groups")||[];return e.jsx("div",{className:"flex min-w-[300px] max-w-[600px] flex-wrap items-center gap-1.5",children:l.length>0?l.map((r,c)=>e.jsx(K,{variant:"secondary",className:_("px-2 py-0.5 font-medium","bg-secondary/50 hover:bg-secondary/70","border border-border/50","transition-all duration-200","cursor-default select-none","flex items-center gap-1.5"),children:r.name},c)):e.jsx("span",{className:"text-sm text-muted-foreground",children:n("columns.groups.empty")})})},enableSorting:!1,size:600,filterFn:(a,l,r)=>{const c=a.getValue(l);return c?r.some(i=>c.includes(i)):!1}},{accessorKey:"type",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.type")}),cell:({row:a})=>{const l=a.getValue("type");return e.jsx(K,{variant:"outline",className:"border-2 font-medium transition-colors",style:{borderColor:is[l]},children:l})},enableSorting:!1,enableHiding:!0,enableColumnFilter:!1,size:8e3},{id:"actions",header:({column:a})=>e.jsx(O,{className:"justify-end",column:a,title:n("columns.actions")}),cell:({row:a})=>{const{setIsOpen:l,setEditingServer:r,setServerType:c}=Ar();return e.jsx("div",{className:"flex justify-center",children:e.jsxs(_s,{modal:!1,children:[e.jsx(ws,{asChild:!0,children:e.jsx(V,{variant:"ghost",className:"h-8 w-8 p-0 hover:bg-muted","aria-label":n("columns.actions"),children:e.jsx(wt,{className:"size-4"})})}),e.jsxs(ds,{align:"end",className:"w-40",children:[e.jsx(je,{className:"cursor-pointer",onClick:()=>{c(a.original.type),r(a.original),l(!0)},children:e.jsxs("div",{className:"flex w-full items-center",children:[e.jsx(wi,{className:"mr-2 size-4"}),n("columns.actions_dropdown.edit")]})}),e.jsxs(je,{className:"cursor-pointer",onClick:async()=>{Hc({id:a.original.id}).then(({data:i})=>{i&&(q.success(n("columns.actions_dropdown.copy_success")),s())})},children:[e.jsx(Ci,{className:"mr-2 size-4"}),n("columns.actions_dropdown.copy")]}),e.jsx(rt,{}),e.jsx(je,{className:"cursor-pointer text-destructive focus:text-destructive",onSelect:i=>i.preventDefault(),children:e.jsx(Ue,{title:n("columns.actions_dropdown.delete.title"),description:n("columns.actions_dropdown.delete.description"),confirmText:n("columns.actions_dropdown.delete.confirm"),variant:"destructive",onConfirm:async()=>{Kc({id:a.original.id}).then(({data:i})=>{i&&(q.success(n("columns.actions_dropdown.delete_success")),s())})},children:e.jsxs("div",{className:"flex w-full items-center",children:[e.jsx(ns,{className:"mr-2 size-4"}),n("columns.actions_dropdown.delete.confirm")]})})})]})]})})},size:50}]};function Qu(){const[s,n]=m.useState({}),[a,l]=m.useState({"drag-handle":!1}),[r,c]=m.useState([]),[i,u]=m.useState({pageSize:500,pageIndex:0}),[x,o]=m.useState([]),[d,p]=m.useState(!1),[T,R]=m.useState({}),[f,g]=m.useState([]),{refetch:S}=se({queryKey:["nodeList"],queryFn:async()=>{const{data:z}=await br();return g(z),z}}),j=m.useMemo(()=>{const z=new Set;return f.forEach(Q=>{Q.groups&&Q.groups.forEach($=>z.add($.name))}),Array.from(z).sort()},[f]);m.useEffect(()=>{l({"drag-handle":d,show:!d,host:!d,online:!d,rate:!d,groups:!d,type:!1,actions:!d}),R({name:d?2e3:200}),u({pageSize:d?99999:500,pageIndex:0})},[d]);const C=(z,Q)=>{d&&(z.dataTransfer.setData("text/plain",Q.toString()),z.currentTarget.classList.add("opacity-50"))},k=(z,Q)=>{if(!d)return;z.preventDefault(),z.currentTarget.classList.remove("bg-muted");const $=parseInt(z.dataTransfer.getData("text/plain"));if($===Q)return;const X=[...f],[Ws]=X.splice($,1);X.splice(Q,0,Ws),g(X)},v=async()=>{if(!d){p(!0);return}const z=f?.map((Q,$)=>({id:Q.id,order:$+1}));Bc(z).then(()=>{q.success("排序保存成功"),p(!1),S()}).finally(()=>{p(!1)})},P=Ke({data:f||[],columns:Ju(S),state:{sorting:x,columnVisibility:a,rowSelection:s,columnFilters:r,columnSizing:T,pagination:i},enableRowSelection:!0,onRowSelectionChange:n,onSortingChange:o,onColumnFiltersChange:c,onColumnVisibilityChange:l,onColumnSizingChange:R,onPaginationChange:u,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),getSortedRowModel:Ze(),getFacetedRowModel:us(),getFacetedUniqueValues:xs(),initialState:{columnPinning:{right:["actions"]}}});return e.jsx(Vu,{refetch:S,children:e.jsx("div",{className:"space-y-4",children:e.jsx(es,{table:P,toolbar:z=>e.jsx(Yu,{table:z,refetch:S,saveOrder:v,isSortMode:d,groups:j}),draggable:d,onDragStart:C,onDragEnd:z=>z.currentTarget.classList.remove("opacity-50"),onDragOver:z=>{z.preventDefault(),z.currentTarget.classList.add("bg-muted")},onDragLeave:z=>z.currentTarget.classList.remove("bg-muted"),onDrop:k,showPagination:!d})})})}function Zu(){const{t:s}=I("server");return e.jsxs(we,{children:[e.jsxs(Ce,{children:[e.jsx(Ie,{}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsx("div",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:s("manage.title")}),e.jsx("p",{className:"text-muted-foreground mt-2",children:s("manage.description")})]})}),e.jsx("div",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx(Qu,{})})]})]})}const Xu=Object.freeze(Object.defineProperty({__proto__:null,default:Zu},Symbol.toStringTag,{value:"Module"}));function ex({table:s,refetch:n}){const a=s.getState().columnFilters.length>0,{t:l}=I("group");return e.jsx("div",{className:"flex items-center justify-between space-x-4",children:e.jsxs("div",{className:"flex flex-1 items-center space-x-2",children:[e.jsx(zt,{refetch:n}),e.jsx(D,{placeholder:l("toolbar.searchPlaceholder"),value:s.getColumn("name")?.getFilterValue()??"",onChange:r=>s.getColumn("name")?.setFilterValue(r.target.value),className:_("h-8 w-[150px] lg:w-[250px]",a&&"border-primary/50 ring-primary/20")}),a&&e.jsxs(V,{variant:"ghost",onClick:()=>s.resetColumnFilters(),className:"h-8 px-2 lg:px-3",children:[l("toolbar.reset"),e.jsx(Ae,{className:"ml-2 h-4 w-4"})]})]})})}const sx=s=>{const{t:n}=I("group");return[{accessorKey:"id",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.id")}),cell:({row:a})=>e.jsx("div",{className:"flex items-center space-x-2",children:e.jsx(K,{variant:"outline",children:a.getValue("id")})}),enableSorting:!0},{accessorKey:"name",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.name")}),cell:({row:a})=>e.jsx("div",{className:"flex space-x-2",children:e.jsx("span",{className:"max-w-32 truncate font-medium",children:a.getValue("name")})})},{accessorKey:"users_count",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.usersCount")}),cell:({row:a})=>e.jsxs("div",{className:"flex items-center space-x-2 px-4",children:[e.jsx(it,{className:"h-4 w-4"}),e.jsx("span",{className:"font-medium",children:a.getValue("users_count")})]}),enableSorting:!0},{accessorKey:"server_count",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.serverCount")}),cell:({row:a})=>e.jsxs("div",{className:"flex items-center space-x-2 px-4",children:[e.jsx(Bn,{className:"h-4 w-4"}),e.jsx("span",{className:"font-medium",children:a.getValue("server_count")})]}),enableSorting:!0,size:8e3},{id:"actions",header:({column:a})=>e.jsx(O,{className:"justify-end",column:a,title:n("columns.actions")}),cell:({row:a})=>e.jsxs("div",{className:"flex items-center justify-center",children:[e.jsx(zt,{defaultValues:a.original,refetch:s,type:"edit",dialogTrigger:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-muted",children:[e.jsx(Is,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),e.jsx("span",{className:"sr-only",children:n("form.edit")})]})}),e.jsx(Ue,{title:n("messages.deleteConfirm"),description:n("messages.deleteDescription"),confirmText:n("messages.deleteButton"),variant:"destructive",onConfirm:async()=>{Wc({id:a.original.id}).then(({data:l})=>{l&&(q.success(n("messages.updateSuccess")),s())})},children:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-red-100 dark:hover:bg-red-900",children:[e.jsx(ns,{className:"h-4 w-4 text-muted-foreground hover:text-red-600 dark:hover:text-red-400"}),e.jsx("span",{className:"sr-only",children:n("messages.deleteButton")})]})})]})}]};function tx(){const[s,n]=m.useState({}),[a,l]=m.useState({}),[r,c]=m.useState([]),[i,u]=m.useState([]),{data:x,refetch:o,isLoading:d}=se({queryKey:["serverGroupList"],queryFn:async()=>{const{data:T}=await Mt();return T}}),p=Ke({data:x||[],columns:sx(o),state:{sorting:i,columnVisibility:a,rowSelection:s,columnFilters:r},enableRowSelection:!0,onRowSelectionChange:n,onSortingChange:u,onColumnFiltersChange:c,onColumnVisibilityChange:l,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),getSortedRowModel:Ze(),getFacetedRowModel:us(),getFacetedUniqueValues:xs(),initialState:{columnPinning:{right:["actions"]}}});return e.jsx(es,{table:p,toolbar:T=>e.jsx(ex,{table:T,refetch:o}),isLoading:d})}function ax(){const{t:s}=I("group");return e.jsxs(we,{children:[e.jsxs(Ce,{children:[e.jsx(Ie,{}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsx("div",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:s("title")}),e.jsx("p",{className:"mt-2 text-muted-foreground",children:s("description")})]})}),e.jsx("div",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx(tx,{})})]})]})}const nx=Object.freeze(Object.defineProperty({__proto__:null,default:ax},Symbol.toStringTag,{value:"Module"})),rx=s=>h.object({remarks:h.string().min(1,s("form.validation.remarks")),match:h.array(h.string()),action:h.enum(["block","dns"]),action_value:h.string().optional()});function $r({refetch:s,dialogTrigger:n,defaultValues:a={remarks:"",match:[],action:"block",action_value:""},type:l="add"}){const{t:r}=I("route"),c=de({resolver:me(rx(r)),defaultValues:a,mode:"onChange"}),[i,u]=m.useState(!1);return e.jsxs(pe,{open:i,onOpenChange:u,children:[e.jsx(ze,{asChild:!0,children:n||e.jsxs(V,{variant:"outline",size:"sm",className:"space-x-2",children:[e.jsx(Se,{icon:"ion:add"})," ",e.jsx("div",{children:r("form.add")})]})}),e.jsxs(fe,{className:"sm:max-w-[425px]",children:[e.jsxs(be,{children:[e.jsx(ge,{children:r(l==="edit"?"form.edit":"form.create")}),e.jsx(Te,{})]}),e.jsxs(ue,{...c,children:[e.jsx(y,{control:c.control,name:"remarks",render:({field:x})=>e.jsxs(b,{className:"flex-[2]",children:[e.jsx(N,{children:r("form.remarks")}),e.jsx("div",{className:"relative",children:e.jsx(w,{children:e.jsx(D,{type:"text",placeholder:r("form.remarksPlaceholder"),...x})})}),e.jsx(E,{})]})}),e.jsx(y,{control:c.control,name:"match",render:({field:x})=>e.jsxs(b,{className:"flex-[2]",children:[e.jsx(N,{children:r("form.match")}),e.jsx("div",{className:"relative",children:e.jsx(w,{children:e.jsx(ps,{className:"min-h-[120px]",placeholder:r("form.matchPlaceholder"),value:x.value.join(` +`),onChange:o=>{x.onChange(o.target.value.split(` +`))}})})}),e.jsx(E,{})]})}),e.jsx(y,{control:c.control,name:"action",render:({field:x})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.action")}),e.jsx("div",{className:"relative",children:e.jsx(w,{children:e.jsxs(G,{onValueChange:x.onChange,defaultValue:x.value,children:[e.jsx(U,{children:e.jsx(W,{placeholder:r("form.actionPlaceholder")})}),e.jsxs(B,{children:[e.jsx(L,{value:"block",children:r("actions.block")}),e.jsx(L,{value:"dns",children:r("actions.dns")})]})]})})}),e.jsx(E,{})]})}),c.watch("action")==="dns"&&e.jsx(y,{control:c.control,name:"action_value",render:({field:x})=>e.jsxs(b,{children:[e.jsx(N,{children:r("form.dns")}),e.jsx("div",{className:"relative",children:e.jsx(w,{children:e.jsx(D,{type:"text",placeholder:r("form.dnsPlaceholder"),...x})})})]})}),e.jsxs(Le,{children:[e.jsx(mt,{asChild:!0,children:e.jsx(V,{variant:"outline",children:r("form.cancel")})}),e.jsx(V,{type:"submit",onClick:()=>{Yc(c.getValues()).then(({data:x})=>{x&&(u(!1),s&&s(),toast.success(r(l==="edit"?"messages.updateSuccess":"messages.createSuccess")),c.reset())})},children:r("form.submit")})]})]})]})]})}function lx({table:s,refetch:n}){const a=s.getState().columnFilters.length>0,{t:l}=I("route");return e.jsx("div",{className:"flex items-center justify-between ",children:e.jsxs("div",{className:"flex flex-1 flex-col-reverse items-start gap-y-2 sm:flex-row sm:items-center sm:space-x-2",children:[e.jsx($r,{refetch:n}),e.jsx(D,{placeholder:l("toolbar.searchPlaceholder"),value:s.getColumn("remarks")?.getFilterValue()??"",onChange:r=>s.getColumn("remarks")?.setFilterValue(r.target.value),className:"h-8 w-[150px] lg:w-[250px]"}),a&&e.jsxs(V,{variant:"ghost",onClick:()=>s.resetColumnFilters(),className:"h-8 px-2 lg:px-3",children:[l("toolbar.reset"),e.jsx(Ae,{className:"ml-2 h-4 w-4"})]})]})})}function ox({columns:s,data:n,refetch:a}){const[l,r]=m.useState({}),[c,i]=m.useState({}),[u,x]=m.useState([]),[o,d]=m.useState([]),p=Ke({data:n,columns:s,state:{sorting:o,columnVisibility:c,rowSelection:l,columnFilters:u},enableRowSelection:!0,onRowSelectionChange:r,onSortingChange:d,onColumnFiltersChange:x,onColumnVisibilityChange:i,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),getSortedRowModel:Ze(),getFacetedRowModel:us(),getFacetedUniqueValues:xs(),initialState:{columnPinning:{right:["actions"]}}});return e.jsx(es,{table:p,toolbar:T=>e.jsx(lx,{table:T,refetch:a})})}const ix=s=>{const{t:n}=I("route"),a={block:{icon:Si,variant:"destructive",className:"bg-red-100 text-red-700 dark:bg-red-900 dark:text-red-400 hover:bg-red-200 dark:hover:bg-red-800"},dns:{icon:ki,variant:"secondary",className:"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-400 hover:bg-blue-200 dark:hover:bg-blue-800"}};return[{accessorKey:"id",header:({column:l})=>e.jsx(O,{column:l,title:n("columns.id")}),cell:({row:l})=>e.jsx("div",{className:"flex items-center space-x-2",children:e.jsx(K,{variant:"outline",children:l.getValue("id")})}),enableSorting:!0,enableHiding:!1},{accessorKey:"remarks",header:({column:l})=>e.jsx(O,{column:l,title:n("columns.remarks")}),cell:({row:l})=>{const r=l.original.match?.length||0;return e.jsx("div",{className:"flex space-x-2",children:e.jsx("span",{className:"max-w-32 truncate font-medium sm:max-w-72 md:max-w-[31rem]",children:n("columns.matchRules",{count:r})})})},enableHiding:!1,enableSorting:!1},{accessorKey:"action",header:({column:l})=>e.jsx(O,{column:l,title:n("columns.action")}),cell:({row:l})=>{const r=l.getValue("action"),c=a[r]?.icon;return e.jsx("div",{className:"flex items-center space-x-2",children:e.jsxs(K,{variant:a[r]?.variant||"default",className:_("flex items-center gap-1.5 px-3 py-1 capitalize",a[r]?.className),children:[c&&e.jsx(c,{className:"h-3.5 w-3.5"}),n(`actions.${r}`)]})})},enableSorting:!1,size:9e3},{id:"actions",header:()=>e.jsx("div",{className:"text-right",children:n("columns.actions")}),cell:({row:l})=>e.jsxs("div",{className:"flex items-center justify-center",children:[e.jsx($r,{defaultValues:l.original,refetch:s,type:"edit",dialogTrigger:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-muted",children:[e.jsx(Is,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),e.jsx("span",{className:"sr-only",children:n("form.edit")})]})}),e.jsx(Ue,{title:n("messages.deleteConfirm"),description:n("messages.deleteDescription"),confirmText:n("messages.deleteButton"),variant:"destructive",onConfirm:async()=>{Jc({id:l.original.id}).then(({data:r})=>{r&&(q.success(n("messages.deleteSuccess")),s())})},children:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-red-100 dark:hover:bg-red-900",children:[e.jsx(ns,{className:"h-4 w-4 text-muted-foreground hover:text-red-600 dark:hover:text-red-400"}),e.jsx("span",{className:"sr-only",children:n("messages.deleteButton")})]})})]})}]};function cx(){const{t:s}=I("route"),[n,a]=m.useState([]);function l(){yr().then(({data:r})=>{a(r)})}return m.useEffect(()=>{l()},[]),e.jsxs(we,{children:[e.jsxs(Ce,{children:[e.jsx(Ie,{}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsx("div",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:s("title")}),e.jsx("p",{className:"mt-2 text-muted-foreground",children:s("description")})]})}),e.jsx("div",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx(ox,{data:n,columns:ix(l),refetch:l})})]})]})}const dx=Object.freeze(Object.defineProperty({__proto__:null,default:cx},Symbol.toStringTag,{value:"Module"})),qr=m.createContext(void 0);function mx({children:s,refreshData:n}){const[a,l]=m.useState(!1),[r,c]=m.useState(null);return e.jsx(qr.Provider,{value:{isOpen:a,setIsOpen:l,editingPlan:r,setEditingPlan:c,refreshData:n},children:s})}function ba(){const s=m.useContext(qr);if(s===void 0)throw new Error("usePlanEdit must be used within a PlanEditProvider");return s}function ux({table:s,saveOrder:n,isSortMode:a}){const{setIsOpen:l}=ba(),{t:r}=I("subscribe");return e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex flex-1 items-center space-x-2",children:[e.jsxs(V,{variant:"outline",className:"space-x-2",size:"sm",onClick:()=>l(!0),children:[e.jsx(Se,{icon:"ion:add"}),e.jsx("div",{children:r("plan.add")})]}),e.jsx(D,{placeholder:r("plan.search"),value:s.getColumn("name")?.getFilterValue()??"",onChange:c=>s.getColumn("name")?.setFilterValue(c.target.value),className:"h-8 w-[150px] lg:w-[250px]"})]}),s.getRowCount()>0&&e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(V,{variant:a?"default":"outline",onClick:n,size:"sm",children:r(a?"plan.sort.save":"plan.sort.edit")})})]})}const Wa={monthly:{color:"text-slate-700",bgColor:"bg-slate-100/80"},quarterly:{color:"text-slate-700",bgColor:"bg-slate-100/80"},half_yearly:{color:"text-slate-700",bgColor:"bg-slate-100/80"},yearly:{color:"text-slate-700",bgColor:"bg-slate-100/80"},two_yearly:{color:"text-slate-700",bgColor:"bg-slate-100/80"},three_yearly:{color:"text-slate-700",bgColor:"bg-slate-100/80"},onetime:{color:"text-slate-700",bgColor:"bg-slate-100/80"},reset_traffic:{color:"text-slate-700",bgColor:"bg-slate-100/80"}},xx=s=>{const{t:n}=I("subscribe");return[{id:"drag-handle",header:()=>null,cell:()=>e.jsx("div",{className:"cursor-move",children:e.jsx(Rt,{className:"size-4"})}),size:40,enableSorting:!1},{accessorKey:"id",header:({column:a})=>e.jsx(O,{column:a,title:n("plan.columns.id")}),cell:({row:a})=>e.jsx("div",{className:"flex items-center space-x-2",children:e.jsx(K,{variant:"outline",children:a.getValue("id")})}),enableSorting:!0,enableHiding:!1},{accessorKey:"show",header:({column:a})=>e.jsx(O,{column:a,title:n("plan.columns.show")}),cell:({row:a})=>e.jsx(H,{defaultChecked:a.getValue("show"),onCheckedChange:l=>{qt({id:a.original.id,show:l}).then(({data:r})=>{!r&&s()})}}),enableSorting:!1,enableHiding:!1},{accessorKey:"sell",header:({column:a})=>e.jsx(O,{column:a,title:n("plan.columns.sell")}),cell:({row:a})=>e.jsx(H,{defaultChecked:a.getValue("sell"),onCheckedChange:l=>{qt({id:a.original.id,sell:l}).then(({data:r})=>{!r&&s()})}}),enableSorting:!1,enableHiding:!1},{accessorKey:"renew",header:({column:a})=>e.jsx(O,{column:a,title:n("plan.columns.renew"),tooltip:n("plan.columns.renew_tooltip")}),cell:({row:a})=>e.jsx(H,{defaultChecked:a.getValue("renew"),onCheckedChange:l=>{qt({id:a.original.id,renew:l}).then(({data:r})=>{!r&&s()})}}),enableSorting:!1,enableHiding:!1},{accessorKey:"name",header:({column:a})=>e.jsx(O,{column:a,title:n("plan.columns.name")}),cell:({row:a})=>e.jsx("div",{className:"flex space-x-2",children:e.jsx("span",{className:"max-w-32 truncate font-medium sm:max-w-72 md:max-w-[31rem]",children:a.getValue("name")})}),enableSorting:!1,enableHiding:!1,size:900},{accessorKey:"users_count",header:({column:a})=>e.jsx(O,{column:a,title:n("plan.columns.stats")}),cell:({row:a})=>e.jsxs("div",{className:"flex items-center space-x-2 px-2",children:[e.jsx(it,{}),e.jsx("span",{className:"max-w-32 truncate font-medium sm:max-w-72 md:max-w-[31rem]",children:a.getValue("users_count")})]}),enableSorting:!0},{accessorKey:"group",header:({column:a})=>e.jsx(O,{column:a,title:n("plan.columns.group")}),cell:({row:a})=>e.jsx("div",{className:"flex max-w-[600px] flex-wrap items-center gap-1.5 text-nowrap",children:e.jsx(K,{variant:"secondary",className:_("px-2 py-0.5 font-medium","bg-secondary/50 hover:bg-secondary/70","border border-border/50","transition-all duration-200","cursor-default select-none","flex items-center gap-1.5"),children:a.getValue("group")?.name})}),enableSorting:!1,enableHiding:!1},{accessorKey:"prices",header:({column:a})=>e.jsx(O,{column:a,title:n("plan.columns.price")}),cell:({row:a})=>{const l=a.getValue("prices"),r=[{period:n("plan.columns.price_period.monthly"),key:"monthly",unit:n("plan.columns.price_period.unit.month")},{period:n("plan.columns.price_period.quarterly"),key:"quarterly",unit:n("plan.columns.price_period.unit.quarter")},{period:n("plan.columns.price_period.half_yearly"),key:"half_yearly",unit:n("plan.columns.price_period.unit.half_year")},{period:n("plan.columns.price_period.yearly"),key:"yearly",unit:n("plan.columns.price_period.unit.year")},{period:n("plan.columns.price_period.two_yearly"),key:"two_yearly",unit:n("plan.columns.price_period.unit.two_year")},{period:n("plan.columns.price_period.three_yearly"),key:"three_yearly",unit:n("plan.columns.price_period.unit.three_year")},{period:n("plan.columns.price_period.onetime"),key:"onetime",unit:""},{period:n("plan.columns.price_period.reset_traffic"),key:"reset_traffic",unit:n("plan.columns.price_period.unit.times")}];return e.jsx("div",{className:"flex flex-wrap items-center gap-2",children:r.map(({period:c,key:i,unit:u})=>l[i]!=null&&e.jsxs(K,{variant:"secondary",className:_("px-2 py-0.5 font-medium transition-colors text-nowrap",Wa[i].color,Wa[i].bgColor,"border border-border/50","hover:bg-slate-200/80"),children:[c," ¥",l[i],u]},i))})},enableSorting:!1,size:9e3},{id:"actions",header:({column:a})=>e.jsx(O,{className:"justify-end",column:a,title:n("plan.columns.actions")}),cell:({row:a})=>{const{setIsOpen:l,setEditingPlan:r}=ba();return e.jsxs("div",{className:"flex items-center justify-center",children:[e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-muted",onClick:()=>{r(a.original),l(!0)},children:[e.jsx(Is,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),e.jsx("span",{className:"sr-only",children:n("plan.columns.edit")})]}),e.jsx(Ue,{title:n("plan.columns.delete_confirm.title"),description:n("plan.columns.delete_confirm.description"),confirmText:n("plan.columns.delete"),variant:"destructive",onConfirm:async()=>{hd({id:a.original.id}).then(({data:c})=>{c&&(q.success(n("plan.columns.delete_confirm.success")),s())})},children:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-red-100 dark:hover:bg-red-900",children:[e.jsx(ns,{className:"h-4 w-4 text-muted-foreground hover:text-red-600 dark:hover:text-red-400"}),e.jsx("span",{className:"sr-only",children:n("plan.columns.delete")})]})})]})}}]},hx=h.object({id:h.number().nullable(),group_id:h.union([h.number(),h.string()]).nullable().optional(),name:h.string().min(1).max(250),content:h.string().nullable().optional(),transfer_enable:h.union([h.number().min(0),h.string().min(1)]),prices:h.object({monthly:h.union([h.number(),h.string()]).nullable().optional(),quarterly:h.union([h.number(),h.string()]).nullable().optional(),half_yearly:h.union([h.number(),h.string()]).nullable().optional(),yearly:h.union([h.number(),h.string()]).nullable().optional(),two_yearly:h.union([h.number(),h.string()]).nullable().optional(),three_yearly:h.union([h.number(),h.string()]).nullable().optional(),onetime:h.union([h.number(),h.string()]).nullable().optional(),reset_traffic:h.union([h.number(),h.string()]).nullable().optional()}).default({}),speed_limit:h.union([h.number(),h.string()]).nullable().optional(),capacity_limit:h.union([h.number(),h.string()]).nullable().optional(),device_limit:h.union([h.number(),h.string()]).nullable().optional(),force_update:h.boolean().optional(),reset_traffic_method:h.number().nullable(),users_count:h.number().optional()}),Kr=m.forwardRef(({className:s,...n},a)=>e.jsx(Gn,{ref:a,className:_("peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",s),...n,children:e.jsx(Pi,{className:_("flex items-center justify-center text-current"),children:e.jsx(Rs,{className:"h-4 w-4"})})}));Kr.displayName=Gn.displayName;const gt={id:null,group_id:null,name:"",content:"",transfer_enable:"",prices:{monthly:"",quarterly:"",half_yearly:"",yearly:"",two_yearly:"",three_yearly:"",onetime:"",reset_traffic:""},speed_limit:"",capacity_limit:"",device_limit:"",force_update:!1,reset_traffic_method:null},jt={monthly:{label:"月付",months:1,discount:1},quarterly:{label:"季付",months:3,discount:.95},half_yearly:{label:"半年付",months:6,discount:.9},yearly:{label:"年付",months:12,discount:.85},two_yearly:{label:"两年付",months:24,discount:.8},three_yearly:{label:"三年付",months:36,discount:.75},onetime:{label:"流量包",months:1,discount:1},reset_traffic:{label:"重置包",months:1,discount:1}},fx=[{value:null,label:"follow_system"},{value:0,label:"monthly_first"},{value:1,label:"monthly_reset"},{value:2,label:"no_reset"},{value:3,label:"yearly_first"},{value:4,label:"yearly_reset"}];function px(){const{isOpen:s,setIsOpen:n,editingPlan:a,setEditingPlan:l,refreshData:r}=ba(),[c,i]=m.useState(!1),{t:u}=I("subscribe"),x=de({resolver:me(hx),defaultValues:{...gt,...a||{}},mode:"onChange"});m.useEffect(()=>{a?x.reset({...gt,...a}):x.reset(gt)},[a,x]);const o=new ma({html:!0}),[d,p]=m.useState();async function T(){Mt().then(({data:g})=>{p(g)})}m.useEffect(()=>{s&&T()},[s]);const R=g=>{if(isNaN(g))return;const S=Object.entries(jt).reduce((j,[C,k])=>{const v=g*k.months*k.discount;return{...j,[C]:v.toFixed(2)}},{});x.setValue("prices",S,{shouldDirty:!0})},f=()=>{n(!1),l(null),x.reset(gt)};return e.jsx(pe,{open:s,onOpenChange:f,children:e.jsxs(fe,{children:[e.jsxs(be,{children:[e.jsx(ge,{children:u(a?"plan.form.edit_title":"plan.form.add_title")}),e.jsx(Te,{})]}),e.jsxs(ue,{...x,children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx(y,{control:x.control,name:"name",render:({field:g})=>e.jsxs(b,{children:[e.jsx(N,{children:u("plan.form.name.label")}),e.jsx(w,{children:e.jsx(D,{placeholder:u("plan.form.name.placeholder"),...g})}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"group_id",render:({field:g})=>e.jsxs(b,{children:[e.jsxs(N,{className:"flex items-center justify-between",children:[u("plan.form.group.label"),e.jsx(zt,{dialogTrigger:e.jsx(V,{variant:"link",children:u("plan.form.group.add")}),refetch:T})]}),e.jsxs(G,{value:g.value?.toString()??"",onValueChange:S=>g.onChange(S?Number(S):null),children:[e.jsx(w,{children:e.jsx(U,{children:e.jsx(W,{placeholder:u("plan.form.group.placeholder")})})}),e.jsx(B,{children:d?.map(S=>e.jsx(L,{value:S.id.toString(),children:S.name},S.id))})]}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"transfer_enable",render:({field:g})=>e.jsxs(b,{className:"flex-1",children:[e.jsx(N,{children:u("plan.form.transfer.label")}),e.jsxs("div",{className:"relative flex",children:[e.jsx(w,{children:e.jsx(D,{type:"number",min:0,placeholder:u("plan.form.transfer.placeholder"),className:"rounded-r-none",...g})}),e.jsx("div",{className:"flex items-center rounded-r-md border border-l-0 border-input bg-muted px-3 text-sm text-muted-foreground",children:u("plan.form.transfer.unit")})]}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"speed_limit",render:({field:g})=>e.jsxs(b,{className:"flex-1",children:[e.jsx(N,{children:u("plan.form.speed.label")}),e.jsxs("div",{className:"relative flex",children:[e.jsx(w,{children:e.jsx(D,{type:"number",min:0,placeholder:u("plan.form.speed.placeholder"),className:"rounded-r-none",...g,value:g.value??""})}),e.jsx("div",{className:"flex items-center rounded-r-md border border-l-0 border-input bg-muted px-3 text-sm text-muted-foreground",children:u("plan.form.speed.unit")})]}),e.jsx(E,{})]})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex flex-1 items-center",children:[e.jsx("div",{className:"flex-grow border-t border-gray-200 dark:border-gray-700"}),e.jsx("h3",{className:"mx-4 text-sm font-medium text-gray-500 dark:text-gray-400",children:u("plan.form.price.title")}),e.jsx("div",{className:"flex-grow border-t border-gray-200 dark:border-gray-700"})]}),e.jsxs("div",{className:"ml-4 flex items-center gap-2",children:[e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-2",children:e.jsx("span",{className:"text-sm font-medium text-gray-400",children:"¥"})}),e.jsx(D,{type:"number",placeholder:u("plan.form.price.base_price"),className:"h-7 w-32 border-0 bg-gray-50 pl-6 pr-2 text-sm shadow-none ring-1 ring-gray-200 transition-shadow focus-visible:ring-2 focus-visible:ring-primary dark:bg-gray-800/50 dark:ring-gray-700 dark:placeholder:text-gray-500",onChange:g=>{const S=parseFloat(g.target.value);R(S)}})]}),e.jsx(ce,{children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(V,{variant:"outline",size:"sm",className:"h-7 text-xs",onClick:()=>{const g=Object.keys(jt).reduce((S,j)=>({...S,[j]:""}),{});x.setValue("prices",g,{shouldDirty:!0})},children:u("plan.form.price.clear.button")})}),e.jsx(te,{side:"top",align:"end",children:e.jsx("p",{className:"text-xs",children:u("plan.form.price.clear.tooltip")})})]})})]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-3 lg:grid-cols-3",children:Object.entries(jt).filter(([g])=>!["onetime","reset_traffic"].includes(g)).map(([g,S])=>e.jsx("div",{className:"group relative rounded-md bg-card p-2 ring-1 ring-gray-200 transition-all hover:ring-primary dark:ring-gray-800",children:e.jsx(y,{control:x.control,name:`prices.${g}`,render:({field:j})=>e.jsxs(b,{children:[e.jsxs(N,{className:"text-xs font-medium text-muted-foreground",children:[u(`plan.columns.price_period.${g}`),e.jsxs("span",{className:"ml-1 text-[10px] text-gray-400",children:["(",S.months===1?u("plan.form.price.period.monthly"):u("plan.form.price.period.months",{count:S.months}),")"]})]}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-2",children:e.jsx("span",{className:"text-sm font-medium text-gray-400",children:"¥"})}),e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:"0.00",min:0,...j,value:j.value??"",onChange:C=>j.onChange(C.target.value),className:"h-7 border-0 bg-gray-50 pl-6 pr-2 text-sm shadow-none ring-1 ring-gray-200 transition-shadow focus-visible:ring-2 focus-visible:ring-primary dark:bg-gray-800/50 dark:ring-gray-700 dark:placeholder:text-gray-500"})})]})]})})},g))}),e.jsx("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2",children:Object.entries(jt).filter(([g])=>["onetime","reset_traffic"].includes(g)).map(([g,S])=>e.jsx("div",{className:"rounded-md border border-dashed border-gray-200 bg-muted/30 p-3 dark:border-gray-700",children:e.jsx(y,{control:x.control,name:`prices.${g}`,render:({field:j})=>e.jsx(b,{children:e.jsxs("div",{className:"flex flex-col gap-2 md:flex-row md:items-center md:justify-between",children:[e.jsxs("div",{className:"space-y-0",children:[e.jsx(N,{className:"text-xs font-medium",children:u(`plan.columns.price_period.${g}`)}),e.jsx("p",{className:"text-[10px] text-muted-foreground",children:u(g==="onetime"?"plan.form.price.onetime_desc":"plan.form.price.reset_desc")})]}),e.jsxs("div",{className:"relative w-full md:w-32",children:[e.jsx("div",{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-2",children:e.jsx("span",{className:"text-sm font-medium text-gray-400",children:"¥"})}),e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:"0.00",min:0,...j,className:"h-7 border-0 bg-gray-50 pl-6 pr-2 text-sm shadow-none ring-1 ring-gray-200 transition-shadow focus-visible:ring-2 focus-visible:ring-primary dark:bg-gray-800/50 dark:ring-gray-700 dark:placeholder:text-gray-500"})})]})]})})})},g))})]}),e.jsxs("div",{className:"flex gap-4",children:[e.jsx(y,{control:x.control,name:"device_limit",render:({field:g})=>e.jsxs(b,{className:"flex-1",children:[e.jsx(N,{children:u("plan.form.device.label")}),e.jsxs("div",{className:"relative flex",children:[e.jsx(w,{children:e.jsx(D,{type:"number",min:0,placeholder:u("plan.form.device.placeholder"),className:"rounded-r-none",...g,value:g.value??""})}),e.jsx("div",{className:"flex items-center rounded-r-md border border-l-0 border-input bg-muted px-3 text-sm text-muted-foreground",children:u("plan.form.device.unit")})]}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"capacity_limit",render:({field:g})=>e.jsxs(b,{className:"flex-1",children:[e.jsx(N,{children:u("plan.form.capacity.label")}),e.jsxs("div",{className:"relative flex",children:[e.jsx(w,{children:e.jsx(D,{type:"number",min:0,placeholder:u("plan.form.capacity.placeholder"),className:"rounded-r-none",...g,value:g.value??""})}),e.jsx("div",{className:"flex items-center rounded-r-md border border-l-0 border-input bg-muted px-3 text-sm text-muted-foreground",children:u("plan.form.capacity.unit")})]}),e.jsx(E,{})]})})]}),e.jsx(y,{control:x.control,name:"reset_traffic_method",render:({field:g})=>e.jsxs(b,{children:[e.jsx(N,{children:u("plan.form.reset_method.label")}),e.jsxs(G,{value:g.value?.toString()??"null",onValueChange:S=>g.onChange(S=="null"?null:Number(S)),children:[e.jsx(w,{children:e.jsx(U,{children:e.jsx(W,{placeholder:u("plan.form.reset_method.placeholder")})})}),e.jsx(B,{children:fx.map(S=>e.jsx(L,{value:S.value?.toString()??"null",children:u(`plan.form.reset_method.options.${S.label}`)},S.value))})]}),e.jsx(M,{className:"text-xs",children:u("plan.form.reset_method.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:x.control,name:"content",render:({field:g})=>{const[S,j]=m.useState(!1);return e.jsxs(b,{className:"space-y-2",children:[e.jsxs(N,{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[u("plan.form.content.label"),e.jsx(ce,{children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(V,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>j(!S),children:S?e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",className:"h-4 w-4",children:[e.jsx("path",{d:"M10 12.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5z"}),e.jsx("path",{fillRule:"evenodd",d:"M.664 10.59a1.651 1.651 0 010-1.186A10.004 10.004 0 0110 3c4.257 0 7.893 2.66 9.336 6.41.147.381.146.804 0 1.186A10.004 10.004 0 0110 17c-4.257 0-7.893-2.66-9.336-6.41zM14 10a4 4 0 11-8 0 4 4 0 018 0z",clipRule:"evenodd"})]}):e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",className:"h-4 w-4",children:[e.jsx("path",{fillRule:"evenodd",d:"M3.28 2.22a.75.75 0 00-1.06 1.06l14.5 14.5a.75.75 0 101.06-1.06l-1.745-1.745a10.029 10.029 0 003.3-4.38 1.651 1.651 0 000-1.185A10.004 10.004 0 009.999 3a9.956 9.956 0 00-4.744 1.194L3.28 2.22zM7.752 6.69l1.092 1.092a2.5 2.5 0 013.374 3.373l1.091 1.092a4 4 0 00-5.557-5.557z",clipRule:"evenodd"}),e.jsx("path",{d:"M10.748 13.93l2.523 2.523a9.987 9.987 0 01-3.27.547c-4.258 0-7.894-2.66-9.337-6.41a1.651 1.651 0 010-1.186A10.007 10.007 0 012.839 6.02L6.07 9.252a4 4 0 004.678 4.678z"})]})})}),e.jsx(te,{side:"top",children:e.jsx("p",{className:"text-xs",children:u(S?"plan.form.content.preview_button.hide":"plan.form.content.preview_button.show")})})]})})]}),e.jsx(ce,{children:e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsx(V,{variant:"outline",size:"sm",onClick:()=>{g.onChange(u("plan.form.content.template.content"))},children:u("plan.form.content.template.button")})}),e.jsx(te,{side:"left",align:"center",children:e.jsx("p",{className:"text-xs",children:u("plan.form.content.template.tooltip")})})]})})]}),e.jsxs("div",{className:`grid gap-4 ${S?"grid-cols-1 lg:grid-cols-2":"grid-cols-1"}`,children:[e.jsx("div",{className:"space-y-2",children:e.jsx(w,{children:e.jsx(ua,{style:{height:"400px"},value:g.value||"",renderHTML:C=>o.render(C),onChange:({text:C})=>g.onChange(C),config:{view:{menu:!0,md:!0,html:!1},canView:{menu:!0,md:!0,html:!1,fullScreen:!1,hideMenu:!1}},placeholder:u("plan.form.content.placeholder"),className:"rounded-md border"})})}),S&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:u("plan.form.content.preview")}),e.jsx("div",{className:"prose prose-sm dark:prose-invert h-[400px] max-w-none overflow-y-auto rounded-md border p-4",children:e.jsx("div",{dangerouslySetInnerHTML:{__html:o.render(g.value||"")}})})]})]}),e.jsx(M,{className:"text-xs",children:u("plan.form.content.description")}),e.jsx(E,{})]})}})]}),e.jsx(Le,{className:"mt-6",children:e.jsxs("div",{className:"flex w-full items-center justify-between",children:[e.jsx("div",{className:"flex-shrink-0",children:a&&e.jsx(y,{control:x.control,name:"force_update",render:({field:g})=>e.jsxs(b,{className:"flex flex-row items-center space-x-2 space-y-0",children:[e.jsx(w,{children:e.jsx(Kr,{checked:g.value,onCheckedChange:g.onChange})}),e.jsx("div",{className:"",children:e.jsx(N,{className:"text-sm",children:u("plan.form.force_update.label")})})]})})}),e.jsxs("div",{className:"flex space-x-2",children:[e.jsx(V,{type:"button",variant:"outline",onClick:f,children:u("plan.form.submit.cancel")}),e.jsx(V,{type:"submit",disabled:c,onClick:()=>{x.handleSubmit(async g=>{i(!0),(await xd(g)).data&&(q.success(u(a?"plan.form.submit.success.update":"plan.form.submit.success.add")),f(),r()),i(!1)})()},children:u(c?"plan.form.submit.submitting":"plan.form.submit.submit")})]})]})})]})]})})}function gx(){const[s,n]=m.useState({}),[a,l]=m.useState({"drag-handle":!1}),[r,c]=m.useState([]),[i,u]=m.useState([]),[x,o]=m.useState(!1),[d,p]=m.useState({pageSize:20,pageIndex:0}),[T,R]=m.useState([]),{refetch:f}=se({queryKey:["planList"],queryFn:async()=>{const{data:k}=await Os();return R(k),k}});m.useEffect(()=>{l({"drag-handle":x}),p({pageSize:x?99999:10,pageIndex:0})},[x]);const g=(k,v)=>{x&&(k.dataTransfer.setData("text/plain",v.toString()),k.currentTarget.classList.add("opacity-50"))},S=(k,v)=>{if(!x)return;k.preventDefault(),k.currentTarget.classList.remove("bg-muted");const P=parseInt(k.dataTransfer.getData("text/plain"));if(P===v)return;const z=[...T],[Q]=z.splice(P,1);z.splice(v,0,Q),R(z)},j=async()=>{if(!x){o(!0);return}const k=T?.map(v=>v.id);fd(k).then(()=>{q.success("排序保存成功"),o(!1),f()}).finally(()=>{o(!1)})},C=Ke({data:T||[],columns:xx(f),state:{sorting:i,columnVisibility:a,rowSelection:s,columnFilters:r,pagination:d},enableRowSelection:!0,onPaginationChange:p,onRowSelectionChange:n,onSortingChange:u,onColumnFiltersChange:c,onColumnVisibilityChange:l,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),getSortedRowModel:Ze(),getFacetedRowModel:us(),getFacetedUniqueValues:xs(),initialState:{columnPinning:{right:["actions"]}},pageCount:x?1:void 0});return e.jsx(mx,{refreshData:f,children:e.jsxs("div",{className:"space-y-4",children:[e.jsx(es,{table:C,toolbar:k=>e.jsx(ux,{table:k,refetch:f,saveOrder:j,isSortMode:x}),draggable:x,onDragStart:g,onDragEnd:k=>k.currentTarget.classList.remove("opacity-50"),onDragOver:k=>{k.preventDefault(),k.currentTarget.classList.add("bg-muted")},onDragLeave:k=>k.currentTarget.classList.remove("bg-muted"),onDrop:S,showPagination:!x}),e.jsx(px,{})]})})}function jx(){const{t:s}=I("subscribe");return e.jsxs(we,{children:[e.jsxs(Ce,{children:[e.jsx(Ie,{}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsx("div",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:s("plan.title")}),e.jsx("p",{className:"mt-2 text-muted-foreground",children:s("plan.page.description")})]})}),e.jsx("div",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx(gx,{})})]})]})}const vx=Object.freeze(Object.defineProperty({__proto__:null,default:jx},Symbol.toStringTag,{value:"Module"})),$s=[{value:Z.PENDING,label:Zs[Z.PENDING],icon:Ti,color:Xs[Z.PENDING]},{value:Z.PROCESSING,label:Zs[Z.PROCESSING],icon:Wn,color:Xs[Z.PROCESSING]},{value:Z.COMPLETED,label:Zs[Z.COMPLETED],icon:Xt,color:Xs[Z.COMPLETED]},{value:Z.CANCELLED,label:Zs[Z.CANCELLED],icon:Yn,color:Xs[Z.CANCELLED]},{value:Z.DISCOUNTED,label:Zs[Z.DISCOUNTED],icon:Xt,color:Xs[Z.DISCOUNTED]}],st=[{value:re.PENDING,label:xt[re.PENDING],icon:Di,color:ht[re.PENDING]},{value:re.PROCESSING,label:xt[re.PROCESSING],icon:Wn,color:ht[re.PROCESSING]},{value:re.VALID,label:xt[re.VALID],icon:Xt,color:ht[re.VALID]},{value:re.INVALID,label:xt[re.INVALID],icon:Yn,color:ht[re.INVALID]}];function vt({column:s,title:n,options:a}){const l=s?.getFacetedUniqueValues(),r=s?.getFilterValue(),c=Array.isArray(r)?new Set(r):r!==void 0?new Set([r]):new Set;return e.jsxs(rs,{children:[e.jsx(ls,{asChild:!0,children:e.jsxs(V,{variant:"outline",size:"sm",className:"h-8 border-dashed",children:[e.jsx(dt,{className:"mr-2 h-4 w-4"}),n,c?.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(ye,{orientation:"vertical",className:"mx-2 h-4"}),e.jsx(K,{variant:"secondary",className:"rounded-sm px-1 font-normal lg:hidden",children:c.size}),e.jsx("div",{className:"hidden space-x-1 lg:flex",children:c.size>2?e.jsxs(K,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:[c.size," selected"]}):a.filter(i=>c.has(i.value)).map(i=>e.jsx(K,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:i.label},i.value))})]})]})}),e.jsx(Xe,{className:"w-[200px] p-0",align:"start",children:e.jsxs(Cs,{children:[e.jsx(Fs,{placeholder:n}),e.jsxs(Ss,{children:[e.jsx(Ms,{children:"No results found."}),e.jsx(Oe,{children:a.map(i=>{const u=c.has(i.value);return e.jsxs(ke,{onSelect:()=>{const x=new Set(c);u?x.delete(i.value):x.add(i.value);const o=Array.from(x);s?.setFilterValue(o.length?o:void 0)},children:[e.jsx("div",{className:_("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",u?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:e.jsx(Rs,{className:_("h-4 w-4")})}),i.icon&&e.jsx(i.icon,{className:`mr-2 h-4 w-4 text-muted-foreground text-${i.color}`}),e.jsx("span",{children:i.label}),l?.get(i.value)&&e.jsx("span",{className:"ml-auto flex h-4 w-4 items-center justify-center font-mono text-xs",children:l.get(i.value)})]},i.value)})}),c.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(Gs,{}),e.jsx(Oe,{children:e.jsx(ke,{onSelect:()=>s?.setFilterValue(void 0),className:"justify-center text-center",children:"Clear filters"})})]})]})]})})]})}const bx=h.object({email:h.string().min(1),plan_id:h.number(),period:h.string(),total_amount:h.number()}),yx={email:"",plan_id:0,total_amount:0,period:""};function Hr({refetch:s,trigger:n,defaultValues:a}){const{t:l}=I("order"),[r,c]=m.useState(!1),i=de({resolver:me(bx),defaultValues:{...yx,...a},mode:"onChange"}),[u,x]=m.useState([]);return m.useEffect(()=>{r&&Os().then(({data:o})=>{x(o)})},[r]),e.jsxs(pe,{open:r,onOpenChange:c,children:[e.jsx(ze,{asChild:!0,children:n||e.jsxs(V,{variant:"outline",size:"sm",className:"h-8 space-x-2",children:[e.jsx(Se,{icon:"ion:add"}),e.jsx("div",{children:l("dialog.addOrder")})]})}),e.jsxs(fe,{className:"sm:max-w-[425px]",children:[e.jsxs(be,{children:[e.jsx(ge,{children:l("dialog.assignOrder")}),e.jsx(Te,{})]}),e.jsxs(ue,{...i,children:[e.jsx(y,{control:i.control,name:"email",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dialog.fields.userEmail")}),e.jsx(w,{children:e.jsx(D,{placeholder:l("dialog.placeholders.email"),...o})})]})}),e.jsx(y,{control:i.control,name:"plan_id",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dialog.fields.subscriptionPlan")}),e.jsx(w,{children:e.jsxs(G,{value:o.value?o.value?.toString():void 0,onValueChange:d=>o.onChange(parseInt(d)),children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dialog.placeholders.plan")})}),e.jsx(B,{children:u.map(d=>e.jsx(L,{value:d.id.toString(),children:d.name},d.id))})]})})]})}),e.jsx(y,{control:i.control,name:"period",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dialog.fields.orderPeriod")}),e.jsx(w,{children:e.jsxs(G,{value:o.value,onValueChange:o.onChange,children:[e.jsx(U,{children:e.jsx(W,{placeholder:l("dialog.placeholders.period")})}),e.jsx(B,{children:Object.keys(Hd).map(d=>e.jsx(L,{value:d,children:l(`period.${d}`)},d))})]})})]})}),e.jsx(y,{control:i.control,name:"total_amount",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:l("dialog.fields.paymentAmount")}),e.jsx(w,{children:e.jsx(D,{type:"number",placeholder:l("dialog.placeholders.amount"),value:o.value/100,onChange:d=>o.onChange(parseFloat(d.currentTarget.value)*100)})}),e.jsx(E,{})]})}),e.jsxs(Le,{children:[e.jsx(V,{variant:"outline",onClick:()=>c(!1),children:l("dialog.actions.cancel")}),e.jsx(V,{type:"submit",onClick:()=>{i.handleSubmit(o=>{bd(o).then(({data:d})=>{d&&(s&&s(),i.reset(),c(!1),q.success(l("dialog.messages.addSuccess")))})})()},children:l("dialog.actions.confirm")})]})]})]})]})}function Nx({table:s,refetch:n}){const{t:a}=I("order"),l=s.getState().columnFilters.length>0,r=Object.values(Ye).filter(x=>typeof x=="number").map(x=>({label:a(`type.${Ye[x]}`),value:x,color:x===Ye.NEW?"green-500":x===Ye.RENEWAL?"blue-500":x===Ye.UPGRADE?"purple-500":"orange-500"})),c=Object.values(xe).map(x=>({label:a(`period.${x}`),value:x,color:x===xe.MONTH_PRICE?"slate-500":x===xe.QUARTER_PRICE?"cyan-500":x===xe.HALF_YEAR_PRICE?"indigo-500":x===xe.YEAR_PRICE?"violet-500":x===xe.TWO_YEAR_PRICE?"fuchsia-500":x===xe.THREE_YEAR_PRICE?"pink-500":x===xe.ONETIME_PRICE?"rose-500":"orange-500"})),i=Object.values(Z).filter(x=>typeof x=="number").map(x=>({label:a(`status.${Z[x]}`),value:x,icon:x===Z.PENDING?$s[0].icon:x===Z.PROCESSING?$s[1].icon:x===Z.COMPLETED?$s[2].icon:x===Z.CANCELLED?$s[3].icon:$s[4].icon,color:x===Z.PENDING?"yellow-500":x===Z.PROCESSING?"blue-500":x===Z.COMPLETED?"green-500":x===Z.CANCELLED?"red-500":"green-500"})),u=Object.values(re).filter(x=>typeof x=="number").map(x=>({label:a(`commission.${re[x]}`),value:x,icon:x===re.PENDING?st[0].icon:x===re.PROCESSING?st[1].icon:x===re.VALID?st[2].icon:st[3].icon,color:x===re.PENDING?"yellow-500":x===re.PROCESSING?"blue-500":x===re.VALID?"green-500":"red-500"}));return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Hr,{refetch:n}),e.jsx(D,{placeholder:a("search.placeholder"),value:s.getColumn("trade_no")?.getFilterValue()??"",onChange:x=>s.getColumn("trade_no")?.setFilterValue(x.target.value),className:"h-8 w-[150px] lg:w-[250px]"}),e.jsxs("div",{className:"flex flex-wrap gap-x-2",children:[s.getColumn("type")&&e.jsx(vt,{column:s.getColumn("type"),title:a("table.columns.type"),options:r}),s.getColumn("period")&&e.jsx(vt,{column:s.getColumn("period"),title:a("table.columns.period"),options:c}),s.getColumn("status")&&e.jsx(vt,{column:s.getColumn("status"),title:a("table.columns.status"),options:i}),s.getColumn("commission_status")&&e.jsx(vt,{column:s.getColumn("commission_status"),title:a("table.columns.commissionStatus"),options:u})]}),l&&e.jsxs(V,{variant:"ghost",onClick:()=>s.resetColumnFilters(),className:"h-8 px-2 lg:px-3",children:[a("actions.reset"),e.jsx(Ae,{className:"ml-2 h-4 w-4"})]})]})}function Be({label:s,value:n,className:a,valueClassName:l}){return e.jsxs("div",{className:_("flex items-center py-1.5",a),children:[e.jsx("div",{className:"w-28 shrink-0 text-sm text-muted-foreground",children:s}),e.jsx("div",{className:_("text-sm",l),children:n||"-"})]})}function _x({status:s}){const{t:n}=I("order"),a={[Z.PENDING]:"bg-yellow-100 text-yellow-800 hover:bg-yellow-100",[Z.PROCESSING]:"bg-blue-100 text-blue-800 hover:bg-blue-100",[Z.CANCELLED]:"bg-red-100 text-red-800 hover:bg-red-100",[Z.COMPLETED]:"bg-green-100 text-green-800 hover:bg-green-100",[Z.DISCOUNTED]:"bg-gray-100 text-gray-800 hover:bg-gray-100"};return e.jsx(K,{variant:"secondary",className:_("font-medium",a[s]),children:n(`status.${Z[s]}`)})}function wx({id:s,trigger:n}){const[a,l]=m.useState(!1),[r,c]=m.useState(),{t:i}=I("order");return m.useEffect(()=>{(async()=>{if(a){const{data:x}=await gd({id:s});c(x)}})()},[a,s]),e.jsxs(pe,{onOpenChange:l,open:a,children:[e.jsx(ze,{asChild:!0,children:n}),e.jsxs(fe,{className:"max-w-xl",children:[e.jsxs(be,{className:"space-y-2",children:[e.jsx(ge,{className:"text-lg font-medium",children:i("dialog.title")}),e.jsx("div",{className:"flex items-center justify-between text-sm",children:e.jsxs("div",{className:"flex items-center space-x-6",children:[e.jsxs("div",{className:"text-muted-foreground",children:[i("table.columns.tradeNo"),":",r?.trade_no]}),r?.status&&e.jsx(_x,{status:r.status})]})})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"rounded-lg border p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-medium",children:i("dialog.basicInfo")}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(Be,{label:i("dialog.fields.userEmail"),value:r?.user?.email?e.jsxs(Vs,{to:`/user/manage?email=${r.user.email}`,className:"group inline-flex items-center gap-1 text-primary hover:underline",children:[r.user.email,e.jsx(Jn,{className:"h-3.5 w-3.5 opacity-0 transition-opacity group-hover:opacity-100"})]}):"-"}),e.jsx(Be,{label:i("dialog.fields.orderPeriod"),value:r&&i(`period.${r.period}`)}),e.jsx(Be,{label:i("dialog.fields.subscriptionPlan"),value:r?.plan?.name,valueClassName:"font-medium"}),e.jsx(Be,{label:i("dialog.fields.callbackNo"),value:r?.callback_no,valueClassName:"font-mono text-xs"})]})]}),e.jsxs("div",{className:"rounded-lg border p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-medium",children:i("dialog.amountInfo")}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(Be,{label:i("dialog.fields.paymentAmount"),value:Ps(r?.total_amount||0),valueClassName:"font-medium text-primary"}),e.jsx(ye,{className:"my-2"}),e.jsx(Be,{label:i("dialog.fields.balancePayment"),value:Ps(r?.balance_amount||0)}),e.jsx(Be,{label:i("dialog.fields.discountAmount"),value:Ps(r?.discount_amount||0),valueClassName:"text-green-600"}),e.jsx(Be,{label:i("dialog.fields.refundAmount"),value:Ps(r?.refund_amount||0),valueClassName:"text-red-600"}),e.jsx(Be,{label:i("dialog.fields.deductionAmount"),value:Ps(r?.surplus_amount||0)})]})]}),e.jsxs("div",{className:"rounded-lg border p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-medium",children:i("dialog.timeInfo")}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(Be,{label:i("dialog.fields.createdAt"),value:he(r?.created_at),valueClassName:"font-mono text-xs"}),e.jsx(Be,{label:i("dialog.fields.updatedAt"),value:he(r?.updated_at),valueClassName:"font-mono text-xs"})]})]})]})]})]})}const Cx={[Ye.NEW]:{color:"text-slate-700",bgColor:"bg-slate-100/80"},[Ye.RENEWAL]:{color:"text-slate-700",bgColor:"bg-slate-100/80"},[Ye.UPGRADE]:{color:"text-slate-700",bgColor:"bg-slate-100/80"},[Ye.RESET_FLOW]:{color:"text-slate-700",bgColor:"bg-slate-100/80"}},Sx={[xe.MONTH_PRICE]:{color:"text-slate-700",bgColor:"bg-slate-100/80"},[xe.QUARTER_PRICE]:{color:"text-slate-700",bgColor:"bg-slate-100/80"},[xe.HALF_YEAR_PRICE]:{color:"text-slate-700",bgColor:"bg-slate-100/80"},[xe.YEAR_PRICE]:{color:"text-slate-700",bgColor:"bg-slate-100/80"},[xe.TWO_YEAR_PRICE]:{color:"text-slate-700",bgColor:"bg-slate-100/80"},[xe.THREE_YEAR_PRICE]:{color:"text-slate-700",bgColor:"bg-slate-100/80"},[xe.ONETIME_PRICE]:{color:"text-slate-700",bgColor:"bg-slate-100/80"},[xe.RESET_PRICE]:{color:"text-slate-700",bgColor:"bg-slate-100/80"}},kx=s=>Z[s],Px=s=>re[s],Tx=s=>Ye[s],Dx=s=>{const{t:n}=I("order");return[{accessorKey:"trade_no",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.tradeNo")}),cell:({row:a})=>{const l=a.original.trade_no,r=l.length>6?`${l.slice(0,3)}...${l.slice(-3)}`:l;return e.jsx("div",{className:"flex items-center",children:e.jsx(wx,{trigger:e.jsxs(J,{variant:"ghost",size:"sm",className:"flex h-8 items-center gap-1.5 px-2 font-medium text-primary transition-colors hover:bg-primary/10 hover:text-primary/80",children:[e.jsx("span",{className:"font-mono",children:r}),e.jsx(Jn,{className:"h-3.5 w-3.5 opacity-70"})]}),id:a.original.id})})},enableSorting:!1,enableHiding:!1},{accessorKey:"type",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.type")}),cell:({row:a})=>{const l=a.getValue("type"),r=Cx[l];return e.jsx(K,{variant:"secondary",className:_("font-medium transition-colors text-nowrap",r.color,r.bgColor,"border border-border/50","hover:bg-slate-200/80"),children:n(`type.${Tx(l)}`)})},enableSorting:!1,enableHiding:!1},{accessorKey:"plan.name",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.plan")}),cell:({row:a})=>e.jsx("div",{className:"flex space-x-2",children:e.jsx("span",{className:"max-w-32 truncate font-medium text-foreground/90 sm:max-w-72 md:max-w-[31rem]",children:a.original.plan?.name||"-"})}),enableSorting:!1,enableHiding:!1},{accessorKey:"period",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.period")}),cell:({row:a})=>{const l=a.getValue("period"),r=Sx[l];return e.jsx(K,{variant:"secondary",className:_("font-medium transition-colors text-nowrap",r.color,r.bgColor,"hover:bg-opacity-80"),children:n(`period.${l}`)})},enableSorting:!1,enableHiding:!1},{accessorKey:"total_amount",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.amount")}),cell:({row:a})=>{const l=a.getValue("total_amount"),r=typeof l=="number"?(l/100).toFixed(2):"N/A";return e.jsxs("div",{className:"flex items-center font-mono text-foreground/90",children:["¥",r]})},enableSorting:!0,enableHiding:!1},{accessorKey:"status",header:({column:a})=>e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(O,{column:a,title:n("table.columns.status")}),e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{children:e.jsx(Fr,{className:"h-4 w-4 text-muted-foreground/70 transition-colors hover:text-muted-foreground"})}),e.jsx(te,{side:"top",className:"max-w-[200px] text-sm",children:n("status.tooltip")})]})})]}),cell:({row:a})=>{const l=$s.find(r=>r.value===a.getValue("status"));return l?e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[l.icon&&e.jsx(l.icon,{className:`h-4 w-4 text-${l.color}`}),e.jsx("span",{className:"text-sm font-medium",children:n(`status.${kx(l.value)}`)})]}),l.value===Z.PENDING&&e.jsxs(_s,{modal:!0,children:[e.jsx(ws,{asChild:!0,children:e.jsxs(J,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 hover:bg-muted/60",children:[e.jsx(wt,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:n("actions.openMenu")})]})}),e.jsxs(ds,{align:"end",className:"w-[140px]",children:[e.jsx(je,{className:"cursor-pointer",onClick:async()=>{await jd({trade_no:a.original.trade_no}),s()},children:n("actions.markAsPaid")}),e.jsx(je,{className:"cursor-pointer text-destructive focus:text-destructive",onClick:async()=>{await vd({trade_no:a.original.trade_no}),s()},children:n("actions.cancel")})]})]})]}):null},enableSorting:!0,enableHiding:!1},{accessorKey:"commission_balance",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.commission")}),cell:({row:a})=>{const l=a.getValue("commission_balance"),r=l?(l/100).toFixed(2):"-";return e.jsx("div",{className:"flex items-center font-mono text-foreground/90",children:l?`¥${r}`:"-"})},enableSorting:!0,enableHiding:!1},{accessorKey:"commission_status",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.commissionStatus")}),cell:({row:a})=>{const l=a.original.status,r=a.original.commission_balance,c=st.find(i=>i.value===a.getValue("commission_status"));return r==0||!c?e.jsx("span",{className:"text-muted-foreground",children:"-"}):e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[c.icon&&e.jsx(c.icon,{className:`h-4 w-4 text-${c.color}`}),e.jsx("span",{className:"text-sm font-medium",children:n(`commission.${Px(c.value)}`)})]}),c.value===re.PENDING&&l===Z.COMPLETED&&e.jsxs(_s,{modal:!0,children:[e.jsx(ws,{asChild:!0,children:e.jsxs(J,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 hover:bg-muted/60",children:[e.jsx(wt,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:n("actions.openMenu")})]})}),e.jsxs(ds,{align:"end",className:"w-[120px]",children:[e.jsx(je,{className:"cursor-pointer",onClick:async()=>{await Aa({trade_no:a.original.trade_no,commission_status:re.PROCESSING}),s()},children:n("commission.PROCESSING")}),e.jsx(je,{className:"cursor-pointer text-destructive focus:text-destructive",onClick:async()=>{await Aa({trade_no:a.original.trade_no,commission_status:re.INVALID}),s()},children:n("commission.INVALID")})]})]})]})},enableSorting:!0,enableHiding:!1},{accessorKey:"created_at",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.createdAt")}),cell:({row:a})=>e.jsx("div",{className:"text-nowrap font-mono text-sm text-muted-foreground",children:he(a.getValue("created_at"),"YYYY/MM/DD HH:mm:ss")}),enableSorting:!0,enableHiding:!1}]};function Ex(){const[s]=Qn(),[n,a]=m.useState({}),[l,r]=m.useState({}),[c,i]=m.useState([]),[u,x]=m.useState([]),[o,d]=m.useState({pageIndex:0,pageSize:20});m.useEffect(()=>{const S=Object.entries({user_id:"string",order_id:"string",commission_status:"number",status:"number",commission_balance:"string"}).map(([j,C])=>{const k=s.get(j);return k?{id:j,value:C==="number"?parseInt(k):k}:null}).filter(Boolean);S.length>0&&i(S)},[s]);const{refetch:p,data:T,isLoading:R}=se({queryKey:["orderList",o,c,u],queryFn:()=>pd({pageSize:o.pageSize,current:o.pageIndex+1,filter:c,sort:u})}),f=Ke({data:T?.data??[],columns:Dx(p),state:{sorting:u,columnVisibility:l,rowSelection:n,columnFilters:c,pagination:o},rowCount:T?.total??0,manualPagination:!0,manualFiltering:!0,manualSorting:!0,enableRowSelection:!0,onRowSelectionChange:a,onSortingChange:x,onColumnFiltersChange:i,onColumnVisibilityChange:r,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),onPaginationChange:d,getSortedRowModel:Ze(),getFacetedRowModel:us(),getFacetedUniqueValues:xs(),initialState:{columnPinning:{right:["actions"]}}});return e.jsx(es,{table:f,toolbar:e.jsx(Nx,{table:f,refetch:p}),showPagination:!0})}function Rx(){const{t:s}=I("order");return e.jsxs(we,{children:[e.jsxs(Ce,{children:[e.jsx(Ie,{}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsx("div",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:s("title")}),e.jsx("p",{className:"text-muted-foreground mt-2",children:s("description")})]})}),e.jsx("div",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx(Ex,{})})]})]})}const Vx=Object.freeze(Object.defineProperty({__proto__:null,default:Rx},Symbol.toStringTag,{value:"Module"}));function Ix({column:s,title:n,options:a}){const l=s?.getFacetedUniqueValues(),r=new Set(s?.getFilterValue());return e.jsxs(rs,{children:[e.jsx(ls,{asChild:!0,children:e.jsxs(V,{variant:"outline",size:"sm",className:"h-8 border-dashed",children:[e.jsx(dt,{className:"mr-2 h-4 w-4"}),n,r?.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(ye,{orientation:"vertical",className:"mx-2 h-4"}),e.jsx(K,{variant:"secondary",className:"rounded-sm px-1 font-normal lg:hidden",children:r.size}),e.jsx("div",{className:"hidden space-x-1 lg:flex",children:r.size>2?e.jsxs(K,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:[r.size," selected"]}):a.filter(c=>r.has(c.value)).map(c=>e.jsx(K,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:c.label},c.value))})]})]})}),e.jsx(Xe,{className:"w-[200px] p-0",align:"start",children:e.jsxs(Cs,{children:[e.jsx(Fs,{placeholder:n}),e.jsxs(Ss,{children:[e.jsx(Ms,{children:"No results found."}),e.jsx(Oe,{children:a.map(c=>{const i=r.has(c.value);return e.jsxs(ke,{onSelect:()=>{i?r.delete(c.value):r.add(c.value);const u=Array.from(r);s?.setFilterValue(u.length?u:void 0)},children:[e.jsx("div",{className:_("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",i?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:e.jsx(Rs,{className:_("h-4 w-4")})}),c.icon&&e.jsx(c.icon,{className:`mr-2 h-4 w-4 text-muted-foreground text-${c.color}`}),e.jsx("span",{children:c.label}),l?.get(c.value)&&e.jsx("span",{className:"ml-auto flex h-4 w-4 items-center justify-center font-mono text-xs",children:l.get(c.value)})]},c.value)})}),r.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(Gs,{}),e.jsx(Oe,{children:e.jsx(ke,{onSelect:()=>s?.setFilterValue(void 0),className:"justify-center text-center",children:"Clear filters"})})]})]})]})})]})}const Fx=h.object({id:h.coerce.number().nullable().optional(),name:h.string().min(1,"请输入优惠券名称"),code:h.string().nullable(),type:h.coerce.number(),value:h.coerce.number(),started_at:h.coerce.number(),ended_at:h.coerce.number(),limit_use:h.union([h.string(),h.number()]).nullable(),limit_use_with_user:h.union([h.string(),h.number()]).nullable(),generate_count:h.coerce.number().nullable().optional(),limit_plan_ids:h.array(h.number()).default([]).nullable(),limit_period:h.array(h.nativeEnum(xe)).default([]).nullable()}).refine(s=>s.ended_at>s.started_at,{message:"结束时间必须晚于开始时间",path:["ended_at"]}),Ya={name:"",code:"",type:Fe.AMOUNT,value:0,started_at:Math.floor(Date.now()/1e3),ended_at:Math.floor(Date.now()/1e3)+7*24*60*60,limit_use:"",limit_use_with_user:"",limit_plan_ids:[],limit_period:[],generate_count:""};function Ur({defaultValues:s,refetch:n,type:a="create",dialogTrigger:l=null,open:r,onOpenChange:c}){const{t:i}=I("coupon"),[u,x]=m.useState(!1),o=r??u,d=c??x,[p,T]=m.useState([]),R=de({resolver:me(Fx),defaultValues:s||Ya});m.useEffect(()=>{s&&R.reset(s)},[s,R]),m.useEffect(()=>{Os().then(({data:j})=>T(j))},[]);const f=j=>{if(!j)return;const C=(k,v)=>{const P=new Date(v*1e3);return k.setHours(P.getHours(),P.getMinutes(),P.getSeconds()),Math.floor(k.getTime()/1e3)};j.from&&R.setValue("started_at",C(j.from,R.watch("started_at"))),j.to&&R.setValue("ended_at",C(j.to,R.watch("ended_at")))},g=async j=>{Nd(j).then(()=>{d(!1),a==="create"&&R.reset(Ya),n()})},S=(j,C)=>e.jsxs("div",{className:"flex-1 space-y-1.5",children:[e.jsx("div",{className:"text-sm font-medium text-muted-foreground",children:C}),e.jsx(D,{type:"datetime-local",step:"1",value:he(R.watch(j),"YYYY-MM-DDTHH:mm:ss"),onChange:k=>{const v=new Date(k.target.value);R.setValue(j,Math.floor(v.getTime()/1e3))},className:"h-8 [&::-webkit-calendar-picker-indicator]:hidden"})]});return e.jsxs(pe,{open:o,onOpenChange:d,children:[l&&e.jsx(ze,{asChild:!0,children:l}),e.jsxs(fe,{className:"sm:max-w-[425px]",children:[e.jsx(be,{children:e.jsx(ge,{children:i(a==="create"?"form.add":"form.edit")})}),e.jsx(ue,{...R,children:e.jsxs("form",{onSubmit:R.handleSubmit(g),className:"space-y-4",children:[e.jsx(y,{control:R.control,name:"name",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:i("form.name.label")}),e.jsx(D,{placeholder:i("form.name.placeholder"),...j}),e.jsx(E,{})]})}),e.jsx(y,{control:R.control,name:"code",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:i("form.code.label")}),e.jsx(D,{placeholder:i("form.code.placeholder"),...j,className:"h-9"}),e.jsx(M,{className:"text-xs",children:i("form.code.description")}),e.jsx(E,{})]})}),e.jsxs(b,{children:[e.jsx(N,{children:i("form.type.label")}),e.jsxs("div",{className:"flex",children:[e.jsx(y,{control:R.control,name:"type",render:({field:j})=>e.jsxs(G,{value:j.value.toString(),onValueChange:C=>{const k=j.value,v=parseInt(C);j.onChange(v);const P=R.getValues("value");P&&(k===Fe.AMOUNT&&v===Fe.PERCENT?R.setValue("value",P/100):k===Fe.PERCENT&&v===Fe.AMOUNT&&R.setValue("value",P*100))},children:[e.jsx(U,{className:"flex-[1.2] rounded-r-none border-r-0 focus:z-10",children:e.jsx(W,{placeholder:i("form.type.placeholder")})}),e.jsx(B,{children:Object.entries(Ud).map(([C,k])=>e.jsx(L,{value:C,children:i(`table.toolbar.types.${C}`)},C))})]})}),e.jsx(y,{control:R.control,name:"value",render:({field:j})=>{const C=j.value===""?"":R.watch("type")===Fe.AMOUNT&&typeof j.value=="number"?(j.value/100).toString():j.value.toString();return e.jsx(D,{type:"number",placeholder:i("form.value.placeholder"),...j,value:C,onChange:k=>{const v=k.target.value;if(v===""){j.onChange("");return}const P=parseFloat(v);isNaN(P)||j.onChange(R.watch("type")===Fe.AMOUNT?Math.round(P*100):P)},step:"any",min:0,className:"flex-[2] rounded-none border-x-0 text-left"})}}),e.jsx("div",{className:"flex min-w-[40px] items-center justify-center rounded-md rounded-l-none border border-l-0 border-input bg-muted/50 px-3 font-medium text-muted-foreground",children:e.jsx("span",{children:R.watch("type")==Fe.AMOUNT?"¥":"%"})})]})]}),e.jsxs(b,{children:[e.jsx(N,{children:i("form.validity.label")}),e.jsxs(rs,{children:[e.jsx(ls,{asChild:!0,children:e.jsxs(V,{variant:"outline",className:_("w-full justify-start text-left font-normal",!R.watch("started_at")&&"text-muted-foreground"),children:[e.jsx(ct,{className:"mr-2 h-4 w-4"}),he(R.watch("started_at"),"YYYY-MM-DD HH:mm:ss")," ",i("form.validity.to")," ",he(R.watch("ended_at"),"YYYY-MM-DD HH:mm:ss")]})}),e.jsxs(Xe,{className:"w-auto p-0",align:"start",children:[e.jsx("div",{className:"border-b border-border",children:e.jsx(zs,{mode:"range",selected:{from:new Date(R.watch("started_at")*1e3),to:new Date(R.watch("ended_at")*1e3)},onSelect:f,numberOfMonths:2})}),e.jsx("div",{className:"p-3",children:e.jsxs("div",{className:"flex items-center gap-4",children:[S("started_at",i("table.validity.startTime")),e.jsx("div",{className:"mt-6 text-sm text-muted-foreground",children:i("form.validity.to")}),S("ended_at",i("table.validity.endTime"))]})})]})]}),e.jsx(E,{})]}),e.jsx(y,{control:R.control,name:"limit_use",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:i("form.limitUse.label")}),e.jsx(D,{type:"number",min:0,placeholder:i("form.limitUse.placeholder"),...j,value:j.value===void 0?"":j.value,onChange:C=>j.onChange(C.target.value===""?"":C.target.value),className:"h-9"}),e.jsx(M,{className:"text-xs",children:i("form.limitUse.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:R.control,name:"limit_use_with_user",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:i("form.limitUseWithUser.label")}),e.jsx(D,{type:"number",min:0,placeholder:i("form.limitUseWithUser.placeholder"),...j,value:j.value===void 0?"":j.value,onChange:C=>j.onChange(C.target.value===""?"":C.target.value),className:"h-9"}),e.jsx(M,{className:"text-xs",children:i("form.limitUseWithUser.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:R.control,name:"limit_period",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:i("form.limitPeriod.label")}),e.jsx(ot,{options:Object.entries(xe).filter(([C])=>isNaN(Number(C))).map(([C,k])=>({label:k,value:C})),onChange:C=>{if(C.length===0){j.onChange([]);return}const k=C.map(v=>xe[v.value]);j.onChange(k)},value:(j.value||[]).map(C=>({label:Object.entries(xe).find(([k,v])=>v===C)?.[1]||"",value:Object.entries(xe).find(([k,v])=>v===C)?.[0]||""})),placeholder:i("form.limitPeriod.placeholder"),emptyIndicator:e.jsx("p",{className:"text-center text-sm text-muted-foreground",children:i("form.limitPeriod.empty")})}),e.jsx(M,{className:"text-xs",children:i("form.limitPeriod.description")}),e.jsx(E,{})]})}),e.jsx(y,{control:R.control,name:"limit_plan_ids",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:i("form.limitPlan.label")}),e.jsx(ot,{options:p?.map(C=>({label:C.name,value:C.id.toString()}))||[],onChange:C=>j.onChange(C.map(k=>Number(k.value))),value:(p||[]).filter(C=>(j.value||[]).includes(C.id)).map(C=>({label:C.name,value:C.id.toString()})),placeholder:i("form.limitPlan.placeholder"),emptyIndicator:e.jsx("p",{className:"text-center text-sm text-muted-foreground",children:i("form.limitPlan.empty")})}),e.jsx(E,{})]})}),a==="create"&&e.jsx(e.Fragment,{children:e.jsx(y,{control:R.control,name:"generate_count",render:({field:j})=>e.jsxs(b,{children:[e.jsx(N,{children:i("form.generateCount.label")}),e.jsx(D,{type:"number",min:0,placeholder:i("form.generateCount.placeholder"),...j,value:j.value===void 0?"":j.value,onChange:C=>j.onChange(C.target.value===""?"":C.target.value),className:"h-9"}),e.jsx(M,{className:"text-xs",children:i("form.generateCount.description")}),e.jsx(E,{})]})})}),e.jsx(Le,{children:e.jsx(V,{type:"submit",disabled:R.formState.isSubmitting,children:R.formState.isSubmitting?i("form.submit.saving"):i("form.submit.save")})})]})})]})]})}function Mx({table:s,refetch:n}){const a=s.getState().columnFilters.length>0,{t:l}=I("coupon");return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ur,{refetch:n,dialogTrigger:e.jsxs(V,{variant:"outline",size:"sm",className:"h-8 space-x-2",children:[e.jsx(Se,{icon:"ion:add"}),e.jsx("div",{children:l("form.add")})]})}),e.jsx(D,{placeholder:l("table.toolbar.search"),value:s.getColumn("name")?.getFilterValue()??"",onChange:r=>s.getColumn("name")?.setFilterValue(r.target.value),className:"h-8 w-[150px] lg:w-[250px]"}),s.getColumn("type")&&e.jsx(Ix,{column:s.getColumn("type"),title:l("table.toolbar.type"),options:[{value:Fe.AMOUNT,label:l(`table.toolbar.types.${Fe.AMOUNT}`)},{value:Fe.PERCENTAGE,label:l(`table.toolbar.types.${Fe.PERCENTAGE}`)}]}),a&&e.jsxs(V,{variant:"ghost",onClick:()=>s.resetColumnFilters(),className:"h-8 px-2 lg:px-3",children:[l("table.toolbar.reset"),e.jsx(Ae,{className:"ml-2 h-4 w-4"})]})]})}const Br=m.createContext(void 0);function Ox({children:s,refetch:n}){const[a,l]=m.useState(!1),[r,c]=m.useState(null),i=x=>{c(x),l(!0)},u=()=>{l(!1),c(null)};return e.jsxs(Br.Provider,{value:{isOpen:a,currentCoupon:r,openEdit:i,closeEdit:u},children:[s,r&&e.jsx(Ur,{defaultValues:r,refetch:n,type:"edit",open:a,onOpenChange:l})]})}function zx(){const s=m.useContext(Br);if(s===void 0)throw new Error("useCouponEdit must be used within a CouponEditProvider");return s}const Lx=s=>{const{t:n}=I("coupon");return[{accessorKey:"id",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.id")}),cell:({row:a})=>e.jsx(K,{children:a.original.id}),enableSorting:!0},{accessorKey:"show",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.show")}),cell:({row:a})=>e.jsx(H,{defaultChecked:a.original.show,onCheckedChange:l=>{wd({id:a.original.id,show:l}).then(({data:r})=>!r&&s())}}),enableSorting:!1},{accessorKey:"name",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.name")}),cell:({row:a})=>e.jsx("div",{className:"flex items-center",children:e.jsx("span",{children:a.original.name})}),enableSorting:!1,size:800},{accessorKey:"type",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.type")}),cell:({row:a})=>e.jsx(K,{variant:"outline",children:n(`table.toolbar.types.${a.original.type}`)}),enableSorting:!0},{accessorKey:"code",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.code")}),cell:({row:a})=>e.jsx(K,{variant:"secondary",children:a.original.code}),enableSorting:!0},{accessorKey:"limit_use",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.limitUse")}),cell:({row:a})=>e.jsx(K,{variant:"outline",children:a.original.limit_use===null?n("table.validity.unlimited"):a.original.limit_use}),enableSorting:!0},{accessorKey:"limit_use_with_user",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.limitUseWithUser")}),cell:({row:a})=>e.jsx(K,{variant:"outline",children:a.original.limit_use_with_user===null?n("table.validity.noLimit"):a.original.limit_use_with_user}),enableSorting:!0},{accessorKey:"#",header:({column:a})=>e.jsx(O,{column:a,title:n("table.columns.validity")}),cell:({row:a})=>{const[l,r]=m.useState(!1),c=Date.now(),i=a.original.started_at*1e3,u=a.original.ended_at*1e3,x=c>u,o=ce.jsx(O,{className:"justify-end",column:a,title:n("table.columns.actions")}),cell:({row:a})=>{const{openEdit:l}=zx();return e.jsxs("div",{className:"flex items-center justify-center",children:[e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-muted",onClick:()=>l(a.original),children:[e.jsx(Is,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),e.jsx("span",{className:"sr-only",children:n("table.actions.edit")})]}),e.jsx(Ue,{title:n("table.actions.deleteConfirm.title"),description:n("table.actions.deleteConfirm.description"),confirmText:n("table.actions.deleteConfirm.confirmText"),variant:"destructive",onConfirm:async()=>{_d({id:a.original.id}).then(({data:r})=>{r&&(q.success("删除成功"),s())})},children:e.jsxs(V,{variant:"ghost",size:"icon",className:"h-8 w-8 hover:bg-red-100 dark:hover:bg-red-900",children:[e.jsx(ns,{className:"h-4 w-4 text-muted-foreground hover:text-red-600 dark:hover:text-red-400"}),e.jsx("span",{className:"sr-only",children:n("table.actions.delete")})]})})]})}}]};function Ax(){const[s,n]=m.useState({}),[a,l]=m.useState({}),[r,c]=m.useState([]),[i,u]=m.useState([]),[x,o]=m.useState({pageIndex:0,pageSize:20}),{refetch:d,data:p}=se({queryKey:["couponList",x,r,i],queryFn:()=>yd({pageSize:x.pageSize,current:x.pageIndex+1,filter:r,sort:i})}),T=Ke({data:p?.data??[],columns:Lx(d),state:{sorting:i,columnVisibility:a,rowSelection:s,columnFilters:r,pagination:x},pageCount:Math.ceil((p?.total??0)/x.pageSize),rowCount:p?.total??0,manualPagination:!0,manualFiltering:!0,manualSorting:!0,enableRowSelection:!0,onRowSelectionChange:n,onSortingChange:u,onColumnFiltersChange:c,onColumnVisibilityChange:l,onPaginationChange:o,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),getSortedRowModel:Ze(),getFacetedRowModel:us(),getFacetedUniqueValues:xs(),initialState:{columnPinning:{right:["actions"]}}});return e.jsx(Ox,{refetch:d,children:e.jsx("div",{className:"space-y-4",children:e.jsx(es,{table:T,toolbar:e.jsx(Mx,{table:T,refetch:d})})})})}function $x(){const{t:s}=I("coupon");return e.jsxs(we,{children:[e.jsxs(Ce,{children:[e.jsx(Ie,{}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsx("div",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:s("title")}),e.jsx("p",{className:"text-muted-foreground mt-2",children:s("description")})]})}),e.jsx("div",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx(Ax,{})})]})]})}const qx=Object.freeze(Object.defineProperty({__proto__:null,default:$x},Symbol.toStringTag,{value:"Module"})),Kx=h.object({email_prefix:h.string().optional(),email_suffix:h.string().min(1),password:h.string().optional(),expired_at:h.number().optional().nullable(),plan_id:h.number().nullable(),generate_count:h.number().optional().nullable()}).refine(s=>s.generate_count===null?s.email_prefix!==void 0&&s.email_prefix!=="":!0,{message:"Email prefix is required when generate_count is null",path:["email_prefix"]}),Hx={email_prefix:"",email_suffix:"",password:"",expired_at:null,plan_id:null,generate_count:void 0};function Ux({refetch:s}){const{t:n}=I("user"),[a,l]=m.useState(!1),r=de({resolver:me(Kx),defaultValues:Hx,mode:"onChange"}),[c,i]=m.useState([]);return m.useEffect(()=>{a&&Os().then(({data:u})=>{u&&i(u)})},[a]),e.jsxs(pe,{open:a,onOpenChange:l,children:[e.jsx(ze,{asChild:!0,children:e.jsxs(J,{size:"sm",variant:"outline",className:"space-x-2 gap-0",children:[e.jsx(Se,{icon:"ion:add"}),e.jsx("div",{children:n("generate.button")})]})}),e.jsxs(fe,{className:"sm:max-w-[425px]",children:[e.jsxs(be,{children:[e.jsx(ge,{children:n("generate.title")}),e.jsx(Te,{})]}),e.jsxs(ue,{...r,children:[e.jsxs(b,{children:[e.jsx(N,{children:n("generate.form.email")}),e.jsxs("div",{className:"flex",children:[!r.watch("generate_count")&&e.jsx(y,{control:r.control,name:"email_prefix",render:({field:u})=>e.jsx(D,{className:"flex-[5] rounded-r-none",placeholder:n("generate.form.email_prefix"),...u})}),e.jsx("div",{className:`z-[-1] border border-r-0 border-input px-3 py-1 shadow-sm ${r.watch("generate_count")?"rounded-l-md":"border-l-0"}`,children:"@"}),e.jsx(y,{control:r.control,name:"email_suffix",render:({field:u})=>e.jsx(D,{className:"flex-[4] rounded-l-none",placeholder:n("generate.form.email_domain"),...u})})]})]}),e.jsx(y,{control:r.control,name:"password",render:({field:u})=>e.jsxs(b,{children:[e.jsx(N,{children:n("generate.form.password")}),e.jsx(D,{placeholder:n("generate.form.password_placeholder"),...u}),e.jsx(E,{})]})}),e.jsx(y,{control:r.control,name:"expired_at",render:({field:u})=>e.jsxs(b,{className:"flex flex-col",children:[e.jsx(N,{children:n("generate.form.expire_time")}),e.jsxs(rs,{children:[e.jsx(ls,{asChild:!0,children:e.jsx(w,{children:e.jsxs(J,{variant:"outline",className:_("w-full pl-3 text-left font-normal",!u.value&&"text-muted-foreground"),children:[u.value?he(u.value):e.jsx("span",{children:n("generate.form.expire_time_placeholder")}),e.jsx(ct,{className:"ml-auto h-4 w-4 opacity-50"})]})})}),e.jsxs(Xe,{className:"flex w-auto flex-col space-y-2 p-2",children:[e.jsx(Ri,{asChild:!0,children:e.jsx(J,{variant:"outline",className:"w-full",onClick:()=>{u.onChange(null)},children:n("generate.form.permanent")})}),e.jsx("div",{className:"rounded-md border",children:e.jsx(zs,{mode:"single",selected:u.value?new Date(u.value*1e3):void 0,onSelect:x=>{x&&u.onChange(x?.getTime()/1e3)}})})]})]})]})}),e.jsx(y,{control:r.control,name:"plan_id",render:({field:u})=>e.jsxs(b,{children:[e.jsx(N,{children:n("generate.form.subscription")}),e.jsx(w,{children:e.jsxs(G,{value:u.value?u.value.toString():"null",onValueChange:x=>u.onChange(x==="null"?null:parseInt(x)),children:[e.jsx(U,{children:e.jsx(W,{placeholder:n("generate.form.subscription_none")})}),e.jsxs(B,{children:[e.jsx(L,{value:"null",children:n("generate.form.subscription_none")}),c.map(x=>e.jsx(L,{value:x.id.toString(),children:x.name},x.id))]})]})})]})}),!r.watch("email_prefix")&&e.jsx(y,{control:r.control,name:"generate_count",render:({field:u})=>e.jsxs(b,{children:[e.jsx(N,{children:n("generate.form.generate_count")}),e.jsx(D,{type:"number",placeholder:n("generate.form.generate_count_placeholder"),value:u.value||"",onChange:x=>u.onChange(x.target.value?parseInt(x.target.value):null)})]})})]}),e.jsxs(Le,{children:[e.jsx(J,{variant:"outline",onClick:()=>l(!1),children:n("generate.form.cancel")}),e.jsx(J,{onClick:()=>r.handleSubmit(u=>{Pd(u).then(({data:x})=>{x&&(q.success(n("generate.form.success")),r.reset(),s(),l(!1))})})(),children:n("generate.form.submit")})]})]})]})}const Gr=Za,Wr=Xa,Bx=en,Yr=m.forwardRef(({className:s,...n},a)=>e.jsx(Pt,{className:_("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...n,ref:a}));Yr.displayName=Pt.displayName;const Gx=Es("fixed overflow-y-scroll z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-300 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-md",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-md"}},defaultVariants:{side:"right"}}),ya=m.forwardRef(({side:s="right",className:n,children:a,...l},r)=>e.jsxs(Bx,{children:[e.jsx(Yr,{}),e.jsxs(Tt,{ref:r,className:_(Gx({side:s}),n),...l,children:[e.jsxs(la,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[e.jsx(Ae,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]}),a]})]}));ya.displayName=Tt.displayName;const Na=({className:s,...n})=>e.jsx("div",{className:_("flex flex-col space-y-2 text-center sm:text-left",s),...n});Na.displayName="SheetHeader";const Jr=({className:s,...n})=>e.jsx("div",{className:_("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...n});Jr.displayName="SheetFooter";const _a=m.forwardRef(({className:s,...n},a)=>e.jsx(Dt,{ref:a,className:_("text-lg font-semibold text-foreground",s),...n}));_a.displayName=Dt.displayName;const wa=m.forwardRef(({className:s,...n},a)=>e.jsx(Et,{ref:a,className:_("text-sm text-muted-foreground",s),...n}));wa.displayName=Et.displayName;function Wx({table:s,refetch:n,permissionGroups:a=[],subscriptionPlans:l=[]}){const{t:r}=I("user"),c=s.getState().columnFilters.length>0,[i,u]=m.useState([]),[x,o]=m.useState(!1),d=[{label:r("filter.fields.email"),value:"email",type:"text",operators:[{label:r("filter.operators.contains"),value:"contains"},{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.id"),value:"id",type:"number",operators:[{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.plan_id"),value:"plan_id",type:"select",operators:[{label:r("filter.operators.eq"),value:"eq"}],useOptions:!0},{label:r("filter.fields.transfer_enable"),value:"transfer_enable",type:"number",unit:"GB",operators:[{label:r("filter.operators.gt"),value:"gt"},{label:r("filter.operators.lt"),value:"lt"},{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.total_used"),value:"total_used",type:"number",unit:"GB",operators:[{label:r("filter.operators.gt"),value:"gt"},{label:r("filter.operators.lt"),value:"lt"},{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.online_count"),value:"online_count",type:"number",operators:[{label:r("filter.operators.eq"),value:"eq"},{label:r("filter.operators.gt"),value:"gt"},{label:r("filter.operators.lt"),value:"lt"}]},{label:r("filter.fields.expired_at"),value:"expired_at",type:"date",operators:[{label:r("filter.operators.lt"),value:"lt"},{label:r("filter.operators.gt"),value:"gt"},{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.uuid"),value:"uuid",type:"text",operators:[{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.token"),value:"token",type:"text",operators:[{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.banned"),value:"banned",type:"select",operators:[{label:r("filter.operators.eq"),value:"eq"}],options:[{label:r("filter.status.normal"),value:"0"},{label:r("filter.status.banned"),value:"1"}]},{label:r("filter.fields.remark"),value:"remark",type:"text",operators:[{label:r("filter.operators.contains"),value:"contains"},{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.inviter_email"),value:"inviter_email",type:"text",operators:[{label:r("filter.operators.contains"),value:"contains"},{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.invite_user_id"),value:"invite_user_id",type:"number",operators:[{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.is_admin"),value:"is_admin",type:"boolean",operators:[{label:r("filter.operators.eq"),value:"eq"}]},{label:r("filter.fields.is_staff"),value:"is_staff",type:"boolean",operators:[{label:r("filter.operators.eq"),value:"eq"}]}],p=C=>C*1024*1024*1024,T=C=>C/(1024*1024*1024),R=()=>{u([...i,{field:"",operator:"",value:""}])},f=C=>{u(i.filter((k,v)=>v!==C))},g=(C,k,v)=>{const P=[...i];if(P[C]={...P[C],[k]:v},k==="field"){const z=d.find(Q=>Q.value===v);z&&(P[C].operator=z.operators[0].value,P[C].value=z.type==="boolean"?!1:"")}u(P)},S=(C,k)=>{const v=d.find(P=>P.value===C.field);if(!v)return null;switch(v.type){case"text":return e.jsx(D,{placeholder:r("filter.sheet.value"),value:C.value,onChange:P=>g(k,"value",P.target.value)});case"number":return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(D,{type:"number",placeholder:r("filter.sheet.value_number",{unit:v.unit}),value:v.unit==="GB"?T(C.value||0):C.value,onChange:P=>{const z=Number(P.target.value);g(k,"value",v.unit==="GB"?p(z):z)}}),v.unit&&e.jsx("span",{className:"text-sm text-muted-foreground",children:v.unit})]});case"date":return e.jsx(zs,{mode:"single",selected:C.value,onSelect:P=>g(k,"value",P),className:"rounded-md border"});case"select":return e.jsxs(G,{value:C.value,onValueChange:P=>g(k,"value",P),children:[e.jsx(U,{children:e.jsx(W,{placeholder:r("filter.sheet.value")})}),e.jsx(B,{children:v.useOptions?l.map(P=>e.jsx(L,{value:P.value.toString(),children:P.label},P.value)):v.options?.map(P=>e.jsx(L,{value:P.value.toString(),children:P.label},P.value))})]});case"boolean":return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(H,{checked:C.value,onCheckedChange:P=>g(k,"value",P)}),e.jsx(Ct,{children:C.value?r("filter.boolean.true"):r("filter.boolean.false")})]});default:return null}},j=()=>{const C=i.filter(k=>k.field&&k.operator&&k.value!=="").map(k=>{const v=d.find(z=>z.value===k.field);let P=k.value;return k.operator==="contains"?{id:k.field,value:P}:(v?.type==="date"&&P instanceof Date&&(P=Math.floor(P.getTime()/1e3)),v?.type==="boolean"&&(P=P?1:0),{id:k.field,value:`${k.operator}:${P}`})});s.setColumnFilters(C),o(!1)};return e.jsx("div",{className:"flex flex-wrap items-center justify-between gap-2",children:e.jsxs("div",{className:"flex flex-1 flex-wrap items-center gap-2",children:[e.jsx(Ux,{refetch:n}),e.jsx(D,{placeholder:r("filter.email_search"),value:s.getColumn("email")?.getFilterValue()??"",onChange:C=>s.getColumn("email")?.setFilterValue(C.target.value),className:"h-8 w-[150px] lg:w-[250px]"}),e.jsxs(Gr,{open:x,onOpenChange:o,children:[e.jsx(Wr,{asChild:!0,children:e.jsxs(V,{variant:"outline",size:"sm",className:"h-8 border-dashed",children:[e.jsx(Vi,{className:"mr-2 h-4 w-4"}),r("filter.advanced"),i.length>0&&e.jsx(K,{variant:"secondary",className:"ml-2 rounded-sm px-1",children:i.length})]})}),e.jsxs(ya,{className:"w-[400px] sm:w-[540px]",children:[e.jsxs(Na,{children:[e.jsx(_a,{children:r("filter.sheet.title")}),e.jsx(wa,{children:r("filter.sheet.description")})]}),e.jsxs("div",{className:"mt-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h4",{className:"font-medium",children:r("filter.sheet.conditions")}),e.jsx(V,{variant:"outline",size:"sm",onClick:R,children:r("filter.sheet.add")})]}),e.jsx(lt,{className:"h-[calc(100vh-280px)] pr-4",children:e.jsx("div",{className:"space-y-4",children:i.map((C,k)=>e.jsxs("div",{className:"space-y-3 rounded-lg border p-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(Ct,{children:r("filter.sheet.condition",{number:k+1})}),e.jsx(V,{variant:"ghost",size:"sm",onClick:()=>f(k),children:e.jsx(Ae,{className:"h-4 w-4"})})]}),e.jsxs(G,{value:C.field,onValueChange:v=>g(k,"field",v),children:[e.jsx(U,{children:e.jsx(W,{placeholder:r("filter.sheet.field")})}),e.jsx(B,{children:d.map(v=>e.jsx(L,{value:v.value,children:v.label},v.value))})]}),C.field&&e.jsxs(G,{value:C.operator,onValueChange:v=>g(k,"operator",v),children:[e.jsx(U,{children:e.jsx(W,{placeholder:r("filter.sheet.operator")})}),e.jsx(B,{children:d.find(v=>v.value===C.field)?.operators.map(v=>e.jsx(L,{value:v.value,children:v.label},v.value))})]}),C.field&&C.operator&&S(C,k)]},k))})}),e.jsxs("div",{className:"flex justify-end space-x-2",children:[e.jsx(V,{variant:"outline",onClick:()=>{u([]),o(!1)},children:r("filter.sheet.reset")}),e.jsx(V,{onClick:j,children:r("filter.sheet.apply")})]})]})]})]}),c&&e.jsxs(V,{variant:"ghost",onClick:()=>{s.resetColumnFilters(),u([])},className:"h-8 px-2 lg:px-3",children:[r("filter.reset"),e.jsx(Ae,{className:"ml-2 h-4 w-4"})]})]})})}const Yx=h.object({id:h.number(),email:h.string().email(),invite_user_email:h.string().email().nullable().optional(),password:h.string().optional().nullable(),balance:h.coerce.number(),commission_balance:h.coerce.number(),u:h.number(),d:h.number(),transfer_enable:h.number(),expired_at:h.number().nullable(),plan_id:h.number().nullable(),banned:h.number(),commission_type:h.number(),commission_rate:h.number().nullable(),discount:h.number().nullable(),speed_limit:h.number().nullable(),device_limit:h.number().nullable(),is_admin:h.number(),is_staff:h.number(),remarks:h.string().nullable()}),Qr=m.createContext(void 0);function Jx({children:s,defaultValues:n,open:a,onOpenChange:l}){const[r,c]=m.useState(!1),[i,u]=m.useState(!1),[x,o]=m.useState([]),d=de({resolver:me(Yx),defaultValues:n,mode:"onChange"});m.useEffect(()=>{a!==void 0&&c(a)},[a]);const p=T=>{c(T),l?.(T)};return e.jsx(Qr.Provider,{value:{form:d,formOpen:r,setFormOpen:p,datePickerOpen:i,setDatePickerOpen:u,planList:x,setPlanList:o},children:s})}function Qx(){const s=m.useContext(Qr);if(!s)throw new Error("useUserForm must be used within a UserFormProvider");return s}function Zx({refetch:s}){const{t:n}=I("user"),{form:a,formOpen:l,setFormOpen:r,datePickerOpen:c,setDatePickerOpen:i,planList:u,setPlanList:x}=Qx();return m.useEffect(()=>{l&&Os().then(({data:o})=>{x(o)})},[l,x]),e.jsxs(ue,{...a,children:[e.jsx(y,{control:a.control,name:"email",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.email")}),e.jsx(w,{children:e.jsx(D,{...o,placeholder:n("edit.form.email_placeholder")})}),e.jsx(E,{...o})]})}),e.jsx(y,{control:a.control,name:"invite_user_email",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.inviter_email")}),e.jsx(w,{children:e.jsx(D,{value:o.value||"",onChange:d=>o.onChange(d.target.value?d.target.value:null),placeholder:n("edit.form.inviter_email_placeholder")})}),e.jsx(E,{...o})]})}),e.jsx(y,{control:a.control,name:"password",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.password")}),e.jsx(w,{children:e.jsx(D,{value:o.value||"",onChange:o.onChange,placeholder:n("edit.form.password_placeholder")})}),e.jsx(E,{...o})]})}),e.jsxs("div",{className:"grid gap-2 md:grid-cols-2",children:[e.jsx(y,{control:a.control,name:"balance",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.balance")}),e.jsx(w,{children:e.jsxs("div",{className:"flex",children:[e.jsx(D,{type:"number",value:o.value||"",onChange:o.onChange,placeholder:n("edit.form.balance_placeholder"),className:"rounded-r-none"}),e.jsx("div",{className:"z-[-1] rounded-md rounded-l-none border border-l-0 border-input px-3 py-1 shadow-sm",children:"¥"})]})}),e.jsx(E,{...o})]})}),e.jsx(y,{control:a.control,name:"commission_balance",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.commission_balance")}),e.jsx(w,{children:e.jsxs("div",{className:"flex",children:[e.jsx(D,{type:"number",value:o.value||"",onChange:o.onChange,placeholder:n("edit.form.commission_balance_placeholder"),className:"rounded-r-none"}),e.jsx("div",{className:"z-[-1] rounded-md rounded-l-none border border-l-0 border-input px-3 py-1 shadow-sm",children:"¥"})]})}),e.jsx(E,{...o})]})}),e.jsx(y,{control:a.control,name:"u",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.upload")}),e.jsx(w,{children:e.jsxs("div",{className:"flex",children:[e.jsx(D,{value:o.value/1024/1024/1024||"",onChange:d=>o.onChange(parseInt(d.target.value)*1024*1024*1024),placeholder:n("edit.form.upload_placeholder"),className:"rounded-r-none"}),e.jsx("div",{className:"z-[-1] rounded-md rounded-l-none border border-l-0 border-input px-3 py-1 shadow-sm",children:"GB"})]})}),e.jsx(E,{...o})]})}),e.jsx(y,{control:a.control,name:"d",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.download")}),e.jsx(w,{children:e.jsxs("div",{className:"flex",children:[e.jsx(D,{type:"number",value:o.value/1024/1024/1024||"",onChange:d=>o.onChange(parseInt(d.target.value)*1024*1024*1024),placeholder:n("edit.form.download_placeholder"),className:"rounded-r-none"}),e.jsx("div",{className:"z-[-1] rounded-md rounded-l-none border border-l-0 border-input px-3 py-1 shadow-sm",children:"GB"})]})}),e.jsx(E,{...o})]})})]}),e.jsx(y,{control:a.control,name:"transfer_enable",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.total_traffic")}),e.jsx(w,{children:e.jsxs("div",{className:"flex",children:[e.jsx(D,{type:"number",value:o.value/1024/1024/1024||"",onChange:d=>o.onChange(parseInt(d.target.value)*1024*1024*1024),placeholder:n("edit.form.total_traffic_placeholder"),className:"rounded-r-none"}),e.jsx("div",{className:"z-[-1] rounded-md rounded-l-none border border-l-0 border-input px-3 py-1 shadow-sm",children:"GB"})]})}),e.jsx(E,{})]})}),e.jsx(y,{control:a.control,name:"expired_at",render:({field:o})=>e.jsxs(b,{className:"flex flex-col",children:[e.jsx(N,{children:n("edit.form.expire_time")}),e.jsxs(rs,{open:c,onOpenChange:i,children:[e.jsx(ls,{asChild:!0,children:e.jsx(w,{children:e.jsxs(V,{type:"button",variant:"outline",className:_("w-full pl-3 text-left font-normal",!o.value&&"text-muted-foreground"),onClick:()=>i(!0),children:[o.value?he(o.value):e.jsx("span",{children:n("edit.form.expire_time_placeholder")}),e.jsx(ct,{className:"ml-auto h-4 w-4 opacity-50"})]})})}),e.jsx(Xe,{className:"w-auto p-0",align:"start",side:"top",sideOffset:4,onInteractOutside:d=>{d.preventDefault()},onEscapeKeyDown:d=>{d.preventDefault()},children:e.jsxs("div",{className:"flex flex-col space-y-3 p-3",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(V,{type:"button",variant:"outline",className:"flex-1",onClick:()=>{o.onChange(null),i(!1)},children:n("edit.form.expire_time_permanent")}),e.jsx(V,{type:"button",variant:"outline",className:"flex-1",onClick:()=>{const d=new Date;d.setMonth(d.getMonth()+1),d.setHours(23,59,59,999),o.onChange(Math.floor(d.getTime()/1e3)),i(!1)},children:n("edit.form.expire_time_1month")}),e.jsx(V,{type:"button",variant:"outline",className:"flex-1",onClick:()=>{const d=new Date;d.setMonth(d.getMonth()+3),d.setHours(23,59,59,999),o.onChange(Math.floor(d.getTime()/1e3)),i(!1)},children:n("edit.form.expire_time_3months")})]}),e.jsx("div",{className:"rounded-md border",children:e.jsx(zs,{mode:"single",selected:o.value?new Date(o.value*1e3):void 0,onSelect:d=>{if(d){const p=new Date(o.value?o.value*1e3:Date.now());d.setHours(p.getHours(),p.getMinutes(),p.getSeconds()),o.onChange(Math.floor(d.getTime()/1e3))}},disabled:d=>d{const d=new Date;d.setHours(23,59,59,999),o.onChange(Math.floor(d.getTime()/1e3))},className:"h-6 px-2 text-xs",children:n("edit.form.expire_time_today")})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(D,{type:"datetime-local",step:"1",value:he(o.value,"YYYY-MM-DDTHH:mm:ss"),onChange:d=>{const p=new Date(d.target.value);isNaN(p.getTime())||o.onChange(Math.floor(p.getTime()/1e3))},className:"flex-1"}),e.jsx(V,{type:"button",variant:"outline",onClick:()=>i(!1),children:n("edit.form.expire_time_confirm")})]})]})]})})]}),e.jsx(E,{})]})}),e.jsx(y,{control:a.control,name:"plan_id",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.subscription")}),e.jsx(w,{children:e.jsxs(G,{value:o.value?o.value.toString():"null",onValueChange:d=>o.onChange(d==="null"?null:parseInt(d)),children:[e.jsx(U,{children:e.jsx(W,{placeholder:n("edit.form.subscription_none")})}),e.jsxs(B,{children:[e.jsx(L,{value:"null",children:n("edit.form.subscription_none")}),u.map(d=>e.jsx(L,{value:d.id.toString(),children:d.name},d.id))]})]})})]})}),e.jsx(y,{control:a.control,name:"banned",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.account_status")}),e.jsx(w,{children:e.jsxs(G,{value:o.value.toString(),onValueChange:d=>o.onChange(parseInt(d)),children:[e.jsx(U,{children:e.jsx(W,{})}),e.jsxs(B,{children:[e.jsx(L,{value:"1",children:n("columns.status_text.banned")}),e.jsx(L,{value:"0",children:n("columns.status_text.normal")})]})]})})]})}),e.jsx(y,{control:a.control,name:"commission_type",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.commission_type")}),e.jsx(w,{children:e.jsxs(G,{value:o.value.toString(),onValueChange:d=>o.onChange(parseInt(d)),children:[e.jsx(U,{children:e.jsx(W,{placeholder:n("edit.form.subscription_none")})}),e.jsxs(B,{children:[e.jsx(L,{value:"0",children:n("edit.form.commission_type_system")}),e.jsx(L,{value:"1",children:n("edit.form.commission_type_cycle")}),e.jsx(L,{value:"2",children:n("edit.form.commission_type_onetime")})]})]})})]})}),e.jsx(y,{control:a.control,name:"commission_rate",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.commission_rate")}),e.jsx(w,{children:e.jsxs("div",{className:"flex",children:[e.jsx(D,{type:"number",value:o.value||"",onChange:d=>o.onChange(parseInt(d.currentTarget.value)||null),placeholder:n("edit.form.commission_rate_placeholder"),className:"rounded-r-none"}),e.jsx("div",{className:"z-[-1] rounded-md rounded-l-none border border-l-0 border-input px-3 py-1 shadow-sm",children:"%"})]})})]})}),e.jsx(y,{control:a.control,name:"discount",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.discount")}),e.jsx(w,{children:e.jsxs("div",{className:"flex",children:[e.jsx(D,{type:"number",value:o.value||"",onChange:d=>o.onChange(parseInt(d.currentTarget.value)||null),placeholder:n("edit.form.discount_placeholder"),className:"rounded-r-none"}),e.jsx("div",{className:"z-[-1] rounded-md rounded-l-none border border-l-0 border-input px-3 py-1 shadow-sm",children:"%"})]})}),e.jsx(E,{})]})}),e.jsx(y,{control:a.control,name:"speed_limit",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.speed_limit")}),e.jsx(w,{children:e.jsxs("div",{className:"flex",children:[e.jsx(D,{type:"number",value:o.value||"",onChange:d=>o.onChange(parseInt(d.currentTarget.value)||null),placeholder:n("edit.form.speed_limit_placeholder"),className:"rounded-r-none"}),e.jsx("div",{className:"z-[-1] rounded-md rounded-l-none border border-l-0 border-input px-3 py-1 shadow-sm",children:"Mbps"})]})}),e.jsx(E,{})]})}),e.jsx(y,{control:a.control,name:"device_limit",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.device_limit")}),e.jsx(w,{children:e.jsxs("div",{className:"flex",children:[e.jsx(D,{type:"number",value:o.value||"",onChange:d=>o.onChange(parseInt(d.currentTarget.value)||null),placeholder:n("edit.form.device_limit_placeholder"),className:"rounded-r-none"}),e.jsx("div",{className:"z-[-1] rounded-md rounded-l-none border border-l-0 border-input px-3 py-1 shadow-sm",children:"台"})]})}),e.jsx(E,{})]})}),e.jsx(y,{control:a.control,name:"is_admin",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.is_admin")}),e.jsx("div",{className:"py-2",children:e.jsx(w,{children:e.jsx(H,{checked:o.value===1,onCheckedChange:d=>o.onChange(d?1:0)})})})]})}),e.jsx(y,{control:a.control,name:"is_staff",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.is_staff")}),e.jsx("div",{className:"py-2",children:e.jsx(w,{children:e.jsx(H,{checked:o.value===1,onCheckedChange:d=>o.onChange(d?1:0)})})})]})}),e.jsx(y,{control:a.control,name:"remarks",render:({field:o})=>e.jsxs(b,{children:[e.jsx(N,{children:n("edit.form.remarks")}),e.jsx(w,{children:e.jsx(ps,{className:"h-24",value:o.value||"",onChange:d=>o.onChange(d.currentTarget.value??null),placeholder:n("edit.form.remarks_placeholder")})}),e.jsx(E,{})]})}),e.jsxs(Jr,{children:[e.jsx(V,{variant:"outline",onClick:()=>r(!1),children:n("edit.form.cancel")}),e.jsx(V,{type:"submit",onClick:()=>{a.handleSubmit(o=>{Sd(o).then(({data:d})=>{d&&(q.success(n("edit.form.success")),r(!1),s())})})()},children:n("edit.form.submit")})]})]})}function Zr({refetch:s,defaultValues:n,dialogTrigger:a=e.jsxs(V,{variant:"outline",size:"sm",className:"ml-auto hidden h-8 lg:flex",children:[e.jsx(dt,{className:"mr-2 h-4 w-4"}),t("edit.button")]})}){const{t:l}=I("user"),[r,c]=m.useState(!1);return e.jsx(Jx,{defaultValues:n,open:r,onOpenChange:c,children:e.jsxs(Gr,{open:r,onOpenChange:c,children:[e.jsx(Wr,{asChild:!0,children:a}),e.jsxs(ya,{className:"max-w-[90%] space-y-4",children:[e.jsxs(Na,{children:[e.jsx(_a,{children:l("edit.title")}),e.jsx(wa,{})]}),e.jsx(Zx,{refetch:s})]})]})})}const Xr=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"m17.71 11.29l-5-5a1 1 0 0 0-.33-.21a1 1 0 0 0-.76 0a1 1 0 0 0-.33.21l-5 5a1 1 0 0 0 1.42 1.42L11 9.41V17a1 1 0 0 0 2 0V9.41l3.29 3.3a1 1 0 0 0 1.42 0a1 1 0 0 0 0-1.42"})}),el=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M17.71 11.29a1 1 0 0 0-1.42 0L13 14.59V7a1 1 0 0 0-2 0v7.59l-3.29-3.3a1 1 0 0 0-1.42 1.42l5 5a1 1 0 0 0 .33.21a.94.94 0 0 0 .76 0a1 1 0 0 0 .33-.21l5-5a1 1 0 0 0 0-1.42"})}),Xx=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M17 11H9.41l3.3-3.29a1 1 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33a1 1 0 0 0 0 .76a1 1 0 0 0 .21.33l5 5a1 1 0 0 0 1.42 0a1 1 0 0 0 0-1.42L9.41 13H17a1 1 0 0 0 0-2"})}),eh=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M17.92 11.62a1 1 0 0 0-.21-.33l-5-5a1 1 0 0 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1 1 0 0 0 0 1.42a1 1 0 0 0 1.42 0l5-5a1 1 0 0 0 .21-.33a1 1 0 0 0 0-.76"})}),Gt=[{accessorKey:"record_at",header:"时间",cell:({row:s})=>e.jsx("div",{className:"flex items-center space-x-2",children:e.jsx("time",{className:"text-sm text-muted-foreground",children:mc(s.original.record_at)})})},{accessorKey:"u",header:"上行流量",cell:({row:s})=>e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Xr,{className:"h-4 w-4 text-emerald-500"}),e.jsx("span",{className:"font-mono text-sm",children:ss(s.original.u)})]})},{accessorKey:"d",header:"下行流量",cell:({row:s})=>e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(el,{className:"h-4 w-4 text-blue-500"}),e.jsx("span",{className:"font-mono text-sm",children:ss(s.original.d)})]})},{accessorKey:"server_rate",header:"倍率",cell:({row:s})=>{const n=s.original.server_rate;return e.jsx("div",{className:"flex items-center space-x-2",children:e.jsxs(K,{variant:"outline",className:"font-mono",children:[n,"x"]})})}},{id:"total",header:"总计",cell:({row:s})=>{const n=s.original.u+s.original.d;return e.jsx("div",{className:"flex items-center justify-end font-mono text-sm",children:ss(n)})}}];function sl({user_id:s,dialogTrigger:n}){const{t:a}=I(["traffic"]),[l,r]=m.useState(!1),[c,i]=m.useState({pageIndex:0,pageSize:20}),{data:u,isLoading:x}=se({queryKey:["userStats",s,c,l],queryFn:()=>l?Td({user_id:s,pageSize:c.pageSize,page:c.pageIndex+1}):null}),o=Ke({data:u?.data??[],columns:Gt,pageCount:Math.ceil((u?.total??0)/c.pageSize),state:{pagination:c},manualPagination:!0,getCoreRowModel:He(),onPaginationChange:i});return e.jsxs(pe,{open:l,onOpenChange:r,children:[e.jsx(ze,{asChild:!0,children:n}),e.jsxs(fe,{className:"sm:max-w-[700px]",children:[e.jsx(be,{children:e.jsx(ge,{children:a("trafficRecord.title")})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"rounded-md border",children:e.jsxs(fa,{children:[e.jsx(pa,{children:o.getHeaderGroups().map(d=>e.jsx(ys,{children:d.headers.map(p=>e.jsx(ja,{className:_("h-10 px-2 text-xs",p.id==="total"&&"text-right"),children:p.isPlaceholder?null:Nt(p.column.columnDef.header,p.getContext())},p.id))},d.id))}),e.jsx(ga,{children:x?Array.from({length:c.pageSize}).map((d,p)=>e.jsx(ys,{children:Array.from({length:Gt.length}).map((T,R)=>e.jsx(Ks,{className:"p-2",children:e.jsx(le,{className:"h-6 w-full"})},R))},p)):o.getRowModel().rows?.length?o.getRowModel().rows.map(d=>e.jsx(ys,{"data-state":d.getIsSelected()&&"selected",className:"h-10",children:d.getVisibleCells().map(p=>e.jsx(Ks,{className:"px-2",children:Nt(p.column.columnDef.cell,p.getContext())},p.id))},d.id)):e.jsx(ys,{children:e.jsx(Ks,{colSpan:Gt.length,className:"h-24 text-center",children:a("trafficRecord.noRecords")})})})]})}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("p",{className:"text-sm font-medium",children:a("trafficRecord.perPage")}),e.jsxs(G,{value:`${o.getState().pagination.pageSize}`,onValueChange:d=>{o.setPageSize(Number(d))},children:[e.jsx(U,{className:"h-8 w-[70px]",children:e.jsx(W,{placeholder:o.getState().pagination.pageSize})}),e.jsx(B,{side:"top",children:[10,20,30,40,50].map(d=>e.jsx(L,{value:`${d}`,children:d},d))})]}),e.jsx("p",{className:"text-sm font-medium",children:a("trafficRecord.records")})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("div",{className:"flex w-[100px] items-center justify-center text-sm",children:a("trafficRecord.page",{current:o.getState().pagination.pageIndex+1,total:o.getPageCount()})}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(J,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>o.previousPage(),disabled:!o.getCanPreviousPage()||x,children:e.jsx(Xx,{className:"h-4 w-4"})}),e.jsx(J,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>o.nextPage(),disabled:!o.getCanNextPage()||x,children:e.jsx(eh,{className:"h-4 w-4"})})]})]})]})]})]})]})}const sh=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M5 18h4.24a1 1 0 0 0 .71-.29l6.92-6.93L19.71 8a1 1 0 0 0 0-1.42l-4.24-4.29a1 1 0 0 0-1.42 0l-2.82 2.83l-6.94 6.93a1 1 0 0 0-.29.71V17a1 1 0 0 0 1 1m9.76-13.59l2.83 2.83l-1.42 1.42l-2.83-2.83ZM6 13.17l5.93-5.93l2.83 2.83L8.83 16H6ZM21 20H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2"})}),th=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M19 11h-6V5a1 1 0 0 0-2 0v6H5a1 1 0 0 0 0 2h6v6a1 1 0 0 0 2 0v-6h6a1 1 0 0 0 0-2"})}),ah=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M21 8.94a1.3 1.3 0 0 0-.06-.27v-.09a1 1 0 0 0-.19-.28l-6-6a1 1 0 0 0-.28-.19a.3.3 0 0 0-.09 0a.9.9 0 0 0-.33-.11H10a3 3 0 0 0-3 3v1H6a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3v-1h1a3 3 0 0 0 3-3zm-6-3.53L17.59 8H16a1 1 0 0 1-1-1ZM15 19a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h1v7a3 3 0 0 0 3 3h5Zm4-4a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3v3a3 3 0 0 0 3 3h3Z"})}),nh=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M21 11a1 1 0 0 0-1 1a8.05 8.05 0 1 1-2.22-5.5h-2.4a1 1 0 0 0 0 2h4.53a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1.77A10 10 0 1 0 22 12a1 1 0 0 0-1-1"})}),rh=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M9.5 10.5H12a1 1 0 0 0 0-2h-1V8a1 1 0 0 0-2 0v.55a2.5 2.5 0 0 0 .5 4.95h1a.5.5 0 0 1 0 1H8a1 1 0 0 0 0 2h1v.5a1 1 0 0 0 2 0v-.55a2.5 2.5 0 0 0-.5-4.95h-1a.5.5 0 0 1 0-1M21 12h-3V3a1 1 0 0 0-.5-.87a1 1 0 0 0-1 0l-3 1.72l-3-1.72a1 1 0 0 0-1 0l-3 1.72l-3-1.72a1 1 0 0 0-1 0A1 1 0 0 0 2 3v16a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-6a1 1 0 0 0-1-1M5 20a1 1 0 0 1-1-1V4.73l2 1.14a1.08 1.08 0 0 0 1 0l3-1.72l3 1.72a1.08 1.08 0 0 0 1 0l2-1.14V19a3 3 0 0 0 .18 1Zm15-1a1 1 0 0 1-2 0v-5h2Z"})}),lh=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M12.3 12.22A4.92 4.92 0 0 0 14 8.5a5 5 0 0 0-10 0a4.92 4.92 0 0 0 1.7 3.72A8 8 0 0 0 1 19.5a1 1 0 0 0 2 0a6 6 0 0 1 12 0a1 1 0 0 0 2 0a8 8 0 0 0-4.7-7.28M9 11.5a3 3 0 1 1 3-3a3 3 0 0 1-3 3m9.74.32A5 5 0 0 0 15 3.5a1 1 0 0 0 0 2a3 3 0 0 1 3 3a3 3 0 0 1-1.5 2.59a1 1 0 0 0-.5.84a1 1 0 0 0 .45.86l.39.26l.13.07a7 7 0 0 1 4 6.38a1 1 0 0 0 2 0a9 9 0 0 0-4.23-7.68"})}),oh=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M12 2a10 10 0 0 0-6.88 2.77V3a1 1 0 0 0-2 0v4.5a1 1 0 0 0 1 1h4.5a1 1 0 0 0 0-2h-2.4A8 8 0 1 1 4 12a1 1 0 0 0-2 0A10 10 0 1 0 12 2m0 6a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h2a1 1 0 0 0 0-2h-1V9a1 1 0 0 0-1-1"})}),ih=(s,n)=>{const{t:a}=I("user");return[{accessorKey:"is_admin",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.is_admin")}),enableSorting:!1,enableHiding:!0,filterFn:(l,r,c)=>c.includes(l.getValue(r)),size:0},{accessorKey:"is_staff",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.is_staff")}),enableSorting:!1,enableHiding:!0,filterFn:(l,r,c)=>c.includes(l.getValue(r)),size:0},{accessorKey:"id",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.id")}),cell:({row:l})=>e.jsx(K,{variant:"outline",children:l.original.id}),enableSorting:!0,enableHiding:!1},{accessorKey:"email",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.email")}),cell:({row:l})=>{const r=l.original.t||0,c=Date.now()/1e3-r<120,i=Math.floor(Date.now()/1e3-r);let u=c?a("columns.online_status.online"):r===0?a("columns.online_status.never"):a("columns.online_status.last_online",{time:he(r)});if(!c&&r!==0){const x=Math.floor(i/60),o=Math.floor(x/60),d=Math.floor(o/24);d>0?u+=` +`+a("columns.online_status.offline_duration.days",{count:d}):o>0?u+=` +`+a("columns.online_status.offline_duration.hours",{count:o}):x>0?u+=` +`+a("columns.online_status.offline_duration.minutes",{count:x}):u+=` +`+a("columns.online_status.offline_duration.seconds",{count:i})}return e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{children:e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsx("div",{className:_("size-2.5 rounded-full ring-2 ring-offset-2",c?"bg-green-500 ring-green-500/20":"bg-gray-300 ring-gray-300/20","transition-all duration-300")}),e.jsx("span",{className:"font-medium text-foreground/90",children:l.original.email})]})}),e.jsx(te,{side:"bottom",className:"max-w-[280px]",children:e.jsx("p",{className:"whitespace-pre-line text-sm",children:u})})]})})},enableSorting:!1,enableHiding:!1},{accessorKey:"online_count",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.online_count")}),cell:({row:l})=>{const r=l.original.device_limit,c=l.original.online_count||0;return e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{children:e.jsx("div",{className:"flex items-center gap-1.5",children:e.jsxs(K,{variant:"outline",className:_("min-w-[4rem] justify-center",r!==null&&c>=r?"border-destructive/50 bg-destructive/10 text-destructive":"border-primary/40 bg-primary/5 text-primary/90"),children:[c," / ",r===null?"∞":r]})})}),e.jsx(te,{side:"bottom",children:e.jsx("p",{className:"text-sm",children:r===null?a("columns.device_limit.unlimited"):a("columns.device_limit.limited",{count:r})})})]})})},enableSorting:!0,enableHiding:!1},{accessorKey:"banned",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.status")}),cell:({row:l})=>{const r=l.original.banned;return e.jsx("div",{className:"flex justify-center",children:e.jsx(K,{className:_("min-w-20 justify-center transition-colors",r?"bg-destructive/15 text-destructive hover:bg-destructive/25":"bg-success/15 text-success hover:bg-success/25"),children:a(r?"columns.status_text.banned":"columns.status_text.normal")})})},enableSorting:!0,filterFn:(l,r,c)=>c.includes(l.getValue(r))},{accessorKey:"plan_id",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.subscription")}),cell:({row:l})=>e.jsx("div",{className:"min-w-[10em] break-all",children:l.original?.plan?.name||"-"}),enableSorting:!1,enableHiding:!1},{accessorKey:"group_id",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.group")}),cell:({row:l})=>e.jsx("div",{className:"flex flex-wrap gap-1",children:e.jsx(K,{variant:"outline",className:_("px-2 py-0.5 font-medium","bg-secondary/50 hover:bg-secondary/70","border border-border/50","transition-all duration-200","cursor-default select-none","flex items-center gap-1.5 whitespace-nowrap"),children:l.original?.group?.name||"-"})}),enableSorting:!1},{accessorKey:"total_used",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.used_traffic")}),cell:({row:l})=>{const r=ss(l.original?.total_used),c=ss(l.original?.transfer_enable),i=l.original?.total_used/l.original?.transfer_enable*100||0;return e.jsx(ce,{delayDuration:100,children:e.jsxs(oe,{children:[e.jsx(ie,{className:"w-full",children:e.jsxs("div",{className:"w-full space-y-1",children:[e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:r}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:[i.toFixed(1),"%"]})]}),e.jsx("div",{className:"h-1.5 w-full rounded-full bg-secondary",children:e.jsx("div",{className:_("h-full rounded-full transition-all",i>90?"bg-destructive":"bg-primary"),style:{width:`${Math.min(i,100)}%`}})})]})}),e.jsx(te,{side:"bottom",children:e.jsxs("p",{className:"text-sm",children:[a("columns.total_traffic"),": ",c]})})]})})}},{accessorKey:"transfer_enable",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.total_traffic")}),cell:({row:l})=>e.jsx("div",{className:"font-medium text-muted-foreground",children:ss(l.original?.transfer_enable)})},{accessorKey:"expired_at",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.expire_time")}),cell:({row:l})=>{const r=l.original.expired_at,c=Date.now()/1e3,i=r!=null&&re.jsx(O,{column:l,title:a("columns.balance")}),cell:({row:l})=>{const r=qs(l.original?.balance);return e.jsxs("div",{className:"flex items-center gap-1 font-medium",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"¥"}),e.jsx("span",{className:"tabular-nums text-foreground",children:r})]})}},{accessorKey:"commission_balance",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.commission")}),cell:({row:l})=>{const r=qs(l.original?.commission_balance);return e.jsxs("div",{className:"flex items-center gap-1 font-medium",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"¥"}),e.jsx("span",{className:"tabular-nums text-foreground",children:r})]})}},{accessorKey:"created_at",header:({column:l})=>e.jsx(O,{column:l,title:a("columns.register_time")}),cell:({row:l})=>e.jsx("div",{className:"truncate",children:he(l.original?.created_at)}),size:1e3},{id:"actions",header:({column:l})=>e.jsx(O,{column:l,className:"justify-end",title:a("columns.actions")}),cell:({row:l,table:r})=>e.jsxs(_s,{modal:!0,children:[e.jsx(ws,{asChild:!0,children:e.jsx("div",{className:"text-center",children:e.jsx(J,{variant:"ghost",className:"h-8 w-8 p-0 hover:bg-muted","aria-label":a("columns.actions"),children:e.jsx(wt,{className:"size-4"})})})}),e.jsxs(ds,{align:"end",className:"min-w-[40px]",children:[e.jsx(je,{onSelect:c=>{c.preventDefault()},className:"p-0",children:e.jsx(Zr,{defaultValues:{...l.original,invite_user_email:l.original.invite_user?.email},refetch:s,dialogTrigger:e.jsxs(J,{variant:"ghost",className:"w-full justify-start px-2 py-1.5",children:[e.jsx(sh,{className:"mr-2"}),a("columns.actions_menu.edit")]})})}),e.jsx(je,{onSelect:c=>c.preventDefault(),className:"p-0",children:e.jsx(Hr,{defaultValues:{email:l.original.email},trigger:e.jsxs(J,{variant:"ghost",className:"w-full justify-start px-2 py-1.5",children:[e.jsx(th,{className:"mr-2 "}),a("columns.actions_menu.assign_order")]})})}),e.jsx(je,{onSelect:()=>{St(l.original.subscribe_url).then(()=>{q.success(a("common:copy.success"))})},className:"p-0",children:e.jsxs(J,{variant:"ghost",className:"w-full justify-start px-2 py-1.5",children:[e.jsx(ah,{className:"mr-2"}),a("columns.actions_menu.copy_url")]})}),e.jsx(je,{onSelect:()=>{kd({id:l.original.id}).then(({data:c})=>{c&&q.success("重置成功")})},children:e.jsxs("div",{className:"flex items-center",children:[e.jsx(nh,{className:"mr-2 "}),a("columns.actions_menu.reset_secret")]})}),e.jsx(je,{onSelect:()=>{},className:"p-0",children:e.jsxs(Vs,{className:"flex items-center px-2 py-1.5",to:`/finance/order?user_id=${l.original?.id}`,children:[e.jsx(rh,{className:"mr-2"}),a("columns.actions_menu.orders")]})}),e.jsx(je,{onSelect:()=>{r.setColumnFilters([{id:"invite_user_id",value:l.original?.id}])},children:e.jsxs("div",{className:"flex items-center",children:[e.jsx(lh,{className:"mr-2 "}),a("columns.actions_menu.invites")]})}),e.jsx(je,{onSelect:c=>c.preventDefault(),className:"p-0",children:e.jsx(sl,{user_id:l.original?.id,dialogTrigger:e.jsxs(J,{variant:"ghost",className:"w-full justify-start px-2 py-1.5",children:[e.jsx(oh,{className:"mr-2 "}),a("columns.actions_menu.traffic_records")]})})})]})]})}]};function ch(){const[s]=Qn(),[n,a]=m.useState({}),[l,r]=m.useState({is_admin:!1,is_staff:!1}),[c,i]=m.useState([]),[u,x]=m.useState([]),[o,d]=m.useState({pageIndex:0,pageSize:20});m.useEffect(()=>{const P=s.get("email");P&&i(z=>z.some($=>$.id==="email")?z:[...z,{id:"email",value:P}])},[s]);const{refetch:p,data:T,isLoading:R}=se({queryKey:["userList",o,c,u],queryFn:()=>Cd({pageSize:o.pageSize,current:o.pageIndex+1,filter:c,sort:u})}),[f,g]=m.useState([]),[S,j]=m.useState([]);m.useEffect(()=>{Mt().then(({data:P})=>{g(P)}),Os().then(({data:P})=>{j(P)})},[]);const C=f.map(P=>({label:P.name,value:P.id})),k=S.map(P=>({label:P.name,value:P.id})),v=Ke({data:T?.data??[],columns:ih(p),state:{sorting:u,columnVisibility:l,rowSelection:n,columnFilters:c,pagination:o},rowCount:T?.total??0,manualPagination:!0,manualFiltering:!0,manualSorting:!0,enableRowSelection:!0,onRowSelectionChange:a,onSortingChange:x,onColumnFiltersChange:i,onColumnVisibilityChange:r,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),onPaginationChange:d,getSortedRowModel:Ze(),getFacetedRowModel:us(),getFacetedUniqueValues:xs(),initialState:{columnVisibility:{commission_balance:!1,created_at:!1,is_admin:!1,is_staff:!1,permission_group:!1,plan_id:!1},columnPinning:{right:["actions"]}}});return e.jsx(es,{table:v,toolbar:e.jsx(Wx,{table:v,refetch:p,serverGroupList:f,permissionGroups:C,subscriptionPlans:k})})}function dh(){const{t:s}=I("user");return e.jsxs(we,{children:[e.jsxs(Ce,{children:[e.jsx(Ie,{}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsx("div",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:s("manage.title")}),e.jsx("p",{className:"mt-2 text-muted-foreground",children:s("manage.description")})]})}),e.jsx("div",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx("div",{className:"w-full",children:e.jsx(ch,{})})})]})]})}const mh=Object.freeze(Object.defineProperty({__proto__:null,default:dh},Symbol.toStringTag,{value:"Module"}));function uh({column:s,title:n,options:a}){const l=new Set(s?.getFilterValue());return e.jsxs(rs,{children:[e.jsx(ls,{asChild:!0,children:e.jsxs(J,{variant:"outline",size:"sm",className:"h-8 border-dashed",children:[e.jsx(Ii,{className:"mr-2 h-4 w-4"}),n,l?.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(ye,{orientation:"vertical",className:"mx-2 h-4"}),e.jsx(K,{variant:"secondary",className:"rounded-sm px-1 font-normal lg:hidden",children:l.size}),e.jsx("div",{className:"hidden space-x-1 lg:flex",children:l.size>2?e.jsxs(K,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:[l.size," selected"]}):a.filter(r=>l.has(r.value)).map(r=>e.jsx(K,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:r.label},`selected-${r.value}`))})]})]})}),e.jsx(Xe,{className:"w-[200px] p-0",align:"start",children:e.jsxs(Cs,{children:[e.jsx(Fs,{placeholder:n}),e.jsxs(Ss,{children:[e.jsx(Ms,{children:"No results found."}),e.jsx(Oe,{children:a.map(r=>{const c=l.has(r.value);return e.jsxs(ke,{onSelect:()=>{c?l.delete(r.value):l.add(r.value);const i=Array.from(l);s?.setFilterValue(i.length?i:void 0)},children:[e.jsx("div",{className:_("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",c?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:e.jsx(Fi,{className:_("h-4 w-4")})}),r.icon&&e.jsx(r.icon,{className:"mr-2 h-4 w-4 text-muted-foreground"}),e.jsx("span",{children:r.label})]},`option-${r.value}`)})}),l.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(Gs,{}),e.jsx(Oe,{children:e.jsx(ke,{onSelect:()=>s?.setFilterValue(void 0),className:"justify-center text-center",children:"Clear filters"})})]})]})]})})]})}const xh=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M19 11H5a1 1 0 0 0 0 2h14a1 1 0 0 0 0-2"})});function hh({table:s}){const{t:n}=I("ticket");return e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{className:"flex flex-1 flex-col-reverse items-start gap-y-2 sm:flex-row sm:items-center sm:space-x-4",children:[e.jsx(ha,{defaultValue:s.getColumn("status")?.getFilterValue(),onValueChange:a=>s.getColumn("status")?.setFilterValue(a),children:e.jsxs(Ot,{className:"grid w-full grid-cols-2",children:[e.jsx(Ns,{value:"0",children:n("status.pending")}),e.jsx(Ns,{value:"1",children:n("status.closed")})]})}),s.getColumn("level")&&e.jsx(uh,{column:s.getColumn("level"),title:n("columns.level"),options:[{label:n("level.low"),value:ts.LOW,icon:xh,color:"gray"},{label:n("level.medium"),value:ts.MIDDLE,icon:Xr,color:"yellow"},{label:n("level.high"),value:ts.HIGH,icon:el,color:"red"}]})]})})}function fh(){return e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",className:"text-foreground",children:[e.jsx("circle",{cx:"4",cy:"12",r:"2",fill:"currentColor",children:e.jsx("animate",{id:"spinner_qFRN",begin:"0;spinner_OcgL.end+0.25s",attributeName:"cy",calcMode:"spline",dur:"0.6s",values:"12;6;12",keySplines:".33,.66,.66,1;.33,0,.66,.33"})}),e.jsx("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor",children:e.jsx("animate",{begin:"spinner_qFRN.begin+0.1s",attributeName:"cy",calcMode:"spline",dur:"0.6s",values:"12;6;12",keySplines:".33,.66,.66,1;.33,0,.66,.33"})}),e.jsx("circle",{cx:"20",cy:"12",r:"2",fill:"currentColor",children:e.jsx("animate",{id:"spinner_OcgL",begin:"spinner_qFRN.begin+0.2s",attributeName:"cy",calcMode:"spline",dur:"0.6s",values:"12;6;12",keySplines:".33,.66,.66,1;.33,0,.66,.33"})})]})}const ph=Es("flex gap-2 max-w-[60%] items-end relative group",{variants:{variant:{received:"self-start",sent:"self-end flex-row-reverse"},layout:{default:"",ai:"max-w-full w-full items-center"}},defaultVariants:{variant:"received",layout:"default"}}),tl=m.forwardRef(({className:s,variant:n,layout:a,children:l,...r},c)=>e.jsx("div",{className:_(ph({variant:n,layout:a,className:s}),"relative group"),ref:c,...r,children:m.Children.map(l,i=>m.isValidElement(i)&&typeof i.type!="string"?m.cloneElement(i,{variant:n,layout:a}):i)}));tl.displayName="ChatBubble";const gh=Es("p-4",{variants:{variant:{received:"bg-secondary text-secondary-foreground rounded-r-lg rounded-tl-lg",sent:"bg-primary text-primary-foreground rounded-l-lg rounded-tr-lg"},layout:{default:"",ai:"border-t w-full rounded-none bg-transparent"}},defaultVariants:{variant:"received",layout:"default"}}),al=m.forwardRef(({className:s,variant:n,layout:a,isLoading:l=!1,children:r,...c},i)=>e.jsx("div",{className:_(gh({variant:n,layout:a,className:s}),"break-words max-w-full whitespace-pre-wrap"),ref:i,...c,children:l?e.jsx("div",{className:"flex items-center space-x-2",children:e.jsx(fh,{})}):r}));al.displayName="ChatBubbleMessage";const jh=m.forwardRef(({variant:s,className:n,children:a,...l},r)=>e.jsx("div",{ref:r,className:_("absolute top-1/2 -translate-y-1/2 flex opacity-0 group-hover:opacity-100 transition-opacity duration-200",s==="sent"?"-left-1 -translate-x-full flex-row-reverse":"-right-1 translate-x-full",n),...l,children:a}));jh.displayName="ChatBubbleActionWrapper";const nl=m.forwardRef(({className:s,...n},a)=>e.jsx(ps,{autoComplete:"off",ref:a,name:"message",className:_("max-h-12 px-4 py-3 bg-background text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 w-full rounded-md flex items-center h-16 resize-none",s),...n}));nl.displayName="ChatInput";const rl=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"m13.41 12l4.3-4.29a1 1 0 1 0-1.42-1.42L12 10.59l-4.29-4.3a1 1 0 0 0-1.42 1.42l4.3 4.29l-4.3 4.29a1 1 0 0 0 0 1.42a1 1 0 0 0 1.42 0l4.29-4.3l4.29 4.3a1 1 0 0 0 1.42 0a1 1 0 0 0 0-1.42Z"})}),ll=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M15.098 12.634L13 11.423V7a1 1 0 0 0-2 0v5a1 1 0 0 0 .5.866l2.598 1.5a1 1 0 1 0 1-1.732M12 2a10 10 0 1 0 10 10A10.01 10.01 0 0 0 12 2m0 18a8 8 0 1 1 8-8a8.01 8.01 0 0 1-8 8"})}),vh=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M3.71 16.29a1 1 0 0 0-.33-.21a1 1 0 0 0-.76 0a1 1 0 0 0-.33.21a1 1 0 0 0-.21.33a1 1 0 0 0 .21 1.09a1.2 1.2 0 0 0 .33.21a.94.94 0 0 0 .76 0a1.2 1.2 0 0 0 .33-.21a1 1 0 0 0 .21-1.09a1 1 0 0 0-.21-.33M7 8h14a1 1 0 0 0 0-2H7a1 1 0 0 0 0 2m-3.29 3.29a1 1 0 0 0-1.09-.21a1.2 1.2 0 0 0-.33.21a1 1 0 0 0-.21.33a.94.94 0 0 0 0 .76a1.2 1.2 0 0 0 .21.33a1.2 1.2 0 0 0 .33.21a.94.94 0 0 0 .76 0a1.2 1.2 0 0 0 .33-.21a1.2 1.2 0 0 0 .21-.33a.94.94 0 0 0 0-.76a1 1 0 0 0-.21-.33M21 11H7a1 1 0 0 0 0 2h14a1 1 0 0 0 0-2M3.71 6.29a1 1 0 0 0-.33-.21a1 1 0 0 0-1.09.21a1.2 1.2 0 0 0-.21.33a.94.94 0 0 0 0 .76a1.2 1.2 0 0 0 .21.33a1.2 1.2 0 0 0 .33.21a1 1 0 0 0 1.09-.21a1.2 1.2 0 0 0 .21-.33a.94.94 0 0 0 0-.76a1.2 1.2 0 0 0-.21-.33M21 16H7a1 1 0 0 0 0 2h14a1 1 0 0 0 0-2"})}),bh=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M9 12H7a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2m-1-2h4a1 1 0 0 0 0-2H8a1 1 0 0 0 0 2m1 6H7a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2m12-4h-3V3a1 1 0 0 0-.5-.87a1 1 0 0 0-1 0l-3 1.72l-3-1.72a1 1 0 0 0-1 0l-3 1.72l-3-1.72a1 1 0 0 0-1 0A1 1 0 0 0 2 3v16a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-6a1 1 0 0 0-1-1M5 20a1 1 0 0 1-1-1V4.73l2 1.14a1.08 1.08 0 0 0 1 0l3-1.72l3 1.72a1.08 1.08 0 0 0 1 0l2-1.14V19a3 3 0 0 0 .18 1Zm15-1a1 1 0 0 1-2 0v-5h2Zm-6.44-2.83a.8.8 0 0 0-.18-.09a.6.6 0 0 0-.19-.06a1 1 0 0 0-.9.27A1.05 1.05 0 0 0 12 17a1 1 0 0 0 .07.38a1.2 1.2 0 0 0 .22.33a1.2 1.2 0 0 0 .33.21a.94.94 0 0 0 .76 0a1.2 1.2 0 0 0 .33-.21A1 1 0 0 0 14 17a1.05 1.05 0 0 0-.29-.71a2 2 0 0 0-.15-.12m.14-3.88a1 1 0 0 0-1.62.33A1 1 0 0 0 13 14a1 1 0 0 0 1-1a1 1 0 0 0-.08-.38a.9.9 0 0 0-.22-.33"})});function yh(){return e.jsxs("div",{className:"flex h-full flex-col space-y-4 p-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(le,{className:"h-8 w-3/4"}),e.jsx(le,{className:"h-4 w-1/2"})]}),e.jsx("div",{className:"flex-1 space-y-4",children:[1,2,3].map(s=>e.jsx(le,{className:"h-20 w-2/3"},s))})]})}function Nh({ticketId:s,dialogTrigger:n}){const{t:a}=I("ticket"),l=ms(),r=m.useRef(null),[c,i]=m.useState(!1),[u,x]=m.useState(""),[o,d]=m.useState(!1),{data:p,refetch:T,isLoading:R}=se({queryKey:["ticket",s,c],queryFn:()=>c?Ed(s):Promise.resolve(null),refetchInterval:c?5e3:!1,retry:3}),f=p?.data,g=(v="smooth")=>{if(r.current){const{scrollHeight:P,clientHeight:z}=r.current;r.current.scrollTo({top:P-z,behavior:v})}};m.useEffect(()=>{if(!c)return;const v=requestAnimationFrame(()=>{g("instant"),setTimeout(()=>g(),1e3)});return()=>{cancelAnimationFrame(v)}},[c,f?.messages]);const S=async()=>{const v=u.trim();!v||o||(d(!0),Rd({id:s,message:v}).then(()=>{x(""),T(),g()}).finally(()=>{d(!1)}))},j=async()=>{Nr(s).then(()=>{q.success(a("actions.close_success")),T()})},C=()=>{f?.user&&l("/finance/order?user_id="+f.user.id)},k=f?.status===at.CLOSED;return e.jsxs(pe,{open:c,onOpenChange:i,children:[e.jsx(ze,{asChild:!0,children:n??e.jsx(J,{variant:"outline",children:a("actions.view_ticket")})}),e.jsxs(fe,{className:"flex h-[90vh] max-w-4xl flex-col gap-0 p-0",children:[e.jsx(ge,{}),R?e.jsx(yh,{}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex flex-col space-y-4 border-b p-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:f?.subject}),e.jsx(K,{variant:k?"secondary":"default",children:a(k?"status.closed":"status.processing")}),!k&&e.jsx(Ue,{title:a("actions.close_confirm_title"),description:a("actions.close_confirm_description"),confirmText:a("actions.close_confirm_button"),variant:"destructive",onConfirm:j,children:e.jsxs(J,{variant:"ghost",size:"sm",className:"gap-1 text-muted-foreground hover:text-destructive",children:[e.jsx(rl,{className:"h-4 w-4"}),a("actions.close_ticket")]})})]}),e.jsxs("div",{className:"flex items-center space-x-4 text-sm text-muted-foreground",children:[e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(it,{className:"h-4 w-4"}),e.jsx("span",{children:f?.user?.email})]}),e.jsx(ye,{orientation:"vertical",className:"h-4"}),e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(ll,{className:"h-4 w-4"}),e.jsxs("span",{children:[a("detail.created_at")," ",he(f?.created_at)]})]}),e.jsx(ye,{orientation:"vertical",className:"h-4"}),e.jsx(K,{variant:"outline",children:f?.level!=null&&a(`level.${f.level===ts.LOW?"low":f.level===ts.MIDDLE?"medium":"high"}`)})]})]}),f?.user&&e.jsxs("div",{className:"flex space-x-2",children:[e.jsx(Zr,{defaultValues:f.user,refetch:T,dialogTrigger:e.jsx(J,{variant:"outline",size:"icon",className:"h-8 w-8",title:a("detail.user_info"),children:e.jsx(it,{className:"h-4 w-4"})})}),e.jsx(sl,{user_id:f.user.id,dialogTrigger:e.jsx(J,{variant:"outline",size:"icon",className:"h-8 w-8",title:a("detail.traffic_records"),children:e.jsx(vh,{className:"h-4 w-4"})})}),e.jsx(J,{variant:"outline",size:"icon",className:"h-8 w-8",title:a("detail.order_records"),onClick:C,children:e.jsx(bh,{className:"h-4 w-4"})})]})]})}),e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx("div",{ref:r,className:"h-full space-y-4 overflow-y-auto p-6",children:f?.messages?.length===0?e.jsx("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:a("detail.no_messages")}):f?.messages?.map(v=>e.jsx(tl,{variant:v.is_me?"sent":"received",className:v.is_me?"ml-auto":"mr-auto",children:e.jsx(al,{children:e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"whitespace-pre-wrap break-words",children:v.message}),e.jsx("div",{className:"text-right",children:e.jsx("time",{className:"text-[10px] text-muted-foreground",children:he(v.created_at)})})]})})},v.id))})}),e.jsx("div",{className:"border-t p-4",children:e.jsxs("div",{className:"relative flex items-center space-x-2",children:[e.jsx(nl,{disabled:k||o,placeholder:a(k?"detail.input.closed_placeholder":"detail.input.reply_placeholder"),className:"flex-1 resize-none rounded-lg border bg-background p-3 focus-visible:ring-1",value:u,onChange:v=>x(v.target.value),onKeyDown:v=>{v.key==="Enter"&&!v.shiftKey&&(v.preventDefault(),S())}}),e.jsx(J,{disabled:k||o||!u.trim(),onClick:S,children:a(o?"detail.input.sending":"detail.input.send")})]})})]})]})]})}const _h=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M19 4H5a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3m-.41 2l-5.88 5.88a1 1 0 0 1-1.42 0L5.41 6ZM20 17a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7.41l5.88 5.88a3 3 0 0 0 4.24 0L20 7.41Z"})}),wh=s=>e.jsx("svg",{className:"inline-block",viewBox:"0 0 24 24",width:"1.2em",height:"1.2em",...s,children:e.jsx("path",{fill:"currentColor",d:"M21.92 11.6C19.9 6.91 16.1 4 12 4s-7.9 2.91-9.92 7.6a1 1 0 0 0 0 .8C4.1 17.09 7.9 20 12 20s7.9-2.91 9.92-7.6a1 1 0 0 0 0-.8M12 18c-3.17 0-6.17-2.29-7.9-6C5.83 8.29 8.83 6 12 6s6.17 2.29 7.9 6c-1.73 3.71-4.73 6-7.9 6m0-10a4 4 0 1 0 4 4a4 4 0 0 0-4-4m0 6a2 2 0 1 1 2-2a2 2 0 0 1-2 2"})}),Ch=s=>{const{t:n}=I("ticket");return[{accessorKey:"id",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.id")}),cell:({row:a})=>e.jsx(K,{variant:"outline",children:a.getValue("id")}),enableSorting:!1,enableHiding:!1},{accessorKey:"subject",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.subject")}),cell:({row:a})=>e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(_h,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:"max-w-[500px] truncate font-medium",children:a.getValue("subject")})]}),enableSorting:!1,enableHiding:!1,size:4e3},{accessorKey:"level",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.level")}),cell:({row:a})=>{const l=a.getValue("level"),r=l===ts.LOW?"default":l===ts.MIDDLE?"secondary":"destructive";return e.jsx(K,{variant:r,className:"whitespace-nowrap",children:n(`level.${l===ts.LOW?"low":l===ts.MIDDLE?"medium":"high"}`)})},filterFn:(a,l,r)=>r.includes(a.getValue(l))},{accessorKey:"status",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.status")}),cell:({row:a})=>{const l=a.getValue("status"),r=a.original.reply_status,c=l===at.CLOSED?n("status.closed"):n(r===0?"status.replied":"status.pending"),i=l===at.CLOSED?"default":r===0?"secondary":"destructive";return e.jsx(K,{variant:i,className:"whitespace-nowrap",children:c})}},{accessorKey:"updated_at",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.updated_at")}),cell:({row:a})=>e.jsxs("div",{className:"flex items-center space-x-2 text-muted-foreground",children:[e.jsx(ll,{className:"h-4 w-4"}),e.jsx("span",{className:"text-sm",children:he(a.getValue("updated_at"))})]}),enableSorting:!0},{accessorKey:"created_at",header:({column:a})=>e.jsx(O,{column:a,title:n("columns.created_at")}),cell:({row:a})=>e.jsx("div",{className:"text-sm text-muted-foreground",children:he(a.getValue("created_at"))}),enableSorting:!0,meta:{isFlexGrow:!0}},{id:"actions",header:({column:a})=>e.jsx(O,{className:"justify-end",column:a,title:n("columns.actions")}),cell:({row:a})=>{const l=a.original.status!==at.CLOSED;return e.jsxs("div",{className:"flex items-center justify-center",children:[e.jsx(Nh,{ticketId:a.original.id,dialogTrigger:e.jsx(J,{variant:"ghost",size:"icon",className:"h-8 w-8",title:n("actions.view_details"),children:e.jsx(wh,{className:"h-4 w-4"})})}),l&&e.jsx(Ue,{title:n("actions.close_confirm_title"),description:n("actions.close_confirm_description"),confirmText:n("actions.close_confirm_button"),variant:"destructive",onConfirm:async()=>{Nr(a.original.id).then(()=>{q.success(n("actions.close_success")),s()})},children:e.jsx(J,{variant:"ghost",size:"icon",className:"h-8 w-8",title:n("actions.close_ticket"),children:e.jsx(rl,{className:"h-4 w-4"})})})]})}}]};function Sh(){const[s,n]=m.useState({}),[a,l]=m.useState({}),[r,c]=m.useState([{id:"status",value:"0"}]),[i,u]=m.useState([]),[x,o]=m.useState({pageIndex:0,pageSize:20}),{refetch:d,data:p,isLoading:T}=se({queryKey:["orderList",x,r,i],queryFn:()=>Dd({pageSize:x.pageSize,current:x.pageIndex+1,filter:r,sort:i})}),R=Ke({data:p?.data??[],columns:Ch(d),state:{sorting:i,columnVisibility:a,rowSelection:s,columnFilters:r,pagination:x},rowCount:p?.total??0,manualPagination:!0,manualFiltering:!0,manualSorting:!0,enableRowSelection:!0,onRowSelectionChange:n,onSortingChange:u,onColumnFiltersChange:c,onColumnVisibilityChange:l,getCoreRowModel:He(),getFilteredRowModel:Je(),getPaginationRowModel:Qe(),onPaginationChange:o,getSortedRowModel:Ze(),getFacetedRowModel:us(),getFacetedUniqueValues:xs(),initialState:{columnPinning:{right:["actions"]}}});return e.jsxs("div",{className:"space-y-4",children:[e.jsx(hh,{table:R,refetch:d}),e.jsx(es,{table:R,showPagination:!0})]})}function kh(){const{t:s}=I("ticket");return e.jsxs(we,{children:[e.jsxs(Ce,{children:[e.jsx(Ie,{}),e.jsxs("div",{className:"ml-auto flex items-center space-x-4",children:[e.jsx(Ee,{}),e.jsx(Re,{})]})]}),e.jsxs(Pe,{className:"flex flex-col",fixedHeight:!0,children:[e.jsx("div",{className:"mb-2 flex items-center justify-between space-y-2",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:s("title")}),e.jsx("p",{className:"mt-2 text-muted-foreground",children:s("description")})]})}),e.jsx("div",{className:"-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-x-12 lg:space-y-0",children:e.jsx(Sh,{})})]})]})}const Ph=Object.freeze(Object.defineProperty({__proto__:null,default:kh},Symbol.toStringTag,{value:"Module"}));export{Vh as a,Eh as c,Rh as g,Ih as r}; diff --git a/public/assets/admin/assets/vendor.css b/public/assets/admin/assets/vendor.css new file mode 100644 index 0000000..6ea3b6b --- /dev/null +++ b/public/assets/admin/assets/vendor.css @@ -0,0 +1 @@ +:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: #e74c3c;--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient( to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 );--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%)}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}@media only screen and (max-width : 480px){.Toastify__toast-container{width:100vw;padding:0;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}}.Toastify__toast{--y: 0;position:relative;touch-action:none;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;display:flex;justify-content:space-between;max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0;overflow:hidden}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;flex:1 1 auto;padding:6px;display:flex;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;flex:1}.Toastify__toast-icon{margin-inline-end:10px;width:20px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width : 480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;align-self:flex-start;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial;border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp{position:absolute;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@font-face{font-family:rmel-iconfont;src:url(data:application/vnd.ms-fontobject;base64,fBkAAMAYAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAB9vj4gAAAAAAAAAAAAAAAAAAAAAAABoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdAAAAA4AUgBlAGcAdQBsAGEAcgAAABYAVgBlAHIAcwBpAG8AbgAgADEALgAwAAAAGgByAG0AZQBsAC0AaQBjAG8AbgBmAG8AbgB0AAAAAAAAAQAAAAsAgAADADBHU1VCsP6z7QAAATgAAABCT1MvMj3jT5QAAAF8AAAAVmNtYXBA5I9dAAACPAAAAwhnbHlmMImhbQAABXwAAA9gaGVhZBtQ+k8AAADgAAAANmhoZWEH3gObAAAAvAAAACRobXR4aAAAAAAAAdQAAABobG9jYTX6MgAAAAVEAAAANm1heHABMAB7AAABGAAAACBuYW1lc9ztwgAAFNwAAAKpcG9zdCcpv64AABeIAAABNQABAAADgP+AAFwEAAAAAAAEAAABAAAAAAAAAAAAAAAAAAAAGgABAAAAAQAA4uPbB18PPPUACwQAAAAAANwY2ykAAAAA3BjbKQAA//8EAAMBAAAACAACAAAAAAAAAAEAAAAaAG8ADAAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQAAAAoAHgAsAAFERkxUAAgABAAAAAAAAAABAAAAAWxpZ2EACAAAAAEAAAABAAQABAAAAAEACAABAAYAAAABAAAAAAABBAABkAAFAAgCiQLMAAAAjwKJAswAAAHrADIBCAAAAgAFAwAAAAAAAAAAAAAAAAAAAAAAAAAAAABQZkVkAEDnbe2iA4D/gABcA4AAgAAAAAEAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAUAAAADAAAALAAAAAQAAAHMAAEAAAAAAMYAAwABAAAALAADAAoAAAHMAAQAmgAAABYAEAADAAbnbelB7TztRe1h7XXteO2A7Y3tov//AADnbelB7TvtRO1f7W/td+2A7Yztn///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAWABYAFgAYABoAHgAqACwALAAuAAAAAQAEAAUAAwAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAAgAUABUAFgAXABgAGQAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAABPAAAAAAAAAAZAADnbQAA520AAAABAADpQQAA6UEAAAAEAADtOwAA7TsAAAAFAADtPAAA7TwAAAADAADtRAAA7UQAAAAGAADtRQAA7UUAAAAHAADtXwAA7V8AAAAIAADtYAAA7WAAAAAJAADtYQAA7WEAAAAKAADtbwAA7W8AAAALAADtcAAA7XAAAAAMAADtcQAA7XEAAAANAADtcgAA7XIAAAAOAADtcwAA7XMAAAAPAADtdAAA7XQAAAAQAADtdQAA7XUAAAARAADtdwAA7XcAAAASAADteAAA7XgAAAATAADtgAAA7YAAAAACAADtjAAA7YwAAAAUAADtjQAA7Y0AAAAVAADtnwAA7Z8AAAAWAADtoAAA7aAAAAAXAADtoQAA7aEAAAAYAADtogAA7aIAAAAZAAAAAABmAMwBHgGEAbwB/gJmAsgC/gM0A3IDogRABKgE7gUuBXAFygYKBmoGpAbEBugHRgewAAAABQAAAAADVgLWAAsAGAAlADQAQAAAEyEyFhQGByEuATQ2Fz4BNyEeARQGIyEiJgM0NjchHgEUBiMhIiY3PgEzITIeARQOASMhIiYnFhQPAQYmNRE0NhfWAlQSGRkS/awSGRnaARgTAWASGRkS/qASGfQZEgJUEhkZEv2sEhnzARgTAWAMFAsLFAz+oBIZOQgIkgseHgsC1RklGAEBGCUZ8hMYAQEYJRkZ/oUTGAEBGCUZGdkSGQsVFxQMGoYGFgaVDAwRASoRDAwAAAAADAAAAAADqwKrAA8AEwAXABsAHwAjACcAMwA3ADsAPwBDAAABIQ4BBwMeARchPgE3ES4BBTMVIxUzFSMnMxUjFTMVKwI1MzUjNTMBISImNDYzITIWFAY3IzUzNSM1MxcjNTM1IzUzA1X9ViQwAQEBMSQCqiQxAQEx/lxWVlZWgFZWVlYqVlZWVgFV/wASGBgSAQASGBgZVlZWVoBWVlZWAqsBMST+ViQxAQExJAGqJDF/VipW1lYqVlYqVv6AGCQZGSQYqlYqVtZWKlYAAwAAAAADKwMAAA8AHwAzAAAlHgEXIT4BNxEuASchDgEHMyEyFhcRDgEHIS4BJxE+ASUnJisBIg8BIyIGFBYzITI2NCYjAQABMCQBViQwAQEwJP6qJDABgAEAExcBARcT/wATFwEBFwEoHgsStBILHmsTFxcTAgARGRkRVSQwAQEwJAGrJDABATAkFxT+qxEZAQEZEQFVFBfVHg0NHhcnFxcnFwADAAAAAAOrAtkAFgAtAD4AAAEVBg8BBiIvASY0PwEnJjQ/ATYyHwEWBTc2NC8BJiIPAQYHFRYfARYyPwE2NCcBJyYGBwMGFh8BFjY3EzYmJwOrAQmwBxEHHgYGk5MGBh4HEQewCf0PkwYGHwYSBrAJAQEJsAcRBx4GBgFCKQkPBOMCBwgoCQ8E4gMHCQGIEA0KsAYGHgcRBpOTBhIGHgYGsAoVkwYRBx4GBrAKDRANCrAGBh4GEgYB2Q8DBwj9jAgQAw4DBwgCcwgPBAACAAAAAAOaAm8AEAAhAAAlJzc2NCYiDwEGFB8BFjI2NCU3JyY0NjIfARYUDwEGIiY0AXOmpg0ZJAzEDQ3EDiEaAQ2mpg0aIQ7EDQ3EDiEa2qamDiEaDcQNIg3EDRohDqamDCQZDcQNIg3EDRkkAAAAAwAAAAADuAKsAAsAFwAjAAABDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgEDDgEHHgEXPgE3LgECAJjrNTXrmJjrNTXrmFZwAgJwVlZwAgJwVjRDAQFDNDRDAQFDAqwCpIaGpAICpIaGpP4OAnBWVnACAnBWVnABPgFDNDRDAQFDNDRDAAAABQAAAAADgAKrAAsAFwAjADAAQAAAEyEyNjQmIyEiBhQWFyE+ATQmJyEOARQWEyEyNjQmIyEiBhQWJx4BFyE+ATQmJyEOASUhHgEXEQ4BByEuATURNDarAQATFxcT/wARGRkRAQATFxcT/wARGRkRAQATFxcT/wARGRkaARkRAQATFxcT/wARGQHUAQARGQEBGRH/ABMXFwEAFycXFycXqwEZIhkBARkiGQFVFycXFycX1RMXAQEXJhcBARcYARcT/gARGQEBGRECABMXAAAAAAMAAAAAA6sCVgAZACYAQAAAASMiBhQWOwEeARcOAQcjIgYUFjsBPgE3LgEFHgEXIT4BNCYnIQ4BFyMuASc+ATczMjY0JisBDgEHHgEXMzI2NCYC1YASGBgSgDdIAQFIN4ASGBgSgFt4AwN4/iUBGBIBABIYGBL/ABIYVYA3SAEBSDeAEhgYEoBbeAMDeFuAEhgYAlUYJBkBSTY2SQEZJBgCeFtbeNMSGAEBGCQYAQEYkgFJNjZJARkkGAJ4W1t4AhgkGQABAAAAAAOsAisAHgAAAS4BJw4BBwYWFxY2Nz4BNzIWFwcGFhczPgE3NS4BBwMSO5ZVh9Q4ChMXFCMJK6FnP28sURMTHu4SGAECMRYBvDQ6AQKJchcqCAYPElZpASslUhYxAgEYEu8dFBMAAAABAAAAAAOyAisAHgAAAQ4BBycmBgcVHgEXMz4BLwE+ATMeARceATc+AScuAQIUVZY7URYxAgEYEu4eFBNSLW8+Z6ErCSQTFxMKOdMCKwE6NFAUFB3vEhgBAjEWUiUrAWlWEg8GCCoXcokAAAADAAAAAAL1Ar8AFAAcACQAAAE+ATcuAScjDgEHER4BFyE+ATc0JiUzHgEUBgcjEyM1Mx4BFAYCkyEpAQJmTu8UGQEBGRQBB0lpAjT+1IgdJycdiJ+fnx0nJwGKF0QkTmYCARoT/d4TGgECYUk1UtkBJjsmAf7viQEmOyYAAQAAAAADEgK/ABwAAAEeARczAyMOARQWFzM+ATQmJyMTMz4BNCYnIw4BAaUBJh0hnDsdJiYd5B0mJh0hnDsdJiYd5B0mAnodJgH+lAEmOicBASc6JgEBbAEmOicBAScABgAAAAADlgLWAAsAFwAjAEEAUgBuAAABIT4BNCYnIQ4BFBYBIQ4BFBYXIT4BNCYDIQ4BFBYXIT4BNCYFIyIGFBY7ARUjIgYUFjsBFSMiBhQWOwEyNjc1LgEDMxUeATI2PQE0JisBIgYUFhcjIgYUFjsBBwYdARQWOwEyNjQmKwE3Nj0BLgEBawIAEhgYEv4AEhkZAhL+ABIZGRICABIYGBL+ABIZGRICABIYGP1YVQkMDAlAFQoLCwoVQAkMDAlVCgsBAQtfFQELEwwMCSsJDAxeVQkMDAk3RwUMCVUKCwsKN0gFAQsCVQEYJBgBARgkGP5VARgkGAEBGCQYAQEBGCQYAQEYJBjVDBIMFgwSDBYMEgwMCYAJDAHWawkMDAmACQwMEgzWDBIMVAYICQkMDBIMVAYICQkMAAAAAAYAAAAAA4sCwAAIABEAGgAmADIAPwAAEw4BFBYyNjQmAw4BFBYyNjQmAw4BFBYyNjQmFyE+ATQmJyEOARQWNyE+ATQmJyEOARQWAx4BFyE+ATQmJyEOAbUbJCQ3JCQcGyQkNyQkHBskJDYlJI8CABIYGBL+ABIYGBICABIYGBL+ABIYGBkBGBICABIYGBL+ABIYAcABJDYkJDYkAQEBJDYkJDYk/gEBJDYkJDYkagEYJBgBARgkGP8BGCQYAQEYJBgBKhIYAQEYJBgBARgAAAACAAAAAANWAlYAFgAtAAAlMjY/ATY9AS4BKwEiBh0BFBYXMwcGFgUyNj8BNj0BNCYrASIGBxUeARczBwYWATIRGwc9CQEYEqsSGBgSViwOIAHMEBsIPAkYEqsSGAEBGBJVLA0gqxEOeRIUwhIYGBKrEhgBWB4zAREOeRIUwhIYGBKrEhgBWB4zAAAAAAMAAAAAA4ACwAAIABkAJQAAJT4BNzUjFR4BAR4BFzMVMzUzPgE0JichDgEDIT4BNCYnIQ4BFBYCACQwAaoBMP75ASQblqqWGyQkG/4qGyQrAqoSGRkS/VYSGRlAATAkKyskMAI/GyQBgIABJDYkAQEk/noBGCQYAQEYJBgAAAAAAgAA//8DKwMBABsAKAAAJT4BNxEuASIGBxEUBgcGLgI1ES4BIgYHER4BBx4BMyEyNjQmIyEiBgIiYnoCAR4tHgFBNSFBNR0BHi0eAQOm1AEYEgIAEhgYEv4AEhitD5NlARcWHh4W/uQ3UwwHDys8IwEgFh4eFv7gdpR2EhkZJBgYAAAAAwAAAAADcALHAAsALQA5AAATIT4BNCYjISIGFBYFISIGFBYXITIWFxYGByM1LgEPAQYUHwEWNjc1Mz4BJy4BBSMiBhQWFzM+ATQmwAJVEhkZEv2rEhgYAgv+BxIYGBICBiAzBgUxKGABGQtMBgZMDBgBVU1iBQhk/m2rEhgYEqsSGBgCcQEYJBgYJBisGCQYAScgKTkCIg8KCkwHEQdMCgoPIgJrTkRV/xgkGAEBGCQYAAAAAgAAAAADlgLAABQAKAAAARQWFzMRHgEyNjcRMz4BNCYnIQ4BAzMVFBYyNjc1MzI2NCYnIQ4BFBYBayQclQEkNiQBlRwkJBz+VhwkwEAkNyQBQBskJBv/ABwkJAKAGyQB/kAbJCQbAcABJDYkAQEk/tDrGyQkG+skNyQBASQ3JAAKAAAAAAN4AvgADwAWABoAIQAlACkALQA0ADgAPwAAASEOAQcRHgEXIT4BNxEuAQEjIiY9ATM1IzUzNSM1NDY7ARMjNTM1IzUzNSM1MxMjNTMVFAY3IzUzNSM1MzIWFQMs/aggKgEBKiACWCAqAQEq/h5xDxaWlpaWFg9x4ZaWlpaWlrxxlhYWlpaWcQ8WAvcBKiD9qCAqAQEqIAJYICr9XhYPcUuWS3EPFv2olkuWS5b9qJZxDxbhlkuWFg8AAAACAAD//wOAAwAADwAgAAAlES4BJyEOAQcRHgEXIT4BJRc3NjIfARYGIyEiJj8BPgEDgAEwJP2qJDABATAkAlYkMP39WYUHFAeVCAwN/gEOCwhqBxRVAlYkMAEBMCT9qiQwAQEw+2yqCAnHCxcXC4kIAQAAAAEAAAAAAzUCNgAQAAABBwYUFjI/ARcWMjY0LwEmIgHZ/hAhLBHX1xEsIRD+EC4CJv4RLCEQ19cQISwR/hAAAAABAAAAAAM1AjYAEgAAAQcnJiciDgEWHwEWMj8BNjQuAQLW1tcQFxEbDQYM/hEsEf4QIS0CJtfXDwESICAM/hAQ/hAtIAEAAAAEAAAAAANrAusAEAAhADMARAAANzMVFBYyNj0BNCYrASIGFBYTIyIGFBY7ATI2PQE0JiIGFQEyNj0BMzI2NCYrASIGHQEUFhM1NCYiBh0BFBY7ATI2NCYjyWgeLB0dFpwWHR1+aBYdHRacFh0dLB4BahYeaBYdHRacFh0dSh4sHR0WnBYdHRaxaBYdHRacFh0dLB4Bnh4sHR0WnBYdHRb9Xx0WaB4sHR0WnBYdAjloFh0dFpwWHR0sHgAAAAQAAAAAA1QC1AARACMANABGAAATDgEHFR4BFzM+ATQmKwE1NCYnPgE9ATMyNjQmJyMOAQcVHgEBIyIGFBYXMz4BNzUuASIGFQMeATsBFRQWMjY3NS4BJyMOAd0VGwEBGxWRFRsbFWEcFBQcYRUbGxWRFRsBARsCK2EVGxsVkRUbAQEbKRySARsVYRwpGwEBGxWRFRsBHwEbFZEVGwEBGykcYRUbwwEbFWEcKRsBARsVkRUb/qscKRsBARsVkRUbGxUBtRQcYRUbGxWRFRsBARsAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQANABUAAQAAAAAAAgAHACIAAQAAAAAAAwANACkAAQAAAAAABAANADYAAQAAAAAABQALAEMAAQAAAAAABgANAE4AAQAAAAAACgArAFsAAQAAAAAACwATAIYAAwABBAkAAAAqAJkAAwABBAkAAQAaAMMAAwABBAkAAgAOAN0AAwABBAkAAwAaAOsAAwABBAkABAAaAQUAAwABBAkABQAWAR8AAwABBAkABgAaATUAAwABBAkACgBWAU8AAwABBAkACwAmAaUKQ3JlYXRlZCBieSBpY29uZm9udApybWVsLWljb25mb250UmVndWxhcnJtZWwtaWNvbmZvbnRybWVsLWljb25mb250VmVyc2lvbiAxLjBybWVsLWljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwADdGFiCGtleWJvYXJkBmRlbGV0ZQpjb2RlLWJsb2NrBGNvZGUKdmlzaWJpbGl0eQp2aWV3LXNwbGl0BGxpbmsEcmVkbwR1bmRvBGJvbGQGaXRhbGljDGxpc3Qtb3JkZXJlZA5saXN0LXVub3JkZXJlZAVxdW90ZQ1zdHJpa2V0aHJvdWdoCXVuZGVybGluZQR3cmFwCWZvbnQtc2l6ZQRncmlkBWltYWdlC2V4cGFuZC1sZXNzC2V4cGFuZC1tb3JlD2Z1bGxzY3JlZW4tZXhpdApmdWxsc2NyZWVuAAAAAAA=);src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI940+UAAABfAAAAFZjbWFwQOSPXQAAAjwAAAMIZ2x5ZjCJoW0AAAV8AAAPYGhlYWQbUPpPAAAA4AAAADZoaGVhB94DmwAAALwAAAAkaG10eGgAAAAAAAHUAAAAaGxvY2E1+jIAAAAFRAAAADZtYXhwATAAewAAARgAAAAgbmFtZXPc7cIAABTcAAACqXBvc3QnKb+uAAAXiAAAATUAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAABoAAQAAAAEAAOLjgrdfDzz1AAsEAAAAAADcGNspAAAAANwY2ykAAP//BAADAQAAAAgAAgAAAAAAAAABAAAAGgBvAAwAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQAAZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA523togOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAFAAAAAwAAACwAAAAEAAABzAABAAAAAADGAAMAAQAAACwAAwAKAAABzAAEAJoAAAAWABAAAwAG523pQe087UXtYe117XjtgO2N7aL//wAA523pQe077UTtX+1v7XftgO2M7Z///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAFgAWABYAGAAaAB4AKgAsACwALgAAAAEABAAFAAMABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATAAIAFAAVABYAFwAYABkAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAATwAAAAAAAAAGQAA520AAOdtAAAAAQAA6UEAAOlBAAAABAAA7TsAAO07AAAABQAA7TwAAO08AAAAAwAA7UQAAO1EAAAABgAA7UUAAO1FAAAABwAA7V8AAO1fAAAACAAA7WAAAO1gAAAACQAA7WEAAO1hAAAACgAA7W8AAO1vAAAACwAA7XAAAO1wAAAADAAA7XEAAO1xAAAADQAA7XIAAO1yAAAADgAA7XMAAO1zAAAADwAA7XQAAO10AAAAEAAA7XUAAO11AAAAEQAA7XcAAO13AAAAEgAA7XgAAO14AAAAEwAA7YAAAO2AAAAAAgAA7YwAAO2MAAAAFAAA7Y0AAO2NAAAAFQAA7Z8AAO2fAAAAFgAA7aAAAO2gAAAAFwAA7aEAAO2hAAAAGAAA7aIAAO2iAAAAGQAAAAAAZgDMAR4BhAG8Af4CZgLIAv4DNANyA6IEQASoBO4FLgVwBcoGCgZqBqQGxAboB0YHsAAAAAUAAAAAA1YC1gALABgAJQA0AEAAABMhMhYUBgchLgE0Nhc+ATchHgEUBiMhIiYDNDY3IR4BFAYjISImNz4BMyEyHgEUDgEjISImJxYUDwEGJjURNDYX1gJUEhkZEv2sEhkZ2gEYEwFgEhkZEv6gEhn0GRICVBIZGRL9rBIZ8wEYEwFgDBQLCxQM/qASGTkICJILHh4LAtUZJRgBARglGfITGAEBGCUZGf6FExgBARglGRnZEhkLFRcUDBqGBhYGlQwMEQEqEQwMAAAAAAwAAAAAA6sCqwAPABMAFwAbAB8AIwAnADMANwA7AD8AQwAAASEOAQcDHgEXIT4BNxEuAQUzFSMVMxUjJzMVIxUzFSsCNTM1IzUzASEiJjQ2MyEyFhQGNyM1MzUjNTMXIzUzNSM1MwNV/VYkMAEBATEkAqokMQEBMf5cVlZWVoBWVlZWKlZWVlYBVf8AEhgYEgEAEhgYGVZWVlaAVlZWVgKrATEk/lYkMQEBMSQBqiQxf1YqVtZWKlZWKlb+gBgkGRkkGKpWKlbWVipWAAMAAAAAAysDAAAPAB8AMwAAJR4BFyE+ATcRLgEnIQ4BBzMhMhYXEQ4BByEuAScRPgElJyYrASIPASMiBhQWMyEyNjQmIwEAATAkAVYkMAEBMCT+qiQwAYABABMXAQEXE/8AExcBARcBKB4LErQSCx5rExcXEwIAERkZEVUkMAEBMCQBqyQwAQEwJBcU/qsRGQEBGREBVRQX1R4NDR4XJxcXJxcAAwAAAAADqwLZABYALQA+AAABFQYPAQYiLwEmND8BJyY0PwE2Mh8BFgU3NjQvASYiDwEGBxUWHwEWMj8BNjQnAScmBgcDBhYfARY2NxM2JicDqwEJsAcRBx4GBpOTBgYeBxEHsAn9D5MGBh8GEgawCQEBCbAHEQceBgYBQikJDwTjAgcIKAkPBOIDBwkBiBANCrAGBh4HEQaTkwYSBh4GBrAKFZMGEQceBgawCg0QDQqwBgYeBhIGAdkPAwcI/YwIEAMOAwcIAnMIDwQAAgAAAAADmgJvABAAIQAAJSc3NjQmIg8BBhQfARYyNjQlNycmNDYyHwEWFA8BBiImNAFzpqYNGSQMxA0NxA4hGgENpqYNGiEOxA0NxA4hGtqmpg4hGg3EDSINxA0aIQ6mpgwkGQ3EDSINxA0ZJAAAAAMAAAAAA7gCrAALABcAIwAAAQ4BBx4BFz4BNy4BAy4BJz4BNx4BFw4BAw4BBx4BFz4BNy4BAgCY6zU165iY6zU165hWcAICcFZWcAICcFY0QwEBQzQ0QwEBQwKsAqSGhqQCAqSGhqT+DgJwVlZwAgJwVlZwAT4BQzQ0QwEBQzQ0QwAAAAUAAAAAA4ACqwALABcAIwAwAEAAABMhMjY0JiMhIgYUFhchPgE0JichDgEUFhMhMjY0JiMhIgYUFiceARchPgE0JichDgElIR4BFxEOAQchLgE1ETQ2qwEAExcXE/8AERkZEQEAExcXE/8AERkZEQEAExcXE/8AERkZGgEZEQEAExcXE/8AERkB1AEAERkBARkR/wATFxcBABcnFxcnF6sBGSIZAQEZIhkBVRcnFxcnF9UTFwEBFyYXAQEXGAEXE/4AERkBARkRAgATFwAAAAADAAAAAAOrAlYAGQAmAEAAAAEjIgYUFjsBHgEXDgEHIyIGFBY7AT4BNy4BBR4BFyE+ATQmJyEOARcjLgEnPgE3MzI2NCYrAQ4BBx4BFzMyNjQmAtWAEhgYEoA3SAEBSDeAEhgYEoBbeAMDeP4lARgSAQASGBgS/wASGFWAN0gBAUg3gBIYGBKAW3gDA3hbgBIYGAJVGCQZAUk2NkkBGSQYAnhbW3jTEhgBARgkGAEBGJIBSTY2SQEZJBgCeFtbeAIYJBkAAQAAAAADrAIrAB4AAAEuAScOAQcGFhcWNjc+ATcyFhcHBhYXMz4BNzUuAQcDEjuWVYfUOAoTFxQjCSuhZz9vLFETEx7uEhgBAjEWAbw0OgECiXIXKggGDxJWaQErJVIWMQIBGBLvHRQTAAAAAQAAAAADsgIrAB4AAAEOAQcnJgYHFR4BFzM+AS8BPgEzHgEXHgE3PgEnLgECFFWWO1EWMQIBGBLuHhQTUi1vPmehKwkkExcTCjnTAisBOjRQFBQd7xIYAQIxFlIlKwFpVhIPBggqF3KJAAAAAwAAAAAC9QK/ABQAHAAkAAABPgE3LgEnIw4BBxEeARchPgE3NCYlMx4BFAYHIxMjNTMeARQGApMhKQECZk7vFBkBARkUAQdJaQI0/tSIHScnHYifn58dJycBihdEJE5mAgEaE/3eExoBAmFJNVLZASY7JgH+74kBJjsmAAEAAAAAAxICvwAcAAABHgEXMwMjDgEUFhczPgE0JicjEzM+ATQmJyMOAQGlASYdIZw7HSYmHeQdJiYdIZw7HSYmHeQdJgJ6HSYB/pQBJjonAQEnOiYBAWwBJjonAQEnAAYAAAAAA5YC1gALABcAIwBBAFIAbgAAASE+ATQmJyEOARQWASEOARQWFyE+ATQmAyEOARQWFyE+ATQmBSMiBhQWOwEVIyIGFBY7ARUjIgYUFjsBMjY3NS4BAzMVHgEyNj0BNCYrASIGFBYXIyIGFBY7AQcGHQEUFjsBMjY0JisBNzY9AS4BAWsCABIYGBL+ABIZGQIS/gASGRkSAgASGBgS/gASGRkSAgASGBj9WFUJDAwJQBUKCwsKFUAJDAwJVQoLAQELXxUBCxMMDAkrCQwMXlUJDAwJN0cFDAlVCgsLCjdIBQELAlUBGCQYAQEYJBj+VQEYJBgBARgkGAEBARgkGAEBGCQY1QwSDBYMEgwWDBIMDAmACQwB1msJDAwJgAkMDBIM1gwSDFQGCAkJDAwSDFQGCAkJDAAAAAAGAAAAAAOLAsAACAARABoAJgAyAD8AABMOARQWMjY0JgMOARQWMjY0JgMOARQWMjY0JhchPgE0JichDgEUFjchPgE0JichDgEUFgMeARchPgE0JichDgG1GyQkNyQkHBskJDckJBwbJCQ2JSSPAgASGBgS/gASGBgSAgASGBgS/gASGBgZARgSAgASGBgS/gASGAHAASQ2JCQ2JAEBASQ2JCQ2JP4BASQ2JCQ2JGoBGCQYAQEYJBj/ARgkGAEBGCQYASoSGAEBGCQYAQEYAAAAAgAAAAADVgJWABYALQAAJTI2PwE2PQEuASsBIgYdARQWFzMHBhYFMjY/ATY9ATQmKwEiBgcVHgEXMwcGFgEyERsHPQkBGBKrEhgYElYsDiABzBAbCDwJGBKrEhgBARgSVSwNIKsRDnkSFMISGBgSqxIYAVgeMwERDnkSFMISGBgSqxIYAVgeMwAAAAADAAAAAAOAAsAACAAZACUAACU+ATc1IxUeAQEeARczFTM1Mz4BNCYnIQ4BAyE+ATQmJyEOARQWAgAkMAGqATD++QEkG5aqlhskJBv+KhskKwKqEhkZEv1WEhkZQAEwJCsrJDACPxskAYCAASQ2JAEBJP56ARgkGAEBGCQYAAAAAAIAAP//AysDAQAbACgAACU+ATcRLgEiBgcRFAYHBi4CNREuASIGBxEeAQceATMhMjY0JiMhIgYCImJ6AgEeLR4BQTUhQTUdAR4tHgEDptQBGBICABIYGBL+ABIYrQ+TZQEXFh4eFv7kN1MMBw8rPCMBIBYeHhb+4HaUdhIZGSQYGAAAAAMAAAAAA3ACxwALAC0AOQAAEyE+ATQmIyEiBhQWBSEiBhQWFyEyFhcWBgcjNS4BDwEGFB8BFjY3NTM+AScuAQUjIgYUFhczPgE0JsACVRIZGRL9qxIYGAIL/gcSGBgSAgYgMwYFMShgARkLTAYGTAwYAVVNYgUIZP5tqxIYGBKrEhgYAnEBGCQYGCQYrBgkGAEnICk5AiIPCgpMBxEHTAoKDyICa05EVf8YJBgBARgkGAAAAAIAAAAAA5YCwAAUACgAAAEUFhczER4BMjY3ETM+ATQmJyEOAQMzFRQWMjY3NTMyNjQmJyEOARQWAWskHJUBJDYkAZUcJCQc/lYcJMBAJDckAUAbJCQb/wAcJCQCgBskAf5AGyQkGwHAASQ2JAEBJP7Q6xskJBvrJDckAQEkNyQACgAAAAADeAL4AA8AFgAaACEAJQApAC0ANAA4AD8AAAEhDgEHER4BFyE+ATcRLgEBIyImPQEzNSM1MzUjNTQ2OwETIzUzNSM1MzUjNTMTIzUzFRQGNyM1MzUjNTMyFhUDLP2oICoBASogAlggKgEBKv4ecQ8WlpaWlhYPceGWlpaWlpa8cZYWFpaWlnEPFgL3ASog/aggKgEBKiACWCAq/V4WD3FLlktxDxb9qJZLlkuW/aiWcQ8W4ZZLlhYPAAAAAgAA//8DgAMAAA8AIAAAJREuASchDgEHER4BFyE+ASUXNzYyHwEWBiMhIiY/AT4BA4ABMCT9qiQwAQEwJAJWJDD9/VmFBxQHlQgMDf4BDgsIagcUVQJWJDABATAk/aokMAEBMPtsqggJxwsXFwuJCAEAAAABAAAAAAM1AjYAEAAAAQcGFBYyPwEXFjI2NC8BJiIB2f4QISwR19cRLCEQ/hAuAib+ESwhENfXECEsEf4QAAAAAQAAAAADNQI2ABIAAAEHJyYnIg4BFh8BFjI/ATY0LgEC1tbXEBcRGw0GDP4RLBH+ECEtAibX1w8BEiAgDP4QEP4QLSABAAAABAAAAAADawLrABAAIQAzAEQAADczFRQWMjY9ATQmKwEiBhQWEyMiBhQWOwEyNj0BNCYiBhUBMjY9ATMyNjQmKwEiBh0BFBYTNTQmIgYdARQWOwEyNjQmI8loHiwdHRacFh0dfmgWHR0WnBYdHSweAWoWHmgWHR0WnBYdHUoeLB0dFpwWHR0WsWgWHR0WnBYdHSweAZ4eLB0dFpwWHR0W/V8dFmgeLB0dFpwWHQI5aBYdHRacFh0dLB4AAAAEAAAAAANUAtQAEQAjADQARgAAEw4BBxUeARczPgE0JisBNTQmJz4BPQEzMjY0JicjDgEHFR4BASMiBhQWFzM+ATc1LgEiBhUDHgE7ARUUFjI2NzUuAScjDgHdFRsBARsVkRUbGxVhHBQUHGEVGxsVkRUbAQEbAithFRsbFZEVGwEBGykckgEbFWEcKRsBARsVkRUbAR8BGxWRFRsBARspHGEVG8MBGxVhHCkbAQEbFZEVG/6rHCkbAQEbFZEVGxsVAbUUHGEVGxsVkRUbAQEbAAAAAAAAEgDeAAEAAAAAAAAAFQAAAAEAAAAAAAEADQAVAAEAAAAAAAIABwAiAAEAAAAAAAMADQApAAEAAAAAAAQADQA2AAEAAAAAAAUACwBDAAEAAAAAAAYADQBOAAEAAAAAAAoAKwBbAAEAAAAAAAsAEwCGAAMAAQQJAAAAKgCZAAMAAQQJAAEAGgDDAAMAAQQJAAIADgDdAAMAAQQJAAMAGgDrAAMAAQQJAAQAGgEFAAMAAQQJAAUAFgEfAAMAAQQJAAYAGgE1AAMAAQQJAAoAVgFPAAMAAQQJAAsAJgGlCkNyZWF0ZWQgYnkgaWNvbmZvbnQKcm1lbC1pY29uZm9udFJlZ3VsYXJybWVsLWljb25mb250cm1lbC1pY29uZm9udFZlcnNpb24gMS4wcm1lbC1pY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAUgBlAGcAdQBsAGEAcgByAG0AZQBsAC0AaQBjAG8AbgBmAG8AbgB0AHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsAA3RhYghrZXlib2FyZAZkZWxldGUKY29kZS1ibG9jawRjb2RlCnZpc2liaWxpdHkKdmlldy1zcGxpdARsaW5rBHJlZG8EdW5kbwRib2xkBml0YWxpYwxsaXN0LW9yZGVyZWQObGlzdC11bm9yZGVyZWQFcXVvdGUNc3RyaWtldGhyb3VnaAl1bmRlcmxpbmUEd3JhcAlmb250LXNpemUEZ3JpZAVpbWFnZQtleHBhbmQtbGVzcwtleHBhbmQtbW9yZQ9mdWxsc2NyZWVuLWV4aXQKZnVsbHNjcmVlbgAAAAAA) format("truetype")}.rmel-iconfont{font-family:rmel-iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rmel-icon-tab:before{content:""}.rmel-icon-keyboard:before{content:""}.rmel-icon-delete:before{content:""}.rmel-icon-code-block:before{content:""}.rmel-icon-code:before{content:""}.rmel-icon-visibility:before{content:""}.rmel-icon-view-split:before{content:""}.rmel-icon-link:before{content:""}.rmel-icon-redo:before{content:""}.rmel-icon-undo:before{content:""}.rmel-icon-bold:before{content:""}.rmel-icon-italic:before{content:""}.rmel-icon-list-ordered:before{content:""}.rmel-icon-list-unordered:before{content:""}.rmel-icon-quote:before{content:""}.rmel-icon-strikethrough:before{content:""}.rmel-icon-underline:before{content:""}.rmel-icon-wrap:before{content:""}.rmel-icon-font-size:before{content:""}.rmel-icon-grid:before{content:""}.rmel-icon-image:before{content:""}.rmel-icon-expand-less:before{content:""}.rmel-icon-expand-more:before{content:""}.rmel-icon-fullscreen-exit:before{content:""}.rmel-icon-fullscreen:before{content:""}.rc-md-editor{padding-bottom:1px;position:relative;border:1px solid #e0e0e0;background:#fff;box-sizing:border-box;display:flex;flex-direction:column}.rc-md-editor.full{width:100%;height:100%!important;position:fixed;left:0;top:0;z-index:1000}.rc-md-editor .editor-container{flex:1;display:flex;width:100%;min-height:0;position:relative}.rc-md-editor .editor-container>.section{flex-grow:1;flex-shrink:1;flex-basis:1px;border-right:1px solid #e0e0e0}.rc-md-editor .editor-container>.section.in-visible{display:none}.rc-md-editor .editor-container>.section>.section-container{padding:10px 15px 15px}.rc-md-editor .editor-container>.section:last-child{border-radius:none}.rc-md-editor .editor-container .sec-md{min-height:0;min-width:0}.rc-md-editor .editor-container .sec-md .input{display:block;box-sizing:border-box;width:100%;height:100%;overflow-y:scroll;border:none;resize:none;outline:none;min-height:0;background:#fff;color:#333;font-size:14px;line-height:1.7}.rc-md-editor .editor-container .sec-html{min-height:0;min-width:0}.rc-md-editor .editor-container .sec-html .html-wrap{height:100%;box-sizing:border-box;overflow:auto}.custom-html-style{color:#333}.custom-html-style h1{font-size:32px;padding:0;border:none;font-weight:700;margin:32px 0;line-height:1.2}.custom-html-style h2{font-size:24px;padding:0;border:none;font-weight:700;margin:24px 0;line-height:1.7}.custom-html-style h3{font-size:18px;margin:18px 0;padding:0;line-height:1.7;border:none}.custom-html-style p{font-size:14px;line-height:1.7;margin:8px 0}.custom-html-style a{color:#0052d9}.custom-html-style a:hover{text-decoration:none}.custom-html-style strong{font-weight:700}.custom-html-style ol,.custom-html-style ul{font-size:14px;line-height:28px;padding-left:36px}.custom-html-style li{margin-bottom:8px;line-height:1.7}.custom-html-style hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.custom-html-style pre{display:block;padding:20px;line-height:28px;word-break:break-word}.custom-html-style code,.custom-html-style pre{background-color:#f5f5f5;font-size:14px;border-radius:0;overflow-x:auto}.custom-html-style code{padding:3px 0;margin:0;word-break:normal}.custom-html-style code:after,.custom-html-style code:before{letter-spacing:0}.custom-html-style blockquote{position:relative;margin:16px 0;padding:5px 8px 5px 30px;background:none repeat scroll 0 0 #6680990d;color:#333;border:none;border-left:10px solid #d6dbdf}.custom-html-style img,.custom-html-style video{max-width:100%}.custom-html-style table{font-size:14px;line-height:1.7;max-width:100%;overflow:auto;border:1px solid #f6f6f6;border-collapse:collapse;border-spacing:0;box-sizing:border-box}.custom-html-style table td,.custom-html-style table th{word-break:break-all;word-wrap:break-word;white-space:normal}.custom-html-style table tr{border:1px solid #efefef}.custom-html-style table tr:nth-child(2n){background-color:transparent}.custom-html-style table th{text-align:center;font-weight:700;border:1px solid #efefef;padding:10px 6px;background-color:#f5f7fa;word-break:break-word}.custom-html-style table td{border:1px solid #efefef;text-align:left;padding:10px 15px;word-break:break-word;min-width:60px}.rc-md-editor .drop-wrap{display:block;position:absolute;left:0;top:28px;z-index:2;min-width:20px;padding:10px 0;text-align:center;background-color:#fff;border-color:#f1f1f1 #ddd #ddd #f1f1f1;border-style:solid;border-width:1px}.rc-md-editor .drop-wrap.hidden{display:none!important}.rc-md-editor .rc-md-navigation{min-height:38px;padding:0 8px;box-sizing:border-box;border-bottom:1px solid #e0e0e0;font-size:16px;background:#f5f5f5;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;flex-direction:row;justify-content:space-between}.rc-md-editor .rc-md-navigation.in-visible{display:none}.rc-md-editor .rc-md-navigation .navigation-nav{align-items:center;justify-content:center;font-size:14px;color:#757575}.rc-md-editor .rc-md-navigation .button-wrap,.rc-md-editor .rc-md-navigation .navigation-nav{display:flex;flex-direction:row}.rc-md-editor .rc-md-navigation .button-wrap{flex-wrap:wrap}.rc-md-editor .rc-md-navigation .button-wrap .button{position:relative;min-width:24px;height:28px;margin-left:3px;margin-right:3px;display:inline-block;cursor:pointer;line-height:28px;text-align:center;color:#757575}.rc-md-editor .rc-md-navigation .button-wrap .button:hover{color:#212121}.rc-md-editor .rc-md-navigation .button-wrap .button.disabled{color:#bdbdbd;cursor:not-allowed}.rc-md-editor .rc-md-navigation .button-wrap .button:first-child{margin-left:0}.rc-md-editor .rc-md-navigation .button-wrap .button:last-child{margin-right:0}.rc-md-editor .rc-md-navigation .button-wrap .rmel-iconfont{font-size:18px}.rc-md-editor .rc-md-navigation li,.rc-md-editor .rc-md-navigation ul{list-style:none;margin:0;padding:0}.rc-md-editor .rc-md-navigation .h1,.rc-md-editor .rc-md-navigation .h2,.rc-md-editor .rc-md-navigation .h3,.rc-md-editor .rc-md-navigation .h4,.rc-md-editor .rc-md-navigation .h5,.rc-md-editor .rc-md-navigation .h6,.rc-md-editor .rc-md-navigation h1,.rc-md-editor .rc-md-navigation h2,.rc-md-editor .rc-md-navigation h3,.rc-md-editor .rc-md-navigation h4,.rc-md-editor .rc-md-navigation h5,.rc-md-editor .rc-md-navigation h6{font-family:inherit;font-weight:500;color:inherit;padding:0;margin:0;line-height:1.1}.rc-md-editor .rc-md-navigation h1{font-size:34px}.rc-md-editor .rc-md-navigation h2{font-size:30px}.rc-md-editor .rc-md-navigation h3{font-size:24px}.rc-md-editor .rc-md-navigation h4{font-size:18px}.rc-md-editor .rc-md-navigation h5{font-size:14px}.rc-md-editor .rc-md-navigation h6{font-size:12px}.rc-md-editor .tool-bar{position:absolute;z-index:1;right:8px;top:8px}.rc-md-editor .tool-bar .button{min-width:24px;height:28px;margin-right:5px;display:inline-block;cursor:pointer;font-size:14px;line-height:28px;text-align:center;color:#999}.rc-md-editor .tool-bar .button:hover{color:#333}.rc-md-editor .rc-md-divider{display:block;width:1px;background-color:#e0e0e0}.rc-md-editor .table-list.wrap{position:relative;margin:0 10px;box-sizing:border-box}.rc-md-editor .table-list.wrap .list-item{position:absolute;top:0;left:0;display:inline-block;width:20px;height:20px;background-color:#e0e0e0;border-radius:3px}.rc-md-editor .table-list.wrap .list-item.active{background:#9e9e9e}.rc-md-editor .tab-map-list .list-item{width:120px;box-sizing:border-box}.rc-md-editor .tab-map-list .list-item:hover{background:#f5f5f5}.rc-md-editor .tab-map-list .list-item.active{font-weight:700}.rc-md-editor .header-list .list-item{width:100px;box-sizing:border-box;padding:8px 0}.rc-md-editor .header-list .list-item:hover{background:#f5f5f5} diff --git a/public/assets/admin/assets/vendor.js b/public/assets/admin/assets/vendor.js new file mode 100644 index 0000000..c6aaffc --- /dev/null +++ b/public/assets/admin/assets/vendor.js @@ -0,0 +1,578 @@ +import{g as Dn,c as La,a as lre,r as cre}from"./index.js";function vN(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var yN={exports:{}},Sx={},bN={exports:{}},an={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var cm=Symbol.for("react.element"),fre=Symbol.for("react.portal"),dre=Symbol.for("react.fragment"),hre=Symbol.for("react.strict_mode"),pre=Symbol.for("react.profiler"),gre=Symbol.for("react.provider"),mre=Symbol.for("react.context"),vre=Symbol.for("react.forward_ref"),yre=Symbol.for("react.suspense"),bre=Symbol.for("react.memo"),xre=Symbol.for("react.lazy"),Bk=Symbol.iterator;function wre(e){return e===null||typeof e!="object"?null:(e=Bk&&e[Bk]||e["@@iterator"],typeof e=="function"?e:null)}var xN={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},wN=Object.assign,_N={};function Ph(e,t,n){this.props=e,this.context=t,this.refs=_N,this.updater=n||xN}Ph.prototype.isReactComponent={};Ph.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Ph.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function SN(){}SN.prototype=Ph.prototype;function C4(e,t,n){this.props=e,this.context=t,this.refs=_N,this.updater=n||xN}var E4=C4.prototype=new SN;E4.constructor=C4;wN(E4,Ph.prototype);E4.isPureReactComponent=!0;var zk=Array.isArray,CN=Object.prototype.hasOwnProperty,O4={current:null},EN={key:!0,ref:!0,__self:!0,__source:!0};function ON(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)CN.call(t,r)&&!EN.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1>>1,ae=j[oe];if(0>>1;oei(we,Y))Hei(Ee,we)?(j[oe]=Ee,j[He]=Y,oe=He):(j[oe]=we,j[be]=Y,oe=be);else if(Hei(Ee,Y))j[oe]=Ee,j[He]=Y,oe=He;else break e}}return K}function i(j,K){var Y=j.sortIndex-K.sortIndex;return Y!==0?Y:j.id-K.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var u=[],l=[],c=1,f=null,h=3,p=!1,m=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(j){for(var K=n(l);K!==null;){if(K.callback===null)r(l);else if(K.startTime<=j)r(l),K.sortIndex=K.expirationTime,t(u,K);else break;K=n(l)}}function O(j){if(v=!1,S(j),!m)if(n(u)!==null)m=!0,q(E);else{var K=n(l);K!==null&&W(O,K.startTime-j)}}function E(j,K){m=!1,v&&(v=!1,w(M),M=-1),p=!0;var Y=h;try{for(S(K),f=n(u);f!==null&&(!(f.expirationTime>K)||j&&!H());){var oe=f.callback;if(typeof oe=="function"){f.callback=null,h=f.priorityLevel;var ae=oe(f.expirationTime<=K);K=e.unstable_now(),typeof ae=="function"?f.callback=ae:f===n(u)&&r(u),S(K)}else r(u);f=n(u)}if(f!==null)var ue=!0;else{var be=n(l);be!==null&&W(O,be.startTime-K),ue=!1}return ue}finally{f=null,h=Y,p=!1}}var C=!1,k=null,M=-1,L=5,U=-1;function H(){return!(e.unstable_now()-Uj||125oe?(j.sortIndex=Y,t(l,j),n(u)===null&&j===n(l)&&(v?(w(M),M=-1):v=!0,W(O,Y-oe))):(j.sortIndex=ae,t(u,j),m||p||(m=!0,q(E))),j},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(j){var K=h;return function(){var Y=h;h=K;try{return j.apply(this,arguments)}finally{h=Y}}}})(MN);TN.exports=MN;var Rre=TN.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Dre=y,Bo=Rre;function Ve(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),N3=Object.prototype.hasOwnProperty,$re=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Wk={},Hk={};function Ire(e){return N3.call(Hk,e)?!0:N3.call(Wk,e)?!1:$re.test(e)?Hk[e]=!0:(Wk[e]=!0,!1)}function Nre(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Lre(e,t,n,r){if(t===null||typeof t>"u"||Nre(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Gi(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var mi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){mi[e]=new Gi(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];mi[t]=new Gi(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){mi[e]=new Gi(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){mi[e]=new Gi(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){mi[e]=new Gi(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){mi[e]=new Gi(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){mi[e]=new Gi(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){mi[e]=new Gi(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){mi[e]=new Gi(e,5,!1,e.toLowerCase(),null,!1,!1)});var k4=/[\-:]([a-z])/g;function T4(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(k4,T4);mi[t]=new Gi(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(k4,T4);mi[t]=new Gi(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(k4,T4);mi[t]=new Gi(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){mi[e]=new Gi(e,1,!1,e.toLowerCase(),null,!1,!1)});mi.xlinkHref=new Gi("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){mi[e]=new Gi(e,1,!1,e.toLowerCase(),null,!0,!0)});function M4(e,t,n,r){var i=mi.hasOwnProperty(t)?mi[t]:null;(i!==null?i.type!==0:r||!(2s||i[a]!==o[s]){var u=` +`+i[a].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}while(1<=a&&0<=s);break}}}finally{T_=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Jp(e):""}function Fre(e){switch(e.tag){case 5:return Jp(e.type);case 16:return Jp("Lazy");case 13:return Jp("Suspense");case 19:return Jp("SuspenseList");case 0:case 2:case 15:return e=M_(e.type,!1),e;case 11:return e=M_(e.type.render,!1),e;case 1:return e=M_(e.type,!0),e;default:return""}}function B3(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case id:return"Fragment";case rd:return"Portal";case L3:return"Profiler";case R4:return"StrictMode";case F3:return"Suspense";case j3:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case $N:return(e.displayName||"Context")+".Consumer";case DN:return(e._context.displayName||"Context")+".Provider";case D4:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case $4:return t=e.displayName||null,t!==null?t:B3(e.type)||"Memo";case Zu:t=e._payload,e=e._init;try{return B3(e(t))}catch{}}return null}function jre(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return B3(t);case 8:return t===R4?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Cl(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function NN(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Bre(e){var t=NN(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Lv(e){e._valueTracker||(e._valueTracker=Bre(e))}function LN(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=NN(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ay(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function z3(e,t){var n=t.checked;return hr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function qk(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Cl(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function FN(e,t){t=t.checked,t!=null&&M4(e,"checked",t,!1)}function U3(e,t){FN(e,t);var n=Cl(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?V3(e,t.type,n):t.hasOwnProperty("defaultValue")&&V3(e,t.type,Cl(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Gk(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function V3(e,t,n){(t!=="number"||ay(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var e0=Array.isArray;function bd(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=Fv.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function D0(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var c0={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},zre=["Webkit","ms","Moz","O"];Object.keys(c0).forEach(function(e){zre.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),c0[t]=c0[e]})});function UN(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||c0.hasOwnProperty(e)&&c0[e]?(""+t).trim():t+"px"}function VN(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=UN(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var Ure=hr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function K3(e,t){if(t){if(Ure[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Ve(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Ve(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Ve(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Ve(62))}}function q3(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var G3=null;function I4(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Y3=null,xd=null,wd=null;function Xk(e){if(e=hm(e)){if(typeof Y3!="function")throw Error(Ve(280));var t=e.stateNode;t&&(t=Px(t),Y3(e.stateNode,e.type,t))}}function WN(e){xd?wd?wd.push(e):wd=[e]:xd=e}function HN(){if(xd){var e=xd,t=wd;if(wd=xd=null,Xk(e),t)for(e=0;e>>=0,e===0?32:31-(Jre(e)/eie|0)|0}var jv=64,Bv=4194304;function t0(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function cy(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~i;s!==0?r=t0(s):(o&=a,o!==0&&(r=t0(o)))}else a=n&~i,a!==0?r=t0(a):o!==0&&(r=t0(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function fm(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Va(t),e[t]=n}function iie(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=d0),aT=" ",sT=!1;function fL(e,t){switch(e){case"keyup":return Rie.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function dL(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var od=!1;function $ie(e,t){switch(e){case"compositionend":return dL(t);case"keypress":return t.which!==32?null:(sT=!0,aT);case"textInput":return e=t.data,e===aT&&sT?null:e;default:return null}}function Iie(e,t){if(od)return e==="compositionend"||!V4&&fL(e,t)?(e=lL(),F1=B4=ol=null,od=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=fT(n)}}function mL(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?mL(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function vL(){for(var e=window,t=ay();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ay(e.document)}return t}function W4(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Wie(e){var t=vL(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&mL(n.ownerDocument.documentElement,n)){if(r!==null&&W4(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=dT(n,o);var a=dT(n,r);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,ad=null,tC=null,p0=null,nC=!1;function hT(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;nC||ad==null||ad!==ay(r)||(r=ad,"selectionStart"in r&&W4(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),p0&&j0(p0,r)||(p0=r,r=hy(tC,"onSelect"),0ld||(e.current=uC[ld],uC[ld]=null,ld--)}function Wn(e,t){ld++,uC[ld]=e.current,e.current=t}var El={},Di=Fl(El),lo=Fl(!1),Nc=El;function Bd(e,t){var n=e.type.contextTypes;if(!n)return El;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function co(e){return e=e.childContextTypes,e!=null}function gy(){nr(lo),nr(Di)}function xT(e,t,n){if(Di.current!==El)throw Error(Ve(168));Wn(Di,t),Wn(lo,n)}function OL(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(Ve(108,jre(e)||"Unknown",i));return hr({},n,r)}function my(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||El,Nc=Di.current,Wn(Di,e),Wn(lo,lo.current),!0}function wT(e,t,n){var r=e.stateNode;if(!r)throw Error(Ve(169));n?(e=OL(e,t,Nc),r.__reactInternalMemoizedMergedChildContext=e,nr(lo),nr(Di),Wn(Di,e)):nr(lo),Wn(lo,n)}var tu=null,kx=!1,H_=!1;function AL(e){tu===null?tu=[e]:tu.push(e)}function noe(e){kx=!0,AL(e)}function jl(){if(!H_&&tu!==null){H_=!0;var e=0,t=Mn;try{var n=tu;for(Mn=1;e>=a,i-=a,ru=1<<32-Va(t)+i|n<M?(L=k,k=null):L=k.sibling;var U=h(w,k,S[M],O);if(U===null){k===null&&(k=L);break}e&&k&&U.alternate===null&&t(w,k),x=o(U,x,M),C===null?E=U:C.sibling=U,C=U,k=L}if(M===S.length)return n(w,k),or&&sc(w,M),E;if(k===null){for(;MM?(L=k,k=null):L=k.sibling;var H=h(w,k,U.value,O);if(H===null){k===null&&(k=L);break}e&&k&&H.alternate===null&&t(w,k),x=o(H,x,M),C===null?E=H:C.sibling=H,C=H,k=L}if(U.done)return n(w,k),or&&sc(w,M),E;if(k===null){for(;!U.done;M++,U=S.next())U=f(w,U.value,O),U!==null&&(x=o(U,x,M),C===null?E=U:C.sibling=U,C=U);return or&&sc(w,M),E}for(k=r(w,k);!U.done;M++,U=S.next())U=p(k,w,M,U.value,O),U!==null&&(e&&U.alternate!==null&&k.delete(U.key===null?M:U.key),x=o(U,x,M),C===null?E=U:C.sibling=U,C=U);return e&&k.forEach(function(V){return t(w,V)}),or&&sc(w,M),E}function b(w,x,S,O){if(typeof S=="object"&&S!==null&&S.type===id&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case Nv:e:{for(var E=S.key,C=x;C!==null;){if(C.key===E){if(E=S.type,E===id){if(C.tag===7){n(w,C.sibling),x=i(C,S.props.children),x.return=w,w=x;break e}}else if(C.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===Zu&&CT(E)===C.type){n(w,C.sibling),x=i(C,S.props),x.ref=Ep(w,C,S),x.return=w,w=x;break e}n(w,C);break}else t(w,C);C=C.sibling}S.type===id?(x=kc(S.props.children,w.mode,O,S.key),x.return=w,w=x):(O=K1(S.type,S.key,S.props,null,w.mode,O),O.ref=Ep(w,x,S),O.return=w,w=O)}return a(w);case rd:e:{for(C=S.key;x!==null;){if(x.key===C)if(x.tag===4&&x.stateNode.containerInfo===S.containerInfo&&x.stateNode.implementation===S.implementation){n(w,x.sibling),x=i(x,S.children||[]),x.return=w,w=x;break e}else{n(w,x);break}else t(w,x);x=x.sibling}x=J_(S,w.mode,O),x.return=w,w=x}return a(w);case Zu:return C=S._init,b(w,x,C(S._payload),O)}if(e0(S))return m(w,x,S,O);if(xp(S))return v(w,x,S,O);qv(w,S)}return typeof S=="string"&&S!==""||typeof S=="number"?(S=""+S,x!==null&&x.tag===6?(n(w,x.sibling),x=i(x,S),x.return=w,w=x):(n(w,x),x=Q_(S,w.mode,O),x.return=w,w=x),a(w)):n(w,x)}return b}var Ud=ML(!0),RL=ML(!1),by=Fl(null),xy=null,dd=null,G4=null;function Y4(){G4=dd=xy=null}function Z4(e){var t=by.current;nr(by),e._currentValue=t}function fC(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Sd(e,t){xy=e,G4=dd=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(ao=!0),e.firstContext=null)}function pa(e){var t=e._currentValue;if(G4!==e)if(e={context:e,memoizedValue:t,next:null},dd===null){if(xy===null)throw Error(Ve(308));dd=e,xy.dependencies={lanes:0,firstContext:e}}else dd=dd.next=e;return t}var yc=null;function X4(e){yc===null?yc=[e]:yc.push(e)}function DL(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,X4(t)):(n.next=i.next,i.next=n),t.interleaved=n,mu(e,r)}function mu(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Xu=!1;function Q4(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function $L(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uu(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function yl(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,vn&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,mu(e,n)}return i=r.interleaved,i===null?(t.next=t,X4(r)):(t.next=i.next,i.next=t),r.interleaved=t,mu(e,n)}function B1(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,L4(e,n)}}function ET(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?i=o=a:o=o.next=a,n=n.next}while(n!==null);o===null?i=o=t:o=o.next=t}else i=o=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function wy(e,t,n,r){var i=e.updateQueue;Xu=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var u=s,l=u.next;u.next=null,a===null?o=l:a.next=l,a=u;var c=e.alternate;c!==null&&(c=c.updateQueue,s=c.lastBaseUpdate,s!==a&&(s===null?c.firstBaseUpdate=l:s.next=l,c.lastBaseUpdate=u))}if(o!==null){var f=i.baseState;a=0,c=l=u=null,s=o;do{var h=s.lane,p=s.eventTime;if((r&h)===h){c!==null&&(c=c.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var m=e,v=s;switch(h=t,p=n,v.tag){case 1:if(m=v.payload,typeof m=="function"){f=m.call(p,f,h);break e}f=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=v.payload,h=typeof m=="function"?m.call(p,f,h):m,h==null)break e;f=hr({},f,h);break e;case 2:Xu=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,h=i.effects,h===null?i.effects=[s]:h.push(s))}else p={eventTime:p,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},c===null?(l=c=p,u=f):c=c.next=p,a|=h;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;h=s,s=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(c===null&&(u=f),i.baseState=u,i.firstBaseUpdate=l,i.lastBaseUpdate=c,t=i.shared.interleaved,t!==null){i=t;do a|=i.lane,i=i.next;while(i!==t)}else o===null&&(i.shared.lanes=0);jc|=a,e.lanes=a,e.memoizedState=f}}function OT(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=q_.transition;q_.transition={};try{e(!1),t()}finally{Mn=n,q_.transition=r}}function XL(){return ga().memoizedState}function aoe(e,t,n){var r=xl(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},QL(e))JL(t,n);else if(n=DL(e,t,n,r),n!==null){var i=Wi();Wa(n,e,r,i),eF(n,t,r)}}function soe(e,t,n){var r=xl(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(QL(e))JL(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,Ga(s,a)){var u=t.interleaved;u===null?(i.next=i,X4(t)):(i.next=u.next,u.next=i),t.interleaved=i;return}}catch{}finally{}n=DL(e,t,i,r),n!==null&&(i=Wi(),Wa(n,e,r,i),eF(n,t,r))}}function QL(e){var t=e.alternate;return e===dr||t!==null&&t===dr}function JL(e,t){g0=Sy=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function eF(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,L4(e,n)}}var Cy={readContext:pa,useCallback:Si,useContext:Si,useEffect:Si,useImperativeHandle:Si,useInsertionEffect:Si,useLayoutEffect:Si,useMemo:Si,useReducer:Si,useRef:Si,useState:Si,useDebugValue:Si,useDeferredValue:Si,useTransition:Si,useMutableSource:Si,useSyncExternalStore:Si,useId:Si,unstable_isNewReconciler:!1},uoe={readContext:pa,useCallback:function(e,t){return cs().memoizedState=[e,t===void 0?null:t],e},useContext:pa,useEffect:PT,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,U1(4194308,4,KL.bind(null,t,e),n)},useLayoutEffect:function(e,t){return U1(4194308,4,e,t)},useInsertionEffect:function(e,t){return U1(4,2,e,t)},useMemo:function(e,t){var n=cs();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=cs();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=aoe.bind(null,dr,e),[r.memoizedState,e]},useRef:function(e){var t=cs();return e={current:e},t.memoizedState=e},useState:AT,useDebugValue:a5,useDeferredValue:function(e){return cs().memoizedState=e},useTransition:function(){var e=AT(!1),t=e[0];return e=ooe.bind(null,e[1]),cs().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=dr,i=cs();if(or){if(n===void 0)throw Error(Ve(407));n=n()}else{if(n=t(),ri===null)throw Error(Ve(349));Fc&30||FL(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,PT(BL.bind(null,r,o,e),[e]),r.flags|=2048,q0(9,jL.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=cs(),t=ri.identifierPrefix;if(or){var n=iu,r=ru;n=(r&~(1<<32-Va(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=H0++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[ds]=t,e[U0]=r,cF(e,t,!1,!1),t.stateNode=e;e:{switch(a=q3(n,r),n){case"dialog":Jn("cancel",e),Jn("close",e),i=r;break;case"iframe":case"object":case"embed":Jn("load",e),i=r;break;case"video":case"audio":for(i=0;iHd&&(t.flags|=128,r=!0,Op(o,!1),t.lanes=4194304)}else{if(!r)if(e=_y(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Op(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!or)return Ci(t),null}else 2*Cr()-o.renderingStartTime>Hd&&n!==1073741824&&(t.flags|=128,r=!0,Op(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(n=o.last,n!==null?n.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Cr(),t.sibling=null,n=fr.current,Wn(fr,r?n&1|2:n&1),t):(Ci(t),null);case 22:case 23:return d5(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ko&1073741824&&(Ci(t),t.subtreeFlags&6&&(t.flags|=8192)):Ci(t),null;case 24:return null;case 25:return null}throw Error(Ve(156,t.tag))}function moe(e,t){switch(K4(t),t.tag){case 1:return co(t.type)&&gy(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Vd(),nr(lo),nr(Di),t5(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return e5(t),null;case 13:if(nr(fr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ve(340));zd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return nr(fr),null;case 4:return Vd(),null;case 10:return Z4(t.type._context),null;case 22:case 23:return d5(),null;case 24:return null;default:return null}}var Yv=!1,Pi=!1,voe=typeof WeakSet=="function"?WeakSet:Set,at=null;function hd(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){gr(e,t,r)}else n.current=null}function xC(e,t,n){try{n()}catch(r){gr(e,t,r)}}var jT=!1;function yoe(e,t){if(rC=fy,e=vL(),W4(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,s=-1,u=-1,l=0,c=0,f=e,h=null;t:for(;;){for(var p;f!==n||i!==0&&f.nodeType!==3||(s=a+i),f!==o||r!==0&&f.nodeType!==3||(u=a+r),f.nodeType===3&&(a+=f.nodeValue.length),(p=f.firstChild)!==null;)h=f,f=p;for(;;){if(f===e)break t;if(h===n&&++l===i&&(s=a),h===o&&++c===r&&(u=a),(p=f.nextSibling)!==null)break;f=h,h=f.parentNode}f=p}n=s===-1||u===-1?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(iC={focusedElem:e,selectionRange:n},fy=!1,at=t;at!==null;)if(t=at,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,at=e;else for(;at!==null;){t=at;try{var m=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var v=m.memoizedProps,b=m.memoizedState,w=t.stateNode,x=w.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ta(t.type,v),b);w.__reactInternalSnapshotBeforeUpdate=x}break;case 3:var S=t.stateNode.containerInfo;S.nodeType===1?S.textContent="":S.nodeType===9&&S.documentElement&&S.removeChild(S.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ve(163))}}catch(O){gr(t,t.return,O)}if(e=t.sibling,e!==null){e.return=t.return,at=e;break}at=t.return}return m=jT,jT=!1,m}function m0(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&xC(t,n,o)}i=i.next}while(i!==r)}}function Rx(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function wC(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function hF(e){var t=e.alternate;t!==null&&(e.alternate=null,hF(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ds],delete t[U0],delete t[sC],delete t[eoe],delete t[toe])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function pF(e){return e.tag===5||e.tag===3||e.tag===4}function BT(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||pF(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function _C(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=py));else if(r!==4&&(e=e.child,e!==null))for(_C(e,t,n),e=e.sibling;e!==null;)_C(e,t,n),e=e.sibling}function SC(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(SC(e,t,n),e=e.sibling;e!==null;)SC(e,t,n),e=e.sibling}var hi=null,Ma=!1;function Vu(e,t,n){for(n=n.child;n!==null;)gF(e,t,n),n=n.sibling}function gF(e,t,n){if(Ss&&typeof Ss.onCommitFiberUnmount=="function")try{Ss.onCommitFiberUnmount(Cx,n)}catch{}switch(n.tag){case 5:Pi||hd(n,t);case 6:var r=hi,i=Ma;hi=null,Vu(e,t,n),hi=r,Ma=i,hi!==null&&(Ma?(e=hi,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):hi.removeChild(n.stateNode));break;case 18:hi!==null&&(Ma?(e=hi,n=n.stateNode,e.nodeType===8?W_(e.parentNode,n):e.nodeType===1&&W_(e,n),L0(e)):W_(hi,n.stateNode));break;case 4:r=hi,i=Ma,hi=n.stateNode.containerInfo,Ma=!0,Vu(e,t,n),hi=r,Ma=i;break;case 0:case 11:case 14:case 15:if(!Pi&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&xC(n,t,a),i=i.next}while(i!==r)}Vu(e,t,n);break;case 1:if(!Pi&&(hd(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){gr(n,t,s)}Vu(e,t,n);break;case 21:Vu(e,t,n);break;case 22:n.mode&1?(Pi=(r=Pi)||n.memoizedState!==null,Vu(e,t,n),Pi=r):Vu(e,t,n);break;default:Vu(e,t,n)}}function zT(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new voe),t.forEach(function(r){var i=Aoe.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Aa(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=Cr()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*xoe(r/1960))-r,10e?16:e,al===null)var r=!1;else{if(e=al,al=null,Ay=0,vn&6)throw Error(Ve(331));var i=vn;for(vn|=4,at=e.current;at!==null;){var o=at,a=o.child;if(at.flags&16){var s=o.deletions;if(s!==null){for(var u=0;uCr()-c5?Pc(e,0):l5|=n),fo(e,t)}function SF(e,t){t===0&&(e.mode&1?(t=Bv,Bv<<=1,!(Bv&130023424)&&(Bv=4194304)):t=1);var n=Wi();e=mu(e,t),e!==null&&(fm(e,t,n),fo(e,n))}function Ooe(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),SF(e,n)}function Aoe(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(Ve(314))}r!==null&&r.delete(t),SF(e,n)}var CF;CF=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||lo.current)ao=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return ao=!1,poe(e,t,n);ao=!!(e.flags&131072)}else ao=!1,or&&t.flags&1048576&&PL(t,yy,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;V1(e,t),e=t.pendingProps;var i=Bd(t,Di.current);Sd(t,n),i=r5(null,t,r,e,i,n);var o=i5();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,co(r)?(o=!0,my(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Q4(t),i.updater=Mx,t.stateNode=i,i._reactInternals=t,hC(t,r,e,n),t=mC(null,t,r,!0,o,n)):(t.tag=0,or&&o&&H4(t),Bi(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(V1(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=koe(r),e=Ta(r,e),i){case 0:t=gC(null,t,r,e,n);break e;case 1:t=NT(null,t,r,e,n);break e;case 11:t=$T(null,t,r,e,n);break e;case 14:t=IT(null,t,r,Ta(r.type,e),n);break e}throw Error(Ve(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ta(r,i),gC(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ta(r,i),NT(e,t,r,i,n);case 3:e:{if(sF(t),e===null)throw Error(Ve(387));r=t.pendingProps,o=t.memoizedState,i=o.element,$L(e,t),wy(t,r,null,n);var a=t.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=Wd(Error(Ve(423)),t),t=LT(e,t,r,n,i);break e}else if(r!==i){i=Wd(Error(Ve(424)),t),t=LT(e,t,r,n,i);break e}else for($o=vl(t.stateNode.containerInfo.firstChild),Io=t,or=!0,Ia=null,n=RL(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(zd(),r===i){t=vu(e,t,n);break e}Bi(e,t,r,n)}t=t.child}return t;case 5:return IL(t),e===null&&cC(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,oC(r,i)?a=null:o!==null&&oC(r,o)&&(t.flags|=32),aF(e,t),Bi(e,t,a,n),t.child;case 6:return e===null&&cC(t),null;case 13:return uF(e,t,n);case 4:return J4(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ud(t,null,r,n):Bi(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ta(r,i),$T(e,t,r,i,n);case 7:return Bi(e,t,t.pendingProps,n),t.child;case 8:return Bi(e,t,t.pendingProps.children,n),t.child;case 12:return Bi(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,Wn(by,r._currentValue),r._currentValue=a,o!==null)if(Ga(o.value,a)){if(o.children===i.children&&!lo.current){t=vu(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var u=s.firstContext;u!==null;){if(u.context===r){if(o.tag===1){u=uu(-1,n&-n),u.tag=2;var l=o.updateQueue;if(l!==null){l=l.shared;var c=l.pending;c===null?u.next=u:(u.next=c.next,c.next=u),l.pending=u}}o.lanes|=n,u=o.alternate,u!==null&&(u.lanes|=n),fC(o.return,n,t),s.lanes|=n;break}u=u.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(Ve(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),fC(a,n,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}Bi(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Sd(t,n),i=pa(i),r=r(i),t.flags|=1,Bi(e,t,r,n),t.child;case 14:return r=t.type,i=Ta(r,t.pendingProps),i=Ta(r.type,i),IT(e,t,r,i,n);case 15:return iF(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ta(r,i),V1(e,t),t.tag=1,co(r)?(e=!0,my(t)):e=!1,Sd(t,n),tF(t,r,i),hC(t,r,i,n),mC(null,t,r,!0,e,n);case 19:return lF(e,t,n);case 22:return oF(e,t,n)}throw Error(Ve(156,t.tag))};function EF(e,t){return QN(e,t)}function Poe(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function la(e,t,n,r){return new Poe(e,t,n,r)}function p5(e){return e=e.prototype,!(!e||!e.isReactComponent)}function koe(e){if(typeof e=="function")return p5(e)?1:0;if(e!=null){if(e=e.$$typeof,e===D4)return 11;if(e===$4)return 14}return 2}function wl(e,t){var n=e.alternate;return n===null?(n=la(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function K1(e,t,n,r,i,o){var a=2;if(r=e,typeof e=="function")p5(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case id:return kc(n.children,i,o,t);case R4:a=8,i|=8;break;case L3:return e=la(12,n,t,i|2),e.elementType=L3,e.lanes=o,e;case F3:return e=la(13,n,t,i),e.elementType=F3,e.lanes=o,e;case j3:return e=la(19,n,t,i),e.elementType=j3,e.lanes=o,e;case IN:return $x(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case DN:a=10;break e;case $N:a=9;break e;case D4:a=11;break e;case $4:a=14;break e;case Zu:a=16,r=null;break e}throw Error(Ve(130,e==null?e:typeof e,""))}return t=la(a,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function kc(e,t,n,r){return e=la(7,e,r,t),e.lanes=n,e}function $x(e,t,n,r){return e=la(22,e,r,t),e.elementType=IN,e.lanes=n,e.stateNode={isHidden:!1},e}function Q_(e,t,n){return e=la(6,e,null,t),e.lanes=n,e}function J_(e,t,n){return t=la(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Toe(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=D_(0),this.expirationTimes=D_(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=D_(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function g5(e,t,n,r,i,o,a,s,u){return e=new Toe(e,t,n,s,u),t===1?(t=1,o===!0&&(t|=8)):t=0,o=la(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Q4(o),e}function Moe(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(kF)}catch(e){console.error(e)}}kF(),kN.exports=Ho;var Au=kN.exports;const jx=Dn(Au),Ioe=vN({__proto__:null,default:jx},[Au]);var YT=Au;Vk.createRoot=YT.createRoot,Vk.hydrateRoot=YT.hydrateRoot;/** + * @remix-run/router v1.21.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function ir(){return ir=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function zc(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Loe(){return Math.random().toString(36).substr(2,8)}function XT(e,t){return{usr:e.state,key:e.key,idx:t}}function Y0(e,t,n,r){return n===void 0&&(n=null),ir({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Pu(t):t,{state:n,key:t&&t.key||r||Loe()})}function Uc(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Pu(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Foe(e,t,n,r){r===void 0&&(r={});let{window:i=document.defaultView,v5Compat:o=!1}=r,a=i.history,s=kr.Pop,u=null,l=c();l==null&&(l=0,a.replaceState(ir({},a.state,{idx:l}),""));function c(){return(a.state||{idx:null}).idx}function f(){s=kr.Pop;let b=c(),w=b==null?null:b-l;l=b,u&&u({action:s,location:v.location,delta:w})}function h(b,w){s=kr.Push;let x=Y0(v.location,b,w);n(x,b),l=c()+1;let S=XT(x,l),O=v.createHref(x);try{a.pushState(S,"",O)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;i.location.assign(O)}o&&u&&u({action:s,location:v.location,delta:1})}function p(b,w){s=kr.Replace;let x=Y0(v.location,b,w);n(x,b),l=c();let S=XT(x,l),O=v.createHref(x);a.replaceState(S,"",O),o&&u&&u({action:s,location:v.location,delta:0})}function m(b){let w=i.location.origin!=="null"?i.location.origin:i.location.href,x=typeof b=="string"?b:Uc(b);return x=x.replace(/ $/,"%20"),fn(w,"No window.location.(origin|href) available to create URL for href: "+x),new URL(x,w)}let v={get action(){return s},get location(){return e(i,a)},listen(b){if(u)throw new Error("A history only accepts one active listener");return i.addEventListener(ZT,f),u=b,()=>{i.removeEventListener(ZT,f),u=null}},createHref(b){return t(i,b)},createURL:m,encodeLocation(b){let w=m(b);return{pathname:w.pathname,search:w.search,hash:w.hash}},push:h,replace:p,go(b){return a.go(b)}};return v}var In;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(In||(In={}));const joe=new Set(["lazy","caseSensitive","path","id","index","children"]);function Boe(e){return e.index===!0}function Ty(e,t,n,r){return n===void 0&&(n=[]),r===void 0&&(r={}),e.map((i,o)=>{let a=[...n,String(o)],s=typeof i.id=="string"?i.id:a.join("-");if(fn(i.index!==!0||!i.children,"Cannot specify children on an index route"),fn(!r[s],'Found a route id collision on id "'+s+`". Route id's must be globally unique within Data Router usages`),Boe(i)){let u=ir({},i,t(i),{id:s});return r[s]=u,u}else{let u=ir({},i,t(i),{id:s,children:void 0});return r[s]=u,i.children&&(u.children=Ty(i.children,t,a,r)),u}})}function gc(e,t,n){return n===void 0&&(n="/"),q1(e,t,n,!1)}function q1(e,t,n,r){let i=typeof t=="string"?Pu(t):t,o=Mh(i.pathname||"/",n);if(o==null)return null;let a=TF(e);Uoe(a);let s=null;for(let u=0;s==null&&u{let u={relativePath:s===void 0?o.path||"":s,caseSensitive:o.caseSensitive===!0,childrenIndex:a,route:o};u.relativePath.startsWith("/")&&(fn(u.relativePath.startsWith(r),'Absolute route path "'+u.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),u.relativePath=u.relativePath.slice(r.length));let l=lu([r,u.relativePath]),c=n.concat(u);o.children&&o.children.length>0&&(fn(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+l+'".')),TF(o.children,t,c,l)),!(o.path==null&&!o.index)&&t.push({path:l,score:Yoe(l,o.index),routesMeta:c})};return e.forEach((o,a)=>{var s;if(o.path===""||!((s=o.path)!=null&&s.includes("?")))i(o,a);else for(let u of MF(o.path))i(o,a,u)}),t}function MF(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return i?[o,""]:[o];let a=MF(r.join("/")),s=[];return s.push(...a.map(u=>u===""?o:[o,u].join("/"))),i&&s.push(...a),s.map(u=>e.startsWith("/")&&u===""?"/":u)}function Uoe(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Zoe(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Voe=/^:[\w-]+$/,Woe=3,Hoe=2,Koe=1,qoe=10,Goe=-2,QT=e=>e==="*";function Yoe(e,t){let n=e.split("/"),r=n.length;return n.some(QT)&&(r+=Goe),t&&(r+=Hoe),n.filter(i=>!QT(i)).reduce((i,o)=>i+(Voe.test(o)?Woe:o===""?Koe:qoe),r)}function Zoe(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function Xoe(e,t,n){n===void 0&&(n=!1);let{routesMeta:r}=e,i={},o="/",a=[];for(let s=0;s{let{paramName:h,isOptional:p}=c;if(h==="*"){let v=s[f]||"";a=o.slice(0,o.length-v.length).replace(/(.)\/+$/,"$1")}const m=s[f];return p&&!m?l[h]=void 0:l[h]=(m||"").replace(/%2F/g,"/"),l},{}),pathname:o,pathnameBase:a,pattern:e}}function Qoe(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),zc(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,s,u)=>(r.push({paramName:s,isOptional:u!=null}),u?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function Joe(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return zc(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Mh(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function eae(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Pu(e):e;return{pathname:n?n.startsWith("/")?n:tae(n,t):t,search:rae(r),hash:iae(i)}}function tae(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function eS(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function RF(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function b5(e,t){let n=RF(e);return t?n.map((r,i)=>i===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function x5(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=Pu(e):(i=ir({},e),fn(!i.pathname||!i.pathname.includes("?"),eS("?","pathname","search",i)),fn(!i.pathname||!i.pathname.includes("#"),eS("#","pathname","hash",i)),fn(!i.search||!i.search.includes("#"),eS("#","search","hash",i)));let o=e===""||i.pathname==="",a=o?"/":i.pathname,s;if(a==null)s=n;else{let f=t.length-1;if(!r&&a.startsWith("..")){let h=a.split("/");for(;h[0]==="..";)h.shift(),f-=1;i.pathname=h.join("/")}s=f>=0?t[f]:"/"}let u=eae(i,s),l=a&&a!=="/"&&a.endsWith("/"),c=(o||a===".")&&n.endsWith("/");return!u.pathname.endsWith("/")&&(l||c)&&(u.pathname+="/"),u}const lu=e=>e.join("/").replace(/\/\/+/g,"/"),nae=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),rae=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,iae=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class My{constructor(t,n,r,i){i===void 0&&(i=!1),this.status=t,this.statusText=n||"",this.internal=i,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function Bx(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const DF=["post","put","patch","delete"],oae=new Set(DF),aae=["get",...DF],sae=new Set(aae),uae=new Set([301,302,303,307,308]),lae=new Set([307,308]),tS={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},cae={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Pp={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},w5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,fae=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),$F="remix-router-transitions";function dae(e){const t=e.window?e.window:typeof window<"u"?window:void 0,n=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",r=!n;fn(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let i;if(e.mapRouteProperties)i=e.mapRouteProperties;else if(e.detectErrorBoundary){let re=e.detectErrorBoundary;i=se=>({hasErrorBoundary:re(se)})}else i=fae;let o={},a=Ty(e.routes,i,void 0,o),s,u=e.basename||"/",l=e.dataStrategy||mae,c=e.patchRoutesOnNavigation,f=ir({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),h=null,p=new Set,m=null,v=null,b=null,w=e.hydrationData!=null,x=gc(a,e.history.location,u),S=null;if(x==null&&!c){let re=ro(404,{pathname:e.history.location.pathname}),{matches:se,route:ve}=cM(a);x=se,S={[ve.id]:re}}x&&!e.hydrationData&&Xr(x,a,e.history.location.pathname).active&&(x=null);let O;if(x)if(x.some(re=>re.route.lazy))O=!1;else if(!x.some(re=>re.route.loader))O=!0;else if(f.v7_partialHydration){let re=e.hydrationData?e.hydrationData.loaderData:null,se=e.hydrationData?e.hydrationData.errors:null;if(se){let ve=x.findIndex(T=>se[T.route.id]!==void 0);O=x.slice(0,ve+1).every(T=>!kC(T.route,re,se))}else O=x.every(ve=>!kC(ve.route,re,se))}else O=e.hydrationData!=null;else if(O=!1,x=[],f.v7_partialHydration){let re=Xr(null,a,e.history.location.pathname);re.active&&re.matches&&(x=re.matches)}let E,C={historyAction:e.history.action,location:e.history.location,matches:x,initialized:O,navigation:tS,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||S,fetchers:new Map,blockers:new Map},k=kr.Pop,M=!1,L,U=!1,H=new Map,V=null,ne=!1,Z=!1,G=[],q=new Set,W=new Map,j=0,K=-1,Y=new Map,oe=new Set,ae=new Map,ue=new Map,be=new Set,we=new Map,He=new Map,Ee;function it(){if(h=e.history.listen(re=>{let{action:se,location:ve,delta:T}=re;if(Ee){Ee(),Ee=void 0;return}zc(He.size===0||T!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let D=Dr({currentLocation:C.location,nextLocation:ve,historyAction:se});if(D&&T!=null){let $=new Promise(A=>{Ee=A});e.history.go(T*-1),xi(D,{state:"blocked",location:ve,proceed(){xi(D,{state:"proceeding",proceed:void 0,reset:void 0,location:ve}),$.then(()=>e.history.go(T))},reset(){let A=new Map(C.blockers);A.set(D,Pp),De({blockers:A})}});return}return Nt(se,ve)}),n){Tae(t,H);let re=()=>Mae(t,H);t.addEventListener("pagehide",re),V=()=>t.removeEventListener("pagehide",re)}return C.initialized||Nt(kr.Pop,C.location,{initialHydration:!0}),E}function ke(){h&&h(),V&&V(),p.clear(),L&&L.abort(),C.fetchers.forEach((re,se)=>br(se)),C.blockers.forEach((re,se)=>yo(se))}function Le(re){return p.add(re),()=>p.delete(re)}function De(re,se){se===void 0&&(se={}),C=ir({},C,re);let ve=[],T=[];f.v7_fetcherPersist&&C.fetchers.forEach((D,$)=>{D.state==="idle"&&(be.has($)?T.push($):ve.push($))}),[...p].forEach(D=>D(C,{deletedFetchers:T,viewTransitionOpts:se.viewTransitionOpts,flushSync:se.flushSync===!0})),f.v7_fetcherPersist&&(ve.forEach(D=>C.fetchers.delete(D)),T.forEach(D=>br(D)))}function me(re,se,ve){var T,D;let{flushSync:$}=ve===void 0?{}:ve,A=C.actionData!=null&&C.navigation.formMethod!=null&&Ra(C.navigation.formMethod)&&C.navigation.state==="loading"&&((T=re.state)==null?void 0:T._isRedirect)!==!0,N;se.actionData?Object.keys(se.actionData).length>0?N=se.actionData:N=null:A?N=C.actionData:N=null;let Q=se.loaderData?uM(C.loaderData,se.loaderData,se.matches||[],se.errors):C.loaderData,ee=C.blockers;ee.size>0&&(ee=new Map(ee),ee.forEach((je,We)=>ee.set(We,Pp)));let fe=M===!0||C.navigation.formMethod!=null&&Ra(C.navigation.formMethod)&&((D=re.state)==null?void 0:D._isRedirect)!==!0;s&&(a=s,s=void 0),ne||k===kr.Pop||(k===kr.Push?e.history.push(re,re.state):k===kr.Replace&&e.history.replace(re,re.state));let _e;if(k===kr.Pop){let je=H.get(C.location.pathname);je&&je.has(re.pathname)?_e={currentLocation:C.location,nextLocation:re}:H.has(re.pathname)&&(_e={currentLocation:re,nextLocation:C.location})}else if(U){let je=H.get(C.location.pathname);je?je.add(re.pathname):(je=new Set([re.pathname]),H.set(C.location.pathname,je)),_e={currentLocation:C.location,nextLocation:re}}De(ir({},se,{actionData:N,loaderData:Q,historyAction:k,location:re,initialized:!0,navigation:tS,revalidation:"idle",restoreScrollPosition:ur(re,se.matches||C.matches),preventScrollReset:fe,blockers:ee}),{viewTransitionOpts:_e,flushSync:$===!0}),k=kr.Pop,M=!1,U=!1,ne=!1,Z=!1,G=[]}async function yt(re,se){if(typeof re=="number"){e.history.go(re);return}let ve=PC(C.location,C.matches,u,f.v7_prependBasename,re,f.v7_relativeSplatPath,se?.fromRouteId,se?.relative),{path:T,submission:D,error:$}=eM(f.v7_normalizeFormMethod,!1,ve,se),A=C.location,N=Y0(C.location,T,se&&se.state);N=ir({},N,e.history.encodeLocation(N));let Q=se&&se.replace!=null?se.replace:void 0,ee=kr.Push;Q===!0?ee=kr.Replace:Q===!1||D!=null&&Ra(D.formMethod)&&D.formAction===C.location.pathname+C.location.search&&(ee=kr.Replace);let fe=se&&"preventScrollReset"in se?se.preventScrollReset===!0:void 0,_e=(se&&se.flushSync)===!0,je=Dr({currentLocation:A,nextLocation:N,historyAction:ee});if(je){xi(je,{state:"blocked",location:N,proceed(){xi(je,{state:"proceeding",proceed:void 0,reset:void 0,location:N}),yt(re,se)},reset(){let We=new Map(C.blockers);We.set(je,Pp),De({blockers:We})}});return}return await Nt(ee,N,{submission:D,pendingError:$,preventScrollReset:fe,replace:se&&se.replace,enableViewTransition:se&&se.viewTransition,flushSync:_e})}function lt(){if(xn(),De({revalidation:"loading"}),C.navigation.state!=="submitting"){if(C.navigation.state==="idle"){Nt(C.historyAction,C.location,{startUninterruptedRevalidation:!0});return}Nt(k||C.historyAction,C.navigation.location,{overrideNavigation:C.navigation,enableViewTransition:U===!0})}}async function Nt(re,se,ve){L&&L.abort(),L=null,k=re,ne=(ve&&ve.startUninterruptedRevalidation)===!0,qn(C.location,C.matches),M=(ve&&ve.preventScrollReset)===!0,U=(ve&&ve.enableViewTransition)===!0;let T=s||a,D=ve&&ve.overrideNavigation,$=gc(T,se,u),A=(ve&&ve.flushSync)===!0,N=Xr($,T,se.pathname);if(N.active&&N.matches&&($=N.matches),!$){let{error:ct,notFoundMatches:Ie,route:nt}=_a(se.pathname);me(se,{matches:Ie,loaderData:{},errors:{[nt.id]:ct}},{flushSync:A});return}if(C.initialized&&!Z&&_ae(C.location,se)&&!(ve&&ve.submission&&Ra(ve.submission.formMethod))){me(se,{matches:$},{flushSync:A});return}L=new AbortController;let Q=Ff(e.history,se,L.signal,ve&&ve.submission),ee;if(ve&&ve.pendingError)ee=[mc($).route.id,{type:In.error,error:ve.pendingError}];else if(ve&&ve.submission&&Ra(ve.submission.formMethod)){let ct=await yn(Q,se,ve.submission,$,N.active,{replace:ve.replace,flushSync:A});if(ct.shortCircuited)return;if(ct.pendingActionResult){let[Ie,nt]=ct.pendingActionResult;if(Mo(nt)&&Bx(nt.error)&&nt.error.status===404){L=null,me(se,{matches:ct.matches,loaderData:{},errors:{[Ie]:nt.error}});return}}$=ct.matches||$,ee=ct.pendingActionResult,D=nS(se,ve.submission),A=!1,N.active=!1,Q=Ff(e.history,Q.url,Q.signal)}let{shortCircuited:fe,matches:_e,loaderData:je,errors:We}=await nn(Q,se,$,N.active,D,ve&&ve.submission,ve&&ve.fetcherSubmission,ve&&ve.replace,ve&&ve.initialHydration===!0,A,ee);fe||(L=null,me(se,ir({matches:_e||$},lM(ee),{loaderData:je,errors:We})))}async function yn(re,se,ve,T,D,$){$===void 0&&($={}),xn();let A=Pae(se,ve);if(De({navigation:A},{flushSync:$.flushSync===!0}),D){let ee=await bo(T,se.pathname,re.signal);if(ee.type==="aborted")return{shortCircuited:!0};if(ee.type==="error"){let fe=mc(ee.partialMatches).route.id;return{matches:ee.partialMatches,pendingActionResult:[fe,{type:In.error,error:ee.error}]}}else if(ee.matches)T=ee.matches;else{let{notFoundMatches:fe,error:_e,route:je}=_a(se.pathname);return{matches:fe,pendingActionResult:[je.id,{type:In.error,error:_e}]}}}let N,Q=r0(T,se);if(!Q.route.action&&!Q.route.lazy)N={type:In.error,error:ro(405,{method:re.method,pathname:se.pathname,routeId:Q.route.id})};else if(N=(await tt("action",C,re,[Q],T,null))[Q.route.id],re.signal.aborted)return{shortCircuited:!0};if(xc(N)){let ee;return $&&$.replace!=null?ee=$.replace:ee=oM(N.response.headers.get("Location"),new URL(re.url),u)===C.location.pathname+C.location.search,await Ae(re,N,!0,{submission:ve,replace:ee}),{shortCircuited:!0}}if(sl(N))throw ro(400,{type:"defer-action"});if(Mo(N)){let ee=mc(T,Q.route.id);return($&&$.replace)!==!0&&(k=kr.Push),{matches:T,pendingActionResult:[ee.route.id,N]}}return{matches:T,pendingActionResult:[Q.route.id,N]}}async function nn(re,se,ve,T,D,$,A,N,Q,ee,fe){let _e=D||nS(se,$),je=$||A||dM(_e),We=!ne&&(!f.v7_partialHydration||!Q);if(T){if(We){let Ke=te(fe);De(ir({navigation:_e},Ke!==void 0?{actionData:Ke}:{}),{flushSync:ee})}let Ne=await bo(ve,se.pathname,re.signal);if(Ne.type==="aborted")return{shortCircuited:!0};if(Ne.type==="error"){let Ke=mc(Ne.partialMatches).route.id;return{matches:Ne.partialMatches,loaderData:{},errors:{[Ke]:Ne.error}}}else if(Ne.matches)ve=Ne.matches;else{let{error:Ke,notFoundMatches:Ge,route:pe}=_a(se.pathname);return{matches:Ge,loaderData:{},errors:{[pe.id]:Ke}}}}let ct=s||a,[Ie,nt]=nM(e.history,C,ve,je,se,f.v7_partialHydration&&Q===!0,f.v7_skipActionErrorRevalidation,Z,G,q,be,ae,oe,ct,u,fe);if(_t(Ne=>!(ve&&ve.some(Ke=>Ke.route.id===Ne))||Ie&&Ie.some(Ke=>Ke.route.id===Ne)),K=++j,Ie.length===0&&nt.length===0){let Ne=bi();return me(se,ir({matches:ve,loaderData:{},errors:fe&&Mo(fe[1])?{[fe[0]]:fe[1].error}:null},lM(fe),Ne?{fetchers:new Map(C.fetchers)}:{}),{flushSync:ee}),{shortCircuited:!0}}if(We){let Ne={};if(!T){Ne.navigation=_e;let Ke=te(fe);Ke!==void 0&&(Ne.actionData=Ke)}nt.length>0&&(Ne.fetchers=de(nt)),De(Ne,{flushSync:ee})}nt.forEach(Ne=>{sr(Ne.key),Ne.controller&&W.set(Ne.key,Ne.controller)});let bt=()=>nt.forEach(Ne=>sr(Ne.key));L&&L.signal.addEventListener("abort",bt);let{loaderResults:Ot,fetcherResults:gt}=await mt(C,ve,Ie,nt,re);if(re.signal.aborted)return{shortCircuited:!0};L&&L.signal.removeEventListener("abort",bt),nt.forEach(Ne=>W.delete(Ne.key));let ht=Qv(Ot);if(ht)return await Ae(re,ht.result,!0,{replace:N}),{shortCircuited:!0};if(ht=Qv(gt),ht)return oe.add(ht.key),await Ae(re,ht.result,!0,{replace:N}),{shortCircuited:!0};let{loaderData:xt,errors:wt}=sM(C,ve,Ot,fe,nt,gt,we);we.forEach((Ne,Ke)=>{Ne.subscribe(Ge=>{(Ge||Ne.done)&&we.delete(Ke)})}),f.v7_partialHydration&&Q&&C.errors&&(wt=ir({},C.errors,wt));let Qe=bi(),ut=Rr(K),Xe=Qe||ut||nt.length>0;return ir({matches:ve,loaderData:xt,errors:wt},Xe?{fetchers:new Map(C.fetchers)}:{})}function te(re){if(re&&!Mo(re[1]))return{[re[0]]:re[1].data};if(C.actionData)return Object.keys(C.actionData).length===0?null:C.actionData}function de(re){return re.forEach(se=>{let ve=C.fetchers.get(se.key),T=kp(void 0,ve?ve.data:void 0);C.fetchers.set(se.key,T)}),new Map(C.fetchers)}function ge(re,se,ve,T){if(r)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");sr(re);let D=(T&&T.flushSync)===!0,$=s||a,A=PC(C.location,C.matches,u,f.v7_prependBasename,ve,f.v7_relativeSplatPath,se,T?.relative),N=gc($,A,u),Q=Xr(N,$,A);if(Q.active&&Q.matches&&(N=Q.matches),!N){wn(re,se,ro(404,{pathname:A}),{flushSync:D});return}let{path:ee,submission:fe,error:_e}=eM(f.v7_normalizeFormMethod,!0,A,T);if(_e){wn(re,se,_e,{flushSync:D});return}let je=r0(N,ee),We=(T&&T.preventScrollReset)===!0;if(fe&&Ra(fe.formMethod)){ze(re,se,ee,je,N,Q.active,D,We,fe);return}ae.set(re,{routeId:se,path:ee}),Fe(re,se,ee,je,N,Q.active,D,We,fe)}async function ze(re,se,ve,T,D,$,A,N,Q){xn(),ae.delete(re);function ee(he){if(!he.route.action&&!he.route.lazy){let Re=ro(405,{method:Q.formMethod,pathname:ve,routeId:se});return wn(re,se,Re,{flushSync:A}),!0}return!1}if(!$&&ee(T))return;let fe=C.fetchers.get(re);Kt(re,kae(Q,fe),{flushSync:A});let _e=new AbortController,je=Ff(e.history,ve,_e.signal,Q);if($){let he=await bo(D,ve,je.signal);if(he.type==="aborted")return;if(he.type==="error"){wn(re,se,he.error,{flushSync:A});return}else if(he.matches){if(D=he.matches,T=r0(D,ve),ee(T))return}else{wn(re,se,ro(404,{pathname:ve}),{flushSync:A});return}}W.set(re,_e);let We=j,Ie=(await tt("action",C,je,[T],D,re))[T.route.id];if(je.signal.aborted){W.get(re)===_e&&W.delete(re);return}if(f.v7_fetcherPersist&&be.has(re)){if(xc(Ie)||Mo(Ie)){Kt(re,qu(void 0));return}}else{if(xc(Ie))if(W.delete(re),K>We){Kt(re,qu(void 0));return}else return oe.add(re),Kt(re,kp(Q)),Ae(je,Ie,!1,{fetcherSubmission:Q,preventScrollReset:N});if(Mo(Ie)){wn(re,se,Ie.error);return}}if(sl(Ie))throw ro(400,{type:"defer-action"});let nt=C.navigation.location||C.location,bt=Ff(e.history,nt,_e.signal),Ot=s||a,gt=C.navigation.state!=="idle"?gc(Ot,C.navigation.location,u):C.matches;fn(gt,"Didn't find any matches after fetcher action");let ht=++j;Y.set(re,ht);let xt=kp(Q,Ie.data);C.fetchers.set(re,xt);let[wt,Qe]=nM(e.history,C,gt,Q,nt,!1,f.v7_skipActionErrorRevalidation,Z,G,q,be,ae,oe,Ot,u,[T.route.id,Ie]);Qe.filter(he=>he.key!==re).forEach(he=>{let Re=he.key,Oe=C.fetchers.get(Re),Pe=kp(void 0,Oe?Oe.data:void 0);C.fetchers.set(Re,Pe),sr(Re),he.controller&&W.set(Re,he.controller)}),De({fetchers:new Map(C.fetchers)});let ut=()=>Qe.forEach(he=>sr(he.key));_e.signal.addEventListener("abort",ut);let{loaderResults:Xe,fetcherResults:Ne}=await mt(C,gt,wt,Qe,bt);if(_e.signal.aborted)return;_e.signal.removeEventListener("abort",ut),Y.delete(re),W.delete(re),Qe.forEach(he=>W.delete(he.key));let Ke=Qv(Xe);if(Ke)return Ae(bt,Ke.result,!1,{preventScrollReset:N});if(Ke=Qv(Ne),Ke)return oe.add(Ke.key),Ae(bt,Ke.result,!1,{preventScrollReset:N});let{loaderData:Ge,errors:pe}=sM(C,gt,Xe,void 0,Qe,Ne,we);if(C.fetchers.has(re)){let he=qu(Ie.data);C.fetchers.set(re,he)}Rr(ht),C.navigation.state==="loading"&&ht>K?(fn(k,"Expected pending action"),L&&L.abort(),me(C.navigation.location,{matches:gt,loaderData:Ge,errors:pe,fetchers:new Map(C.fetchers)})):(De({errors:pe,loaderData:uM(C.loaderData,Ge,gt,pe),fetchers:new Map(C.fetchers)}),Z=!1)}async function Fe(re,se,ve,T,D,$,A,N,Q){let ee=C.fetchers.get(re);Kt(re,kp(Q,ee?ee.data:void 0),{flushSync:A});let fe=new AbortController,_e=Ff(e.history,ve,fe.signal);if($){let Ie=await bo(D,ve,_e.signal);if(Ie.type==="aborted")return;if(Ie.type==="error"){wn(re,se,Ie.error,{flushSync:A});return}else if(Ie.matches)D=Ie.matches,T=r0(D,ve);else{wn(re,se,ro(404,{pathname:ve}),{flushSync:A});return}}W.set(re,fe);let je=j,ct=(await tt("loader",C,_e,[T],D,re))[T.route.id];if(sl(ct)&&(ct=await _5(ct,_e.signal,!0)||ct),W.get(re)===fe&&W.delete(re),!_e.signal.aborted){if(be.has(re)){Kt(re,qu(void 0));return}if(xc(ct))if(K>je){Kt(re,qu(void 0));return}else{oe.add(re),await Ae(_e,ct,!1,{preventScrollReset:N});return}if(Mo(ct)){wn(re,se,ct.error);return}fn(!sl(ct),"Unhandled fetcher deferred data"),Kt(re,qu(ct.data))}}async function Ae(re,se,ve,T){let{submission:D,fetcherSubmission:$,preventScrollReset:A,replace:N}=T===void 0?{}:T;se.response.headers.has("X-Remix-Revalidate")&&(Z=!0);let Q=se.response.headers.get("Location");fn(Q,"Expected a Location header on the redirect Response"),Q=oM(Q,new URL(re.url),u);let ee=Y0(C.location,Q,{_isRedirect:!0});if(n){let Ie=!1;if(se.response.headers.has("X-Remix-Reload-Document"))Ie=!0;else if(w5.test(Q)){const nt=e.history.createURL(Q);Ie=nt.origin!==t.location.origin||Mh(nt.pathname,u)==null}if(Ie){N?t.location.replace(Q):t.location.assign(Q);return}}L=null;let fe=N===!0||se.response.headers.has("X-Remix-Replace")?kr.Replace:kr.Push,{formMethod:_e,formAction:je,formEncType:We}=C.navigation;!D&&!$&&_e&&je&&We&&(D=dM(C.navigation));let ct=D||$;if(lae.has(se.response.status)&&ct&&Ra(ct.formMethod))await Nt(fe,ee,{submission:ir({},ct,{formAction:Q}),preventScrollReset:A||M,enableViewTransition:ve?U:void 0});else{let Ie=nS(ee,D);await Nt(fe,ee,{overrideNavigation:Ie,fetcherSubmission:$,preventScrollReset:A||M,enableViewTransition:ve?U:void 0})}}async function tt(re,se,ve,T,D,$){let A,N={};try{A=await vae(l,re,se,ve,T,D,$,o,i)}catch(Q){return T.forEach(ee=>{N[ee.route.id]={type:In.error,error:Q}}),N}for(let[Q,ee]of Object.entries(A))if(Sae(ee)){let fe=ee.result;N[Q]={type:In.redirect,response:xae(fe,ve,Q,D,u,f.v7_relativeSplatPath)}}else N[Q]=await bae(ee);return N}async function mt(re,se,ve,T,D){let $=re.matches,A=tt("loader",re,D,ve,se,null),N=Promise.all(T.map(async fe=>{if(fe.matches&&fe.match&&fe.controller){let je=(await tt("loader",re,Ff(e.history,fe.path,fe.controller.signal),[fe.match],fe.matches,fe.key))[fe.match.route.id];return{[fe.key]:je}}else return Promise.resolve({[fe.key]:{type:In.error,error:ro(404,{pathname:fe.path})}})})),Q=await A,ee=(await N).reduce((fe,_e)=>Object.assign(fe,_e),{});return await Promise.all([Oae(se,Q,D.signal,$,re.loaderData),Aae(se,ee,T)]),{loaderResults:Q,fetcherResults:ee}}function xn(){Z=!0,G.push(..._t()),ae.forEach((re,se)=>{W.has(se)&&q.add(se),sr(se)})}function Kt(re,se,ve){ve===void 0&&(ve={}),C.fetchers.set(re,se),De({fetchers:new Map(C.fetchers)},{flushSync:(ve&&ve.flushSync)===!0})}function wn(re,se,ve,T){T===void 0&&(T={});let D=mc(C.matches,se);br(re),De({errors:{[D.route.id]:ve},fetchers:new Map(C.fetchers)},{flushSync:(T&&T.flushSync)===!0})}function Ii(re){return f.v7_fetcherPersist&&(ue.set(re,(ue.get(re)||0)+1),be.has(re)&&be.delete(re)),C.fetchers.get(re)||cae}function br(re){let se=C.fetchers.get(re);W.has(re)&&!(se&&se.state==="loading"&&Y.has(re))&&sr(re),ae.delete(re),Y.delete(re),oe.delete(re),be.delete(re),q.delete(re),C.fetchers.delete(re)}function yi(re){if(f.v7_fetcherPersist){let se=(ue.get(re)||0)-1;se<=0?(ue.delete(re),be.add(re)):ue.set(re,se)}else br(re);De({fetchers:new Map(C.fetchers)})}function sr(re){let se=W.get(re);se&&(se.abort(),W.delete(re))}function si(re){for(let se of re){let ve=Ii(se),T=qu(ve.data);C.fetchers.set(se,T)}}function bi(){let re=[],se=!1;for(let ve of oe){let T=C.fetchers.get(ve);fn(T,"Expected fetcher: "+ve),T.state==="loading"&&(oe.delete(ve),re.push(ve),se=!0)}return si(re),se}function Rr(re){let se=[];for(let[ve,T]of Y)if(T0}function Xi(re,se){let ve=C.blockers.get(re)||Pp;return He.get(re)!==se&&He.set(re,se),ve}function yo(re){C.blockers.delete(re),He.delete(re)}function xi(re,se){let ve=C.blockers.get(re)||Pp;fn(ve.state==="unblocked"&&se.state==="blocked"||ve.state==="blocked"&&se.state==="blocked"||ve.state==="blocked"&&se.state==="proceeding"||ve.state==="blocked"&&se.state==="unblocked"||ve.state==="proceeding"&&se.state==="unblocked","Invalid blocker state transition: "+ve.state+" -> "+se.state);let T=new Map(C.blockers);T.set(re,se),De({blockers:T})}function Dr(re){let{currentLocation:se,nextLocation:ve,historyAction:T}=re;if(He.size===0)return;He.size>1&&zc(!1,"A router only supports one blocker at a time");let D=Array.from(He.entries()),[$,A]=D[D.length-1],N=C.blockers.get($);if(!(N&&N.state==="proceeding")&&A({currentLocation:se,nextLocation:ve,historyAction:T}))return $}function _a(re){let se=ro(404,{pathname:re}),ve=s||a,{matches:T,route:D}=cM(ve);return _t(),{notFoundMatches:T,route:D,error:se}}function _t(re){let se=[];return we.forEach((ve,T)=>{(!re||re(T))&&(ve.cancel(),se.push(T),we.delete(T))}),se}function hn(re,se,ve){if(m=re,b=se,v=ve||null,!w&&C.navigation===tS){w=!0;let T=ur(C.location,C.matches);T!=null&&De({restoreScrollPosition:T})}return()=>{m=null,b=null,v=null}}function _n(re,se){return v&&v(re,se.map(T=>zoe(T,C.loaderData)))||re.key}function qn(re,se){if(m&&b){let ve=_n(re,se);m[ve]=b()}}function ur(re,se){if(m){let ve=_n(re,se),T=m[ve];if(typeof T=="number")return T}return null}function Xr(re,se,ve){if(c)if(re){if(Object.keys(re[0].params).length>0)return{active:!0,matches:q1(se,ve,u,!0)}}else return{active:!0,matches:q1(se,ve,u,!0)||[]};return{active:!1,matches:null}}async function bo(re,se,ve){if(!c)return{type:"success",matches:re};let T=re;for(;;){let D=s==null,$=s||a,A=o;try{await c({path:se,matches:T,patch:(ee,fe)=>{ve.aborted||iM(ee,fe,$,A,i)}})}catch(ee){return{type:"error",error:ee,partialMatches:T}}finally{D&&!ve.aborted&&(a=[...a])}if(ve.aborted)return{type:"aborted"};let N=gc($,se,u);if(N)return{type:"success",matches:N};let Q=q1($,se,u,!0);if(!Q||T.length===Q.length&&T.every((ee,fe)=>ee.route.id===Q[fe].route.id))return{type:"success",matches:null};T=Q}}function Zl(re){o={},s=Ty(re,i,void 0,o)}function Sf(re,se){let ve=s==null;iM(re,se,s||a,o,i),ve&&(a=[...a],De({}))}return E={get basename(){return u},get future(){return f},get state(){return C},get routes(){return a},get window(){return t},initialize:it,subscribe:Le,enableScrollRestoration:hn,navigate:yt,fetch:ge,revalidate:lt,createHref:re=>e.history.createHref(re),encodeLocation:re=>e.history.encodeLocation(re),getFetcher:Ii,deleteFetcher:yi,dispose:ke,getBlocker:Xi,deleteBlocker:yo,patchRoutes:Sf,_internalFetchControllers:W,_internalActiveDeferreds:we,_internalSetRoutes:Zl},E}function hae(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function PC(e,t,n,r,i,o,a,s){let u,l;if(a){u=[];for(let f of t)if(u.push(f),f.route.id===a){l=f;break}}else u=t,l=t[t.length-1];let c=x5(i||".",b5(u,o),Mh(e.pathname,n)||e.pathname,s==="path");if(i==null&&(c.search=e.search,c.hash=e.hash),(i==null||i===""||i===".")&&l){let f=S5(c.search);if(l.route.index&&!f)c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index";else if(!l.route.index&&f){let h=new URLSearchParams(c.search),p=h.getAll("index");h.delete("index"),p.filter(v=>v).forEach(v=>h.append("index",v));let m=h.toString();c.search=m?"?"+m:""}}return r&&n!=="/"&&(c.pathname=c.pathname==="/"?n:lu([n,c.pathname])),Uc(c)}function eM(e,t,n,r){if(!r||!hae(r))return{path:n};if(r.formMethod&&!Eae(r.formMethod))return{path:n,error:ro(405,{method:r.formMethod})};let i=()=>({path:n,error:ro(400,{type:"invalid-body"})}),o=r.formMethod||"get",a=e?o.toUpperCase():o.toLowerCase(),s=LF(n);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!Ra(a))return i();let h=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((p,m)=>{let[v,b]=m;return""+p+v+"="+b+` +`},""):String(r.body);return{path:n,submission:{formMethod:a,formAction:s,formEncType:r.formEncType,formData:void 0,json:void 0,text:h}}}else if(r.formEncType==="application/json"){if(!Ra(a))return i();try{let h=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:a,formAction:s,formEncType:r.formEncType,formData:void 0,json:h,text:void 0}}}catch{return i()}}}fn(typeof FormData=="function","FormData is not available in this environment");let u,l;if(r.formData)u=TC(r.formData),l=r.formData;else if(r.body instanceof FormData)u=TC(r.body),l=r.body;else if(r.body instanceof URLSearchParams)u=r.body,l=aM(u);else if(r.body==null)u=new URLSearchParams,l=new FormData;else try{u=new URLSearchParams(r.body),l=aM(u)}catch{return i()}let c={formMethod:a,formAction:s,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:l,json:void 0,text:void 0};if(Ra(c.formMethod))return{path:n,submission:c};let f=Pu(n);return t&&f.search&&S5(f.search)&&u.append("index",""),f.search="?"+u,{path:Uc(f),submission:c}}function tM(e,t,n){n===void 0&&(n=!1);let r=e.findIndex(i=>i.route.id===t);return r>=0?e.slice(0,n?r+1:r):e}function nM(e,t,n,r,i,o,a,s,u,l,c,f,h,p,m,v){let b=v?Mo(v[1])?v[1].error:v[1].data:void 0,w=e.createURL(t.location),x=e.createURL(i),S=n;o&&t.errors?S=tM(n,Object.keys(t.errors)[0],!0):v&&Mo(v[1])&&(S=tM(n,v[0]));let O=v?v[1].statusCode:void 0,E=a&&O&&O>=400,C=S.filter((M,L)=>{let{route:U}=M;if(U.lazy)return!0;if(U.loader==null)return!1;if(o)return kC(U,t.loaderData,t.errors);if(pae(t.loaderData,t.matches[L],M)||u.some(ne=>ne===M.route.id))return!0;let H=t.matches[L],V=M;return rM(M,ir({currentUrl:w,currentParams:H.params,nextUrl:x,nextParams:V.params},r,{actionResult:b,actionStatus:O,defaultShouldRevalidate:E?!1:s||w.pathname+w.search===x.pathname+x.search||w.search!==x.search||IF(H,V)}))}),k=[];return f.forEach((M,L)=>{if(o||!n.some(Z=>Z.route.id===M.routeId)||c.has(L))return;let U=gc(p,M.path,m);if(!U){k.push({key:L,routeId:M.routeId,path:M.path,matches:null,match:null,controller:null});return}let H=t.fetchers.get(L),V=r0(U,M.path),ne=!1;h.has(L)?ne=!1:l.has(L)?(l.delete(L),ne=!0):H&&H.state!=="idle"&&H.data===void 0?ne=s:ne=rM(V,ir({currentUrl:w,currentParams:t.matches[t.matches.length-1].params,nextUrl:x,nextParams:n[n.length-1].params},r,{actionResult:b,actionStatus:O,defaultShouldRevalidate:E?!1:s})),ne&&k.push({key:L,routeId:M.routeId,path:M.path,matches:U,match:V,controller:new AbortController})}),[C,k]}function kC(e,t,n){if(e.lazy)return!0;if(!e.loader)return!1;let r=t!=null&&t[e.id]!==void 0,i=n!=null&&n[e.id]!==void 0;return!r&&i?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!r&&!i}function pae(e,t,n){let r=!t||n.route.id!==t.route.id,i=e[n.route.id]===void 0;return r||i}function IF(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function rM(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n=="boolean")return n}return t.defaultShouldRevalidate}function iM(e,t,n,r,i){var o;let a;if(e){let l=r[e];fn(l,"No route found to patch children into: routeId = "+e),l.children||(l.children=[]),a=l.children}else a=n;let s=t.filter(l=>!a.some(c=>NF(l,c))),u=Ty(s,i,[e||"_","patch",String(((o=a)==null?void 0:o.length)||"0")],r);a.push(...u)}function NF(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((n,r)=>{var i;return(i=t.children)==null?void 0:i.some(o=>NF(n,o))}):!1}async function gae(e,t,n){if(!e.lazy)return;let r=await e.lazy();if(!e.lazy)return;let i=n[e.id];fn(i,"No route found in manifest");let o={};for(let a in r){let u=i[a]!==void 0&&a!=="hasErrorBoundary";zc(!u,'Route "'+i.id+'" has a static property "'+a+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+a+'" will be ignored.')),!u&&!joe.has(a)&&(o[a]=r[a])}Object.assign(i,o),Object.assign(i,ir({},t(i),{lazy:void 0}))}async function mae(e){let{matches:t}=e,n=t.filter(i=>i.shouldLoad);return(await Promise.all(n.map(i=>i.resolve()))).reduce((i,o,a)=>Object.assign(i,{[n[a].route.id]:o}),{})}async function vae(e,t,n,r,i,o,a,s,u,l){let c=o.map(p=>p.route.lazy?gae(p.route,u,s):void 0),f=o.map((p,m)=>{let v=c[m],b=i.some(x=>x.route.id===p.route.id);return ir({},p,{shouldLoad:b,resolve:async x=>(x&&r.method==="GET"&&(p.route.lazy||p.route.loader)&&(b=!0),b?yae(t,r,p,v,x,l):Promise.resolve({type:In.data,result:void 0}))})}),h=await e({matches:f,request:r,params:o[0].params,fetcherKey:a,context:l});try{await Promise.all(c)}catch{}return h}async function yae(e,t,n,r,i,o){let a,s,u=l=>{let c,f=new Promise((m,v)=>c=v);s=()=>c(),t.signal.addEventListener("abort",s);let h=m=>typeof l!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+n.route.id+"]"))):l({request:t,params:n.params,context:o},...m!==void 0?[m]:[]),p=(async()=>{try{return{type:"data",result:await(i?i(v=>h(v)):h())}}catch(m){return{type:"error",result:m}}})();return Promise.race([p,f])};try{let l=n.route[e];if(r)if(l){let c,[f]=await Promise.all([u(l).catch(h=>{c=h}),r]);if(c!==void 0)throw c;a=f}else if(await r,l=n.route[e],l)a=await u(l);else if(e==="action"){let c=new URL(t.url),f=c.pathname+c.search;throw ro(405,{method:t.method,pathname:f,routeId:n.route.id})}else return{type:In.data,result:void 0};else if(l)a=await u(l);else{let c=new URL(t.url),f=c.pathname+c.search;throw ro(404,{pathname:f})}fn(a.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+n.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(l){return{type:In.error,result:l}}finally{s&&t.signal.removeEventListener("abort",s)}return a}async function bae(e){let{result:t,type:n}=e;if(FF(t)){let l;try{let c=t.headers.get("Content-Type");c&&/\bapplication\/json\b/.test(c)?t.body==null?l=null:l=await t.json():l=await t.text()}catch(c){return{type:In.error,error:c}}return n===In.error?{type:In.error,error:new My(t.status,t.statusText,l),statusCode:t.status,headers:t.headers}:{type:In.data,data:l,statusCode:t.status,headers:t.headers}}if(n===In.error){if(fM(t)){var r;if(t.data instanceof Error){var i;return{type:In.error,error:t.data,statusCode:(i=t.init)==null?void 0:i.status}}t=new My(((r=t.init)==null?void 0:r.status)||500,void 0,t.data)}return{type:In.error,error:t,statusCode:Bx(t)?t.status:void 0}}if(Cae(t)){var o,a;return{type:In.deferred,deferredData:t,statusCode:(o=t.init)==null?void 0:o.status,headers:((a=t.init)==null?void 0:a.headers)&&new Headers(t.init.headers)}}if(fM(t)){var s,u;return{type:In.data,data:t.data,statusCode:(s=t.init)==null?void 0:s.status,headers:(u=t.init)!=null&&u.headers?new Headers(t.init.headers):void 0}}return{type:In.data,data:t}}function xae(e,t,n,r,i,o){let a=e.headers.get("Location");if(fn(a,"Redirects returned/thrown from loaders/actions must have a Location header"),!w5.test(a)){let s=r.slice(0,r.findIndex(u=>u.route.id===n)+1);a=PC(new URL(t.url),s,i,!0,a,o),e.headers.set("Location",a)}return e}function oM(e,t,n){if(w5.test(e)){let r=e,i=r.startsWith("//")?new URL(t.protocol+r):new URL(r),o=Mh(i.pathname,n)!=null;if(i.origin===t.origin&&o)return i.pathname+i.search+i.hash}return e}function Ff(e,t,n,r){let i=e.createURL(LF(t)).toString(),o={signal:n};if(r&&Ra(r.formMethod)){let{formMethod:a,formEncType:s}=r;o.method=a.toUpperCase(),s==="application/json"?(o.headers=new Headers({"Content-Type":s}),o.body=JSON.stringify(r.json)):s==="text/plain"?o.body=r.text:s==="application/x-www-form-urlencoded"&&r.formData?o.body=TC(r.formData):o.body=r.formData}return new Request(i,o)}function TC(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r=="string"?r:r.name);return t}function aM(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function wae(e,t,n,r,i){let o={},a=null,s,u=!1,l={},c=n&&Mo(n[1])?n[1].error:void 0;return e.forEach(f=>{if(!(f.route.id in t))return;let h=f.route.id,p=t[h];if(fn(!xc(p),"Cannot handle redirect results in processLoaderData"),Mo(p)){let m=p.error;c!==void 0&&(m=c,c=void 0),a=a||{};{let v=mc(e,h);a[v.route.id]==null&&(a[v.route.id]=m)}o[h]=void 0,u||(u=!0,s=Bx(p.error)?p.error.status:500),p.headers&&(l[h]=p.headers)}else sl(p)?(r.set(h,p.deferredData),o[h]=p.deferredData.data,p.statusCode!=null&&p.statusCode!==200&&!u&&(s=p.statusCode),p.headers&&(l[h]=p.headers)):(o[h]=p.data,p.statusCode&&p.statusCode!==200&&!u&&(s=p.statusCode),p.headers&&(l[h]=p.headers))}),c!==void 0&&n&&(a={[n[0]]:c},o[n[0]]=void 0),{loaderData:o,errors:a,statusCode:s||200,loaderHeaders:l}}function sM(e,t,n,r,i,o,a){let{loaderData:s,errors:u}=wae(t,n,r,a);return i.forEach(l=>{let{key:c,match:f,controller:h}=l,p=o[c];if(fn(p,"Did not find corresponding fetcher result"),!(h&&h.signal.aborted))if(Mo(p)){let m=mc(e.matches,f?.route.id);u&&u[m.route.id]||(u=ir({},u,{[m.route.id]:p.error})),e.fetchers.delete(c)}else if(xc(p))fn(!1,"Unhandled fetcher revalidation redirect");else if(sl(p))fn(!1,"Unhandled fetcher deferred data");else{let m=qu(p.data);e.fetchers.set(c,m)}}),{loaderData:s,errors:u}}function uM(e,t,n,r){let i=ir({},t);for(let o of n){let a=o.route.id;if(t.hasOwnProperty(a)?t[a]!==void 0&&(i[a]=t[a]):e[a]!==void 0&&o.route.loader&&(i[a]=e[a]),r&&r.hasOwnProperty(a))break}return i}function lM(e){return e?Mo(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function mc(e,t){return(t?e.slice(0,e.findIndex(r=>r.route.id===t)+1):[...e]).reverse().find(r=>r.route.hasErrorBoundary===!0)||e[0]}function cM(e){let t=e.length===1?e[0]:e.find(n=>n.index||!n.path||n.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ro(e,t){let{pathname:n,routeId:r,method:i,type:o,message:a}=t===void 0?{}:t,s="Unknown Server Error",u="Unknown @remix-run/router error";return e===400?(s="Bad Request",i&&n&&r?u="You made a "+i+' request to "'+n+'" but '+('did not provide a `loader` for route "'+r+'", ')+"so there is no way to handle the request.":o==="defer-action"?u="defer() is not supported in actions":o==="invalid-body"&&(u="Unable to encode submission body")):e===403?(s="Forbidden",u='Route "'+r+'" does not match URL "'+n+'"'):e===404?(s="Not Found",u='No route matches URL "'+n+'"'):e===405&&(s="Method Not Allowed",i&&n&&r?u="You made a "+i.toUpperCase()+' request to "'+n+'" but '+('did not provide an `action` for route "'+r+'", ')+"so there is no way to handle the request.":i&&(u='Invalid request method "'+i.toUpperCase()+'"')),new My(e||500,s,new Error(u),!0)}function Qv(e){let t=Object.entries(e);for(let n=t.length-1;n>=0;n--){let[r,i]=t[n];if(xc(i))return{key:r,result:i}}}function LF(e){let t=typeof e=="string"?Pu(e):e;return Uc(ir({},t,{hash:""}))}function _ae(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Sae(e){return FF(e.result)&&uae.has(e.result.status)}function sl(e){return e.type===In.deferred}function Mo(e){return e.type===In.error}function xc(e){return(e&&e.type)===In.redirect}function fM(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function Cae(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function FF(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Eae(e){return sae.has(e.toLowerCase())}function Ra(e){return oae.has(e.toLowerCase())}async function Oae(e,t,n,r,i){let o=Object.entries(t);for(let a=0;ah?.route.id===s);if(!l)continue;let c=r.find(h=>h.route.id===l.route.id),f=c!=null&&!IF(c,l)&&(i&&i[l.route.id])!==void 0;sl(u)&&f&&await _5(u,n,!1).then(h=>{h&&(t[s]=h)})}}async function Aae(e,t,n){for(let r=0;rl?.route.id===o)&&sl(s)&&(fn(a,"Expected an AbortController for revalidating fetcher deferred result"),await _5(s,a.signal,!0).then(l=>{l&&(t[i]=l)}))}}async function _5(e,t,n){if(n===void 0&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:In.data,data:e.deferredData.unwrappedData}}catch(i){return{type:In.error,error:i}}return{type:In.data,data:e.deferredData.data}}}function S5(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function r0(e,t){let n=typeof t=="string"?Pu(t).search:t.search;if(e[e.length-1].route.index&&S5(n||""))return e[e.length-1];let r=RF(e);return r[r.length-1]}function dM(e){let{formMethod:t,formAction:n,formEncType:r,text:i,formData:o,json:a}=e;if(!(!t||!n||!r)){if(i!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:i};if(o!=null)return{formMethod:t,formAction:n,formEncType:r,formData:o,json:void 0,text:void 0};if(a!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:a,text:void 0}}}function nS(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Pae(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function kp(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function kae(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function qu(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Tae(e,t){try{let n=e.sessionStorage.getItem($F);if(n){let r=JSON.parse(n);for(let[i,o]of Object.entries(r||{}))o&&Array.isArray(o)&&t.set(i,new Set(o||[]))}}catch{}}function Mae(e,t){if(t.size>0){let n={};for(let[r,i]of t)n[r]=[...i];try{e.sessionStorage.setItem($F,JSON.stringify(n))}catch(r){zc(!1,"Failed to save applied view transitions in sessionStorage ("+r+").")}}}/** + * React Router v6.28.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Ry(){return Ry=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),y.useCallback(function(l,c){if(c===void 0&&(c={}),!s.current)return;if(typeof l=="number"){r.go(l);return}let f=x5(l,JSON.parse(a),o,c.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:lu([t,f.pathname])),(c.replace?r.replace:r.push)(f,c.state,c)},[t,r,a,o,e])}const $ae=y.createContext(null);function Iae(e){let t=y.useContext(Bl).outlet;return t&&y.createElement($ae.Provider,{value:e},t)}function VF(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=y.useContext(df),{matches:i}=y.useContext(Bl),{pathname:o}=mm(),a=JSON.stringify(b5(i,r.v7_relativeSplatPath));return y.useMemo(()=>x5(e,JSON.parse(a),o,n==="path"),[e,a,o,n])}function Nae(e,t,n,r){gm()||fn(!1);let{navigator:i}=y.useContext(df),{matches:o}=y.useContext(Bl),a=o[o.length-1],s=a?a.params:{};a&&a.pathname;let u=a?a.pathnameBase:"/";a&&a.route;let l=mm(),c;c=l;let f=c.pathname||"/",h=f;if(u!=="/"){let v=u.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(v.length).join("/")}let p=gc(e,{pathname:h});return zae(p&&p.map(v=>Object.assign({},v,{params:Object.assign({},s,v.params),pathname:lu([u,i.encodeLocation?i.encodeLocation(v.pathname).pathname:v.pathname]),pathnameBase:v.pathnameBase==="/"?u:lu([u,i.encodeLocation?i.encodeLocation(v.pathnameBase).pathname:v.pathnameBase])})),o,n,r)}function Lae(){let e=Hae(),t=Bx(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return y.createElement(y.Fragment,null,y.createElement("h2",null,"Unexpected Application Error!"),y.createElement("h3",{style:{fontStyle:"italic"}},t),n?y.createElement("pre",{style:i},n):null,null)}const Fae=y.createElement(Lae,null);class jae extends y.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?y.createElement(Bl.Provider,{value:this.props.routeContext},y.createElement(BF.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Bae(e){let{routeContext:t,match:n,children:r}=e,i=y.useContext(zx);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),y.createElement(Bl.Provider,{value:t},r)}function zae(e,t,n,r){var i;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var o;if(!n)return null;if(n.errors)e=n.matches;else if((o=r)!=null&&o.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,s=(i=n)==null?void 0:i.errors;if(s!=null){let c=a.findIndex(f=>f.route.id&&s?.[f.route.id]!==void 0);c>=0||fn(!1),a=a.slice(0,Math.min(a.length,c+1))}let u=!1,l=-1;if(n&&r&&r.v7_partialHydration)for(let c=0;c=0?a=a.slice(0,l+1):a=[a[0]];break}}}return a.reduceRight((c,f,h)=>{let p,m=!1,v=null,b=null;n&&(p=s&&f.route.id?s[f.route.id]:void 0,v=f.route.errorElement||Fae,u&&(l<0&&h===0?(qae("route-fallback"),m=!0,b=null):l===h&&(m=!0,b=f.route.hydrateFallbackElement||null)));let w=t.concat(a.slice(0,h+1)),x=()=>{let S;return p?S=v:m?S=b:f.route.Component?S=y.createElement(f.route.Component,null):f.route.element?S=f.route.element:S=c,y.createElement(Bae,{match:f,routeContext:{outlet:c,matches:w,isDataRoute:n!=null},children:S})};return n&&(f.route.ErrorBoundary||f.route.errorElement||h===0)?y.createElement(jae,{location:n.location,revalidation:n.revalidation,component:v,error:p,children:x(),routeContext:{outlet:null,matches:w,isDataRoute:!0}}):x()},null)}var WF=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(WF||{}),Dy=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Dy||{});function Uae(e){let t=y.useContext(zx);return t||fn(!1),t}function Vae(e){let t=y.useContext(jF);return t||fn(!1),t}function Wae(e){let t=y.useContext(Bl);return t||fn(!1),t}function HF(e){let t=Wae(),n=t.matches[t.matches.length-1];return n.route.id||fn(!1),n.route.id}function Hae(){var e;let t=y.useContext(BF),n=Vae(Dy.UseRouteError),r=HF(Dy.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function Kae(){let{router:e}=Uae(WF.UseNavigateStable),t=HF(Dy.UseNavigateStable),n=y.useRef(!1);return zF(()=>{n.current=!0}),y.useCallback(function(i,o){o===void 0&&(o={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,Ry({fromRouteId:t},o)))},[e,t])}const hM={};function qae(e,t,n){hM[e]||(hM[e]=!0)}const pM={};function Gae(e,t){pM[t]||(pM[t]=!0,console.warn(t))}const jf=(e,t,n)=>Gae(e,"⚠️ React Router Future Flag Warning: "+t+". "+("You can use the `"+e+"` future flag to opt-in early. ")+("For more information, see "+n+"."));function Yae(e,t){e?.v7_startTransition===void 0&&jf("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),e?.v7_relativeSplatPath===void 0&&(!t||!t.v7_relativeSplatPath)&&jf("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath"),t&&(t.v7_fetcherPersist===void 0&&jf("v7_fetcherPersist","The persistence behavior of fetchers is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist"),t.v7_normalizeFormMethod===void 0&&jf("v7_normalizeFormMethod","Casing of `formMethod` fields is being normalized to uppercase in v7","https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod"),t.v7_partialHydration===void 0&&jf("v7_partialHydration","`RouterProvider` hydration behavior is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_partialhydration"),t.v7_skipActionErrorRevalidation===void 0&&jf("v7_skipActionErrorRevalidation","The revalidation behavior after 4xx/5xx `action` responses is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation"))}function LGe(e){return Iae(e.context)}function Zae(e){let{basename:t="/",children:n=null,location:r,navigationType:i=kr.Pop,navigator:o,static:a=!1,future:s}=e;gm()&&fn(!1);let u=t.replace(/^\/*/,"/"),l=y.useMemo(()=>({basename:u,navigator:o,static:a,future:Ry({v7_relativeSplatPath:!1},s)}),[u,s,o,a]);typeof r=="string"&&(r=Pu(r));let{pathname:c="/",search:f="",hash:h="",state:p=null,key:m="default"}=r,v=y.useMemo(()=>{let b=Mh(c,u);return b==null?null:{location:{pathname:b,search:f,hash:h,state:p,key:m},navigationType:i}},[u,c,f,h,p,m,i]);return v==null?null:y.createElement(df.Provider,{value:l},y.createElement(C5.Provider,{children:n,value:v}))}new Promise(()=>{});function Xae(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:y.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:y.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:y.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/** + * React Router DOM v6.28.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Z0(){return Z0=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function Jae(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function ese(e,t){return e.button===0&&(!t||t==="_self")&&!Jae(e)}function MC(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(i=>[n,i]):[[n,r]])},[]))}function tse(e,t){let n=MC(e);return t&&t.forEach((r,i)=>{n.has(i)||t.getAll(i).forEach(o=>{n.append(i,o)})}),n}const nse=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],rse="6";try{window.__reactRouterVersion=rse}catch{}function FGe(e,t){return dae({basename:void 0,future:Z0({},void 0,{v7_prependBasename:!0}),history:Noe({window:void 0}),hydrationData:ise(),routes:e,mapRouteProperties:Xae,dataStrategy:void 0,patchRoutesOnNavigation:void 0,window:void 0}).initialize()}function ise(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=Z0({},t,{errors:ose(t.errors)})),t}function ose(e){if(!e)return null;let t=Object.entries(e),n={};for(let[r,i]of t)if(i&&i.__type==="RouteErrorResponse")n[r]=new My(i.status,i.statusText,i.data,i.internal===!0);else if(i&&i.__type==="Error"){if(i.__subType){let o=window[i.__subType];if(typeof o=="function")try{let a=new o(i.message);a.stack="",n[r]=a}catch{}}if(n[r]==null){let o=new Error(i.message);o.stack="",n[r]=o}}else n[r]=i;return n}const ase=y.createContext({isTransitioning:!1}),sse=y.createContext(new Map),use="startTransition",gM=P4[use],lse="flushSync",mM=Ioe[lse];function cse(e){gM?gM(e):e()}function Tp(e){mM?mM(e):e()}class fse{constructor(){this.status="pending",this.promise=new Promise((t,n)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",t(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",n(r))}})}}function jGe(e){let{fallbackElement:t,router:n,future:r}=e,[i,o]=y.useState(n.state),[a,s]=y.useState(),[u,l]=y.useState({isTransitioning:!1}),[c,f]=y.useState(),[h,p]=y.useState(),[m,v]=y.useState(),b=y.useRef(new Map),{v7_startTransition:w}=r||{},x=y.useCallback(M=>{w?cse(M):M()},[w]),S=y.useCallback((M,L)=>{let{deletedFetchers:U,flushSync:H,viewTransitionOpts:V}=L;U.forEach(Z=>b.current.delete(Z)),M.fetchers.forEach((Z,G)=>{Z.data!==void 0&&b.current.set(G,Z.data)});let ne=n.window==null||n.window.document==null||typeof n.window.document.startViewTransition!="function";if(!V||ne){H?Tp(()=>o(M)):x(()=>o(M));return}if(H){Tp(()=>{h&&(c&&c.resolve(),h.skipTransition()),l({isTransitioning:!0,flushSync:!0,currentLocation:V.currentLocation,nextLocation:V.nextLocation})});let Z=n.window.document.startViewTransition(()=>{Tp(()=>o(M))});Z.finished.finally(()=>{Tp(()=>{f(void 0),p(void 0),s(void 0),l({isTransitioning:!1})})}),Tp(()=>p(Z));return}h?(c&&c.resolve(),h.skipTransition(),v({state:M,currentLocation:V.currentLocation,nextLocation:V.nextLocation})):(s(M),l({isTransitioning:!0,flushSync:!1,currentLocation:V.currentLocation,nextLocation:V.nextLocation}))},[n.window,h,c,b,x]);y.useLayoutEffect(()=>n.subscribe(S),[n,S]),y.useEffect(()=>{u.isTransitioning&&!u.flushSync&&f(new fse)},[u]),y.useEffect(()=>{if(c&&a&&n.window){let M=a,L=c.promise,U=n.window.document.startViewTransition(async()=>{x(()=>o(M)),await L});U.finished.finally(()=>{f(void 0),p(void 0),s(void 0),l({isTransitioning:!1})}),p(U)}},[x,a,c,n.window]),y.useEffect(()=>{c&&a&&i.location.key===a.location.key&&c.resolve()},[c,h,i.location,a]),y.useEffect(()=>{!u.isTransitioning&&m&&(s(m.state),l({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),v(void 0))},[u.isTransitioning,m]),y.useEffect(()=>{},[]);let O=y.useMemo(()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:M=>n.navigate(M),push:(M,L,U)=>n.navigate(M,{state:L,preventScrollReset:U?.preventScrollReset}),replace:(M,L,U)=>n.navigate(M,{replace:!0,state:L,preventScrollReset:U?.preventScrollReset})}),[n]),E=n.basename||"/",C=y.useMemo(()=>({router:n,navigator:O,static:!1,basename:E}),[n,O,E]),k=y.useMemo(()=>({v7_relativeSplatPath:n.future.v7_relativeSplatPath}),[n.future.v7_relativeSplatPath]);return y.useEffect(()=>Yae(r,n.future),[r,n.future]),y.createElement(y.Fragment,null,y.createElement(zx.Provider,{value:C},y.createElement(jF.Provider,{value:i},y.createElement(sse.Provider,{value:b.current},y.createElement(ase.Provider,{value:u},y.createElement(Zae,{basename:E,location:i.location,navigationType:i.historyAction,navigator:O,future:k},i.initialized||n.future.v7_partialHydration?y.createElement(dse,{routes:n.routes,future:n.future,state:i}):t))))),null)}const dse=y.memo(hse);function hse(e){let{routes:t,future:n,state:r}=e;return Nae(t,void 0,r,n)}const pse=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",gse=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,BGe=y.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:o,replace:a,state:s,target:u,to:l,preventScrollReset:c,viewTransition:f}=t,h=Qae(t,nse),{basename:p}=y.useContext(df),m,v=!1;if(typeof l=="string"&&gse.test(l)&&(m=l,pse))try{let S=new URL(window.location.href),O=l.startsWith("//")?new URL(S.protocol+l):new URL(l),E=Mh(O.pathname,p);O.origin===S.origin&&E!=null?l=E+O.search+O.hash:v=!0}catch{}let b=Rae(l,{relative:i}),w=mse(l,{replace:a,state:s,target:u,preventScrollReset:c,relative:i,viewTransition:f});function x(S){r&&r(S),S.defaultPrevented||w(S)}return y.createElement("a",Z0({},h,{href:m||b,onClick:v||o?r:x,ref:n,target:u}))});var vM;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(vM||(vM={}));var yM;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(yM||(yM={}));function mse(e,t){let{target:n,replace:r,state:i,preventScrollReset:o,relative:a,viewTransition:s}=t===void 0?{}:t,u=UF(),l=mm(),c=VF(e,{relative:a});return y.useCallback(f=>{if(ese(f,n)){f.preventDefault();let h=r!==void 0?r:Uc(l)===Uc(c);u(e,{replace:h,state:i,preventScrollReset:o,relative:a,viewTransition:s})}},[l,u,c,r,i,n,e,o,a,s])}function zGe(e){let t=y.useRef(MC(e)),n=y.useRef(!1),r=mm(),i=y.useMemo(()=>tse(r.search,n.current?null:t.current),[r.search]),o=UF(),a=y.useCallback((s,u)=>{const l=MC(typeof s=="function"?s(i):s);n.current=!0,o("?"+l,u)},[o,i]);return[i,a]}var KF={exports:{}},qF={};/** + * @license React + * use-sync-external-store-with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vm=y;function vse(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var yse=typeof Object.is=="function"?Object.is:vse,bse=vm.useSyncExternalStore,xse=vm.useRef,wse=vm.useEffect,_se=vm.useMemo,Sse=vm.useDebugValue;qF.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var o=xse(null);if(o.current===null){var a={hasValue:!1,value:null};o.current=a}else a=o.current;o=_se(function(){function u(p){if(!l){if(l=!0,c=p,p=r(p),i!==void 0&&a.hasValue){var m=a.value;if(i(m,p))return f=m}return f=p}if(m=f,yse(c,p))return m;var v=r(p);return i!==void 0&&i(m,v)?(c=p,m):(c=p,f=v)}var l=!1,c,f,h=n===void 0?null:n;return[function(){return u(t())},h===null?void 0:function(){return u(h())}]},[t,n,r,i]);var s=bse(e,o[0],o[1]);return wse(function(){a.hasValue=!0,a.value=s},[s]),Sse(s),s};KF.exports=qF;var Cse=KF.exports;function Ese(e){e()}function Ose(){let e=null,t=null;return{clear(){e=null,t=null},notify(){Ese(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let r=e;for(;r;)n.push(r),r=r.next;return n},subscribe(n){let r=!0;const i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var bM={notify(){},get:()=>[]};function Ase(e,t){let n,r=bM,i=0,o=!1;function a(v){c();const b=r.subscribe(v);let w=!1;return()=>{w||(w=!0,b(),f())}}function s(){r.notify()}function u(){m.onStateChange&&m.onStateChange()}function l(){return o}function c(){i++,n||(n=e.subscribe(u),r=Ose())}function f(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=bM)}function h(){o||(o=!0,c())}function p(){o&&(o=!1,f())}const m={addNestedSub:a,notifyNestedSubs:s,handleChangeWrapper:u,isSubscribed:l,trySubscribe:h,tryUnsubscribe:p,getListeners:()=>r};return m}var Pse=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",kse=Pse(),Tse=()=>typeof navigator<"u"&&navigator.product==="ReactNative",Mse=Tse(),Rse=()=>kse||Mse?y.useLayoutEffect:y.useEffect,Dse=Rse(),$se=Symbol.for("react-redux-context"),Ise=typeof globalThis<"u"?globalThis:{};function Nse(){if(!y.createContext)return{};const e=Ise[$se]??=new Map;let t=e.get(y.createContext);return t||(t=y.createContext(null),e.set(y.createContext,t)),t}var Ol=Nse();function Lse(e){const{children:t,context:n,serverState:r,store:i}=e,o=y.useMemo(()=>{const u=Ase(i);return{store:i,subscription:u,getServerState:r?()=>r:void 0}},[i,r]),a=y.useMemo(()=>i.getState(),[i]);Dse(()=>{const{subscription:u}=o;return u.onStateChange=u.notifyNestedSubs,u.trySubscribe(),a!==i.getState()&&u.notifyNestedSubs(),()=>{u.tryUnsubscribe(),u.onStateChange=void 0}},[o,a]);const s=n||Ol;return y.createElement(s.Provider,{value:o},t)}var UGe=Lse;function E5(e=Ol){return function(){return y.useContext(e)}}var GF=E5();function YF(e=Ol){const t=e===Ol?GF:E5(e),n=()=>{const{store:r}=t();return r};return Object.assign(n,{withTypes:()=>n}),n}var Fse=YF();function jse(e=Ol){const t=e===Ol?Fse:YF(e),n=()=>t().dispatch;return Object.assign(n,{withTypes:()=>n}),n}var VGe=jse(),Bse=(e,t)=>e===t;function zse(e=Ol){const t=e===Ol?GF:E5(e),n=(r,i={})=>{const{equalityFn:o=Bse}=typeof i=="function"?{equalityFn:i}:i,a=t(),{store:s,subscription:u,getServerState:l}=a;y.useRef(!0);const c=y.useCallback({[r.name](h){return r(h)}}[r.name],[r]),f=Cse.useSyncExternalStoreWithSelector(u.addNestedSub,s.getState,l||s.getState,c,o);return y.useDebugValue(f),f};return Object.assign(n,{withTypes:()=>n}),n}var WGe=zse();function xM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ux(...e){return t=>{let n=!1;const r=e.map(i=>{const o=xM(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i{const{children:n,...r}=e,i=y.Children.toArray(n),o=i.find(Use);if(o){const a=o.props.children,s=i.map(u=>u===o?y.Children.count(a)>1?y.Children.only(null):y.isValidElement(a)?a.props.children:null:u);return I.jsx(RC,{...r,ref:t,children:y.isValidElement(a)?y.cloneElement(a,void 0,s):null})}return I.jsx(RC,{...r,ref:t,children:n})});Al.displayName="Slot";var RC=y.forwardRef((e,t)=>{const{children:n,...r}=e;if(y.isValidElement(n)){const i=Wse(n);return y.cloneElement(n,{...Vse(r,n.props),ref:t?Ux(t,i):i})}return y.Children.count(n)>1?y.Children.only(null):null});RC.displayName="SlotClone";var O5=({children:e})=>I.jsx(I.Fragment,{children:e});function Use(e){return y.isValidElement(e)&&e.type===O5}function Vse(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...s)=>{o(...s),i(...s)}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function Wse(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function ZF(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;ttypeof e=="boolean"?`${e}`:e===0?"0":e,_M=dn,HGe=(e,t)=>n=>{var r;if(t?.variants==null)return _M(e,n?.class,n?.className);const{variants:i,defaultVariants:o}=t,a=Object.keys(i).map(l=>{const c=n?.[l],f=o?.[l];if(c===null)return null;const h=wM(c)||wM(f);return i[l][h]}),s=n&&Object.entries(n).reduce((l,c)=>{let[f,h]=c;return h===void 0||(l[f]=h),l},{}),u=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((l,c)=>{let{class:f,className:h,...p}=c;return Object.entries(p).every(m=>{let[v,b]=m;return Array.isArray(b)?b.includes({...o,...s}[v]):{...o,...s}[v]===b})?[...l,f,h]:l},[]);return _M(e,a,u,n?.class,n?.className)},A5="-",Hse=e=>{const t=qse(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:a=>{const s=a.split(A5);return s[0]===""&&s.length!==1&&s.shift(),XF(s,t)||Kse(a)},getConflictingClassGroupIds:(a,s)=>{const u=n[a]||[];return s&&r[a]?[...u,...r[a]]:u}}},XF=(e,t)=>{if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),i=r?XF(e.slice(1),r):void 0;if(i)return i;if(t.validators.length===0)return;const o=e.join(A5);return t.validators.find(({validator:a})=>a(o))?.classGroupId},SM=/^\[(.+)\]$/,Kse=e=>{if(SM.test(e)){const t=SM.exec(e)[1],n=t?.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},qse=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return Yse(Object.entries(e.classGroups),n).forEach(([o,a])=>{DC(a,r,o,t)}),r},DC=(e,t,n,r)=>{e.forEach(i=>{if(typeof i=="string"){const o=i===""?t:CM(t,i);o.classGroupId=n;return}if(typeof i=="function"){if(Gse(i)){DC(i(r),t,n,r);return}t.validators.push({validator:i,classGroupId:n});return}Object.entries(i).forEach(([o,a])=>{DC(a,CM(t,o),n,r)})})},CM=(e,t)=>{let n=e;return t.split(A5).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},Gse=e=>e.isThemeGetter,Yse=(e,t)=>t?e.map(([n,r])=>{const i=r.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([a,s])=>[t+a,s])):o);return[n,i]}):e,Zse=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const i=(o,a)=>{n.set(o,a),t++,t>e&&(t=0,r=n,n=new Map)};return{get(o){let a=n.get(o);if(a!==void 0)return a;if((a=r.get(o))!==void 0)return i(o,a),a},set(o,a){n.has(o)?n.set(o,a):i(o,a)}}},QF="!",Xse=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,i=t[0],o=t.length,a=s=>{const u=[];let l=0,c=0,f;for(let b=0;bc?f-c:void 0;return{modifiers:u,hasImportantModifier:p,baseClassName:m,maybePostfixModifierPosition:v}};return n?s=>n({className:s,parseClassName:a}):a},Qse=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},Jse=e=>({cache:Zse(e.cacheSize),parseClassName:Xse(e),...Hse(e)}),eue=/\s+/,tue=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i}=t,o=[],a=e.trim().split(eue);let s="";for(let u=a.length-1;u>=0;u-=1){const l=a[u],{modifiers:c,hasImportantModifier:f,baseClassName:h,maybePostfixModifierPosition:p}=n(l);let m=!!p,v=r(m?h.substring(0,p):h);if(!v){if(!m){s=l+(s.length>0?" "+s:s);continue}if(v=r(h),!v){s=l+(s.length>0?" "+s:s);continue}m=!1}const b=Qse(c).join(":"),w=f?b+QF:b,x=w+v;if(o.includes(x))continue;o.push(x);const S=i(v,m);for(let O=0;O0?" "+s:s)}return s};function nue(){let e=0,t,n,r="";for(;e{if(typeof e=="string")return e;let t,n="";for(let r=0;rf(c),e());return n=Jse(l),r=n.cache.get,i=n.cache.set,o=s,s(u)}function s(u){const l=r(u);if(l)return l;const c=tue(u,n);return i(u,c),c}return function(){return o(nue.apply(null,arguments))}}const Qn=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},ej=/^\[(?:([a-z-]+):)?(.+)\]$/i,iue=/^\d+\/\d+$/,oue=new Set(["px","full","screen"]),aue=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,sue=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,uue=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,lue=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,cue=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ks=e=>Ed(e)||oue.has(e)||iue.test(e),Wu=e=>Rh(e,"length",yue),Ed=e=>!!e&&!Number.isNaN(Number(e)),rS=e=>Rh(e,"number",Ed),Mp=e=>!!e&&Number.isInteger(Number(e)),fue=e=>e.endsWith("%")&&Ed(e.slice(0,-1)),Qt=e=>ej.test(e),Hu=e=>aue.test(e),due=new Set(["length","size","percentage"]),hue=e=>Rh(e,due,tj),pue=e=>Rh(e,"position",tj),gue=new Set(["image","url"]),mue=e=>Rh(e,gue,xue),vue=e=>Rh(e,"",bue),Rp=()=>!0,Rh=(e,t,n)=>{const r=ej.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},yue=e=>sue.test(e)&&!uue.test(e),tj=()=>!1,bue=e=>lue.test(e),xue=e=>cue.test(e),wue=()=>{const e=Qn("colors"),t=Qn("spacing"),n=Qn("blur"),r=Qn("brightness"),i=Qn("borderColor"),o=Qn("borderRadius"),a=Qn("borderSpacing"),s=Qn("borderWidth"),u=Qn("contrast"),l=Qn("grayscale"),c=Qn("hueRotate"),f=Qn("invert"),h=Qn("gap"),p=Qn("gradientColorStops"),m=Qn("gradientColorStopPositions"),v=Qn("inset"),b=Qn("margin"),w=Qn("opacity"),x=Qn("padding"),S=Qn("saturate"),O=Qn("scale"),E=Qn("sepia"),C=Qn("skew"),k=Qn("space"),M=Qn("translate"),L=()=>["auto","contain","none"],U=()=>["auto","hidden","clip","visible","scroll"],H=()=>["auto",Qt,t],V=()=>[Qt,t],ne=()=>["",Ks,Wu],Z=()=>["auto",Ed,Qt],G=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],q=()=>["solid","dashed","dotted","double","none"],W=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],j=()=>["start","end","center","between","around","evenly","stretch"],K=()=>["","0",Qt],Y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],oe=()=>[Ed,Qt];return{cacheSize:500,separator:":",theme:{colors:[Rp],spacing:[Ks,Wu],blur:["none","",Hu,Qt],brightness:oe(),borderColor:[e],borderRadius:["none","","full",Hu,Qt],borderSpacing:V(),borderWidth:ne(),contrast:oe(),grayscale:K(),hueRotate:oe(),invert:K(),gap:V(),gradientColorStops:[e],gradientColorStopPositions:[fue,Wu],inset:H(),margin:H(),opacity:oe(),padding:V(),saturate:oe(),scale:oe(),sepia:K(),skew:oe(),space:V(),translate:V()},classGroups:{aspect:[{aspect:["auto","square","video",Qt]}],container:["container"],columns:[{columns:[Hu]}],"break-after":[{"break-after":Y()}],"break-before":[{"break-before":Y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...G(),Qt]}],overflow:[{overflow:U()}],"overflow-x":[{"overflow-x":U()}],"overflow-y":[{"overflow-y":U()}],overscroll:[{overscroll:L()}],"overscroll-x":[{"overscroll-x":L()}],"overscroll-y":[{"overscroll-y":L()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[v]}],"inset-x":[{"inset-x":[v]}],"inset-y":[{"inset-y":[v]}],start:[{start:[v]}],end:[{end:[v]}],top:[{top:[v]}],right:[{right:[v]}],bottom:[{bottom:[v]}],left:[{left:[v]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Mp,Qt]}],basis:[{basis:H()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Qt]}],grow:[{grow:K()}],shrink:[{shrink:K()}],order:[{order:["first","last","none",Mp,Qt]}],"grid-cols":[{"grid-cols":[Rp]}],"col-start-end":[{col:["auto",{span:["full",Mp,Qt]},Qt]}],"col-start":[{"col-start":Z()}],"col-end":[{"col-end":Z()}],"grid-rows":[{"grid-rows":[Rp]}],"row-start-end":[{row:["auto",{span:[Mp,Qt]},Qt]}],"row-start":[{"row-start":Z()}],"row-end":[{"row-end":Z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Qt]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Qt]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...j()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...j(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...j(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[x]}],px:[{px:[x]}],py:[{py:[x]}],ps:[{ps:[x]}],pe:[{pe:[x]}],pt:[{pt:[x]}],pr:[{pr:[x]}],pb:[{pb:[x]}],pl:[{pl:[x]}],m:[{m:[b]}],mx:[{mx:[b]}],my:[{my:[b]}],ms:[{ms:[b]}],me:[{me:[b]}],mt:[{mt:[b]}],mr:[{mr:[b]}],mb:[{mb:[b]}],ml:[{ml:[b]}],"space-x":[{"space-x":[k]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[k]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Qt,t]}],"min-w":[{"min-w":[Qt,t,"min","max","fit"]}],"max-w":[{"max-w":[Qt,t,"none","full","min","max","fit","prose",{screen:[Hu]},Hu]}],h:[{h:[Qt,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Qt,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Qt,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Qt,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Hu,Wu]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",rS]}],"font-family":[{font:[Rp]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Qt]}],"line-clamp":[{"line-clamp":["none",Ed,rS]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Ks,Qt]}],"list-image":[{"list-image":["none",Qt]}],"list-style-type":[{list:["none","disc","decimal",Qt]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[w]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[w]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...q(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Ks,Wu]}],"underline-offset":[{"underline-offset":["auto",Ks,Qt]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:V()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Qt]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Qt]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[w]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...G(),pue]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",hue]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},mue]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[p]}],"gradient-via":[{via:[p]}],"gradient-to":[{to:[p]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[w]}],"border-style":[{border:[...q(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[w]}],"divide-style":[{divide:q()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...q()]}],"outline-offset":[{"outline-offset":[Ks,Qt]}],"outline-w":[{outline:[Ks,Wu]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[w]}],"ring-offset-w":[{"ring-offset":[Ks,Wu]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Hu,vue]}],"shadow-color":[{shadow:[Rp]}],opacity:[{opacity:[w]}],"mix-blend":[{"mix-blend":[...W(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":W()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[u]}],"drop-shadow":[{"drop-shadow":["","none",Hu,Qt]}],grayscale:[{grayscale:[l]}],"hue-rotate":[{"hue-rotate":[c]}],invert:[{invert:[f]}],saturate:[{saturate:[S]}],sepia:[{sepia:[E]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[u]}],"backdrop-grayscale":[{"backdrop-grayscale":[l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[c]}],"backdrop-invert":[{"backdrop-invert":[f]}],"backdrop-opacity":[{"backdrop-opacity":[w]}],"backdrop-saturate":[{"backdrop-saturate":[S]}],"backdrop-sepia":[{"backdrop-sepia":[E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Qt]}],duration:[{duration:oe()}],ease:[{ease:["linear","in","out","in-out",Qt]}],delay:[{delay:oe()}],animate:[{animate:["none","spin","ping","pulse","bounce",Qt]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[O]}],"scale-x":[{"scale-x":[O]}],"scale-y":[{"scale-y":[O]}],rotate:[{rotate:[Mp,Qt]}],"translate-x":[{"translate-x":[M]}],"translate-y":[{"translate-y":[M]}],"skew-x":[{"skew-x":[C]}],"skew-y":[{"skew-y":[C]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Qt]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Qt]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":V()}],"scroll-mx":[{"scroll-mx":V()}],"scroll-my":[{"scroll-my":V()}],"scroll-ms":[{"scroll-ms":V()}],"scroll-me":[{"scroll-me":V()}],"scroll-mt":[{"scroll-mt":V()}],"scroll-mr":[{"scroll-mr":V()}],"scroll-mb":[{"scroll-mb":V()}],"scroll-ml":[{"scroll-ml":V()}],"scroll-p":[{"scroll-p":V()}],"scroll-px":[{"scroll-px":V()}],"scroll-py":[{"scroll-py":V()}],"scroll-ps":[{"scroll-ps":V()}],"scroll-pe":[{"scroll-pe":V()}],"scroll-pt":[{"scroll-pt":V()}],"scroll-pr":[{"scroll-pr":V()}],"scroll-pb":[{"scroll-pb":V()}],"scroll-pl":[{"scroll-pl":V()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Qt]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Ks,Wu,rS]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},KGe=rue(wue);var nj={exports:{}},_ue="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Sue=_ue,Cue=Sue;function rj(){}function ij(){}ij.resetWarningCache=rj;var Eue=function(){function e(r,i,o,a,s,u){if(u!==Cue){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:ij,resetWarningCache:rj};return n.PropTypes=n,n};nj.exports=Eue();var Oue=nj.exports;const Mt=Dn(Oue);var Aue={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},Pue=Object.defineProperty,kue=Object.defineProperties,Tue=Object.getOwnPropertyDescriptors,$y=Object.getOwnPropertySymbols,oj=Object.prototype.hasOwnProperty,aj=Object.prototype.propertyIsEnumerable,EM=(e,t,n)=>t in e?Pue(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,OM=(e,t)=>{for(var n in t||(t={}))oj.call(t,n)&&EM(e,n,t[n]);if($y)for(var n of $y(t))aj.call(t,n)&&EM(e,n,t[n]);return e},Mue=(e,t)=>kue(e,Tue(t)),Rue=(e,t)=>{var n={};for(var r in e)oj.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&$y)for(var r of $y(e))t.indexOf(r)<0&&aj.call(e,r)&&(n[r]=e[r]);return n},En=(e,t,n)=>{const r=y.forwardRef((i,o)=>{var a=i,{color:s="currentColor",size:u=24,stroke:l=2,children:c}=a,f=Rue(a,["color","size","stroke","children"]);return y.createElement("svg",OM(Mue(OM({ref:o},Aue),{width:u,height:u,stroke:s,strokeWidth:l,className:`tabler-icon tabler-icon-${e}`}),f),[...n.map(([h,p])=>y.createElement(h,p)),...c||[]])});return r.propTypes={color:Mt.string,size:Mt.oneOfType([Mt.string,Mt.number]),stroke:Mt.oneOfType([Mt.string,Mt.number])},r.displayName=`${t}`,r},qGe=En("adjustments","IconAdjustments",[["path",{d:"M4 10a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M6 4v4",key:"svg-1"}],["path",{d:"M6 12v8",key:"svg-2"}],["path",{d:"M10 16a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-3"}],["path",{d:"M12 4v10",key:"svg-4"}],["path",{d:"M12 18v2",key:"svg-5"}],["path",{d:"M16 7a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-6"}],["path",{d:"M18 4v1",key:"svg-7"}],["path",{d:"M18 9v11",key:"svg-8"}]]),GGe=En("brand-telegram","IconBrandTelegram",[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]]),YGe=En("building-store","IconBuildingStore",[["path",{d:"M3 21l18 0",key:"svg-0"}],["path",{d:"M3 7v1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1h-18l2 -4h14l2 4",key:"svg-1"}],["path",{d:"M5 21l0 -10.15",key:"svg-2"}],["path",{d:"M19 21l0 -10.15",key:"svg-3"}],["path",{d:"M9 21v-4a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v4",key:"svg-4"}]]),ZGe=En("building","IconBuilding",[["path",{d:"M3 21l18 0",key:"svg-0"}],["path",{d:"M9 8l1 0",key:"svg-1"}],["path",{d:"M9 12l1 0",key:"svg-2"}],["path",{d:"M9 16l1 0",key:"svg-3"}],["path",{d:"M14 8l1 0",key:"svg-4"}],["path",{d:"M14 12l1 0",key:"svg-5"}],["path",{d:"M14 16l1 0",key:"svg-6"}],["path",{d:"M5 21v-16a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v16",key:"svg-7"}]]),XGe=En("cash","IconCash",[["path",{d:"M7 9m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M14 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M17 9v-2a2 2 0 0 0 -2 -2h-10a2 2 0 0 0 -2 2v6a2 2 0 0 0 2 2h2",key:"svg-2"}]]),QGe=En("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),JGe=En("chevrons-left","IconChevronsLeft",[["path",{d:"M11 7l-5 5l5 5",key:"svg-0"}],["path",{d:"M17 7l-5 5l5 5",key:"svg-1"}]]),eYe=En("copy","IconCopy",[["path",{d:"M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]),tYe=En("credit-card","IconCreditCard",[["path",{d:"M3 5m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z",key:"svg-0"}],["path",{d:"M3 10l18 0",key:"svg-1"}],["path",{d:"M7 15l.01 0",key:"svg-2"}],["path",{d:"M11 15l2 0",key:"svg-3"}]]),nYe=En("dashboard","IconDashboard",[["path",{d:"M12 13m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M13.45 11.55l2.05 -2.05",key:"svg-1"}],["path",{d:"M6.4 20a9 9 0 1 1 11.2 0z",key:"svg-2"}]]),rYe=En("device-desktop","IconDeviceDesktop",[["path",{d:"M3 5a1 1 0 0 1 1 -1h16a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-16a1 1 0 0 1 -1 -1v-10z",key:"svg-0"}],["path",{d:"M7 20h10",key:"svg-1"}],["path",{d:"M9 16v4",key:"svg-2"}],["path",{d:"M15 16v4",key:"svg-3"}]]),iYe=En("discount-check","IconDiscountCheck",[["path",{d:"M5 7.2a2.2 2.2 0 0 1 2.2 -2.2h1a2.2 2.2 0 0 0 1.55 -.64l.7 -.7a2.2 2.2 0 0 1 3.12 0l.7 .7c.412 .41 .97 .64 1.55 .64h1a2.2 2.2 0 0 1 2.2 2.2v1c0 .58 .23 1.138 .64 1.55l.7 .7a2.2 2.2 0 0 1 0 3.12l-.7 .7a2.2 2.2 0 0 0 -.64 1.55v1a2.2 2.2 0 0 1 -2.2 2.2h-1a2.2 2.2 0 0 0 -1.55 .64l-.7 .7a2.2 2.2 0 0 1 -3.12 0l-.7 -.7a2.2 2.2 0 0 0 -1.55 -.64h-1a2.2 2.2 0 0 1 -2.2 -2.2v-1a2.2 2.2 0 0 0 -.64 -1.55l-.7 -.7a2.2 2.2 0 0 1 0 -3.12l.7 -.7a2.2 2.2 0 0 0 .64 -1.55v-1",key:"svg-0"}],["path",{d:"M9 12l2 2l4 -4",key:"svg-1"}]]),oYe=En("eye-off","IconEyeOff",[["path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828",key:"svg-0"}],["path",{d:"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]),aYe=En("eye","IconEye",[["path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6",key:"svg-1"}]]),sYe=En("file-text","IconFileText",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M9 9l1 0",key:"svg-2"}],["path",{d:"M9 13l6 0",key:"svg-3"}],["path",{d:"M9 17l6 0",key:"svg-4"}]]),uYe=En("loader-2","IconLoader2",[["path",{d:"M12 3a9 9 0 1 0 9 9",key:"svg-0"}]]),lYe=En("lock","IconLock",[["path",{d:"M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z",key:"svg-0"}],["path",{d:"M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M8 11v-4a4 4 0 1 1 8 0v4",key:"svg-2"}]]),cYe=En("mail","IconMail",[["path",{d:"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z",key:"svg-0"}],["path",{d:"M3 7l9 6l9 -6",key:"svg-1"}]]),fYe=En("menu-2","IconMenu2",[["path",{d:"M4 6l16 0",key:"svg-0"}],["path",{d:"M4 12l16 0",key:"svg-1"}],["path",{d:"M4 18l16 0",key:"svg-2"}]]),dYe=En("moon","IconMoon",[["path",{d:"M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z",key:"svg-0"}]]),hYe=En("news","IconNews",[["path",{d:"M16 6h3a1 1 0 0 1 1 1v11a2 2 0 0 1 -4 0v-13a1 1 0 0 0 -1 -1h-10a1 1 0 0 0 -1 1v12a3 3 0 0 0 3 3h11",key:"svg-0"}],["path",{d:"M8 8l4 0",key:"svg-1"}],["path",{d:"M8 12l4 0",key:"svg-2"}],["path",{d:"M8 16l4 0",key:"svg-3"}]]),pYe=En("route","IconRoute",[["path",{d:"M3 19a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M19 7a2 2 0 1 0 0 -4a2 2 0 0 0 0 4z",key:"svg-1"}],["path",{d:"M11 19h5.5a3.5 3.5 0 0 0 0 -7h-8a3.5 3.5 0 0 1 0 -7h4.5",key:"svg-2"}]]),gYe=En("server-bolt","IconServerBolt",[["path",{d:"M3 4m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v2a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z",key:"svg-0"}],["path",{d:"M15 20h-9a3 3 0 0 1 -3 -3v-2a3 3 0 0 1 3 -3h12",key:"svg-1"}],["path",{d:"M7 8v.01",key:"svg-2"}],["path",{d:"M7 16v.01",key:"svg-3"}],["path",{d:"M20 15l-2 3h3l-2 3",key:"svg-4"}]]),mYe=En("server","IconServer",[["path",{d:"M3 4m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v2a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z",key:"svg-0"}],["path",{d:"M3 12m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v2a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z",key:"svg-1"}],["path",{d:"M7 8l0 .01",key:"svg-2"}],["path",{d:"M7 16l0 .01",key:"svg-3"}]]),vYe=En("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]),yYe=En("sun","IconSun",[["path",{d:"M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0",key:"svg-0"}],["path",{d:"M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7",key:"svg-1"}]]),bYe=En("ticket","IconTicket",[["path",{d:"M15 5l0 2",key:"svg-0"}],["path",{d:"M15 11l0 2",key:"svg-1"}],["path",{d:"M15 17l0 2",key:"svg-2"}],["path",{d:"M5 5h14a2 2 0 0 1 2 2v3a2 2 0 0 0 0 4v3a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-3a2 2 0 0 0 0 -4v-3a2 2 0 0 1 2 -2",key:"svg-3"}]]),xYe=En("user-circle","IconUserCircle",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M12 10m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0",key:"svg-1"}],["path",{d:"M6.168 18.849a4 4 0 0 1 3.832 -2.849h4a4 4 0 0 1 3.834 2.855",key:"svg-2"}]]),wYe=En("user","IconUser",[["path",{d:"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",key:"svg-0"}],["path",{d:"M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2",key:"svg-1"}]]),_Ye=En("users","IconUsers",[["path",{d:"M9 7m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0",key:"svg-0"}],["path",{d:"M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2",key:"svg-1"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"svg-2"}],["path",{d:"M21 21v-2a4 4 0 0 0 -3 -3.85",key:"svg-3"}]]),SYe=En("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);function fi(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Due=typeof Symbol=="function"&&Symbol.observable||"@@observable",AM=Due,iS=()=>Math.random().toString(36).substring(7).split("").join("."),$ue={INIT:`@@redux/INIT${iS()}`,REPLACE:`@@redux/REPLACE${iS()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${iS()}`},Iy=$ue;function P5(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function sj(e,t,n){if(typeof e!="function")throw new Error(fi(2));if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(fi(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(fi(1));return n(sj)(e,t)}let r=e,i=t,o=new Map,a=o,s=0,u=!1;function l(){a===o&&(a=new Map,o.forEach((b,w)=>{a.set(w,b)}))}function c(){if(u)throw new Error(fi(3));return i}function f(b){if(typeof b!="function")throw new Error(fi(4));if(u)throw new Error(fi(5));let w=!0;l();const x=s++;return a.set(x,b),function(){if(w){if(u)throw new Error(fi(6));w=!1,l(),a.delete(x),o=null}}}function h(b){if(!P5(b))throw new Error(fi(7));if(typeof b.type>"u")throw new Error(fi(8));if(typeof b.type!="string")throw new Error(fi(17));if(u)throw new Error(fi(9));try{u=!0,i=r(i,b)}finally{u=!1}return(o=a).forEach(x=>{x()}),b}function p(b){if(typeof b!="function")throw new Error(fi(10));r=b,h({type:Iy.REPLACE})}function m(){const b=f;return{subscribe(w){if(typeof w!="object"||w===null)throw new Error(fi(11));function x(){const O=w;O.next&&O.next(c())}return x(),{unsubscribe:b(x)}},[AM](){return this}}}return h({type:Iy.INIT}),{dispatch:h,subscribe:f,getState:c,replaceReducer:p,[AM]:m}}function Iue(e){Object.keys(e).forEach(t=>{const n=e[t];if(typeof n(void 0,{type:Iy.INIT})>"u")throw new Error(fi(12));if(typeof n(void 0,{type:Iy.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(fi(13))})}function Nue(e){const t=Object.keys(e),n={};for(let o=0;o"u")throw s&&s.type,new Error(fi(14));l[f]=m,u=u||m!==p}return u=u||r.length!==Object.keys(a).length,u?l:a}}function Ny(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...r)=>t(n(...r)))}function Lue(...e){return t=>(n,r)=>{const i=t(n,r);let o=()=>{throw new Error(fi(15))};const a={getState:i.getState,dispatch:(u,...l)=>o(u,...l)},s=e.map(u=>u(a));return o=Ny(...s)(i.dispatch),{...i,dispatch:o}}}function Fue(e){return P5(e)&&"type"in e&&typeof e.type=="string"}var uj=Symbol.for("immer-nothing"),PM=Symbol.for("immer-draftable"),zo=Symbol.for("immer-state");function Fa(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Kd=Object.getPrototypeOf;function Vc(e){return!!e&&!!e[zo]}function yu(e){return e?lj(e)||Array.isArray(e)||!!e[PM]||!!e.constructor?.[PM]||Wx(e)||Hx(e):!1}var jue=Object.prototype.constructor.toString();function lj(e){if(!e||typeof e!="object")return!1;const t=Kd(e);if(t===null)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return n===Object?!0:typeof n=="function"&&Function.toString.call(n)===jue}function Ly(e,t){Vx(e)===0?Reflect.ownKeys(e).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function Vx(e){const t=e[zo];return t?t.type_:Array.isArray(e)?1:Wx(e)?2:Hx(e)?3:0}function $C(e,t){return Vx(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function cj(e,t,n){const r=Vx(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function Bue(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Wx(e){return e instanceof Map}function Hx(e){return e instanceof Set}function lc(e){return e.copy_||e.base_}function IC(e,t){if(Wx(e))return new Map(e);if(Hx(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);if(!t&&lj(e))return Kd(e)?{...e}:Object.assign(Object.create(null),e);const n=Object.getOwnPropertyDescriptors(e);delete n[zo];let r=Reflect.ownKeys(n);for(let i=0;i1&&(e.set=e.add=e.clear=e.delete=zue),Object.freeze(e),t&&Object.entries(e).forEach(([n,r])=>k5(r,!0))),e}function zue(){Fa(2)}function Kx(e){return Object.isFrozen(e)}var Uue={};function Wc(e){const t=Uue[e];return t||Fa(0,e),t}var X0;function fj(){return X0}function Vue(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function kM(e,t){t&&(Wc("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function NC(e){LC(e),e.drafts_.forEach(Wue),e.drafts_=null}function LC(e){e===X0&&(X0=e.parent_)}function TM(e){return X0=Vue(X0,e)}function Wue(e){const t=e[zo];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function MM(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[zo].modified_&&(NC(t),Fa(4)),yu(e)&&(e=Fy(t,e),t.parent_||jy(t,e)),t.patches_&&Wc("Patches").generateReplacementPatches_(n[zo].base_,e,t.patches_,t.inversePatches_)):e=Fy(t,n,[]),NC(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==uj?e:void 0}function Fy(e,t,n){if(Kx(t))return t;const r=t[zo];if(!r)return Ly(t,(i,o)=>RM(e,r,t,i,o,n)),t;if(r.scope_!==e)return t;if(!r.modified_)return jy(e,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const i=r.copy_;let o=i,a=!1;r.type_===3&&(o=new Set(i),i.clear(),a=!0),Ly(o,(s,u)=>RM(e,r,i,s,u,n,a)),jy(e,i,!1),n&&e.patches_&&Wc("Patches").generatePatches_(r,n,e.patches_,e.inversePatches_)}return r.copy_}function RM(e,t,n,r,i,o,a){if(Vc(i)){const s=o&&t&&t.type_!==3&&!$C(t.assigned_,r)?o.concat(r):void 0,u=Fy(e,i,s);if(cj(n,r,u),Vc(u))e.canAutoFreeze_=!1;else return}else a&&n.add(i);if(yu(i)&&!Kx(i)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;Fy(e,i),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&Object.prototype.propertyIsEnumerable.call(n,r)&&jy(e,i)}}function jy(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&k5(t,n)}function Hue(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:fj(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,o=T5;n&&(i=[r],o=Q0);const{revoke:a,proxy:s}=Proxy.revocable(i,o);return r.draft_=s,r.revoke_=a,s}var T5={get(e,t){if(t===zo)return e;const n=lc(e);if(!$C(n,t))return Kue(e,n,t);const r=n[t];return e.finalized_||!yu(r)?r:r===oS(e.base_,t)?(aS(e),e.copy_[t]=jC(r,e)):r},has(e,t){return t in lc(e)},ownKeys(e){return Reflect.ownKeys(lc(e))},set(e,t,n){const r=dj(lc(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const i=oS(lc(e),t),o=i?.[zo];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(Bue(n,i)&&(n!==void 0||$C(e.base_,t)))return!0;aS(e),FC(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return oS(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,aS(e),FC(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=lc(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){Fa(11)},getPrototypeOf(e){return Kd(e.base_)},setPrototypeOf(){Fa(12)}},Q0={};Ly(T5,(e,t)=>{Q0[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});Q0.deleteProperty=function(e,t){return Q0.set.call(this,e,t,void 0)};Q0.set=function(e,t,n){return T5.set.call(this,e[0],t,n,e[0])};function oS(e,t){const n=e[zo];return(n?lc(n):e)[t]}function Kue(e,t,n){const r=dj(t,n);return r?"value"in r?r.value:r.get?.call(e.draft_):void 0}function dj(e,t){if(!(t in e))return;let n=Kd(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Kd(n)}}function FC(e){e.modified_||(e.modified_=!0,e.parent_&&FC(e.parent_))}function aS(e){e.copy_||(e.copy_=IC(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var que=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(t,n,r)=>{if(typeof t=="function"&&typeof n!="function"){const o=n;n=t;const a=this;return function(u=o,...l){return a.produce(u,c=>n.call(this,c,...l))}}typeof n!="function"&&Fa(6),r!==void 0&&typeof r!="function"&&Fa(7);let i;if(yu(t)){const o=TM(this),a=jC(t,void 0);let s=!0;try{i=n(a),s=!1}finally{s?NC(o):LC(o)}return kM(o,r),MM(i,o)}else if(!t||typeof t!="object"){if(i=n(t),i===void 0&&(i=t),i===uj&&(i=void 0),this.autoFreeze_&&k5(i,!0),r){const o=[],a=[];Wc("Patches").generateReplacementPatches_(t,i,o,a),r(o,a)}return i}else Fa(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(a,...s)=>this.produceWithPatches(a,u=>t(u,...s));let r,i;return[this.produce(t,n,(a,s)=>{r=a,i=s}),r,i]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){yu(e)||Fa(8),Vc(e)&&(e=Gue(e));const t=TM(this),n=jC(e,void 0);return n[zo].isManual_=!0,LC(t),n}finishDraft(e,t){const n=e&&e[zo];(!n||!n.isManual_)&&Fa(9);const{scope_:r}=n;return kM(r,t),MM(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const i=t[n];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}n>-1&&(t=t.slice(n+1));const r=Wc("Patches").applyPatches_;return Vc(e)?r(e,t):this.produce(e,i=>r(i,t))}};function jC(e,t){const n=Wx(e)?Wc("MapSet").proxyMap_(e,t):Hx(e)?Wc("MapSet").proxySet_(e,t):Hue(e,t);return(t?t.scope_:fj()).drafts_.push(n),n}function Gue(e){return Vc(e)||Fa(10,e),hj(e)}function hj(e){if(!yu(e)||Kx(e))return e;const t=e[zo];let n;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=IC(e,t.scope_.immer_.useStrictShallowCopy_)}else n=IC(e,!0);return Ly(n,(r,i)=>{cj(n,r,hj(i))}),t&&(t.finalized_=!1),n}var Uo=new que,pj=Uo.produce;Uo.produceWithPatches.bind(Uo);Uo.setAutoFreeze.bind(Uo);Uo.setUseStrictShallowCopy.bind(Uo);Uo.applyPatches.bind(Uo);Uo.createDraft.bind(Uo);Uo.finishDraft.bind(Uo);function Yue(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function Zue(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!="object")throw new TypeError(t)}function Xue(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(n=>typeof n=="function")){const n=e.map(r=>typeof r=="function"?`function ${r.name||"unnamed"}()`:typeof r).join(", ");throw new TypeError(`${t}[${n}]`)}}var DM=e=>Array.isArray(e)?e:[e];function Que(e){const t=Array.isArray(e[0])?e[0]:e;return Xue(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function Jue(e,t){const n=[],{length:r}=e;for(let i=0;i{n=Jv(),a.resetResultsCount()},a.resultsCount=()=>o,a.resetResultsCount=()=>{o=0},a}function rle(e,...t){const n=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,r=(...i)=>{let o=0,a=0,s,u={},l=i.pop();typeof l=="object"&&(u=l,l=i.pop()),Yue(l,`createSelector expects an output function after the inputs, but received: [${typeof l}]`);const c={...n,...u},{memoize:f,memoizeOptions:h=[],argsMemoize:p=gj,argsMemoizeOptions:m=[],devModeChecks:v={}}=c,b=DM(h),w=DM(m),x=Que(i),S=f(function(){return o++,l.apply(null,arguments)},...b),O=p(function(){a++;const C=Jue(x,arguments);return s=S.apply(null,C),s},...w);return Object.assign(O,{resultFunc:l,memoizedResultFunc:S,dependencies:x,dependencyRecomputations:()=>a,resetDependencyRecomputations:()=>{a=0},lastResult:()=>s,recomputations:()=>o,resetRecomputations:()=>{o=0},memoize:f,argsMemoize:p})};return Object.assign(r,{withTypes:()=>r}),r}var ile=rle(gj),ole=Object.assign((e,t=ile)=>{Zue(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);const n=Object.keys(e),r=n.map(o=>e[o]);return t(r,(...o)=>o.reduce((a,s,u)=>(a[n[u]]=s,a),{}))},{withTypes:()=>ole});function mj(e){return({dispatch:n,getState:r})=>i=>o=>typeof o=="function"?o(n,r,e):i(o)}var ale=mj(),sle=mj,ule=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Ny:Ny.apply(null,arguments)},lle=e=>e&&typeof e.match=="function";function b0(e,t){function n(...r){if(t){let i=t(...r);if(!i)throw new Error(cu(0));return{type:e,payload:i.payload,..."meta"in i&&{meta:i.meta},..."error"in i&&{error:i.error}}}return{type:e,payload:r[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=r=>Fue(r)&&r.type===e,n}var vj=class i0 extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,i0.prototype)}static get[Symbol.species](){return i0}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new i0(...t[0].concat(this)):new i0(...t.concat(this))}};function IM(e){return yu(e)?pj(e,()=>{}):e}function NM(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function cle(e){return typeof e=="boolean"}var fle=()=>function(t){const{thunk:n=!0,immutableCheck:r=!0,serializableCheck:i=!0,actionCreatorCheck:o=!0}=t??{};let a=new vj;return n&&(cle(n)?a.push(ale):a.push(sle(n.extraArgument))),a},dle="RTK_autoBatch",LM=e=>t=>{setTimeout(t,e)},hle=(e={type:"raf"})=>t=>(...n)=>{const r=t(...n);let i=!0,o=!1,a=!1;const s=new Set,u=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:LM(10):e.type==="callback"?e.queueNotification:LM(e.timeout),l=()=>{a=!1,o&&(o=!1,s.forEach(c=>c()))};return Object.assign({},r,{subscribe(c){const f=()=>i&&c(),h=r.subscribe(f);return s.add(c),()=>{h(),s.delete(c)}},dispatch(c){try{return i=!c?.meta?.[dle],o=!i,o&&(a||(a=!0,u(l))),r.dispatch(c)}finally{i=!0}}})},ple=e=>function(n){const{autoBatch:r=!0}=n??{};let i=new vj(e);return r&&i.push(hle(typeof r=="object"?r:void 0)),i};function CYe(e){const t=fle(),{reducer:n=void 0,middleware:r,devTools:i=!0,preloadedState:o=void 0,enhancers:a=void 0}=e;let s;if(typeof n=="function")s=n;else if(P5(n))s=Nue(n);else throw new Error(cu(1));let u;typeof r=="function"?u=r(t):u=t();let l=Ny;i&&(l=ule({trace:!1,...typeof i=="object"&&i}));const c=Lue(...u),f=ple(c);let h=typeof a=="function"?a(f):f();const p=l(...h);return sj(s,o,p)}function yj(e){const t={},n=[];let r;const i={addCase(o,a){const s=typeof o=="string"?o:o.type;if(!s)throw new Error(cu(28));if(s in t)throw new Error(cu(29));return t[s]=a,i},addMatcher(o,a){return n.push({matcher:o,reducer:a}),i},addDefaultCase(o){return r=o,i}};return e(i),[t,n,r]}function gle(e){return typeof e=="function"}function mle(e,t){let[n,r,i]=yj(t),o;if(gle(e))o=()=>IM(e());else{const s=IM(e);o=()=>s}function a(s=o(),u){let l=[n[u.type],...r.filter(({matcher:c})=>c(u)).map(({reducer:c})=>c)];return l.filter(c=>!!c).length===0&&(l=[i]),l.reduce((c,f)=>{if(f)if(Vc(c)){const p=f(c,u);return p===void 0?c:p}else{if(yu(c))return pj(c,h=>f(h,u));{const h=f(c,u);if(h===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return h}}return c},s)}return a.getInitialState=o,a}var vle=(e,t)=>lle(e)?e.match(t):e(t);function yle(...e){return t=>e.some(n=>vle(n,t))}var ble="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",xle=(e=21)=>{let t="",n=e;for(;n--;)t+=ble[Math.random()*64|0];return t},wle=["name","message","stack","code"],sS=class{constructor(e,t){this.payload=e,this.meta=t}_type},FM=class{constructor(e,t){this.payload=e,this.meta=t}_type},_le=e=>{if(typeof e=="object"&&e!==null){const t={};for(const n of wle)typeof e[n]=="string"&&(t[n]=e[n]);return t}return{message:String(e)}},EYe=(()=>{function e(t,n,r){const i=b0(t+"/fulfilled",(u,l,c,f)=>({payload:u,meta:{...f||{},arg:c,requestId:l,requestStatus:"fulfilled"}})),o=b0(t+"/pending",(u,l,c)=>({payload:void 0,meta:{...c||{},arg:l,requestId:u,requestStatus:"pending"}})),a=b0(t+"/rejected",(u,l,c,f,h)=>({payload:f,error:(r&&r.serializeError||_le)(u||"Rejected"),meta:{...h||{},arg:c,requestId:l,rejectedWithValue:!!f,requestStatus:"rejected",aborted:u?.name==="AbortError",condition:u?.name==="ConditionError"}}));function s(u){return(l,c,f)=>{const h=r?.idGenerator?r.idGenerator(u):xle(),p=new AbortController;let m,v;function b(x){v=x,p.abort()}const w=async function(){let x;try{let O=r?.condition?.(u,{getState:c,extra:f});if(Cle(O)&&(O=await O),O===!1||p.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};const E=new Promise((C,k)=>{m=()=>{k({name:"AbortError",message:v||"Aborted"})},p.signal.addEventListener("abort",m)});l(o(h,u,r?.getPendingMeta?.({requestId:h,arg:u},{getState:c,extra:f}))),x=await Promise.race([E,Promise.resolve(n(u,{dispatch:l,getState:c,extra:f,requestId:h,signal:p.signal,abort:b,rejectWithValue:(C,k)=>new sS(C,k),fulfillWithValue:(C,k)=>new FM(C,k)})).then(C=>{if(C instanceof sS)throw C;return C instanceof FM?i(C.payload,h,u,C.meta):i(C,h,u)})])}catch(O){x=O instanceof sS?a(null,h,u,O.payload,O.meta):a(O,h,u)}finally{m&&p.signal.removeEventListener("abort",m)}return r&&!r.dispatchConditionRejection&&a.match(x)&&x.meta.condition||l(x),x}();return Object.assign(w,{abort:b,requestId:h,arg:u,unwrap(){return w.then(Sle)}})}}return Object.assign(s,{pending:o,rejected:a,fulfilled:i,settled:yle(a,i),typePrefix:t})}return e.withTypes=()=>e,e})();function Sle(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function Cle(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var Ele=Symbol.for("rtk-slice-createasyncthunk");function Ole(e,t){return`${e}/${t}`}function Ale({creators:e}={}){const t=e?.asyncThunk?.[Ele];return function(r){const{name:i,reducerPath:o=i}=r;if(!i)throw new Error(cu(11));const a=(typeof r.reducers=="function"?r.reducers(kle()):r.reducers)||{},s=Object.keys(a),u={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},l={addCase(x,S){const O=typeof x=="string"?x:x.type;if(!O)throw new Error(cu(12));if(O in u.sliceCaseReducersByType)throw new Error(cu(13));return u.sliceCaseReducersByType[O]=S,l},addMatcher(x,S){return u.sliceMatchers.push({matcher:x,reducer:S}),l},exposeAction(x,S){return u.actionCreators[x]=S,l},exposeCaseReducer(x,S){return u.sliceCaseReducersByName[x]=S,l}};s.forEach(x=>{const S=a[x],O={reducerName:x,type:Ole(i,x),createNotation:typeof r.reducers=="function"};Mle(S)?Dle(O,S,l,t):Tle(O,S,l)});function c(){const[x={},S=[],O=void 0]=typeof r.extraReducers=="function"?yj(r.extraReducers):[r.extraReducers],E={...x,...u.sliceCaseReducersByType};return mle(r.initialState,C=>{for(let k in E)C.addCase(k,E[k]);for(let k of u.sliceMatchers)C.addMatcher(k.matcher,k.reducer);for(let k of S)C.addMatcher(k.matcher,k.reducer);O&&C.addDefaultCase(O)})}const f=x=>x,h=new Map;let p;function m(x,S){return p||(p=c()),p(x,S)}function v(){return p||(p=c()),p.getInitialState()}function b(x,S=!1){function O(C){let k=C[x];return typeof k>"u"&&S&&(k=v()),k}function E(C=f){const k=NM(h,S,()=>new WeakMap);return NM(k,C,()=>{const M={};for(const[L,U]of Object.entries(r.selectors??{}))M[L]=Ple(U,C,v,S);return M})}return{reducerPath:x,getSelectors:E,get selectors(){return E(O)},selectSlice:O}}const w={name:i,reducer:m,actions:u.actionCreators,caseReducers:u.sliceCaseReducersByName,getInitialState:v,...b(o),injectInto(x,{reducerPath:S,...O}={}){const E=S??o;return x.inject({reducerPath:E,reducer:m},O),{...w,...b(E,!0)}}};return w}}function Ple(e,t,n,r){function i(o,...a){let s=t(o);return typeof s>"u"&&r&&(s=n()),e(s,...a)}return i.unwrapped=e,i}var OYe=Ale();function kle(){function e(t,n){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...n}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...n){return t(...n)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,n){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:n}},asyncThunk:e}}function Tle({type:e,reducerName:t,createNotation:n},r,i){let o,a;if("reducer"in r){if(n&&!Rle(r))throw new Error(cu(17));o=r.reducer,a=r.prepare}else o=r;i.addCase(e,o).exposeCaseReducer(t,o).exposeAction(t,a?b0(e,a):b0(e))}function Mle(e){return e._reducerDefinitionType==="asyncThunk"}function Rle(e){return e._reducerDefinitionType==="reducerWithPrepare"}function Dle({type:e,reducerName:t},n,r,i){if(!i)throw new Error(cu(18));const{payloadCreator:o,fulfilled:a,pending:s,rejected:u,settled:l,options:c}=n,f=i(e,o,c);r.exposeAction(t,f),a&&r.addCase(f.fulfilled,a),s&&r.addCase(f.pending,s),u&&r.addCase(f.rejected,u),l&&r.addMatcher(f.settled,l),r.exposeCaseReducer(t,{fulfilled:a||e1,pending:s||e1,rejected:u||e1,settled:l||e1})}function e1(){}function cu(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}function bj(e,t){return function(){return e.apply(t,arguments)}}const{toString:$le}=Object.prototype,{getPrototypeOf:M5}=Object,qx=(e=>t=>{const n=$le.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),ts=e=>(e=e.toLowerCase(),t=>qx(t)===e),Gx=e=>t=>typeof t===e,{isArray:Dh}=Array,J0=Gx("undefined");function Ile(e){return e!==null&&!J0(e)&&e.constructor!==null&&!J0(e.constructor)&&No(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const xj=ts("ArrayBuffer");function Nle(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&xj(e.buffer),t}const Lle=Gx("string"),No=Gx("function"),wj=Gx("number"),Yx=e=>e!==null&&typeof e=="object",Fle=e=>e===!0||e===!1,G1=e=>{if(qx(e)!=="object")return!1;const t=M5(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},jle=ts("Date"),Ble=ts("File"),zle=ts("Blob"),Ule=ts("FileList"),Vle=e=>Yx(e)&&No(e.pipe),Wle=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||No(e.append)&&((t=qx(e))==="formdata"||t==="object"&&No(e.toString)&&e.toString()==="[object FormData]"))},Hle=ts("URLSearchParams"),[Kle,qle,Gle,Yle]=["ReadableStream","Request","Response","Headers"].map(ts),Zle=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ym(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,i;if(typeof e!="object"&&(e=[e]),Dh(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}const wc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Sj=e=>!J0(e)&&e!==wc;function BC(){const{caseless:e}=Sj(this)&&this||{},t={},n=(r,i)=>{const o=e&&_j(t,i)||i;G1(t[o])&&G1(r)?t[o]=BC(t[o],r):G1(r)?t[o]=BC({},r):Dh(r)?t[o]=r.slice():t[o]=r};for(let r=0,i=arguments.length;r(ym(t,(i,o)=>{n&&No(i)?e[o]=bj(i,n):e[o]=i},{allOwnKeys:r}),e),Qle=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Jle=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},ece=(e,t,n,r)=>{let i,o,a;const s={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),o=i.length;o-- >0;)a=i[o],(!r||r(a,e,t))&&!s[a]&&(t[a]=e[a],s[a]=!0);e=n!==!1&&M5(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},tce=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},nce=e=>{if(!e)return null;if(Dh(e))return e;let t=e.length;if(!wj(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},rce=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&M5(Uint8Array)),ice=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let i;for(;(i=r.next())&&!i.done;){const o=i.value;t.call(e,o[0],o[1])}},oce=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ace=ts("HTMLFormElement"),sce=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),jM=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),uce=ts("RegExp"),Cj=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};ym(n,(i,o)=>{let a;(a=t(i,o,e))!==!1&&(r[o]=a||i)}),Object.defineProperties(e,r)},lce=e=>{Cj(e,(t,n)=>{if(No(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(No(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},cce=(e,t)=>{const n={},r=i=>{i.forEach(o=>{n[o]=!0})};return Dh(e)?r(e):r(String(e).split(t)),n},fce=()=>{},dce=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,uS="abcdefghijklmnopqrstuvwxyz",BM="0123456789",Ej={DIGIT:BM,ALPHA:uS,ALPHA_DIGIT:uS+uS.toUpperCase()+BM},hce=(e=16,t=Ej.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function pce(e){return!!(e&&No(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const gce=e=>{const t=new Array(10),n=(r,i)=>{if(Yx(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[i]=r;const o=Dh(r)?[]:{};return ym(r,(a,s)=>{const u=n(a,i+1);!J0(u)&&(o[s]=u)}),t[i]=void 0,o}}return r};return n(e,0)},mce=ts("AsyncFunction"),vce=e=>e&&(Yx(e)||No(e))&&No(e.then)&&No(e.catch),Oj=((e,t)=>e?setImmediate:t?((n,r)=>(wc.addEventListener("message",({source:i,data:o})=>{i===wc&&o===n&&r.length&&r.shift()()},!1),i=>{r.push(i),wc.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",No(wc.postMessage)),yce=typeof queueMicrotask<"u"?queueMicrotask.bind(wc):typeof process<"u"&&process.nextTick||Oj,xe={isArray:Dh,isArrayBuffer:xj,isBuffer:Ile,isFormData:Wle,isArrayBufferView:Nle,isString:Lle,isNumber:wj,isBoolean:Fle,isObject:Yx,isPlainObject:G1,isReadableStream:Kle,isRequest:qle,isResponse:Gle,isHeaders:Yle,isUndefined:J0,isDate:jle,isFile:Ble,isBlob:zle,isRegExp:uce,isFunction:No,isStream:Vle,isURLSearchParams:Hle,isTypedArray:rce,isFileList:Ule,forEach:ym,merge:BC,extend:Xle,trim:Zle,stripBOM:Qle,inherits:Jle,toFlatObject:ece,kindOf:qx,kindOfTest:ts,endsWith:tce,toArray:nce,forEachEntry:ice,matchAll:oce,isHTMLForm:ace,hasOwnProperty:jM,hasOwnProp:jM,reduceDescriptors:Cj,freezeMethods:lce,toObjectSet:cce,toCamelCase:sce,noop:fce,toFiniteNumber:dce,findKey:_j,global:wc,isContextDefined:Sj,ALPHABET:Ej,generateString:hce,isSpecCompliantForm:pce,toJSONObject:gce,isAsyncFn:mce,isThenable:vce,setImmediate:Oj,asap:yce};function qt(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}xe.inherits(qt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:xe.toJSONObject(this.config),code:this.code,status:this.status}}});const Aj=qt.prototype,Pj={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Pj[e]={value:e}});Object.defineProperties(qt,Pj);Object.defineProperty(Aj,"isAxiosError",{value:!0});qt.from=(e,t,n,r,i,o)=>{const a=Object.create(Aj);return xe.toFlatObject(e,a,function(u){return u!==Error.prototype},s=>s!=="isAxiosError"),qt.call(a,e.message,t,n,r,i),a.cause=e,a.name=e.name,o&&Object.assign(a,o),a};const bce=null;function zC(e){return xe.isPlainObject(e)||xe.isArray(e)}function kj(e){return xe.endsWith(e,"[]")?e.slice(0,-2):e}function zM(e,t,n){return e?e.concat(t).map(function(i,o){return i=kj(i),!n&&o?"["+i+"]":i}).join(n?".":""):t}function xce(e){return xe.isArray(e)&&!e.some(zC)}const wce=xe.toFlatObject(xe,{},null,function(t){return/^is[A-Z]/.test(t)});function Zx(e,t,n){if(!xe.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=xe.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!xe.isUndefined(b[v])});const r=n.metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,u=(n.Blob||typeof Blob<"u"&&Blob)&&xe.isSpecCompliantForm(t);if(!xe.isFunction(i))throw new TypeError("visitor must be a function");function l(m){if(m===null)return"";if(xe.isDate(m))return m.toISOString();if(!u&&xe.isBlob(m))throw new qt("Blob is not supported. Use a Buffer instead.");return xe.isArrayBuffer(m)||xe.isTypedArray(m)?u&&typeof Blob=="function"?new Blob([m]):Buffer.from(m):m}function c(m,v,b){let w=m;if(m&&!b&&typeof m=="object"){if(xe.endsWith(v,"{}"))v=r?v:v.slice(0,-2),m=JSON.stringify(m);else if(xe.isArray(m)&&xce(m)||(xe.isFileList(m)||xe.endsWith(v,"[]"))&&(w=xe.toArray(m)))return v=kj(v),w.forEach(function(S,O){!(xe.isUndefined(S)||S===null)&&t.append(a===!0?zM([v],O,o):a===null?v:v+"[]",l(S))}),!1}return zC(m)?!0:(t.append(zM(b,v,o),l(m)),!1)}const f=[],h=Object.assign(wce,{defaultVisitor:c,convertValue:l,isVisitable:zC});function p(m,v){if(!xe.isUndefined(m)){if(f.indexOf(m)!==-1)throw Error("Circular reference detected in "+v.join("."));f.push(m),xe.forEach(m,function(w,x){(!(xe.isUndefined(w)||w===null)&&i.call(t,w,xe.isString(x)?x.trim():x,v,h))===!0&&p(w,v?v.concat(x):[x])}),f.pop()}}if(!xe.isObject(e))throw new TypeError("data must be an object");return p(e),t}function UM(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function R5(e,t){this._pairs=[],e&&Zx(e,this,t)}const Tj=R5.prototype;Tj.append=function(t,n){this._pairs.push([t,n])};Tj.toString=function(t){const n=t?function(r){return t.call(this,r,UM)}:UM;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function _ce(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Mj(e,t,n){if(!t)return e;const r=n&&n.encode||_ce;xe.isFunction(n)&&(n={serialize:n});const i=n&&n.serialize;let o;if(i?o=i(t,n):o=xe.isURLSearchParams(t)?t.toString():new R5(t,n).toString(r),o){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class VM{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){xe.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Rj={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Sce=typeof URLSearchParams<"u"?URLSearchParams:R5,Cce=typeof FormData<"u"?FormData:null,Ece=typeof Blob<"u"?Blob:null,Oce={isBrowser:!0,classes:{URLSearchParams:Sce,FormData:Cce,Blob:Ece},protocols:["http","https","file","blob","url","data"]},D5=typeof window<"u"&&typeof document<"u",UC=typeof navigator=="object"&&navigator||void 0,Ace=D5&&(!UC||["ReactNative","NativeScript","NS"].indexOf(UC.product)<0),Pce=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kce=D5&&window.location.href||"http://localhost",Tce=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:D5,hasStandardBrowserEnv:Ace,hasStandardBrowserWebWorkerEnv:Pce,navigator:UC,origin:kce},Symbol.toStringTag,{value:"Module"})),Mi={...Tce,...Oce};function Mce(e,t){return Zx(e,new Mi.classes.URLSearchParams,Object.assign({visitor:function(n,r,i,o){return Mi.isNode&&xe.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},t))}function Rce(e){return xe.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Dce(e){const t={},n=Object.keys(e);let r;const i=n.length;let o;for(r=0;r=n.length;return a=!a&&xe.isArray(i)?i.length:a,u?(xe.hasOwnProp(i,a)?i[a]=[i[a],r]:i[a]=r,!s):((!i[a]||!xe.isObject(i[a]))&&(i[a]=[]),t(n,r,i[a],o)&&xe.isArray(i[a])&&(i[a]=Dce(i[a])),!s)}if(xe.isFormData(e)&&xe.isFunction(e.entries)){const n={};return xe.forEachEntry(e,(r,i)=>{t(Rce(r),i,n,0)}),n}return null}function $ce(e,t,n){if(xe.isString(e))try{return(t||JSON.parse)(e),xe.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(0,JSON.stringify)(e)}const bm={transitional:Rj,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,o=xe.isObject(t);if(o&&xe.isHTMLForm(t)&&(t=new FormData(t)),xe.isFormData(t))return i?JSON.stringify(Dj(t)):t;if(xe.isArrayBuffer(t)||xe.isBuffer(t)||xe.isStream(t)||xe.isFile(t)||xe.isBlob(t)||xe.isReadableStream(t))return t;if(xe.isArrayBufferView(t))return t.buffer;if(xe.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Mce(t,this.formSerializer).toString();if((s=xe.isFileList(t))||r.indexOf("multipart/form-data")>-1){const u=this.env&&this.env.FormData;return Zx(s?{"files[]":t}:t,u&&new u,this.formSerializer)}}return o||i?(n.setContentType("application/json",!1),$ce(t)):t}],transformResponse:[function(t){const n=this.transitional||bm.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(xe.isResponse(t)||xe.isReadableStream(t))return t;if(t&&xe.isString(t)&&(r&&!this.responseType||i)){const a=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(s){if(a)throw s.name==="SyntaxError"?qt.from(s,qt.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Mi.classes.FormData,Blob:Mi.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};xe.forEach(["delete","get","head","post","put","patch"],e=>{bm.headers[e]={}});const Ice=xe.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Nce=e=>{const t={};let n,r,i;return e&&e.split(` +`).forEach(function(a){i=a.indexOf(":"),n=a.substring(0,i).trim().toLowerCase(),r=a.substring(i+1).trim(),!(!n||t[n]&&Ice[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},WM=Symbol("internals");function Dp(e){return e&&String(e).trim().toLowerCase()}function Y1(e){return e===!1||e==null?e:xe.isArray(e)?e.map(Y1):String(e)}function Lce(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Fce=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function lS(e,t,n,r,i){if(xe.isFunction(r))return r.call(this,t,n);if(i&&(t=n),!!xe.isString(t)){if(xe.isString(r))return t.indexOf(r)!==-1;if(xe.isRegExp(r))return r.test(t)}}function jce(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Bce(e,t){const n=xe.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(i,o,a){return this[r].call(this,t,i,o,a)},configurable:!0})})}class ho{constructor(t){t&&this.set(t)}set(t,n,r){const i=this;function o(s,u,l){const c=Dp(u);if(!c)throw new Error("header name must be a non-empty string");const f=xe.findKey(i,c);(!f||i[f]===void 0||l===!0||l===void 0&&i[f]!==!1)&&(i[f||u]=Y1(s))}const a=(s,u)=>xe.forEach(s,(l,c)=>o(l,c,u));if(xe.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(xe.isString(t)&&(t=t.trim())&&!Fce(t))a(Nce(t),n);else if(xe.isHeaders(t))for(const[s,u]of t.entries())o(u,s,r);else t!=null&&o(n,t,r);return this}get(t,n){if(t=Dp(t),t){const r=xe.findKey(this,t);if(r){const i=this[r];if(!n)return i;if(n===!0)return Lce(i);if(xe.isFunction(n))return n.call(this,i,r);if(xe.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Dp(t),t){const r=xe.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||lS(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let i=!1;function o(a){if(a=Dp(a),a){const s=xe.findKey(r,a);s&&(!n||lS(r,r[s],s,n))&&(delete r[s],i=!0)}}return xe.isArray(t)?t.forEach(o):o(t),i}clear(t){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const o=n[r];(!t||lS(this,this[o],o,t,!0))&&(delete this[o],i=!0)}return i}normalize(t){const n=this,r={};return xe.forEach(this,(i,o)=>{const a=xe.findKey(r,o);if(a){n[a]=Y1(i),delete n[o];return}const s=t?jce(o):String(o).trim();s!==o&&delete n[o],n[s]=Y1(i),r[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return xe.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=t&&xe.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(i=>r.set(i)),r}static accessor(t){const r=(this[WM]=this[WM]={accessors:{}}).accessors,i=this.prototype;function o(a){const s=Dp(a);r[s]||(Bce(i,a),r[s]=!0)}return xe.isArray(t)?t.forEach(o):o(t),this}}ho.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);xe.reduceDescriptors(ho.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});xe.freezeMethods(ho);function cS(e,t){const n=this||bm,r=t||n,i=ho.from(r.headers);let o=r.data;return xe.forEach(e,function(s){o=s.call(n,o,i.normalize(),t?t.status:void 0)}),i.normalize(),o}function $j(e){return!!(e&&e.__CANCEL__)}function $h(e,t,n){qt.call(this,e??"canceled",qt.ERR_CANCELED,t,n),this.name="CanceledError"}xe.inherits($h,qt,{__CANCEL__:!0});function Ij(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new qt("Request failed with status code "+n.status,[qt.ERR_BAD_REQUEST,qt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function zce(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Uce(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i=0,o=0,a;return t=t!==void 0?t:1e3,function(u){const l=Date.now(),c=r[o];a||(a=l),n[i]=u,r[i]=l;let f=o,h=0;for(;f!==i;)h+=n[f++],f=f%e;if(i=(i+1)%e,i===o&&(o=(o+1)%e),l-a{n=c,i=null,o&&(clearTimeout(o),o=null),e.apply(null,l)};return[(...l)=>{const c=Date.now(),f=c-n;f>=r?a(l,c):(i=l,o||(o=setTimeout(()=>{o=null,a(i)},r-f)))},()=>i&&a(i)]}const By=(e,t,n=3)=>{let r=0;const i=Uce(50,250);return Vce(o=>{const a=o.loaded,s=o.lengthComputable?o.total:void 0,u=a-r,l=i(u),c=a<=s;r=a;const f={loaded:a,total:s,progress:s?a/s:void 0,bytes:u,rate:l||void 0,estimated:l&&s&&c?(s-a)/l:void 0,event:o,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(f)},n)},HM=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},KM=e=>(...t)=>xe.asap(()=>e(...t)),Wce=Mi.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Mi.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Mi.origin),Mi.navigator&&/(msie|trident)/i.test(Mi.navigator.userAgent)):()=>!0,Hce=Mi.hasStandardBrowserEnv?{write(e,t,n,r,i,o){const a=[e+"="+encodeURIComponent(t)];xe.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),xe.isString(r)&&a.push("path="+r),xe.isString(i)&&a.push("domain="+i),o===!0&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Kce(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function qce(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Nj(e,t){return e&&!Kce(t)?qce(e,t):t}const qM=e=>e instanceof ho?{...e}:e;function Hc(e,t){t=t||{};const n={};function r(l,c,f,h){return xe.isPlainObject(l)&&xe.isPlainObject(c)?xe.merge.call({caseless:h},l,c):xe.isPlainObject(c)?xe.merge({},c):xe.isArray(c)?c.slice():c}function i(l,c,f,h){if(xe.isUndefined(c)){if(!xe.isUndefined(l))return r(void 0,l,f,h)}else return r(l,c,f,h)}function o(l,c){if(!xe.isUndefined(c))return r(void 0,c)}function a(l,c){if(xe.isUndefined(c)){if(!xe.isUndefined(l))return r(void 0,l)}else return r(void 0,c)}function s(l,c,f){if(f in t)return r(l,c);if(f in e)return r(void 0,l)}const u={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(l,c,f)=>i(qM(l),qM(c),f,!0)};return xe.forEach(Object.keys(Object.assign({},e,t)),function(c){const f=u[c]||i,h=f(e[c],t[c],c);xe.isUndefined(h)&&f!==s||(n[c]=h)}),n}const Lj=e=>{const t=Hc({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:o,headers:a,auth:s}=t;t.headers=a=ho.from(a),t.url=Mj(Nj(t.baseURL,t.url),e.params,e.paramsSerializer),s&&a.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let u;if(xe.isFormData(n)){if(Mi.hasStandardBrowserEnv||Mi.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if((u=a.getContentType())!==!1){const[l,...c]=u?u.split(";").map(f=>f.trim()).filter(Boolean):[];a.setContentType([l||"multipart/form-data",...c].join("; "))}}if(Mi.hasStandardBrowserEnv&&(r&&xe.isFunction(r)&&(r=r(t)),r||r!==!1&&Wce(t.url))){const l=i&&o&&Hce.read(o);l&&a.set(i,l)}return t},Gce=typeof XMLHttpRequest<"u",Yce=Gce&&function(e){return new Promise(function(n,r){const i=Lj(e);let o=i.data;const a=ho.from(i.headers).normalize();let{responseType:s,onUploadProgress:u,onDownloadProgress:l}=i,c,f,h,p,m;function v(){p&&p(),m&&m(),i.cancelToken&&i.cancelToken.unsubscribe(c),i.signal&&i.signal.removeEventListener("abort",c)}let b=new XMLHttpRequest;b.open(i.method.toUpperCase(),i.url,!0),b.timeout=i.timeout;function w(){if(!b)return;const S=ho.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),E={data:!s||s==="text"||s==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:S,config:e,request:b};Ij(function(k){n(k),v()},function(k){r(k),v()},E),b=null}"onloadend"in b?b.onloadend=w:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(w)},b.onabort=function(){b&&(r(new qt("Request aborted",qt.ECONNABORTED,e,b)),b=null)},b.onerror=function(){r(new qt("Network Error",qt.ERR_NETWORK,e,b)),b=null},b.ontimeout=function(){let O=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const E=i.transitional||Rj;i.timeoutErrorMessage&&(O=i.timeoutErrorMessage),r(new qt(O,E.clarifyTimeoutError?qt.ETIMEDOUT:qt.ECONNABORTED,e,b)),b=null},o===void 0&&a.setContentType(null),"setRequestHeader"in b&&xe.forEach(a.toJSON(),function(O,E){b.setRequestHeader(E,O)}),xe.isUndefined(i.withCredentials)||(b.withCredentials=!!i.withCredentials),s&&s!=="json"&&(b.responseType=i.responseType),l&&([h,m]=By(l,!0),b.addEventListener("progress",h)),u&&b.upload&&([f,p]=By(u),b.upload.addEventListener("progress",f),b.upload.addEventListener("loadend",p)),(i.cancelToken||i.signal)&&(c=S=>{b&&(r(!S||S.type?new $h(null,e,b):S),b.abort(),b=null)},i.cancelToken&&i.cancelToken.subscribe(c),i.signal&&(i.signal.aborted?c():i.signal.addEventListener("abort",c)));const x=zce(i.url);if(x&&Mi.protocols.indexOf(x)===-1){r(new qt("Unsupported protocol "+x+":",qt.ERR_BAD_REQUEST,e));return}b.send(o||null)})},Zce=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,i;const o=function(l){if(!i){i=!0,s();const c=l instanceof Error?l:this.reason;r.abort(c instanceof qt?c:new $h(c instanceof Error?c.message:c))}};let a=t&&setTimeout(()=>{a=null,o(new qt(`timeout ${t} of ms exceeded`,qt.ETIMEDOUT))},t);const s=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(l=>{l.unsubscribe?l.unsubscribe(o):l.removeEventListener("abort",o)}),e=null)};e.forEach(l=>l.addEventListener("abort",o));const{signal:u}=r;return u.unsubscribe=()=>xe.asap(s),u}},Xce=function*(e,t){let n=e.byteLength;if(n{const i=Qce(e,t);let o=0,a,s=u=>{a||(a=!0,r&&r(u))};return new ReadableStream({async pull(u){try{const{done:l,value:c}=await i.next();if(l){s(),u.close();return}let f=c.byteLength;if(n){let h=o+=f;n(h)}u.enqueue(new Uint8Array(c))}catch(l){throw s(l),l}},cancel(u){return s(u),i.return()}},{highWaterMark:2})},Xx=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Fj=Xx&&typeof ReadableStream=="function",efe=Xx&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),jj=(e,...t)=>{try{return!!e(...t)}catch{return!1}},tfe=Fj&&jj(()=>{let e=!1;const t=new Request(Mi.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),YM=64*1024,VC=Fj&&jj(()=>xe.isReadableStream(new Response("").body)),zy={stream:VC&&(e=>e.body)};Xx&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!zy[t]&&(zy[t]=xe.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new qt(`Response type '${t}' is not supported`,qt.ERR_NOT_SUPPORT,r)})})})(new Response);const nfe=async e=>{if(e==null)return 0;if(xe.isBlob(e))return e.size;if(xe.isSpecCompliantForm(e))return(await new Request(Mi.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(xe.isArrayBufferView(e)||xe.isArrayBuffer(e))return e.byteLength;if(xe.isURLSearchParams(e)&&(e=e+""),xe.isString(e))return(await efe(e)).byteLength},rfe=async(e,t)=>{const n=xe.toFiniteNumber(e.getContentLength());return n??nfe(t)},ife=Xx&&(async e=>{let{url:t,method:n,data:r,signal:i,cancelToken:o,timeout:a,onDownloadProgress:s,onUploadProgress:u,responseType:l,headers:c,withCredentials:f="same-origin",fetchOptions:h}=Lj(e);l=l?(l+"").toLowerCase():"text";let p=Zce([i,o&&o.toAbortSignal()],a),m;const v=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let b;try{if(u&&tfe&&n!=="get"&&n!=="head"&&(b=await rfe(c,r))!==0){let E=new Request(t,{method:"POST",body:r,duplex:"half"}),C;if(xe.isFormData(r)&&(C=E.headers.get("content-type"))&&c.setContentType(C),E.body){const[k,M]=HM(b,By(KM(u)));r=GM(E.body,YM,k,M)}}xe.isString(f)||(f=f?"include":"omit");const w="credentials"in Request.prototype;m=new Request(t,{...h,signal:p,method:n.toUpperCase(),headers:c.normalize().toJSON(),body:r,duplex:"half",credentials:w?f:void 0});let x=await fetch(m);const S=VC&&(l==="stream"||l==="response");if(VC&&(s||S&&v)){const E={};["status","statusText","headers"].forEach(L=>{E[L]=x[L]});const C=xe.toFiniteNumber(x.headers.get("content-length")),[k,M]=s&&HM(C,By(KM(s),!0))||[];x=new Response(GM(x.body,YM,k,()=>{M&&M(),v&&v()}),E)}l=l||"text";let O=await zy[xe.findKey(zy,l)||"text"](x,e);return!S&&v&&v(),await new Promise((E,C)=>{Ij(E,C,{data:O,headers:ho.from(x.headers),status:x.status,statusText:x.statusText,config:e,request:m})})}catch(w){throw v&&v(),w&&w.name==="TypeError"&&/fetch/i.test(w.message)?Object.assign(new qt("Network Error",qt.ERR_NETWORK,e,m),{cause:w.cause||w}):qt.from(w,w&&w.code,e,m)}}),WC={http:bce,xhr:Yce,fetch:ife};xe.forEach(WC,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const ZM=e=>`- ${e}`,ofe=e=>xe.isFunction(e)||e===null||e===!1,Bj={getAdapter:e=>{e=xe.isArray(e)?e:[e];const{length:t}=e;let n,r;const i={};for(let o=0;o`adapter ${s} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=t?o.length>1?`since : +`+o.map(ZM).join(` +`):" "+ZM(o[0]):"as no adapter specified";throw new qt("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return r},adapters:WC};function fS(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new $h(null,e)}function XM(e){return fS(e),e.headers=ho.from(e.headers),e.data=cS.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Bj.getAdapter(e.adapter||bm.adapter)(e).then(function(r){return fS(e),r.data=cS.call(e,e.transformResponse,r),r.headers=ho.from(r.headers),r},function(r){return $j(r)||(fS(e),r&&r.response&&(r.response.data=cS.call(e,e.transformResponse,r.response),r.response.headers=ho.from(r.response.headers))),Promise.reject(r)})}const zj="1.7.9",Qx={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Qx[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const QM={};Qx.transitional=function(t,n,r){function i(o,a){return"[Axios v"+zj+"] Transitional option '"+o+"'"+a+(r?". "+r:"")}return(o,a,s)=>{if(t===!1)throw new qt(i(a," has been removed"+(n?" in "+n:"")),qt.ERR_DEPRECATED);return n&&!QM[a]&&(QM[a]=!0,console.warn(i(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,a,s):!0}};Qx.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function afe(e,t,n){if(typeof e!="object")throw new qt("options must be an object",qt.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const o=r[i],a=t[o];if(a){const s=e[o],u=s===void 0||a(s,o,e);if(u!==!0)throw new qt("option "+o+" must be "+u,qt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new qt("Unknown option "+o,qt.ERR_BAD_OPTION)}}const Z1={assertOptions:afe,validators:Qx},ls=Z1.validators;class Tc{constructor(t){this.defaults=t,this.interceptors={request:new VM,response:new VM}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=i.stack?i.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Hc(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:o}=n;r!==void 0&&Z1.assertOptions(r,{silentJSONParsing:ls.transitional(ls.boolean),forcedJSONParsing:ls.transitional(ls.boolean),clarifyTimeoutError:ls.transitional(ls.boolean)},!1),i!=null&&(xe.isFunction(i)?n.paramsSerializer={serialize:i}:Z1.assertOptions(i,{encode:ls.function,serialize:ls.function},!0)),Z1.assertOptions(n,{baseUrl:ls.spelling("baseURL"),withXsrfToken:ls.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=o&&xe.merge(o.common,o[n.method]);o&&xe.forEach(["delete","get","head","post","put","patch","common"],m=>{delete o[m]}),n.headers=ho.concat(a,o);const s=[];let u=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(u=u&&v.synchronous,s.unshift(v.fulfilled,v.rejected))});const l=[];this.interceptors.response.forEach(function(v){l.push(v.fulfilled,v.rejected)});let c,f=0,h;if(!u){const m=[XM.bind(this),void 0];for(m.unshift.apply(m,s),m.push.apply(m,l),h=m.length,c=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](i);r._listeners=null}),this.promise.then=i=>{let o;const a=new Promise(s=>{r.subscribe(s),o=s}).then(i);return a.cancel=function(){r.unsubscribe(o)},a},t(function(o,a,s){r.reason||(r.reason=new $h(o,a,s),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new $5(function(i){t=i}),cancel:t}}}function sfe(e){return function(n){return e.apply(null,n)}}function ufe(e){return xe.isObject(e)&&e.isAxiosError===!0}const HC={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(HC).forEach(([e,t])=>{HC[t]=e});function Uj(e){const t=new Tc(e),n=bj(Tc.prototype.request,t);return xe.extend(n,Tc.prototype,t,{allOwnKeys:!0}),xe.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return Uj(Hc(e,i))},n}const qr=Uj(bm);qr.Axios=Tc;qr.CanceledError=$h;qr.CancelToken=$5;qr.isCancel=$j;qr.VERSION=zj;qr.toFormData=Zx;qr.AxiosError=qt;qr.Cancel=qr.CanceledError;qr.all=function(t){return Promise.all(t)};qr.spread=sfe;qr.isAxiosError=ufe;qr.mergeConfig=Hc;qr.AxiosHeaders=ho;qr.formToJSON=e=>Dj(xe.isHTMLForm(e)?new FormData(e):e);qr.getAdapter=Bj.getAdapter;qr.HttpStatusCode=HC;qr.default=qr;var lfe=e=>{switch(e){case"success":return dfe;case"info":return pfe;case"warning":return hfe;case"error":return gfe;default:return null}},cfe=Array(12).fill(0),ffe=({visible:e,className:t})=>F.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},F.createElement("div",{className:"sonner-spinner"},cfe.map((n,r)=>F.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),dfe=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),hfe=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),pfe=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),gfe=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),mfe=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},F.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),F.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),vfe=()=>{let[e,t]=F.useState(document.hidden);return F.useEffect(()=>{let n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e},KC=1,yfe=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:n,...r}=e,i=typeof e?.id=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:KC++,o=this.toasts.find(s=>s.id===i),a=e.dismissible===void 0?!0:e.dismissible;return o?this.toasts=this.toasts.map(s=>s.id===i?(this.publish({...s,...e,id:i,title:n}),{...s,...e,id:i,dismissible:a,title:n}):s):this.addToast({title:n,...r,dismissible:a,id:i}),i},this.dismiss=e=>(e||this.toasts.forEach(t=>{this.subscribers.forEach(n=>n({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let r=e instanceof Promise?e:e(),i=n!==void 0,o,a=r.then(async u=>{if(o=["resolve",u],F.isValidElement(u))i=!1,this.create({id:n,type:"default",message:u});else if(xfe(u)&&!u.ok){i=!1;let l=typeof t.error=="function"?await t.error(`HTTP error! status: ${u.status}`):t.error,c=typeof t.description=="function"?await t.description(`HTTP error! status: ${u.status}`):t.description;this.create({id:n,type:"error",message:l,description:c})}else if(t.success!==void 0){i=!1;let l=typeof t.success=="function"?await t.success(u):t.success,c=typeof t.description=="function"?await t.description(u):t.description;this.create({id:n,type:"success",message:l,description:c})}}).catch(async u=>{if(o=["reject",u],t.error!==void 0){i=!1;let l=typeof t.error=="function"?await t.error(u):t.error,c=typeof t.description=="function"?await t.description(u):t.description;this.create({id:n,type:"error",message:l,description:c})}}).finally(()=>{var u;i&&(this.dismiss(n),n=void 0),(u=t.finally)==null||u.call(t)}),s=()=>new Promise((u,l)=>a.then(()=>o[0]==="reject"?l(o[1]):u(o[1])).catch(l));return typeof n!="string"&&typeof n!="number"?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||KC++;return this.create({jsx:e(n),id:n,...t}),n},this.subscribers=[],this.toasts=[]}},Po=new yfe,bfe=(e,t)=>{let n=t?.id||KC++;return Po.addToast({title:e,...t,id:n}),n},xfe=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",wfe=bfe,_fe=()=>Po.toasts,AYe=Object.assign(wfe,{success:Po.success,info:Po.info,warning:Po.warning,error:Po.error,custom:Po.custom,message:Po.message,promise:Po.promise,dismiss:Po.dismiss,loading:Po.loading},{getHistory:_fe});function Sfe(e,{insertAt:t}={}){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",t==="top"&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}Sfe(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:max(var(--offset),env(safe-area-inset-right))}:where([data-sonner-toaster][data-x-position="left"]){left:max(var(--offset),env(safe-area-inset-left))}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:max(var(--offset),env(safe-area-inset-top))}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:max(var(--offset),env(safe-area-inset-bottom))}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:0;right:0;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation:swipe-out .2s ease-out forwards}@keyframes swipe-out{0%{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount)));opacity:1}to{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount) + var(--lift) * -100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;--mobile-offset: 16px;right:var(--mobile-offset);left:var(--mobile-offset);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset)}[data-sonner-toaster][data-y-position=bottom]{bottom:20px}[data-sonner-toaster][data-y-position=top]{top:20px}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset);right:var(--mobile-offset);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} +`);function t1(e){return e.label!==void 0}var Cfe=3,Efe="32px",JM=4e3,Ofe=356,Afe=14,Pfe=20,kfe=200;function Tfe(...e){return e.filter(Boolean).join(" ")}var Mfe=e=>{var t,n,r,i,o,a,s,u,l,c,f;let{invert:h,toast:p,unstyled:m,interacting:v,setHeights:b,visibleToasts:w,heights:x,index:S,toasts:O,expanded:E,removeToast:C,defaultRichColors:k,closeButton:M,style:L,cancelButtonStyle:U,actionButtonStyle:H,className:V="",descriptionClassName:ne="",duration:Z,position:G,gap:q,loadingIcon:W,expandByDefault:j,classNames:K,icons:Y,closeButtonAriaLabel:oe="Close toast",pauseWhenPageIsHidden:ae,cn:ue}=e,[be,we]=F.useState(!1),[He,Ee]=F.useState(!1),[it,ke]=F.useState(!1),[Le,De]=F.useState(!1),[me,yt]=F.useState(!1),[lt,Nt]=F.useState(0),[yn,nn]=F.useState(0),te=F.useRef(p.duration||Z||JM),de=F.useRef(null),ge=F.useRef(null),ze=S===0,Fe=S+1<=w,Ae=p.type,tt=p.dismissible!==!1,mt=p.className||"",xn=p.descriptionClassName||"",Kt=F.useMemo(()=>x.findIndex(_t=>_t.toastId===p.id)||0,[x,p.id]),wn=F.useMemo(()=>{var _t;return(_t=p.closeButton)!=null?_t:M},[p.closeButton,M]);F.useMemo(()=>p.duration||Z||JM,[p.duration,Z]);let Ii=F.useRef(0),br=F.useRef(0),yi=F.useRef(0),sr=F.useRef(null),[si,bi]=G.split("-"),Rr=F.useMemo(()=>x.reduce((_t,hn,_n)=>_n>=Kt?_t:_t+hn.height,0),[x,Kt]),Xi=vfe(),yo=p.invert||h,xi=Ae==="loading";br.current=F.useMemo(()=>Kt*q+Rr,[Kt,Rr]),F.useEffect(()=>{we(!0)},[]),F.useEffect(()=>{let _t=ge.current;if(_t){let hn=_t.getBoundingClientRect().height;return nn(hn),b(_n=>[{toastId:p.id,height:hn,position:p.position},..._n]),()=>b(_n=>_n.filter(qn=>qn.toastId!==p.id))}},[b,p.id]),F.useLayoutEffect(()=>{if(!be)return;let _t=ge.current,hn=_t.style.height;_t.style.height="auto";let _n=_t.getBoundingClientRect().height;_t.style.height=hn,nn(_n),b(qn=>qn.find(ur=>ur.toastId===p.id)?qn.map(ur=>ur.toastId===p.id?{...ur,height:_n}:ur):[{toastId:p.id,height:_n,position:p.position},...qn])},[be,p.title,p.description,b,p.id]);let Dr=F.useCallback(()=>{Ee(!0),Nt(br.current),b(_t=>_t.filter(hn=>hn.toastId!==p.id)),setTimeout(()=>{C(p)},kfe)},[p,C,b,br]);F.useEffect(()=>{if(p.promise&&Ae==="loading"||p.duration===1/0||p.type==="loading")return;let _t;return E||v||ae&&Xi?(()=>{if(yi.current{var hn;(hn=p.onAutoClose)==null||hn.call(p,p),Dr()},te.current)),()=>clearTimeout(_t)},[E,v,p,Ae,ae,Xi,Dr]),F.useEffect(()=>{p.delete&&Dr()},[Dr,p.delete]);function _a(){var _t,hn,_n;return Y!=null&&Y.loading?F.createElement("div",{className:ue(K?.loader,(_t=p?.classNames)==null?void 0:_t.loader,"sonner-loader"),"data-visible":Ae==="loading"},Y.loading):W?F.createElement("div",{className:ue(K?.loader,(hn=p?.classNames)==null?void 0:hn.loader,"sonner-loader"),"data-visible":Ae==="loading"},W):F.createElement(ffe,{className:ue(K?.loader,(_n=p?.classNames)==null?void 0:_n.loader),visible:Ae==="loading"})}return F.createElement("li",{tabIndex:0,ref:ge,className:ue(V,mt,K?.toast,(t=p?.classNames)==null?void 0:t.toast,K?.default,K?.[Ae],(n=p?.classNames)==null?void 0:n[Ae]),"data-sonner-toast":"","data-rich-colors":(r=p.richColors)!=null?r:k,"data-styled":!(p.jsx||p.unstyled||m),"data-mounted":be,"data-promise":!!p.promise,"data-swiped":me,"data-removed":He,"data-visible":Fe,"data-y-position":si,"data-x-position":bi,"data-index":S,"data-front":ze,"data-swiping":it,"data-dismissible":tt,"data-type":Ae,"data-invert":yo,"data-swipe-out":Le,"data-expanded":!!(E||j&&be),style:{"--index":S,"--toasts-before":S,"--z-index":O.length-S,"--offset":`${He?lt:br.current}px`,"--initial-height":j?"auto":`${yn}px`,...L,...p.style},onPointerDown:_t=>{xi||!tt||(de.current=new Date,Nt(br.current),_t.target.setPointerCapture(_t.pointerId),_t.target.tagName!=="BUTTON"&&(ke(!0),sr.current={x:_t.clientX,y:_t.clientY}))},onPointerUp:()=>{var _t,hn,_n,qn;if(Le||!tt)return;sr.current=null;let ur=Number(((_t=ge.current)==null?void 0:_t.style.getPropertyValue("--swipe-amount").replace("px",""))||0),Xr=new Date().getTime()-((hn=de.current)==null?void 0:hn.getTime()),bo=Math.abs(ur)/Xr;if(Math.abs(ur)>=Pfe||bo>.11){Nt(br.current),(_n=p.onDismiss)==null||_n.call(p,p),Dr(),De(!0),yt(!1);return}(qn=ge.current)==null||qn.style.setProperty("--swipe-amount","0px"),ke(!1)},onPointerMove:_t=>{var hn,_n;if(!sr.current||!tt)return;let qn=_t.clientY-sr.current.y,ur=((hn=window.getSelection())==null?void 0:hn.toString().length)>0,Xr=si==="top"?Math.min(0,qn):Math.max(0,qn);Math.abs(Xr)>0&&yt(!0),!ur&&((_n=ge.current)==null||_n.style.setProperty("--swipe-amount",`${Xr}px`))}},wn&&!p.jsx?F.createElement("button",{"aria-label":oe,"data-disabled":xi,"data-close-button":!0,onClick:xi||!tt?()=>{}:()=>{var _t;Dr(),(_t=p.onDismiss)==null||_t.call(p,p)},className:ue(K?.closeButton,(i=p?.classNames)==null?void 0:i.closeButton)},(o=Y?.close)!=null?o:mfe):null,p.jsx||F.isValidElement(p.title)?p.jsx?p.jsx:typeof p.title=="function"?p.title():p.title:F.createElement(F.Fragment,null,Ae||p.icon||p.promise?F.createElement("div",{"data-icon":"",className:ue(K?.icon,(a=p?.classNames)==null?void 0:a.icon)},p.promise||p.type==="loading"&&!p.icon?p.icon||_a():null,p.type!=="loading"?p.icon||Y?.[Ae]||lfe(Ae):null):null,F.createElement("div",{"data-content":"",className:ue(K?.content,(s=p?.classNames)==null?void 0:s.content)},F.createElement("div",{"data-title":"",className:ue(K?.title,(u=p?.classNames)==null?void 0:u.title)},typeof p.title=="function"?p.title():p.title),p.description?F.createElement("div",{"data-description":"",className:ue(ne,xn,K?.description,(l=p?.classNames)==null?void 0:l.description)},typeof p.description=="function"?p.description():p.description):null),F.isValidElement(p.cancel)?p.cancel:p.cancel&&t1(p.cancel)?F.createElement("button",{"data-button":!0,"data-cancel":!0,style:p.cancelButtonStyle||U,onClick:_t=>{var hn,_n;t1(p.cancel)&&tt&&((_n=(hn=p.cancel).onClick)==null||_n.call(hn,_t),Dr())},className:ue(K?.cancelButton,(c=p?.classNames)==null?void 0:c.cancelButton)},p.cancel.label):null,F.isValidElement(p.action)?p.action:p.action&&t1(p.action)?F.createElement("button",{"data-button":!0,"data-action":!0,style:p.actionButtonStyle||H,onClick:_t=>{var hn,_n;t1(p.action)&&((_n=(hn=p.action).onClick)==null||_n.call(hn,_t),!_t.defaultPrevented&&Dr())},className:ue(K?.actionButton,(f=p?.classNames)==null?void 0:f.actionButton)},p.action.label):null))};function eR(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}var PYe=y.forwardRef(function(e,t){let{invert:n,position:r="bottom-right",hotkey:i=["altKey","KeyT"],expand:o,closeButton:a,className:s,offset:u,theme:l="light",richColors:c,duration:f,style:h,visibleToasts:p=Cfe,toastOptions:m,dir:v=eR(),gap:b=Afe,loadingIcon:w,icons:x,containerAriaLabel:S="Notifications",pauseWhenPageIsHidden:O,cn:E=Tfe}=e,[C,k]=F.useState([]),M=F.useMemo(()=>Array.from(new Set([r].concat(C.filter(ae=>ae.position).map(ae=>ae.position)))),[C,r]),[L,U]=F.useState([]),[H,V]=F.useState(!1),[ne,Z]=F.useState(!1),[G,q]=F.useState(l!=="system"?l:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),W=F.useRef(null),j=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),K=F.useRef(null),Y=F.useRef(!1),oe=F.useCallback(ae=>{k(ue=>{var be;return(be=ue.find(we=>we.id===ae.id))!=null&&be.delete||Po.dismiss(ae.id),ue.filter(({id:we})=>we!==ae.id)})},[]);return F.useEffect(()=>Po.subscribe(ae=>{if(ae.dismiss){k(ue=>ue.map(be=>be.id===ae.id?{...be,delete:!0}:be));return}setTimeout(()=>{jx.flushSync(()=>{k(ue=>{let be=ue.findIndex(we=>we.id===ae.id);return be!==-1?[...ue.slice(0,be),{...ue[be],...ae},...ue.slice(be+1)]:[ae,...ue]})})})}),[]),F.useEffect(()=>{if(l!=="system"){q(l);return}if(l==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?q("dark"):q("light")),typeof window>"u")return;let ae=window.matchMedia("(prefers-color-scheme: dark)");try{ae.addEventListener("change",({matches:ue})=>{q(ue?"dark":"light")})}catch{ae.addListener(({matches:be})=>{try{q(be?"dark":"light")}catch(we){console.error(we)}})}},[l]),F.useEffect(()=>{C.length<=1&&V(!1)},[C]),F.useEffect(()=>{let ae=ue=>{var be,we;i.every(He=>ue[He]||ue.code===He)&&(V(!0),(be=W.current)==null||be.focus()),ue.code==="Escape"&&(document.activeElement===W.current||(we=W.current)!=null&&we.contains(document.activeElement))&&V(!1)};return document.addEventListener("keydown",ae),()=>document.removeEventListener("keydown",ae)},[i]),F.useEffect(()=>{if(W.current)return()=>{K.current&&(K.current.focus({preventScroll:!0}),K.current=null,Y.current=!1)}},[W.current]),F.createElement("section",{"aria-label":`${S} ${j}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false"},M.map((ae,ue)=>{var be;let[we,He]=ae.split("-");return C.length?F.createElement("ol",{key:ae,dir:v==="auto"?eR():v,tabIndex:-1,ref:W,className:s,"data-sonner-toaster":!0,"data-theme":G,"data-y-position":we,"data-lifted":H&&C.length>1&&!o,"data-x-position":He,style:{"--front-toast-height":`${((be=L[0])==null?void 0:be.height)||0}px`,"--offset":typeof u=="number"?`${u}px`:u||Efe,"--width":`${Ofe}px`,"--gap":`${b}px`,...h},onBlur:Ee=>{Y.current&&!Ee.currentTarget.contains(Ee.relatedTarget)&&(Y.current=!1,K.current&&(K.current.focus({preventScroll:!0}),K.current=null))},onFocus:Ee=>{Ee.target instanceof HTMLElement&&Ee.target.dataset.dismissible==="false"||Y.current||(Y.current=!0,K.current=Ee.relatedTarget)},onMouseEnter:()=>V(!0),onMouseMove:()=>V(!0),onMouseLeave:()=>{ne||V(!1)},onPointerDown:Ee=>{Ee.target instanceof HTMLElement&&Ee.target.dataset.dismissible==="false"||Z(!0)},onPointerUp:()=>Z(!1)},C.filter(Ee=>!Ee.position&&ue===0||Ee.position===ae).map((Ee,it)=>{var ke,Le;return F.createElement(Mfe,{key:Ee.id,icons:x,index:it,toast:Ee,defaultRichColors:c,duration:(ke=m?.duration)!=null?ke:f,className:m?.className,descriptionClassName:m?.descriptionClassName,invert:n,visibleToasts:p,closeButton:(Le=m?.closeButton)!=null?Le:a,interacting:ne,position:ae,style:m?.style,unstyled:m?.unstyled,classNames:m?.classNames,cancelButtonStyle:m?.cancelButtonStyle,actionButtonStyle:m?.actionButtonStyle,removeToast:oe,toasts:C.filter(De=>De.position==Ee.position),heights:L.filter(De=>De.position==Ee.position),setHeights:U,expandByDefault:o,gap:b,loadingIcon:w,expanded:H,pauseWhenPageIsHidden:O,cn:E})})):null}))}),Ih=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Kc=typeof window>"u"||"Deno"in globalThis;function oa(){}function Rfe(e,t){return typeof e=="function"?e(t):e}function qC(e){return typeof e=="number"&&e>=0&&e!==1/0}function Vj(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Od(e,t){return typeof e=="function"?e(t):e}function Na(e,t){return typeof e=="function"?e(t):e}function tR(e,t){const{type:n="all",exact:r,fetchStatus:i,predicate:o,queryKey:a,stale:s}=e;if(a){if(r){if(t.queryHash!==I5(a,t.options))return!1}else if(!eg(t.queryKey,a))return!1}if(n!=="all"){const u=t.isActive();if(n==="active"&&!u||n==="inactive"&&u)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||i&&i!==t.state.fetchStatus||o&&!o(t))}function nR(e,t){const{exact:n,status:r,predicate:i,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(n){if(qc(t.options.mutationKey)!==qc(o))return!1}else if(!eg(t.options.mutationKey,o))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function I5(e,t){return(t?.queryKeyHashFn||qc)(e)}function qc(e){return JSON.stringify(e,(t,n)=>GC(n)?Object.keys(n).sort().reduce((r,i)=>(r[i]=n[i],r),{}):n)}function eg(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(n=>!eg(e[n],t[n])):!1}function Wj(e,t){if(e===t)return e;const n=rR(e)&&rR(t);if(n||GC(e)&&GC(t)){const r=n?e:Object.keys(e),i=r.length,o=n?t:Object.keys(t),a=o.length,s=n?[]:{};let u=0;for(let l=0;l{setTimeout(t,e)})}function YC(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?Wj(e,t):t}function $fe(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function Ife(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var N5=Symbol();function Hj(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===N5?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var Nfe=class extends Ih{#e;#t;#r;constructor(){super(),this.#r=e=>{if(!Kc&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},L5=new Nfe,Lfe=class extends Ih{#e=!0;#t;#r;constructor(){super(),this.#r=e=>{if(!Kc&&window.addEventListener){const t=()=>e(!0),n=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",n,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(n=>{n(e)}))}isOnline(){return this.#e}},Vy=new Lfe;function ZC(){let e,t;const n=new Promise((i,o)=>{e=i,t=o});n.status="pending",n.catch(()=>{});function r(i){Object.assign(n,i),delete n.resolve,delete n.reject}return n.resolve=i=>{r({status:"fulfilled",value:i}),e(i)},n.reject=i=>{r({status:"rejected",reason:i}),t(i)},n}function Ffe(e){return Math.min(1e3*2**e,3e4)}function Kj(e){return(e??"online")==="online"?Vy.isOnline():!0}var qj=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function dS(e){return e instanceof qj}function Gj(e){let t=!1,n=0,r=!1,i;const o=ZC(),a=v=>{r||(h(new qj(v)),e.abort?.())},s=()=>{t=!0},u=()=>{t=!1},l=()=>L5.isFocused()&&(e.networkMode==="always"||Vy.isOnline())&&e.canRun(),c=()=>Kj(e.networkMode)&&e.canRun(),f=v=>{r||(r=!0,e.onSuccess?.(v),i?.(),o.resolve(v))},h=v=>{r||(r=!0,e.onError?.(v),i?.(),o.reject(v))},p=()=>new Promise(v=>{i=b=>{(r||l())&&v(b)},e.onPause?.()}).then(()=>{i=void 0,r||e.onContinue?.()}),m=()=>{if(r)return;let v;const b=n===0?e.initialPromise:void 0;try{v=b??e.fn()}catch(w){v=Promise.reject(w)}Promise.resolve(v).then(f).catch(w=>{if(r)return;const x=e.retry??(Kc?0:3),S=e.retryDelay??Ffe,O=typeof S=="function"?S(n,w):S,E=x===!0||typeof x=="number"&&nl()?void 0:p()).then(()=>{t?h(w):m()})})};return{promise:o,cancel:a,continue:()=>(i?.(),o),cancelRetry:s,continueRetry:u,canStart:c,start:()=>(c()?m():p().then(m),o)}}function jfe(){let e=[],t=0,n=s=>{s()},r=s=>{s()},i=s=>setTimeout(s,0);const o=s=>{t?e.push(s):i(()=>{n(s)})},a=()=>{const s=e;e=[],s.length&&i(()=>{r(()=>{s.forEach(u=>{n(u)})})})};return{batch:s=>{let u;t++;try{u=s()}finally{t--,t||a()}return u},batchCalls:s=>(...u)=>{o(()=>{s(...u)})},schedule:o,setNotifyFunction:s=>{n=s},setBatchNotifyFunction:s=>{r=s},setScheduler:s=>{i=s}}}var Ur=jfe(),Yj=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),qC(this.gcTime)&&(this.#e=setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Kc?1/0:5*60*1e3))}clearGcTimeout(){this.#e&&(clearTimeout(this.#e),this.#e=void 0)}},Bfe=class extends Yj{#e;#t;#r;#n;#a;#o;constructor(e){super(),this.#o=!1,this.#a=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.cache,this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=zfe(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#n?.promise}setOptions(e){this.options={...this.#a,...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#r.remove(this)}setData(e,t){const n=YC(this.state.data,e,this.options);return this.#i({data:n,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e,t){this.#i({type:"setState",state:e,setStateOptions:t})}cancel(e){const t=this.#n?.promise;return this.#n?.cancel(e),t?t.then(oa).catch(oa):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>Na(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===N5||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStale(){return this.state.isInvalidated?!0:this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0}isStaleByTime(e=0){return this.state.isInvalidated||this.state.data===void 0||!Vj(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#n?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#n?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#n&&(this.#o?this.#n.cancel({revert:!0}):this.#n.cancelRetry()),this.scheduleGc()),this.#r.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#i({type:"invalidate"})}fetch(e,t){if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#n)return this.#n.continueRetry(),this.#n.promise}if(e&&this.setOptions(e),!this.options.queryFn){const s=this.observers.find(u=>u.options.queryFn);s&&this.setOptions(s.options)}const n=new AbortController,r=s=>{Object.defineProperty(s,"signal",{enumerable:!0,get:()=>(this.#o=!0,n.signal)})},i=()=>{const s=Hj(this.options,t),u={queryKey:this.queryKey,meta:this.meta};return r(u),this.#o=!1,this.options.persister?this.options.persister(s,u,this):s(u)},o={fetchOptions:t,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:i};r(o),this.options.behavior?.onFetch(o,this),this.#t=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==o.fetchOptions?.meta)&&this.#i({type:"fetch",meta:o.fetchOptions?.meta});const a=s=>{dS(s)&&s.silent||this.#i({type:"error",error:s}),dS(s)||(this.#r.config.onError?.(s,this),this.#r.config.onSettled?.(this.state.data,s,this)),this.scheduleGc()};return this.#n=Gj({initialPromise:t?.initialPromise,fn:o.fetchFn,abort:n.abort.bind(n),onSuccess:s=>{if(s===void 0){a(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(s)}catch(u){a(u);return}this.#r.config.onSuccess?.(s,this),this.#r.config.onSettled?.(s,this.state.error,this),this.scheduleGc()},onError:a,onFail:(s,u)=>{this.#i({type:"failed",failureCount:s,error:u})},onPause:()=>{this.#i({type:"pause"})},onContinue:()=>{this.#i({type:"continue"})},retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:()=>!0}),this.#n.start()}#i(e){const t=n=>{switch(e.type){case"failed":return{...n,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,...Zj(n.data,this.options),fetchMeta:e.meta??null};case"success":return{...n,data:e.data,dataUpdateCount:n.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const r=e.error;return dS(r)&&r.revert&&this.#t?{...this.#t,fetchStatus:"idle"}:{...n,error:r,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:"idle",status:"error"};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...e.state}}};this.state=t(this.state),Ur.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),this.#r.notify({query:this,type:"updated",action:e})})}};function Zj(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Kj(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function zfe(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Ufe=class extends Ih{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){const r=t.queryKey,i=t.queryHash??I5(r,t);let o=this.get(i);return o||(o=new Bfe({cache:this,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(o)),o}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){Ur.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){const t={exact:!0,...e};return this.getAll().find(n=>tR(t,n))}findAll(e={}){const t=this.getAll();return Object.keys(e).length>0?t.filter(n=>tR(e,n)):t}notify(e){Ur.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){Ur.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){Ur.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Vfe=class extends Yj{#e;#t;#r;constructor(e){super(),this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#e=[],this.state=e.state||Xj(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#e.includes(e)||(this.#e.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#e=this.#e.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#t.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){this.#r=Gj({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(r,i)=>{this.#n({type:"failed",failureCount:r,error:i})},onPause:()=>{this.#n({type:"pause"})},onContinue:()=>{this.#n({type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});const t=this.state.status==="pending",n=!this.#r.canStart();try{if(!t){this.#n({type:"pending",variables:e,isPaused:n}),await this.#t.config.onMutate?.(e,this);const i=await this.options.onMutate?.(e);i!==this.state.context&&this.#n({type:"pending",context:i,variables:e,isPaused:n})}const r=await this.#r.start();return await this.#t.config.onSuccess?.(r,e,this.state.context,this),await this.options.onSuccess?.(r,e,this.state.context),await this.#t.config.onSettled?.(r,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(r,null,e,this.state.context),this.#n({type:"success",data:r}),r}catch(r){try{throw await this.#t.config.onError?.(r,e,this.state.context,this),await this.options.onError?.(r,e,this.state.context),await this.#t.config.onSettled?.(void 0,r,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,r,e,this.state.context),r}finally{this.#n({type:"error",error:r})}}finally{this.#t.runNext(this)}}#n(e){const t=n=>{switch(e.type){case"failed":return{...n,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"pending":return{...n,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...n,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:e.error,failureCount:n.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),Ur.batch(()=>{this.#e.forEach(n=>{n.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function Xj(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Wfe=class extends Ih{constructor(e={}){super(),this.config=e,this.#e=new Map,this.#t=Date.now()}#e;#t;build(e,t,n){const r=new Vfe({mutationCache:this,mutationId:++this.#t,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){const t=n1(e),n=this.#e.get(t)??[];n.push(e),this.#e.set(t,n),this.notify({type:"added",mutation:e})}remove(e){const t=n1(e);if(this.#e.has(t)){const n=this.#e.get(t)?.filter(r=>r!==e);n&&(n.length===0?this.#e.delete(t):this.#e.set(t,n))}this.notify({type:"removed",mutation:e})}canRun(e){const t=this.#e.get(n1(e))?.find(n=>n.state.status==="pending");return!t||t===e}runNext(e){return this.#e.get(n1(e))?.find(n=>n!==e&&n.state.isPaused)?.continue()??Promise.resolve()}clear(){Ur.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}getAll(){return[...this.#e.values()].flat()}find(e){const t={exact:!0,...e};return this.getAll().find(n=>nR(t,n))}findAll(e={}){return this.getAll().filter(t=>nR(e,t))}notify(e){Ur.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){const e=this.getAll().filter(t=>t.state.isPaused);return Ur.batch(()=>Promise.all(e.map(t=>t.continue().catch(oa))))}};function n1(e){return e.options.scope?.id??String(e.mutationId)}function oR(e){return{onFetch:(t,n)=>{const r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,o=t.state.data?.pages||[],a=t.state.data?.pageParams||[];let s={pages:[],pageParams:[]},u=0;const l=async()=>{let c=!1;const f=m=>{Object.defineProperty(m,"signal",{enumerable:!0,get:()=>(t.signal.aborted?c=!0:t.signal.addEventListener("abort",()=>{c=!0}),t.signal)})},h=Hj(t.options,t.fetchOptions),p=async(m,v,b)=>{if(c)return Promise.reject();if(v==null&&m.pages.length)return Promise.resolve(m);const w={queryKey:t.queryKey,pageParam:v,direction:b?"backward":"forward",meta:t.options.meta};f(w);const x=await h(w),{maxPages:S}=t.options,O=b?Ife:$fe;return{pages:O(m.pages,x,S),pageParams:O(m.pageParams,v,S)}};if(i&&o.length){const m=i==="backward",v=m?Hfe:aR,b={pages:o,pageParams:a},w=v(r,b);s=await p(b,w,m)}else{const m=e??o.length;do{const v=u===0?a[0]??r.initialPageParam:aR(r,s);if(u>0&&v==null)break;s=await p(s,v),u++}while(ut.options.persister?.(l,{queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function aR(e,{pages:t,pageParams:n}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Hfe(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var kYe=class{#e;#t;#r;#n;#a;#o;#i;#s;constructor(e={}){this.#e=e.queryCache||new Ufe,this.#t=e.mutationCache||new Wfe,this.#r=e.defaultOptions||{},this.#n=new Map,this.#a=new Map,this.#o=0}mount(){this.#o++,this.#o===1&&(this.#i=L5.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=Vy.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#o--,this.#o===0&&(this.#i?.(),this.#i=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(Od(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.defaultQueryOptions({queryKey:e}),o=this.#e.get(r.queryHash)?.state.data,a=Rfe(t,o);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return Ur.batch(()=>this.#e.findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){const t=this.#e;Ur.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=this.#e,r={type:"active",...e};return Ur.batch(()=>(n.findAll(e).forEach(i=>{i.reset()}),this.refetchQueries(r,t)))}cancelQueries(e,t={}){const n={revert:!0,...t},r=Ur.batch(()=>this.#e.findAll(e).map(i=>i.cancel(n)));return Promise.all(r).then(oa).catch(oa)}invalidateQueries(e,t={}){return Ur.batch(()=>{if(this.#e.findAll(e).forEach(r=>{r.invalidate()}),e?.refetchType==="none")return Promise.resolve();const n={...e,type:e?.refetchType??e?.type??"active"};return this.refetchQueries(n,t)})}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},r=Ur.batch(()=>this.#e.findAll(e).filter(i=>!i.isDisabled()).map(i=>{let o=i.fetch(void 0,n);return n.throwOnError||(o=o.catch(oa)),i.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(r).then(oa)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=this.#e.build(this,t);return n.isStaleByTime(Od(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(oa).catch(oa)}fetchInfiniteQuery(e){return e.behavior=oR(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(oa).catch(oa)}ensureInfiniteQueryData(e){return e.behavior=oR(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Vy.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#r}setDefaultOptions(e){this.#r=e}setQueryDefaults(e,t){this.#n.set(qc(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...this.#n.values()],n={};return t.forEach(r=>{eg(e,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(e,t){this.#a.set(qc(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...this.#a.values()];let n={};return t.forEach(r=>{eg(e,r.mutationKey)&&(n={...n,...r.defaultOptions})}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...this.#r.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=I5(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===N5&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#r.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},Kfe=class extends Ih{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#i=ZC(),this.options.experimental_prefetchInRender||this.#i.reject(new Error("experimental_prefetchInRender feature flag is not enabled")),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#r=void 0;#n=void 0;#a;#o;#i;#s;#g;#d;#h;#l;#c;#u;#p=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),sR(this.#t,this.options)?this.#f():this.updateResult(),this.#b())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return XC(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return XC(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#x(),this.#w(),this.#t.removeObserver(this)}setOptions(e,t){const n=this.options,r=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Na(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#_(),this.#t.setOptions(this.options),n._defaulted&&!Uy(this.options,n)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const i=this.hasListeners();i&&uR(this.#t,r,this.options,n)&&this.#f(),this.updateResult(t),i&&(this.#t!==r||Na(this.options.enabled,this.#t)!==Na(n.enabled,this.#t)||Od(this.options.staleTime,this.#t)!==Od(n.staleTime,this.#t))&&this.#m();const o=this.#v();i&&(this.#t!==r||Na(this.options.enabled,this.#t)!==Na(n.enabled,this.#t)||o!==this.#u)&&this.#y(o)}getOptimisticResult(e){const t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return Gfe(this,n)&&(this.#n=n,this.#o=this.options,this.#a=this.#t.state),n}getCurrentResult(){return this.#n}trackResult(e,t){const n={};return Object.keys(e).forEach(r=>{Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:()=>(this.trackProp(r),t?.(r),e[r])})}),n}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){const t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#f({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#n))}#f(e){this.#_();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(oa)),t}#m(){this.#x();const e=Od(this.options.staleTime,this.#t);if(Kc||this.#n.isStale||!qC(e))return;const n=Vj(this.#n.dataUpdatedAt,e)+1;this.#l=setTimeout(()=>{this.#n.isStale||this.updateResult()},n)}#v(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#y(e){this.#w(),this.#u=e,!(Kc||Na(this.options.enabled,this.#t)===!1||!qC(this.#u)||this.#u===0)&&(this.#c=setInterval(()=>{(this.options.refetchIntervalInBackground||L5.isFocused())&&this.#f()},this.#u))}#b(){this.#m(),this.#y(this.#v())}#x(){this.#l&&(clearTimeout(this.#l),this.#l=void 0)}#w(){this.#c&&(clearInterval(this.#c),this.#c=void 0)}createResult(e,t){const n=this.#t,r=this.options,i=this.#n,o=this.#a,a=this.#o,u=e!==n?e.state:this.#r,{state:l}=e;let c={...l},f=!1,h;if(t._optimisticResults){const k=this.hasListeners(),M=!k&&sR(e,t),L=k&&uR(e,n,t,r);(M||L)&&(c={...c,...Zj(l.data,e.options)}),t._optimisticResults==="isRestoring"&&(c.fetchStatus="idle")}let{error:p,errorUpdatedAt:m,status:v}=c;if(t.select&&c.data!==void 0)if(i&&c.data===o?.data&&t.select===this.#g)h=this.#d;else try{this.#g=t.select,h=t.select(c.data),h=YC(i?.data,h,t),this.#d=h,this.#s=null}catch(k){this.#s=k}else h=c.data;if(t.placeholderData!==void 0&&h===void 0&&v==="pending"){let k;if(i?.isPlaceholderData&&t.placeholderData===a?.placeholderData)k=i.data;else if(k=typeof t.placeholderData=="function"?t.placeholderData(this.#h?.state.data,this.#h):t.placeholderData,t.select&&k!==void 0)try{k=t.select(k),this.#s=null}catch(M){this.#s=M}k!==void 0&&(v="success",h=YC(i?.data,k,t),f=!0)}this.#s&&(p=this.#s,h=this.#d,m=Date.now(),v="error");const b=c.fetchStatus==="fetching",w=v==="pending",x=v==="error",S=w&&b,O=h!==void 0,C={status:v,fetchStatus:c.fetchStatus,isPending:w,isSuccess:v==="success",isError:x,isInitialLoading:S,isLoading:S,data:h,dataUpdatedAt:c.dataUpdatedAt,error:p,errorUpdatedAt:m,failureCount:c.fetchFailureCount,failureReason:c.fetchFailureReason,errorUpdateCount:c.errorUpdateCount,isFetched:c.dataUpdateCount>0||c.errorUpdateCount>0,isFetchedAfterMount:c.dataUpdateCount>u.dataUpdateCount||c.errorUpdateCount>u.errorUpdateCount,isFetching:b,isRefetching:b&&!w,isLoadingError:x&&!O,isPaused:c.fetchStatus==="paused",isPlaceholderData:f,isRefetchError:x&&O,isStale:F5(e,t),refetch:this.refetch,promise:this.#i};if(this.options.experimental_prefetchInRender){const k=U=>{C.status==="error"?U.reject(C.error):C.data!==void 0&&U.resolve(C.data)},M=()=>{const U=this.#i=C.promise=ZC();k(U)},L=this.#i;switch(L.status){case"pending":e.queryHash===n.queryHash&&k(L);break;case"fulfilled":(C.status==="error"||C.data!==L.value)&&M();break;case"rejected":(C.status!=="error"||C.error!==L.reason)&&M();break}}return C}updateResult(e){const t=this.#n,n=this.createResult(this.#t,this.options);if(this.#a=this.#t.state,this.#o=this.options,this.#a.data!==void 0&&(this.#h=this.#t),Uy(n,t))return;this.#n=n;const r={},i=()=>{if(!t)return!0;const{notifyOnChangeProps:o}=this.options,a=typeof o=="function"?o():o;if(a==="all"||!a&&!this.#p.size)return!0;const s=new Set(a??this.#p);return this.options.throwOnError&&s.add("error"),Object.keys(this.#n).some(u=>{const l=u;return this.#n[l]!==t[l]&&s.has(l)})};e?.listeners!==!1&&i()&&(r.listeners=!0),this.#S({...r,...e})}#_(){const e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;const t=this.#t;this.#t=e,this.#r=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#b()}#S(e){Ur.batch(()=>{e.listeners&&this.listeners.forEach(t=>{t(this.#n)}),this.#e.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function qfe(e,t){return Na(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function sR(e,t){return qfe(e,t)||e.state.data!==void 0&&XC(e,t,t.refetchOnMount)}function XC(e,t,n){if(Na(t.enabled,e)!==!1){const r=typeof n=="function"?n(e):n;return r==="always"||r!==!1&&F5(e,t)}return!1}function uR(e,t,n,r){return(e!==t||Na(r.enabled,e)===!1)&&(!n.suspense||e.state.status!=="error")&&F5(e,n)}function F5(e,t){return Na(t.enabled,e)!==!1&&e.isStaleByTime(Od(t.staleTime,e))}function Gfe(e,t){return!Uy(e.getCurrentResult(),t)}var Yfe=class extends Ih{#e;#t=void 0;#r;#n;constructor(t,n){super(),this.#e=t,this.setOptions(n),this.bindMethods(),this.#a()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){const n=this.options;this.options=this.#e.defaultMutationOptions(t),Uy(this.options,n)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),n?.mutationKey&&this.options.mutationKey&&qc(n.mutationKey)!==qc(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(t){this.#a(),this.#o(t)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#a(),this.#o()}mutate(t,n){return this.#n=n,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(t)}#a(){const t=this.#r?.state??Xj();this.#t={...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset}}#o(t){Ur.batch(()=>{if(this.#n&&this.hasListeners()){const n=this.#t.variables,r=this.#t.context;t?.type==="success"?(this.#n.onSuccess?.(t.data,n,r),this.#n.onSettled?.(t.data,null,n,r)):t?.type==="error"&&(this.#n.onError?.(t.error,n,r),this.#n.onSettled?.(void 0,t.error,n,r))}this.listeners.forEach(n=>{n(this.#t)})})}},Qj=y.createContext(void 0),Jj=e=>{const t=y.useContext(Qj);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},MYe=({client:e,children:t})=>(y.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),I.jsx(Qj.Provider,{value:e,children:t})),eB=y.createContext(!1),Zfe=()=>y.useContext(eB);eB.Provider;function Xfe(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Qfe=y.createContext(Xfe()),Jfe=()=>y.useContext(Qfe);function tB(e,t){return typeof e=="function"?e(...t):!!e}function QC(){}var ede=(e,t)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(t.isReset()||(e.retryOnMount=!1))},tde=e=>{y.useEffect(()=>{e.clearReset()},[e])},nde=({result:e,errorResetBoundary:t,throwOnError:n,query:r})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&tB(n,[e.error,r]),rde=e=>{e.suspense&&(e.staleTime===void 0&&(e.staleTime=1e3),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3)))},ide=(e,t)=>e.isLoading&&e.isFetching&&!t,ode=(e,t)=>e?.suspense&&t.isPending,lR=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function ade(e,t,n){const r=Jj(),i=Zfe(),o=Jfe(),a=r.defaultQueryOptions(e);r.getDefaultOptions().queries?._experimental_beforeQuery?.(a),a._optimisticResults=i?"isRestoring":"optimistic",rde(a),ede(a,o),tde(o);const s=!r.getQueryCache().get(a.queryHash),[u]=y.useState(()=>new t(r,a)),l=u.getOptimisticResult(a);if(y.useSyncExternalStore(y.useCallback(c=>{const f=i?QC:u.subscribe(Ur.batchCalls(c));return u.updateResult(),f},[u,i]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),y.useEffect(()=>{u.setOptions(a,{listeners:!1})},[a,u]),ode(a,l))throw lR(a,u,o);if(nde({result:l,errorResetBoundary:o,throwOnError:a.throwOnError,query:r.getQueryCache().get(a.queryHash)}))throw l.error;return r.getDefaultOptions().queries?._experimental_afterQuery?.(a,l),a.experimental_prefetchInRender&&!Kc&&ide(l,i)&&(s?lR(a,u,o):r.getQueryCache().get(a.queryHash)?.promise)?.catch(QC).finally(()=>{u.updateResult()}),a.notifyOnChangeProps?l:u.trackResult(l)}function RYe(e,t){return ade(e,Kfe)}function DYe(e,t){const n=Jj(),[r]=y.useState(()=>new Yfe(n,e));y.useEffect(()=>{r.setOptions(e)},[r,e]);const i=y.useSyncExternalStore(y.useCallback(a=>r.subscribe(Ur.batchCalls(a)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),o=y.useCallback((a,s)=>{r.mutate(a,s).catch(QC)},[r]);if(i.error&&tB(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:o,mutateAsync:i.mutate}}const It=e=>typeof e=="string",$p=()=>{let e,t;const n=new Promise((r,i)=>{e=r,t=i});return n.resolve=e,n.reject=t,n},cR=e=>e==null?"":""+e,sde=(e,t,n)=>{e.forEach(r=>{t[r]&&(n[r]=t[r])})},ude=/###/g,fR=e=>e&&e.indexOf("###")>-1?e.replace(ude,"."):e,dR=e=>!e||It(e),x0=(e,t,n)=>{const r=It(t)?t.split("."):t;let i=0;for(;i{const{obj:r,k:i}=x0(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let o=t[t.length-1],a=t.slice(0,t.length-1),s=x0(e,a,Object);for(;s.obj===void 0&&a.length;)o=`${a[a.length-1]}.${o}`,a=a.slice(0,a.length-1),s=x0(e,a,Object),s?.obj&&typeof s.obj[`${s.k}.${o}`]<"u"&&(s.obj=void 0);s.obj[`${s.k}.${o}`]=n},lde=(e,t,n,r)=>{const{obj:i,k:o}=x0(e,t,Object);i[o]=i[o]||[],i[o].push(n)},Wy=(e,t)=>{const{obj:n,k:r}=x0(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},cde=(e,t,n)=>{const r=Wy(e,n);return r!==void 0?r:Wy(t,n)},nB=(e,t,n)=>{for(const r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?It(e[r])||e[r]instanceof String||It(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):nB(e[r],t[r],n):e[r]=t[r]);return e},Bf=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var fde={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const dde=e=>It(e)?e.replace(/[&<>"'\/]/g,t=>fde[t]):e;class hde{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const r=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,r),this.regExpQueue.push(t),r}}const pde=[" ",",","?","!",";"],gde=new hde(20),mde=(e,t,n)=>{t=t||"",n=n||"";const r=pde.filter(a=>t.indexOf(a)<0&&n.indexOf(a)<0);if(r.length===0)return!0;const i=gde.getRegExp(`(${r.map(a=>a==="?"?"\\?":a).join("|")})`);let o=!i.test(e);if(!o){const a=e.indexOf(n);a>0&&!i.test(e.substring(0,a))&&(o=!0)}return o},JC=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;const r=t.split(n);let i=e;for(let o=0;o-1&&ue?.replace("_","-"),vde={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console?.[e]?.apply?.(console,t)}};let yde=class eE{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,n)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||vde,this.options=n,this.debug=n.debug}log(){for(var t=arguments.length,n=new Array(t),r=0;r{this.observers[r]||(this.observers[r]=new Map);const i=this.observers[r].get(n)||0;this.observers[r].set(n,i+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}emit(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i{let[s,u]=a;for(let l=0;l{let[s,u]=a;for(let l=0;l1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,a=i.ignoreJSONStructure!==void 0?i.ignoreJSONStructure:this.options.ignoreJSONStructure;let s;t.indexOf(".")>-1?s=t.split("."):(s=[t,n],r&&(Array.isArray(r)?s.push(...r):It(r)&&o?s.push(...r.split(o)):s.push(r)));const u=Wy(this.data,s);return!u&&!n&&!r&&t.indexOf(".")>-1&&(t=s[0],n=s[1],r=s.slice(2).join(".")),u||!a||!It(r)?u:JC(this.data?.[t]?.[n],r,o)}addResource(t,n,r,i){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const a=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator;let s=[t,n];r&&(s=s.concat(a?r.split(a):r)),t.indexOf(".")>-1&&(s=t.split("."),i=n,n=s[1]),this.addNamespaces(n),hR(this.data,s,i),o.silent||this.emit("added",t,n,r,i)}addResources(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const o in r)(It(r[o])||Array.isArray(r[o]))&&this.addResource(t,n,o,r[o],{silent:!0});i.silent||this.emit("added",t,n,r)}addResourceBundle(t,n,r,i,o){let a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},s=[t,n];t.indexOf(".")>-1&&(s=t.split("."),i=r,r=n,n=s[1]),this.addNamespaces(n);let u=Wy(this.data,s)||{};a.skipCopy||(r=JSON.parse(JSON.stringify(r))),i?nB(u,r,o):u={...u,...r},hR(this.data,s,u),a.silent||this.emit("added",t,n,r)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(i=>n[i]&&Object.keys(n[i]).length>0)}toJSON(){return this.data}}var rB={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(o=>{t=this.processors[o]?.process(t,n,r,i)??t}),t}};const gR={};class Ky extends Jx{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),sde(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=ms.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};return t==null?!1:this.resolve(t,n)?.res!==void 0}extractFromKey(t,n){let r=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");const i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let o=n.ns||this.options.defaultNS||[];const a=r&&t.indexOf(r)>-1,s=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!mde(t,r,i);if(a&&!s){const u=t.match(this.interpolator.nestingRegexp);if(u&&u.length>0)return{key:t,namespaces:It(o)?[o]:o};const l=t.split(r);(r!==i||r===i&&this.options.ns.indexOf(l[0])>-1)&&(o=l.shift()),t=l.join(i)}return{key:t,namespaces:It(o)?[o]:o}}translate(t,n,r){if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n={...n}),n||(n={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);const i=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,o=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:a,namespaces:s}=this.extractFromKey(t[t.length-1],n),u=s[s.length-1],l=n.lng||this.language,c=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(l?.toLowerCase()==="cimode"){if(c){const O=n.nsSeparator||this.options.nsSeparator;return i?{res:`${u}${O}${a}`,usedKey:a,exactUsedKey:a,usedLng:l,usedNS:u,usedParams:this.getUsedParamsDetails(n)}:`${u}${O}${a}`}return i?{res:a,usedKey:a,exactUsedKey:a,usedLng:l,usedNS:u,usedParams:this.getUsedParamsDetails(n)}:a}const f=this.resolve(t,n);let h=f?.res;const p=f?.usedKey||a,m=f?.exactUsedKey||a,v=Object.prototype.toString.apply(h),b=["[object Number]","[object Function]","[object RegExp]"],w=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,x=!this.i18nFormat||this.i18nFormat.handleAsObject,S=!It(h)&&typeof h!="boolean"&&typeof h!="number";if(x&&h&&S&&b.indexOf(v)<0&&!(It(w)&&Array.isArray(h))){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const O=this.options.returnedObjectHandler?this.options.returnedObjectHandler(p,h,{...n,ns:s}):`key '${a} (${this.language})' returned an object instead of string.`;return i?(f.res=O,f.usedParams=this.getUsedParamsDetails(n),f):O}if(o){const O=Array.isArray(h),E=O?[]:{},C=O?m:p;for(const k in h)if(Object.prototype.hasOwnProperty.call(h,k)){const M=`${C}${o}${k}`;E[k]=this.translate(M,{...n,joinArrays:!1,ns:s}),E[k]===M&&(E[k]=h[k])}h=E}}else if(x&&It(w)&&Array.isArray(h))h=h.join(w),h&&(h=this.extendTranslation(h,t,n,r));else{let O=!1,E=!1;const C=n.count!==void 0&&!It(n.count),k=Ky.hasDefaultValue(n),M=C?this.pluralResolver.getSuffix(l,n.count,n):"",L=n.ordinal&&C?this.pluralResolver.getSuffix(l,n.count,{ordinal:!1}):"",U=C&&!n.ordinal&&n.count===0,H=U&&n[`defaultValue${this.options.pluralSeparator}zero`]||n[`defaultValue${M}`]||n[`defaultValue${L}`]||n.defaultValue;!this.isValidLookup(h)&&k&&(O=!0,h=H),this.isValidLookup(h)||(E=!0,h=a);const ne=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&E?void 0:h,Z=k&&H!==h&&this.options.updateMissing;if(E||O||Z){if(this.logger.log(Z?"updateKey":"missingKey",l,u,a,Z?H:h),o){const j=this.resolve(a,{...n,keySeparator:!1});j&&j.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let G=[];const q=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&q&&q[0])for(let j=0;j{const oe=k&&Y!==h?Y:ne;this.options.missingKeyHandler?this.options.missingKeyHandler(j,u,K,oe,Z,n):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(j,u,K,oe,Z,n),this.emit("missingKey",j,u,K,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&C?G.forEach(j=>{const K=this.pluralResolver.getSuffixes(j,n);U&&n[`defaultValue${this.options.pluralSeparator}zero`]&&K.indexOf(`${this.options.pluralSeparator}zero`)<0&&K.push(`${this.options.pluralSeparator}zero`),K.forEach(Y=>{W([j],a+Y,n[`defaultValue${Y}`]||H)})}):W(G,a,H))}h=this.extendTranslation(h,t,n,f,r),E&&h===a&&this.options.appendNamespaceToMissingKey&&(h=`${u}:${a}`),(E||O)&&this.options.parseMissingKeyHandler&&(h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${u}:${a}`:a,O?h:void 0))}return i?(f.res=h,f.usedParams=this.getUsedParamsDetails(n),f):h}extendTranslation(t,n,r,i,o){var a=this;if(this.i18nFormat?.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const l=It(t)&&(r?.interpolation?.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let c;if(l){const h=t.match(this.interpolator.nestingRegexp);c=h&&h.length}let f=r.replace&&!It(r.replace)?r.replace:r;if(this.options.interpolation.defaultVariables&&(f={...this.options.interpolation.defaultVariables,...f}),t=this.interpolator.interpolate(t,f,r.lng||this.language||i.usedLng,r),l){const h=t.match(this.interpolator.nestingRegexp),p=h&&h.length;c1&&arguments[1]!==void 0?arguments[1]:{},r,i,o,a,s;return It(t)&&(t=[t]),t.forEach(u=>{if(this.isValidLookup(r))return;const l=this.extractFromKey(u,n),c=l.key;i=c;let f=l.namespaces;this.options.fallbackNS&&(f=f.concat(this.options.fallbackNS));const h=n.count!==void 0&&!It(n.count),p=h&&!n.ordinal&&n.count===0,m=n.context!==void 0&&(It(n.context)||typeof n.context=="number")&&n.context!=="",v=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);f.forEach(b=>{this.isValidLookup(r)||(s=b,!gR[`${v[0]}-${b}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(s)&&(gR[`${v[0]}-${b}`]=!0,this.logger.warn(`key "${i}" for languages "${v.join(", ")}" won't get resolved as namespace "${s}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),v.forEach(w=>{if(this.isValidLookup(r))return;a=w;const x=[c];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(x,c,w,b,n);else{let O;h&&(O=this.pluralResolver.getSuffix(w,n.count,n));const E=`${this.options.pluralSeparator}zero`,C=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(h&&(x.push(c+O),n.ordinal&&O.indexOf(C)===0&&x.push(c+O.replace(C,this.options.pluralSeparator)),p&&x.push(c+E)),m){const k=`${c}${this.options.contextSeparator}${n.context}`;x.push(k),h&&(x.push(k+O),n.ordinal&&O.indexOf(C)===0&&x.push(k+O.replace(C,this.options.pluralSeparator)),p&&x.push(k+E))}}let S;for(;S=x.pop();)this.isValidLookup(r)||(o=S,r=this.getResource(w,b,S,n))}))})}),{res:r,usedKey:i,exactUsedKey:o,usedLng:a,usedNS:s}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat?.getResource?this.i18nFormat.getResource(t,n,r,i):this.resourceStore.getResource(t,n,r,i)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=t.replace&&!It(t.replace);let i=r?t.replace:t;if(r&&typeof t.count<"u"&&(i.count=t.count),this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),!r){i={...i};for(const o of n)delete i[o]}return i}static hasDefaultValue(t){const n="defaultValue";for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&t[r]!==void 0)return!0;return!1}}class mR{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=ms.create("languageUtils")}getScriptPartFromCode(t){if(t=Hy(t),!t||t.indexOf("-")<0)return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=Hy(t),!t||t.indexOf("-")<0)return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(It(t)&&t.indexOf("-")>-1){let n;try{n=Intl.getCanonicalLocales(t)[0]}catch{}return n&&this.options.lowerCaseLng&&(n=n.toLowerCase()),n||(this.options.lowerCaseLng?t.toLowerCase():t)}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(r=>{if(n)return;const i=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(i))&&(n=i)}),!n&&this.options.supportedLngs&&t.forEach(r=>{if(n)return;const i=this.getLanguagePartFromCode(r);if(this.isSupportedCode(i))return n=i;n=this.options.supportedLngs.find(o=>{if(o===i)return o;if(!(o.indexOf("-")<0&&i.indexOf("-")<0)&&(o.indexOf("-")>0&&i.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===i||o.indexOf(i)===0&&i.length>1))return o})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),It(t)&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}toResolveHierarchy(t,n){const r=this.getFallbackCodes(n||this.options.fallbackLng||[],t),i=[],o=a=>{a&&(this.isSupportedCode(a)?i.push(a):this.logger.warn(`rejecting language code not found in supportedLngs: ${a}`))};return It(t)&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(t))):It(t)&&o(this.formatLanguageCode(t)),r.forEach(a=>{i.indexOf(a)<0&&o(this.formatLanguageCode(a))}),i}}const vR={zero:0,one:1,two:2,few:3,many:4,other:5},yR={select:e=>e===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class bde{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=n,this.logger=ms.create("pluralResolver"),this.pluralRulesCache={}}addRule(t,n){this.rules[t]=n}clearCache(){this.pluralRulesCache={}}getRule(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=Hy(t==="dev"?"en":t),i=n.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:r,type:i});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];let a;try{a=new Intl.PluralRules(r,{type:i})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),yR;if(!t.match(/-|_/))return yR;const u=this.languageUtils.getLanguagePartFromCode(t);a=this.getRule(u,n)}return this.pluralRulesCache[o]=a,a}needsPlural(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=this.getRule(t,n);return r||(r=this.getRule("dev",n)),r?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,r).map(i=>`${n}${i}`)}getSuffixes(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=this.getRule(t,n);return r||(r=this.getRule("dev",n)),r?r.resolvedOptions().pluralCategories.sort((i,o)=>vR[i]-vR[o]).map(i=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${i}`):[]}getSuffix(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const i=this.getRule(t,r);return i?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${i.select(n)}`:(this.logger.warn(`no plural rule found for: ${t}`),this.getSuffix("dev",n,r))}}const bR=function(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=cde(e,t,n);return!o&&i&&It(n)&&(o=JC(e,n,r),o===void 0&&(o=JC(t,n,r))),o},hS=e=>e.replace(/\$/g,"$$$$");class xde{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=ms.create("interpolator"),this.options=t,this.format=t?.interpolation?.format||(n=>n),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:r,useRawValueToEscape:i,prefix:o,prefixEscaped:a,suffix:s,suffixEscaped:u,formatSeparator:l,unescapeSuffix:c,unescapePrefix:f,nestingPrefix:h,nestingPrefixEscaped:p,nestingSuffix:m,nestingSuffixEscaped:v,nestingOptionsSeparator:b,maxReplaces:w,alwaysFormat:x}=t.interpolation;this.escape=n!==void 0?n:dde,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=i!==void 0?i:!1,this.prefix=o?Bf(o):a||"{{",this.suffix=s?Bf(s):u||"}}",this.formatSeparator=l||",",this.unescapePrefix=c?"":f||"-",this.unescapeSuffix=this.unescapePrefix?"":c||"",this.nestingPrefix=h?Bf(h):p||Bf("$t("),this.nestingSuffix=m?Bf(m):v||Bf(")"),this.nestingOptionsSeparator=b||",",this.maxReplaces=w||1e3,this.alwaysFormat=x!==void 0?x:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,r)=>n?.source===r?(n.lastIndex=0,n):new RegExp(r,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,n,r,i){let o,a,s;const u=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},l=p=>{if(p.indexOf(this.formatSeparator)<0){const w=bR(n,u,p,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(w,void 0,r,{...i,...n,interpolationkey:p}):w}const m=p.split(this.formatSeparator),v=m.shift().trim(),b=m.join(this.formatSeparator).trim();return this.format(bR(n,u,v,this.options.keySeparator,this.options.ignoreJSONStructure),b,r,{...i,...n,interpolationkey:v})};this.resetRegExp();const c=i?.missingInterpolationHandler||this.options.missingInterpolationHandler,f=i?.interpolation?.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:p=>hS(p)},{regex:this.regexp,safeValue:p=>this.escapeValue?hS(this.escape(p)):hS(p)}].forEach(p=>{for(s=0;o=p.regex.exec(t);){const m=o[1].trim();if(a=l(m),a===void 0)if(typeof c=="function"){const b=c(t,o,i);a=It(b)?b:""}else if(i&&Object.prototype.hasOwnProperty.call(i,m))a="";else if(f){a=o[0];continue}else this.logger.warn(`missed to pass in variable ${m} for interpolating ${t}`),a="";else!It(a)&&!this.useRawValueToEscape&&(a=cR(a));const v=p.safeValue(a);if(t=t.replace(o[0],v),f?(p.regex.lastIndex+=a.length,p.regex.lastIndex-=o[0].length):p.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),t}nest(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i,o,a;const s=(u,l)=>{const c=this.nestingOptionsSeparator;if(u.indexOf(c)<0)return u;const f=u.split(new RegExp(`${c}[ ]*{`));let h=`{${f[1]}`;u=f[0],h=this.interpolate(h,a);const p=h.match(/'/g),m=h.match(/"/g);((p?.length??0)%2===0&&!m||m.length%2!==0)&&(h=h.replace(/'/g,'"'));try{a=JSON.parse(h),l&&(a={...l,...a})}catch(v){return this.logger.warn(`failed parsing options string in nesting for key ${u}`,v),`${u}${c}${h}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,u};for(;i=this.nestingRegexp.exec(t);){let u=[];a={...r},a=a.replace&&!It(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let l=!1;if(i[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(i[1])){const c=i[1].split(this.formatSeparator).map(f=>f.trim());i[1]=c.shift(),u=c,l=!0}if(o=n(s.call(this,i[1].trim(),a),a),o&&i[0]===t&&!It(o))return o;It(o)||(o=cR(o)),o||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${t}`),o=""),l&&(o=u.reduce((c,f)=>this.format(c,f,r.lng,{...r,interpolationkey:i[1].trim()}),o.trim())),t=t.replace(i[0],o),this.regexp.lastIndex=0}return t}}const wde=e=>{let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const r=e.split("(");t=r[0].toLowerCase().trim();const i=r[1].substring(0,r[1].length-1);t==="currency"&&i.indexOf(":")<0?n.currency||(n.currency=i.trim()):t==="relativetime"&&i.indexOf(":")<0?n.range||(n.range=i.trim()):i.split(";").forEach(a=>{if(a){const[s,...u]=a.split(":"),l=u.join(":").trim().replace(/^'+|'+$/g,""),c=s.trim();n[c]||(n[c]=l),l==="false"&&(n[c]=!1),l==="true"&&(n[c]=!0),isNaN(l)||(n[c]=parseInt(l,10))}})}return{formatName:t,formatOptions:n}},zf=e=>{const t={};return(n,r,i)=>{let o=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(o={...o,[i.interpolationkey]:void 0});const a=r+JSON.stringify(o);let s=t[a];return s||(s=e(Hy(r),i),t[a]=s),s(n)}};class _de{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=ms.create("formatter"),this.options=t,this.formats={number:zf((n,r)=>{const i=new Intl.NumberFormat(n,{...r});return o=>i.format(o)}),currency:zf((n,r)=>{const i=new Intl.NumberFormat(n,{...r,style:"currency"});return o=>i.format(o)}),datetime:zf((n,r)=>{const i=new Intl.DateTimeFormat(n,{...r});return o=>i.format(o)}),relativetime:zf((n,r)=>{const i=new Intl.RelativeTimeFormat(n,{...r});return o=>i.format(o,r.range||"day")}),list:zf((n,r)=>{const i=new Intl.ListFormat(n,{...r});return o=>i.format(o)})},this.init(t)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=n.interpolation.formatSeparator||","}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=zf(n)}format(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=n.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&o[0].indexOf(")")<0&&o.find(s=>s.indexOf(")")>-1)){const s=o.findIndex(u=>u.indexOf(")")>-1);o[0]=[o[0],...o.splice(1,s)].join(this.formatSeparator)}return o.reduce((s,u)=>{const{formatName:l,formatOptions:c}=wde(u);if(this.formats[l]){let f=s;try{const h=i?.formatParams?.[i.interpolationkey]||{},p=h.locale||h.lng||i.locale||i.lng||r;f=this.formats[l](s,p,{...c,...i,...h})}catch(h){this.logger.warn(h)}return f}else this.logger.warn(`there was no format function for ${l}`);return s},t)}}const Sde=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class Cde extends Jx{constructor(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=n,this.services=r,this.languageUtils=r.languageUtils,this.options=i,this.logger=ms.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(r,i.backend,i)}queueLoad(t,n,r,i){const o={},a={},s={},u={};return t.forEach(l=>{let c=!0;n.forEach(f=>{const h=`${l}|${f}`;!r.reload&&this.store.hasResourceBundle(l,f)?this.state[h]=2:this.state[h]<0||(this.state[h]===1?a[h]===void 0&&(a[h]=!0):(this.state[h]=1,c=!1,a[h]===void 0&&(a[h]=!0),o[h]===void 0&&(o[h]=!0),u[f]===void 0&&(u[f]=!0)))}),c||(s[l]=!0)}),(Object.keys(o).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(o),pending:Object.keys(a),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(u)}}loaded(t,n,r){const i=t.split("|"),o=i[0],a=i[1];n&&this.emit("failedLoading",o,a,n),!n&&r&&this.store.addResourceBundle(o,a,r,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2,n&&r&&(this.state[t]=0);const s={};this.queue.forEach(u=>{lde(u.loaded,[o],a),Sde(u,t),n&&u.errors.push(n),u.pendingCount===0&&!u.done&&(Object.keys(u.loaded).forEach(l=>{s[l]||(s[l]={});const c=u.loaded[l];c.length&&c.forEach(f=>{s[l][f]===void 0&&(s[l][f]=!0)})}),u.done=!0,u.errors.length?u.callback(u.errors):u.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(u=>!u.done)}read(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,a=arguments.length>5?arguments[5]:void 0;if(!t.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:r,tried:i,wait:o,callback:a});return}this.readingCalls++;const s=(l,c)=>{if(this.readingCalls--,this.waitingReads.length>0){const f=this.waitingReads.shift();this.read(f.lng,f.ns,f.fcName,f.tried,f.wait,f.callback)}if(l&&c&&i{this.read.call(this,t,n,r,i+1,o*2,a)},o);return}a(l,c)},u=this.backend[r].bind(this.backend);if(u.length===2){try{const l=u(t,n);l&&typeof l.then=="function"?l.then(c=>s(null,c)).catch(s):s(null,l)}catch(l){s(l)}return}return u(t,n,s)}prepareLoading(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();It(t)&&(t=this.languageUtils.toResolveHierarchy(t)),It(n)&&(n=[n]);const o=this.queueLoad(t,n,r,i);if(!o.toLoad.length)return o.pending.length||i(),null;o.toLoad.forEach(a=>{this.loadOne(a)})}load(t,n,r){this.prepareLoading(t,n,{},r)}reload(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}loadOne(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const r=t.split("|"),i=r[0],o=r[1];this.read(i,o,"read",void 0,void 0,(a,s)=>{a&&this.logger.warn(`${n}loading namespace ${o} for language ${i} failed`,a),!a&&s&&this.logger.log(`${n}loaded namespace ${o} for language ${i}`,s),this.loaded(t,a,s)})}saveMissing(t,n,r,i,o){let a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${r}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if(this.backend?.create){const u={...a,isUpdate:o},l=this.backend.create.bind(this.backend);if(l.length<6)try{let c;l.length===5?c=l(t,n,r,i,u):c=l(t,n,r,i),c&&typeof c.then=="function"?c.then(f=>s(null,f)).catch(s):s(null,c)}catch(c){s(c)}else l(t,n,r,i,s,u)}!t||!t[0]||this.store.addResource(t[0],n,r,i)}}}const xR=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),It(e[1])&&(t.defaultValue=e[1]),It(e[2])&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const n=e[3]||e[2];Object.keys(n).forEach(r=>{t[r]=n[r]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),wR=e=>(It(e.ns)&&(e.ns=[e.ns]),It(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),It(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),typeof e.initImmediate=="boolean"&&(e.initAsync=e.initImmediate),e),r1=()=>{},Ede=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})};let iB=class tE extends Jx{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(super(),this.options=wR(t),this.services={},this.logger=ms,this.modules={external:[]},Ede(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initAsync)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(){var t=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof n=="function"&&(r=n,n={}),n.defaultNS==null&&n.ns&&(It(n.ns)?n.defaultNS=n.ns:n.ns.indexOf("translation")<0&&(n.defaultNS=n.ns[0]));const i=xR();this.options={...i,...this.options,...wR(n)},this.options.interpolation={...i.interpolation,...this.options.interpolation},n.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=n.keySeparator),n.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=n.nsSeparator);const o=c=>c?typeof c=="function"?new c:c:null;if(!this.options.isClone){this.modules.logger?ms.init(o(this.modules.logger),this.options):ms.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:c=_de;const f=new mR(this.options);this.store=new pR(this.options.resources,this.options);const h=this.services;h.logger=ms,h.resourceStore=this.store,h.languageUtils=f,h.pluralResolver=new bde(f,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),c&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(h.formatter=o(c),h.formatter.init(h,this.options),this.options.interpolation.format=h.formatter.format.bind(h.formatter)),h.interpolator=new xde(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new Cde(o(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on("*",function(p){for(var m=arguments.length,v=new Array(m>1?m-1:0),b=1;b1?m-1:0),b=1;b{p.init&&p.init(this)})}if(this.format=this.options.interpolation.format,r||(r=r1),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!=="dev"&&(this.options.lng=c[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(c=>{this[c]=function(){return t.store[c](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(c=>{this[c]=function(){return t.store[c](...arguments),t}});const u=$p(),l=()=>{const c=(f,h)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),u.resolve(h),r(f,h)};if(this.languages&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initAsync?l():setTimeout(l,0),u}loadResources(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:r1;const i=It(t)?t:this.language;if(typeof t=="function"&&(r=t),!this.options.resources||this.options.partialBundledLanguages){if(i?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();const o=[],a=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(l=>{l!=="cimode"&&o.indexOf(l)<0&&o.push(l)})};i?a(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(u=>a(u)),this.options.preload?.forEach?.(s=>a(s)),this.services.backendConnector.load(o,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(s)})}else r(null)}reloadResources(t,n,r){const i=$p();return typeof t=="function"&&(r=t,t=void 0),typeof n=="function"&&(r=n,n=void 0),t||(t=this.languages),n||(n=this.options.ns),r||(r=r1),this.services.backendConnector.reload(t,n,o=>{i.resolve(),r(o)}),i}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&rB.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let n=0;n-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}}changeLanguage(t,n){var r=this;this.isLanguageChangingTo=t;const i=$p();this.emit("languageChanging",t);const o=u=>{this.language=u,this.languages=this.services.languageUtils.toResolveHierarchy(u),this.resolvedLanguage=void 0,this.setResolvedLanguage(u)},a=(u,l)=>{l?(o(l),this.translator.changeLanguage(l),this.isLanguageChangingTo=void 0,this.emit("languageChanged",l),this.logger.log("languageChanged",l)):this.isLanguageChangingTo=void 0,i.resolve(function(){return r.t(...arguments)}),n&&n(u,function(){return r.t(...arguments)})},s=u=>{!t&&!u&&this.services.languageDetector&&(u=[]);const l=It(u)?u:this.services.languageUtils.getBestMatchFromCodes(u);l&&(this.language||o(l),this.translator.language||this.translator.changeLanguage(l),this.services.languageDetector?.cacheUserLanguage?.(l)),this.loadResources(l,c=>{a(c,l)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(t),i}getFixedT(t,n,r){var i=this;const o=function(a,s){let u;if(typeof s!="object"){for(var l=arguments.length,c=new Array(l>2?l-2:0),f=2;f`${u.keyPrefix}${h}${m}`):p=u.keyPrefix?`${u.keyPrefix}${h}${a}`:a,i.t(p,u)};return It(t)?o.lng=t:o.lngs=t,o.ns=n,o.keyPrefix=r,o}t(){for(var t=arguments.length,n=new Array(t),r=0;r1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=n.lng||this.resolvedLanguage||this.languages[0],i=this.options?this.options.fallbackLng:!1,o=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const a=(s,u)=>{const l=this.services.backendConnector.state[`${s}|${u}`];return l===-1||l===0||l===2};if(n.precheck){const s=n.precheck(this,a);if(s!==void 0)return s}return!!(this.hasResourceBundle(r,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(r,t)&&(!i||a(o,t)))}loadNamespaces(t,n){const r=$p();return this.options.ns?(It(t)&&(t=[t]),t.forEach(i=>{this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}),this.loadResources(i=>{r.resolve(),n&&n(i)}),r):(n&&n(),Promise.resolve())}loadLanguages(t,n){const r=$p();It(t)&&(t=[t]);const i=this.options.preload||[],o=t.filter(a=>i.indexOf(a)<0&&this.services.languageUtils.isSupportedCode(a));return o.length?(this.options.preload=i.concat(o),this.loadResources(a=>{r.resolve(),n&&n(a)}),r):(n&&n(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!t)return"rtl";const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=this.services?.languageUtils||new mR(xR());return n.indexOf(r.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new tE(t,n)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:r1;const r=t.forkResourceStore;r&&delete t.forkResourceStore;const i={...this.options,...t,isClone:!0},o=new tE(i);if((t.debug!==void 0||t.prefix!==void 0)&&(o.logger=o.logger.clone(t)),["store","services","language"].forEach(s=>{o[s]=this[s]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},r){const s=Object.keys(this.store.data).reduce((u,l)=>(u[l]={...this.store.data[l]},Object.keys(u[l]).reduce((c,f)=>(c[f]={...u[l][f]},c),{})),{});o.store=new pR(s,i),o.services.resourceStore=o.store}return o.translator=new Ky(o.services,i),o.translator.on("*",function(s){for(var u=arguments.length,l=new Array(u>1?u-1:0),c=1;c{const i=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,"warn","react-i18next::",!0);Mc(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)},_R={},nE=(e,t,n,r)=>{Mc(n)&&_R[n]||(Mc(n)&&(_R[n]=new Date),Ode(e,t,n,r))},oB=(e,t)=>()=>{if(e.isInitialized)t();else{const n=()=>{setTimeout(()=>{e.off("initialized",n)},0),t()};e.on("initialized",n)}},rE=(e,t,n)=>{e.loadNamespaces(t,oB(e,n))},SR=(e,t,n,r)=>{if(Mc(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return rE(e,n,r);n.forEach(i=>{e.options.ns.indexOf(i)<0&&e.options.ns.push(i)}),e.loadLanguages(t,oB(e,r))},Ade=(e,t,n={})=>!t.languages||!t.languages.length?(nE(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(r,i)=>{if(n.bindI18n?.indexOf("languageChanging")>-1&&r.services.backendConnector.backend&&r.isLanguageChangingTo&&!i(r.isLanguageChangingTo,e))return!1}}),Mc=e=>typeof e=="string",Pde=e=>typeof e=="object"&&e!==null,kde=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Tde={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},Mde=e=>Tde[e],Rde=e=>e.replace(kde,Mde);let iE={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:Rde};const Dde=(e={})=>{iE={...iE,...e}},$de=()=>iE;let aB;const Ide=e=>{aB=e},Nde=()=>aB,IYe={type:"3rdParty",init(e){Dde(e.options.react),Ide(e)}},Lde=y.createContext();class Fde{constructor(){this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}const jde=(e,t)=>{const n=y.useRef();return y.useEffect(()=>{n.current=e},[e,t]),n.current},sB=(e,t,n,r)=>e.getFixedT(t,n,r),Bde=(e,t,n,r)=>y.useCallback(sB(e,t,n,r),[e,t,n,r]),NYe=(e,t={})=>{const{i18n:n}=t,{i18n:r,defaultNS:i}=y.useContext(Lde)||{},o=n||r||Nde();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new Fde),!o){nE(o,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const O=(C,k)=>Mc(k)?k:Pde(k)&&Mc(k.defaultValue)?k.defaultValue:Array.isArray(C)?C[C.length-1]:C,E=[O,{},!1];return E.t=O,E.i18n={},E.ready=!1,E}o.options.react?.wait&&nE(o,"DEPRECATED_OPTION","useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const a={...$de(),...o.options.react,...t},{useSuspense:s,keyPrefix:u}=a;let l=e||i||o.options?.defaultNS;l=Mc(l)?[l]:l||["translation"],o.reportNamespaces.addUsedNamespaces?.(l);const c=(o.isInitialized||o.initializedStoreOnce)&&l.every(O=>Ade(O,o,a)),f=Bde(o,t.lng||null,a.nsMode==="fallback"?l:l[0],u),h=()=>f,p=()=>sB(o,t.lng||null,a.nsMode==="fallback"?l:l[0],u),[m,v]=y.useState(h);let b=l.join();t.lng&&(b=`${t.lng}${b}`);const w=jde(b),x=y.useRef(!0);y.useEffect(()=>{const{bindI18n:O,bindI18nStore:E}=a;x.current=!0,!c&&!s&&(t.lng?SR(o,t.lng,l,()=>{x.current&&v(p)}):rE(o,l,()=>{x.current&&v(p)})),c&&w&&w!==b&&x.current&&v(p);const C=()=>{x.current&&v(p)};return O&&o?.on(O,C),E&&o?.store.on(E,C),()=>{x.current=!1,o&&O?.split(" ").forEach(k=>o.off(k,C)),E&&o&&E.split(" ").forEach(k=>o.store.off(k,C))}},[o,b]),y.useEffect(()=>{x.current&&c&&v(h)},[o,u,c]);const S=[m,o,c];if(S.t=m,S.i18n=o,S.ready=c,c||!c&&!s)return S;throw new Promise(O=>{t.lng?SR(o,t.lng,l,()=>O()):rE(o,l,()=>O())})},{slice:zde,forEach:Ude}=[];function Vde(e){return Ude.call(zde.call(arguments,1),t=>{if(t)for(const n in t)e[n]===void 0&&(e[n]=t[n])}),e}const CR=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Wde=function(e,t){const r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},i=encodeURIComponent(t);let o=`${e}=${i}`;if(r.maxAge>0){const a=r.maxAge-0;if(Number.isNaN(a))throw new Error("maxAge should be a Number");o+=`; Max-Age=${Math.floor(a)}`}if(r.domain){if(!CR.test(r.domain))throw new TypeError("option domain is invalid");o+=`; Domain=${r.domain}`}if(r.path){if(!CR.test(r.path))throw new TypeError("option path is invalid");o+=`; Path=${r.path}`}if(r.expires){if(typeof r.expires.toUTCString!="function")throw new TypeError("option expires is invalid");o+=`; Expires=${r.expires.toUTCString()}`}if(r.httpOnly&&(o+="; HttpOnly"),r.secure&&(o+="; Secure"),r.sameSite)switch(typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return o},ER={create(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};n&&(i.expires=new Date,i.expires.setTime(i.expires.getTime()+n*60*1e3)),r&&(i.domain=r),document.cookie=Wde(e,encodeURIComponent(t),i)},read(e){const t=`${e}=`,n=document.cookie.split(";");for(let r=0;r-1&&(r=window.location.hash.substring(window.location.hash.indexOf("?")));const o=r.substring(1).split("&");for(let a=0;a0&&o[a].substring(0,s)===t&&(n=o[a].substring(s+1))}}return n}};let Ip=null;const OR=()=>{if(Ip!==null)return Ip;try{Ip=window!=="undefined"&&window.localStorage!==null;const e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch{Ip=!1}return Ip};var qde={name:"localStorage",lookup(e){let{lookupLocalStorage:t}=e;if(t&&OR())return window.localStorage.getItem(t)||void 0},cacheUserLanguage(e,t){let{lookupLocalStorage:n}=t;n&&OR()&&window.localStorage.setItem(n,e)}};let Np=null;const AR=()=>{if(Np!==null)return Np;try{Np=window!=="undefined"&&window.sessionStorage!==null;const e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch{Np=!1}return Np};var Gde={name:"sessionStorage",lookup(e){let{lookupSessionStorage:t}=e;if(t&&AR())return window.sessionStorage.getItem(t)||void 0},cacheUserLanguage(e,t){let{lookupSessionStorage:n}=t;n&&AR()&&window.sessionStorage.setItem(n,e)}},Yde={name:"navigator",lookup(e){const t=[];if(typeof navigator<"u"){const{languages:n,userLanguage:r,language:i}=navigator;if(n)for(let o=0;o0?t:void 0}},Zde={name:"htmlTag",lookup(e){let{htmlTag:t}=e,n;const r=t||(typeof document<"u"?document.documentElement:null);return r&&typeof r.getAttribute=="function"&&(n=r.getAttribute("lang")),n}},Xde={name:"path",lookup(e){let{lookupFromPathIndex:t}=e;if(typeof window>"u")return;const n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(n)?n[typeof t=="number"?t:0]?.replace("/",""):void 0}},Qde={name:"subdomain",lookup(e){let{lookupFromSubdomainIndex:t}=e;const n=typeof t=="number"?t+1:1,r=typeof window<"u"&&window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(r)return r[n]}};let uB=!1;try{document.cookie,uB=!0}catch{}const lB=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];uB||lB.splice(1,1);const Jde=()=>({order:lB,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:e=>e});class ehe{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(t,n)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=t,this.options=Vde(n,this.options||{},Jde()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=i=>i.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=r,this.addDetector(Hde),this.addDetector(Kde),this.addDetector(qde),this.addDetector(Gde),this.addDetector(Yde),this.addDetector(Zde),this.addDetector(Xde),this.addDetector(Qde)}addDetector(t){return this.detectors[t.name]=t,this}detect(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,n=[];return t.forEach(r=>{if(this.detectors[r]){let i=this.detectors[r].lookup(this.options);i&&typeof i=="string"&&(i=[i]),i&&(n=n.concat(i))}}),n=n.map(r=>this.options.convertDetectedLanguage(r)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}cacheUserLanguage(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;n&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(t)>-1||n.forEach(r=>{this.detectors[r]&&this.detectors[r].cacheUserLanguage(t,this.options)}))}}ehe.type="languageDetector";var xm=e=>e.type==="checkbox",_c=e=>e instanceof Date,zi=e=>e==null;const cB=e=>typeof e=="object";var Or=e=>!zi(e)&&!Array.isArray(e)&&cB(e)&&!_c(e),fB=e=>Or(e)&&e.target?xm(e.target)?e.target.checked:e.target.value:e,the=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,dB=(e,t)=>e.has(the(t)),nhe=e=>{const t=e.constructor&&e.constructor.prototype;return Or(t)&&t.hasOwnProperty("isPrototypeOf")},j5=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function no(e){let t;const n=Array.isArray(e),r=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set(e);else if(!(j5&&(e instanceof Blob||r))&&(n||Or(e)))if(t=n?[]:{},!n&&!nhe(e))t=e;else for(const i in e)e.hasOwnProperty(i)&&(t[i]=no(e[i]));else return e;return t}var e2=e=>Array.isArray(e)?e.filter(Boolean):[],Sr=e=>e===void 0,Ze=(e,t,n)=>{if(!t||!Or(e))return n;const r=e2(t.split(/[,[\].]+?/)).reduce((i,o)=>zi(i)?i:i[o],e);return Sr(r)||r===e?Sr(e[t])?n:e[t]:r},aa=e=>typeof e=="boolean",B5=e=>/^\w*$/.test(e),hB=e=>e2(e.replace(/["|']|\]/g,"").split(/\.|\[/)),An=(e,t,n)=>{let r=-1;const i=B5(t)?[t]:hB(t),o=i.length,a=o-1;for(;++rF.useContext(pB),LYe=e=>{const{children:t,...n}=e;return F.createElement(pB.Provider,{value:n},t)};var gB=(e,t,n,r=!0)=>{const i={defaultValues:t._defaultValues};for(const o in e)Object.defineProperty(i,o,{get:()=>{const a=o;return t._proxyFormState[a]!==ja.all&&(t._proxyFormState[a]=!r||ja.all),n&&(n[a]=!0),e[a]}});return i},io=e=>Or(e)&&!Object.keys(e).length,mB=(e,t,n,r)=>{n(e);const{name:i,...o}=e;return io(o)||Object.keys(o).length>=Object.keys(t).length||Object.keys(o).find(a=>t[a]===(!r||ja.all))},w0=e=>Array.isArray(e)?e:[e],vB=(e,t,n)=>!e||!t||e===t||w0(e).some(r=>r&&(n?r===t:r.startsWith(t)||t.startsWith(r)));function U5(e){const t=F.useRef(e);t.current=e,F.useEffect(()=>{const n=!e.disabled&&t.current.subject&&t.current.subject.subscribe({next:t.current.next});return()=>{n&&n.unsubscribe()}},[e.disabled])}function rhe(e){const t=z5(),{control:n=t.control,disabled:r,name:i,exact:o}=e,[a,s]=F.useState(n._formState),u=F.useRef(!0),l=F.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1}),c=F.useRef(i);return c.current=i,U5({disabled:r,next:f=>u.current&&vB(c.current,f.name,o)&&mB(f,l.current,n._updateFormState)&&s({...n._formState,...f}),subject:n._subjects.state}),F.useEffect(()=>(u.current=!0,l.current.isValid&&n._updateValid(!0),()=>{u.current=!1}),[n]),F.useMemo(()=>gB(a,n,l.current,!1),[a,n])}var vs=e=>typeof e=="string",yB=(e,t,n,r,i)=>vs(e)?(r&&t.watch.add(e),Ze(n,e,i)):Array.isArray(e)?e.map(o=>(r&&t.watch.add(o),Ze(n,o))):(r&&(t.watchAll=!0),n);function ihe(e){const t=z5(),{control:n=t.control,name:r,defaultValue:i,disabled:o,exact:a}=e,s=F.useRef(r);s.current=r,U5({disabled:o,subject:n._subjects.values,next:c=>{vB(s.current,c.name,a)&&l(no(yB(s.current,n._names,c.values||n._formValues,!1,i)))}});const[u,l]=F.useState(n._getWatch(r,i));return F.useEffect(()=>n._removeUnmounted()),u}function ohe(e){const t=z5(),{name:n,disabled:r,control:i=t.control,shouldUnregister:o}=e,a=dB(i._names.array,n),s=ihe({control:i,name:n,defaultValue:Ze(i._formValues,n,Ze(i._defaultValues,n,e.defaultValue)),exact:!0}),u=rhe({control:i,name:n,exact:!0}),l=F.useRef(i.register(n,{...e.rules,value:s,...aa(e.disabled)?{disabled:e.disabled}:{}})),c=F.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!Ze(u.errors,n)},isDirty:{enumerable:!0,get:()=>!!Ze(u.dirtyFields,n)},isTouched:{enumerable:!0,get:()=>!!Ze(u.touchedFields,n)},isValidating:{enumerable:!0,get:()=>!!Ze(u.validatingFields,n)},error:{enumerable:!0,get:()=>Ze(u.errors,n)}}),[u,n]),f=F.useMemo(()=>({name:n,value:s,...aa(r)||u.disabled?{disabled:u.disabled||r}:{},onChange:h=>l.current.onChange({target:{value:fB(h),name:n},type:qy.CHANGE}),onBlur:()=>l.current.onBlur({target:{value:Ze(i._formValues,n),name:n},type:qy.BLUR}),ref:h=>{const p=Ze(i._fields,n);p&&h&&(p._f.ref={focus:()=>h.focus(),select:()=>h.select(),setCustomValidity:m=>h.setCustomValidity(m),reportValidity:()=>h.reportValidity()})}}),[n,i._formValues,r,u.disabled,s,i._fields]);return F.useEffect(()=>{const h=i._options.shouldUnregister||o,p=(m,v)=>{const b=Ze(i._fields,m);b&&b._f&&(b._f.mount=v)};if(p(n,!0),h){const m=no(Ze(i._options.defaultValues,n));An(i._defaultValues,n,m),Sr(Ze(i._formValues,n))&&An(i._formValues,n,m)}return!a&&i.register(n),()=>{(a?h&&!i._state.action:h)?i.unregister(n):p(n,!1)}},[n,i,a,o]),F.useEffect(()=>{i._updateDisabledField({disabled:r,fields:i._fields,name:n})},[r,n,i]),F.useMemo(()=>({field:f,formState:u,fieldState:c}),[f,u,c])}const FYe=e=>e.render(ohe(e));var bB=(e,t,n,r,i)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:i||!0}}:{},PR=e=>({isOnSubmit:!e||e===ja.onSubmit,isOnBlur:e===ja.onBlur,isOnChange:e===ja.onChange,isOnAll:e===ja.all,isOnTouch:e===ja.onTouched}),kR=(e,t,n)=>!n&&(t.watchAll||t.watch.has(e)||[...t.watch].some(r=>e.startsWith(r)&&/^\.\w+/.test(e.slice(r.length))));const _0=(e,t,n,r)=>{for(const i of n||Object.keys(e)){const o=Ze(e,i);if(o){const{_f:a,...s}=o;if(a){if(a.refs&&a.refs[0]&&t(a.refs[0],i)&&!r)return!0;if(a.ref&&t(a.ref,a.name)&&!r)return!0;if(_0(s,t))break}else if(Or(s)&&_0(s,t))break}}};var ahe=(e,t,n)=>{const r=w0(Ze(e,n));return An(r,"root",t[n]),An(e,n,r),e},V5=e=>e.type==="file",hs=e=>typeof e=="function",Gy=e=>{if(!j5)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},X1=e=>vs(e),W5=e=>e.type==="radio",Yy=e=>e instanceof RegExp;const TR={value:!1,isValid:!1},MR={value:!0,isValid:!0};var xB=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(n=>n&&n.checked&&!n.disabled).map(n=>n.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!Sr(e[0].attributes.value)?Sr(e[0].value)||e[0].value===""?MR:{value:e[0].value,isValid:!0}:MR:TR}return TR};const RR={isValid:!1,value:null};var wB=e=>Array.isArray(e)?e.reduce((t,n)=>n&&n.checked&&!n.disabled?{isValid:!0,value:n.value}:t,RR):RR;function DR(e,t,n="validate"){if(X1(e)||Array.isArray(e)&&e.every(X1)||aa(e)&&!e)return{type:n,message:X1(e)?e:"",ref:t}}var Uf=e=>Or(e)&&!Yy(e)?e:{value:e,message:""},$R=async(e,t,n,r,i,o)=>{const{ref:a,refs:s,required:u,maxLength:l,minLength:c,min:f,max:h,pattern:p,validate:m,name:v,valueAsNumber:b,mount:w}=e._f,x=Ze(n,v);if(!w||t.has(v))return{};const S=s?s[0]:a,O=V=>{i&&S.reportValidity&&(S.setCustomValidity(aa(V)?"":V||""),S.reportValidity())},E={},C=W5(a),k=xm(a),M=C||k,L=(b||V5(a))&&Sr(a.value)&&Sr(x)||Gy(a)&&a.value===""||x===""||Array.isArray(x)&&!x.length,U=bB.bind(null,v,r,E),H=(V,ne,Z,G=qs.maxLength,q=qs.minLength)=>{const W=V?ne:Z;E[v]={type:V?G:q,message:W,ref:a,...U(V?G:q,W)}};if(o?!Array.isArray(x)||!x.length:u&&(!M&&(L||zi(x))||aa(x)&&!x||k&&!xB(s).isValid||C&&!wB(s).isValid)){const{value:V,message:ne}=X1(u)?{value:!!u,message:u}:Uf(u);if(V&&(E[v]={type:qs.required,message:ne,ref:S,...U(qs.required,ne)},!r))return O(ne),E}if(!L&&(!zi(f)||!zi(h))){let V,ne;const Z=Uf(h),G=Uf(f);if(!zi(x)&&!isNaN(x)){const q=a.valueAsNumber||x&&+x;zi(Z.value)||(V=q>Z.value),zi(G.value)||(ne=qnew Date(new Date().toDateString()+" "+Y),j=a.type=="time",K=a.type=="week";vs(Z.value)&&x&&(V=j?W(x)>W(Z.value):K?x>Z.value:q>new Date(Z.value)),vs(G.value)&&x&&(ne=j?W(x)+V.value,G=!zi(ne.value)&&x.length<+ne.value;if((Z||G)&&(H(Z,V.message,ne.message),!r))return O(E[v].message),E}if(p&&!L&&vs(x)){const{value:V,message:ne}=Uf(p);if(Yy(V)&&!x.match(V)&&(E[v]={type:qs.pattern,message:ne,ref:a,...U(qs.pattern,ne)},!r))return O(ne),E}if(m){if(hs(m)){const V=await m(x,n),ne=DR(V,S);if(ne&&(E[v]={...ne,...U(qs.validate,ne.message)},!r))return O(ne.message),E}else if(Or(m)){let V={};for(const ne in m){if(!io(V)&&!r)break;const Z=DR(await m[ne](x,n),S,ne);Z&&(V={...Z,...U(ne,Z.message)},O(Z.message),r&&(E[v]=V))}if(!io(V)&&(E[v]={ref:S,...V},!r))return E}}return O(!0),E};function she(e,t){const n=t.slice(0,-1).length;let r=0;for(;r{let e=[];return{get observers(){return e},next:i=>{for(const o of e)o.next&&o.next(i)},subscribe:i=>(e.push(i),{unsubscribe:()=>{e=e.filter(o=>o!==i)}}),unsubscribe:()=>{e=[]}}},oE=e=>zi(e)||!cB(e);function nl(e,t){if(oE(e)||oE(t))return e===t;if(_c(e)&&_c(t))return e.getTime()===t.getTime();const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(const i of n){const o=e[i];if(!r.includes(i))return!1;if(i!=="ref"){const a=t[i];if(_c(o)&&_c(a)||Or(o)&&Or(a)||Array.isArray(o)&&Array.isArray(a)?!nl(o,a):o!==a)return!1}}return!0}var _B=e=>e.type==="select-multiple",lhe=e=>W5(e)||xm(e),gS=e=>Gy(e)&&e.isConnected,SB=e=>{for(const t in e)if(hs(e[t]))return!0;return!1};function Zy(e,t={}){const n=Array.isArray(e);if(Or(e)||n)for(const r in e)Array.isArray(e[r])||Or(e[r])&&!SB(e[r])?(t[r]=Array.isArray(e[r])?[]:{},Zy(e[r],t[r])):zi(e[r])||(t[r]=!0);return t}function CB(e,t,n){const r=Array.isArray(e);if(Or(e)||r)for(const i in e)Array.isArray(e[i])||Or(e[i])&&!SB(e[i])?Sr(t)||oE(n[i])?n[i]=Array.isArray(e[i])?Zy(e[i],[]):{...Zy(e[i])}:CB(e[i],zi(t)?{}:t[i],n[i]):n[i]=!nl(e[i],t[i]);return n}var Lp=(e,t)=>CB(e,t,Zy(t)),EB=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>Sr(e)?e:t?e===""?NaN:e&&+e:n&&vs(e)?new Date(e):r?r(e):e;function mS(e){const t=e.ref;return V5(t)?t.files:W5(t)?wB(e.refs).value:_B(t)?[...t.selectedOptions].map(({value:n})=>n):xm(t)?xB(e.refs).value:EB(Sr(t.value)?e.ref.value:t.value,e)}var che=(e,t,n,r)=>{const i={};for(const o of e){const a=Ze(t,o);a&&An(i,o,a._f)}return{criteriaMode:n,names:[...e],fields:i,shouldUseNativeValidation:r}},Fp=e=>Sr(e)?e:Yy(e)?e.source:Or(e)?Yy(e.value)?e.value.source:e.value:e;const IR="AsyncFunction";var fhe=e=>!!e&&!!e.validate&&!!(hs(e.validate)&&e.validate.constructor.name===IR||Or(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===IR)),dhe=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate);function NR(e,t,n){const r=Ze(e,n);if(r||B5(n))return{error:r,name:n};const i=n.split(".");for(;i.length;){const o=i.join("."),a=Ze(t,o),s=Ze(e,o);if(a&&!Array.isArray(a)&&n!==o)return{name:n};if(s&&s.type)return{name:o,error:s};i.pop()}return{name:n}}var hhe=(e,t,n,r,i)=>i.isOnAll?!1:!n&&i.isOnTouch?!(t||e):(n?r.isOnBlur:i.isOnBlur)?!e:(n?r.isOnChange:i.isOnChange)?e:!0,phe=(e,t)=>!e2(Ze(e,t)).length&&Br(e,t);const ghe={mode:ja.onSubmit,reValidateMode:ja.onChange,shouldFocusError:!0};function mhe(e={}){let t={...ghe,...e},n={submitCount:0,isDirty:!1,isLoading:hs(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},r={},i=Or(t.defaultValues)||Or(t.values)?no(t.defaultValues||t.values)||{}:{},o=t.shouldUnregister?{}:no(i),a={action:!1,mount:!1,watch:!1},s={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},u,l=0;const c={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},f={values:pS(),array:pS(),state:pS()},h=PR(t.mode),p=PR(t.reValidateMode),m=t.criteriaMode===ja.all,v=te=>de=>{clearTimeout(l),l=setTimeout(te,de)},b=async te=>{if(!t.disabled&&(c.isValid||te)){const de=t.resolver?io((await M()).errors):await U(r,!0);de!==n.isValid&&f.state.next({isValid:de})}},w=(te,de)=>{!t.disabled&&(c.isValidating||c.validatingFields)&&((te||Array.from(s.mount)).forEach(ge=>{ge&&(de?An(n.validatingFields,ge,de):Br(n.validatingFields,ge))}),f.state.next({validatingFields:n.validatingFields,isValidating:!io(n.validatingFields)}))},x=(te,de=[],ge,ze,Fe=!0,Ae=!0)=>{if(ze&&ge&&!t.disabled){if(a.action=!0,Ae&&Array.isArray(Ze(r,te))){const tt=ge(Ze(r,te),ze.argA,ze.argB);Fe&&An(r,te,tt)}if(Ae&&Array.isArray(Ze(n.errors,te))){const tt=ge(Ze(n.errors,te),ze.argA,ze.argB);Fe&&An(n.errors,te,tt),phe(n.errors,te)}if(c.touchedFields&&Ae&&Array.isArray(Ze(n.touchedFields,te))){const tt=ge(Ze(n.touchedFields,te),ze.argA,ze.argB);Fe&&An(n.touchedFields,te,tt)}c.dirtyFields&&(n.dirtyFields=Lp(i,o)),f.state.next({name:te,isDirty:V(te,de),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else An(o,te,de)},S=(te,de)=>{An(n.errors,te,de),f.state.next({errors:n.errors})},O=te=>{n.errors=te,f.state.next({errors:n.errors,isValid:!1})},E=(te,de,ge,ze)=>{const Fe=Ze(r,te);if(Fe){const Ae=Ze(o,te,Sr(ge)?Ze(i,te):ge);Sr(Ae)||ze&&ze.defaultChecked||de?An(o,te,de?Ae:mS(Fe._f)):G(te,Ae),a.mount&&b()}},C=(te,de,ge,ze,Fe)=>{let Ae=!1,tt=!1;const mt={name:te};if(!t.disabled){const xn=!!(Ze(r,te)&&Ze(r,te)._f&&Ze(r,te)._f.disabled);if(!ge||ze){c.isDirty&&(tt=n.isDirty,n.isDirty=mt.isDirty=V(),Ae=tt!==mt.isDirty);const Kt=xn||nl(Ze(i,te),de);tt=!!(!xn&&Ze(n.dirtyFields,te)),Kt||xn?Br(n.dirtyFields,te):An(n.dirtyFields,te,!0),mt.dirtyFields=n.dirtyFields,Ae=Ae||c.dirtyFields&&tt!==!Kt}if(ge){const Kt=Ze(n.touchedFields,te);Kt||(An(n.touchedFields,te,ge),mt.touchedFields=n.touchedFields,Ae=Ae||c.touchedFields&&Kt!==ge)}Ae&&Fe&&f.state.next(mt)}return Ae?mt:{}},k=(te,de,ge,ze)=>{const Fe=Ze(n.errors,te),Ae=c.isValid&&aa(de)&&n.isValid!==de;if(t.delayError&&ge?(u=v(()=>S(te,ge)),u(t.delayError)):(clearTimeout(l),u=null,ge?An(n.errors,te,ge):Br(n.errors,te)),(ge?!nl(Fe,ge):Fe)||!io(ze)||Ae){const tt={...ze,...Ae&&aa(de)?{isValid:de}:{},errors:n.errors,name:te};n={...n,...tt},f.state.next(tt)}},M=async te=>{w(te,!0);const de=await t.resolver(o,t.context,che(te||s.mount,r,t.criteriaMode,t.shouldUseNativeValidation));return w(te),de},L=async te=>{const{errors:de}=await M(te);if(te)for(const ge of te){const ze=Ze(de,ge);ze?An(n.errors,ge,ze):Br(n.errors,ge)}else n.errors=de;return de},U=async(te,de,ge={valid:!0})=>{for(const ze in te){const Fe=te[ze];if(Fe){const{_f:Ae,...tt}=Fe;if(Ae){const mt=s.array.has(Ae.name),xn=Fe._f&&fhe(Fe._f);xn&&c.validatingFields&&w([ze],!0);const Kt=await $R(Fe,s.disabled,o,m,t.shouldUseNativeValidation&&!de,mt);if(xn&&c.validatingFields&&w([ze]),Kt[Ae.name]&&(ge.valid=!1,de))break;!de&&(Ze(Kt,Ae.name)?mt?ahe(n.errors,Kt,Ae.name):An(n.errors,Ae.name,Kt[Ae.name]):Br(n.errors,Ae.name))}!io(tt)&&await U(tt,de,ge)}}return ge.valid},H=()=>{for(const te of s.unMount){const de=Ze(r,te);de&&(de._f.refs?de._f.refs.every(ge=>!gS(ge)):!gS(de._f.ref))&&He(te)}s.unMount=new Set},V=(te,de)=>!t.disabled&&(te&&de&&An(o,te,de),!nl(oe(),i)),ne=(te,de,ge)=>yB(te,s,{...a.mount?o:Sr(de)?i:vs(te)?{[te]:de}:de},ge,de),Z=te=>e2(Ze(a.mount?o:i,te,t.shouldUnregister?Ze(i,te,[]):[])),G=(te,de,ge={})=>{const ze=Ze(r,te);let Fe=de;if(ze){const Ae=ze._f;Ae&&(!Ae.disabled&&An(o,te,EB(de,Ae)),Fe=Gy(Ae.ref)&&zi(de)?"":de,_B(Ae.ref)?[...Ae.ref.options].forEach(tt=>tt.selected=Fe.includes(tt.value)):Ae.refs?xm(Ae.ref)?Ae.refs.length>1?Ae.refs.forEach(tt=>(!tt.defaultChecked||!tt.disabled)&&(tt.checked=Array.isArray(Fe)?!!Fe.find(mt=>mt===tt.value):Fe===tt.value)):Ae.refs[0]&&(Ae.refs[0].checked=!!Fe):Ae.refs.forEach(tt=>tt.checked=tt.value===Fe):V5(Ae.ref)?Ae.ref.value="":(Ae.ref.value=Fe,Ae.ref.type||f.values.next({name:te,values:{...o}})))}(ge.shouldDirty||ge.shouldTouch)&&C(te,Fe,ge.shouldTouch,ge.shouldDirty,!0),ge.shouldValidate&&Y(te)},q=(te,de,ge)=>{for(const ze in de){const Fe=de[ze],Ae=`${te}.${ze}`,tt=Ze(r,Ae);(s.array.has(te)||Or(Fe)||tt&&!tt._f)&&!_c(Fe)?q(Ae,Fe,ge):G(Ae,Fe,ge)}},W=(te,de,ge={})=>{const ze=Ze(r,te),Fe=s.array.has(te),Ae=no(de);An(o,te,Ae),Fe?(f.array.next({name:te,values:{...o}}),(c.isDirty||c.dirtyFields)&&ge.shouldDirty&&f.state.next({name:te,dirtyFields:Lp(i,o),isDirty:V(te,Ae)})):ze&&!ze._f&&!zi(Ae)?q(te,Ae,ge):G(te,Ae,ge),kR(te,s)&&f.state.next({...n}),f.values.next({name:a.mount?te:void 0,values:{...o}})},j=async te=>{a.mount=!0;const de=te.target;let ge=de.name,ze=!0;const Fe=Ze(r,ge),Ae=()=>de.type?mS(Fe._f):fB(te),tt=mt=>{ze=Number.isNaN(mt)||_c(mt)&&isNaN(mt.getTime())||nl(mt,Ze(o,ge,mt))};if(Fe){let mt,xn;const Kt=Ae(),wn=te.type===qy.BLUR||te.type===qy.FOCUS_OUT,Ii=!dhe(Fe._f)&&!t.resolver&&!Ze(n.errors,ge)&&!Fe._f.deps||hhe(wn,Ze(n.touchedFields,ge),n.isSubmitted,p,h),br=kR(ge,s,wn);An(o,ge,Kt),wn?(Fe._f.onBlur&&Fe._f.onBlur(te),u&&u(0)):Fe._f.onChange&&Fe._f.onChange(te);const yi=C(ge,Kt,wn,!1),sr=!io(yi)||br;if(!wn&&f.values.next({name:ge,type:te.type,values:{...o}}),Ii)return c.isValid&&(t.mode==="onBlur"&&wn?b():wn||b()),sr&&f.state.next({name:ge,...br?{}:yi});if(!wn&&br&&f.state.next({...n}),t.resolver){const{errors:si}=await M([ge]);if(tt(Kt),ze){const bi=NR(n.errors,r,ge),Rr=NR(si,r,bi.name||ge);mt=Rr.error,ge=Rr.name,xn=io(si)}}else w([ge],!0),mt=(await $R(Fe,s.disabled,o,m,t.shouldUseNativeValidation))[ge],w([ge]),tt(Kt),ze&&(mt?xn=!1:c.isValid&&(xn=await U(r,!0)));ze&&(Fe._f.deps&&Y(Fe._f.deps),k(ge,xn,mt,yi))}},K=(te,de)=>{if(Ze(n.errors,de)&&te.focus)return te.focus(),1},Y=async(te,de={})=>{let ge,ze;const Fe=w0(te);if(t.resolver){const Ae=await L(Sr(te)?te:Fe);ge=io(Ae),ze=te?!Fe.some(tt=>Ze(Ae,tt)):ge}else te?(ze=(await Promise.all(Fe.map(async Ae=>{const tt=Ze(r,Ae);return await U(tt&&tt._f?{[Ae]:tt}:tt)}))).every(Boolean),!(!ze&&!n.isValid)&&b()):ze=ge=await U(r);return f.state.next({...!vs(te)||c.isValid&&ge!==n.isValid?{}:{name:te},...t.resolver||!te?{isValid:ge}:{},errors:n.errors}),de.shouldFocus&&!ze&&_0(r,K,te?Fe:s.mount),ze},oe=te=>{const de={...a.mount?o:i};return Sr(te)?de:vs(te)?Ze(de,te):te.map(ge=>Ze(de,ge))},ae=(te,de)=>({invalid:!!Ze((de||n).errors,te),isDirty:!!Ze((de||n).dirtyFields,te),error:Ze((de||n).errors,te),isValidating:!!Ze(n.validatingFields,te),isTouched:!!Ze((de||n).touchedFields,te)}),ue=te=>{te&&w0(te).forEach(de=>Br(n.errors,de)),f.state.next({errors:te?n.errors:{}})},be=(te,de,ge)=>{const ze=(Ze(r,te,{_f:{}})._f||{}).ref,Fe=Ze(n.errors,te)||{},{ref:Ae,message:tt,type:mt,...xn}=Fe;An(n.errors,te,{...xn,...de,ref:ze}),f.state.next({name:te,errors:n.errors,isValid:!1}),ge&&ge.shouldFocus&&ze&&ze.focus&&ze.focus()},we=(te,de)=>hs(te)?f.values.subscribe({next:ge=>te(ne(void 0,de),ge)}):ne(te,de,!0),He=(te,de={})=>{for(const ge of te?w0(te):s.mount)s.mount.delete(ge),s.array.delete(ge),de.keepValue||(Br(r,ge),Br(o,ge)),!de.keepError&&Br(n.errors,ge),!de.keepDirty&&Br(n.dirtyFields,ge),!de.keepTouched&&Br(n.touchedFields,ge),!de.keepIsValidating&&Br(n.validatingFields,ge),!t.shouldUnregister&&!de.keepDefaultValue&&Br(i,ge);f.values.next({values:{...o}}),f.state.next({...n,...de.keepDirty?{isDirty:V()}:{}}),!de.keepIsValid&&b()},Ee=({disabled:te,name:de,field:ge,fields:ze})=>{(aa(te)&&a.mount||te||s.disabled.has(de))&&(te?s.disabled.add(de):s.disabled.delete(de),C(de,mS(ge?ge._f:Ze(ze,de)._f),!1,!1,!0))},it=(te,de={})=>{let ge=Ze(r,te);const ze=aa(de.disabled)||aa(t.disabled);return An(r,te,{...ge||{},_f:{...ge&&ge._f?ge._f:{ref:{name:te}},name:te,mount:!0,...de}}),s.mount.add(te),ge?Ee({field:ge,disabled:aa(de.disabled)?de.disabled:t.disabled,name:te}):E(te,!0,de.value),{...ze?{disabled:de.disabled||t.disabled}:{},...t.progressive?{required:!!de.required,min:Fp(de.min),max:Fp(de.max),minLength:Fp(de.minLength),maxLength:Fp(de.maxLength),pattern:Fp(de.pattern)}:{},name:te,onChange:j,onBlur:j,ref:Fe=>{if(Fe){it(te,de),ge=Ze(r,te);const Ae=Sr(Fe.value)&&Fe.querySelectorAll&&Fe.querySelectorAll("input,select,textarea")[0]||Fe,tt=lhe(Ae),mt=ge._f.refs||[];if(tt?mt.find(xn=>xn===Ae):Ae===ge._f.ref)return;An(r,te,{_f:{...ge._f,...tt?{refs:[...mt.filter(gS),Ae,...Array.isArray(Ze(i,te))?[{}]:[]],ref:{type:Ae.type,name:te}}:{ref:Ae}}}),E(te,!1,void 0,Ae)}else ge=Ze(r,te,{}),ge._f&&(ge._f.mount=!1),(t.shouldUnregister||de.shouldUnregister)&&!(dB(s.array,te)&&a.action)&&s.unMount.add(te)}}},ke=()=>t.shouldFocusError&&_0(r,K,s.mount),Le=te=>{aa(te)&&(f.state.next({disabled:te}),_0(r,(de,ge)=>{const ze=Ze(r,ge);ze&&(de.disabled=ze._f.disabled||te,Array.isArray(ze._f.refs)&&ze._f.refs.forEach(Fe=>{Fe.disabled=ze._f.disabled||te}))},0,!1))},De=(te,de)=>async ge=>{let ze;ge&&(ge.preventDefault&&ge.preventDefault(),ge.persist&&ge.persist());let Fe=no(o);if(s.disabled.size)for(const Ae of s.disabled)An(Fe,Ae,void 0);if(f.state.next({isSubmitting:!0}),t.resolver){const{errors:Ae,values:tt}=await M();n.errors=Ae,Fe=tt}else await U(r);if(Br(n.errors,"root"),io(n.errors)){f.state.next({errors:{}});try{await te(Fe,ge)}catch(Ae){ze=Ae}}else de&&await de({...n.errors},ge),ke(),setTimeout(ke);if(f.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:io(n.errors)&&!ze,submitCount:n.submitCount+1,errors:n.errors}),ze)throw ze},me=(te,de={})=>{Ze(r,te)&&(Sr(de.defaultValue)?W(te,no(Ze(i,te))):(W(te,de.defaultValue),An(i,te,no(de.defaultValue))),de.keepTouched||Br(n.touchedFields,te),de.keepDirty||(Br(n.dirtyFields,te),n.isDirty=de.defaultValue?V(te,no(Ze(i,te))):V()),de.keepError||(Br(n.errors,te),c.isValid&&b()),f.state.next({...n}))},yt=(te,de={})=>{const ge=te?no(te):i,ze=no(ge),Fe=io(te),Ae=Fe?i:ze;if(de.keepDefaultValues||(i=ge),!de.keepValues){if(de.keepDirtyValues){const tt=new Set([...s.mount,...Object.keys(Lp(i,o))]);for(const mt of Array.from(tt))Ze(n.dirtyFields,mt)?An(Ae,mt,Ze(o,mt)):W(mt,Ze(Ae,mt))}else{if(j5&&Sr(te))for(const tt of s.mount){const mt=Ze(r,tt);if(mt&&mt._f){const xn=Array.isArray(mt._f.refs)?mt._f.refs[0]:mt._f.ref;if(Gy(xn)){const Kt=xn.closest("form");if(Kt){Kt.reset();break}}}}r={}}o=t.shouldUnregister?de.keepDefaultValues?no(i):{}:no(Ae),f.array.next({values:{...Ae}}),f.values.next({values:{...Ae}})}s={mount:de.keepDirtyValues?s.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},a.mount=!c.isValid||!!de.keepIsValid||!!de.keepDirtyValues,a.watch=!!t.shouldUnregister,f.state.next({submitCount:de.keepSubmitCount?n.submitCount:0,isDirty:Fe?!1:de.keepDirty?n.isDirty:!!(de.keepDefaultValues&&!nl(te,i)),isSubmitted:de.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:Fe?{}:de.keepDirtyValues?de.keepDefaultValues&&o?Lp(i,o):n.dirtyFields:de.keepDefaultValues&&te?Lp(i,te):de.keepDirty?n.dirtyFields:{},touchedFields:de.keepTouched?n.touchedFields:{},errors:de.keepErrors?n.errors:{},isSubmitSuccessful:de.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1})},lt=(te,de)=>yt(hs(te)?te(o):te,de);return{control:{register:it,unregister:He,getFieldState:ae,handleSubmit:De,setError:be,_executeSchema:M,_getWatch:ne,_getDirty:V,_updateValid:b,_removeUnmounted:H,_updateFieldArray:x,_updateDisabledField:Ee,_getFieldArray:Z,_reset:yt,_resetDefaultValues:()=>hs(t.defaultValues)&&t.defaultValues().then(te=>{lt(te,t.resetOptions),f.state.next({isLoading:!1})}),_updateFormState:te=>{n={...n,...te}},_disableForm:Le,_subjects:f,_proxyFormState:c,_setErrors:O,get _fields(){return r},get _formValues(){return o},get _state(){return a},set _state(te){a=te},get _defaultValues(){return i},get _names(){return s},set _names(te){s=te},get _formState(){return n},set _formState(te){n=te},get _options(){return t},set _options(te){t={...t,...te}}},trigger:Y,register:it,handleSubmit:De,watch:we,setValue:W,getValues:oe,reset:lt,resetField:me,clearErrors:ue,unregister:He,setError:be,setFocus:(te,de={})=>{const ge=Ze(r,te),ze=ge&&ge._f;if(ze){const Fe=ze.refs?ze.refs[0]:ze.ref;Fe.focus&&(Fe.focus(),de.shouldSelect&&hs(Fe.select)&&Fe.select())}},getFieldState:ae}}function jYe(e={}){const t=F.useRef(void 0),n=F.useRef(void 0),[r,i]=F.useState({isDirty:!1,isValidating:!1,isLoading:hs(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,defaultValues:hs(e.defaultValues)?void 0:e.defaultValues});t.current||(t.current={...mhe(e),formState:r});const o=t.current.control;return o._options=e,U5({subject:o._subjects.state,next:a=>{mB(a,o._proxyFormState,o._updateFormState,!0)&&i({...o._formState})}}),F.useEffect(()=>o._disableForm(e.disabled),[o,e.disabled]),F.useEffect(()=>{if(o._proxyFormState.isDirty){const a=o._getDirty();a!==r.isDirty&&o._subjects.state.next({isDirty:a})}},[o,r.isDirty]),F.useEffect(()=>{e.values&&!nl(e.values,n.current)?(o._reset(e.values,o._options.resetOptions),n.current=e.values,i(a=>({...a}))):o._resetDefaultValues()},[e.values,o]),F.useEffect(()=>{e.errors&&o._setErrors(e.errors)},[e.errors,o]),F.useEffect(()=>{o._state.mount||(o._updateValid(),o._state.mount=!0),o._state.watch&&(o._state.watch=!1,o._subjects.state.next({...o._formState})),o._removeUnmounted()}),F.useEffect(()=>{e.shouldUnregister&&o._subjects.values.next({values:o._getWatch()})},[e.shouldUnregister,o]),t.current.formState=gB(r,o),t.current}var gn;(function(e){e.assertEqual=i=>i;function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{const o={};for(const a of i)o[a]=a;return o},e.getValidEnumValues=i=>{const o=e.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),a={};for(const s of o)a[s]=i[s];return e.objectValues(a)},e.objectValues=i=>e.objectKeys(i).map(function(o){return i[o]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const o=[];for(const a in i)Object.prototype.hasOwnProperty.call(i,a)&&o.push(a);return o},e.find=(i,o)=>{for(const a of i)if(o(a))return a},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function r(i,o=" | "){return i.map(a=>typeof a=="string"?`'${a}'`:a).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(i,o)=>typeof o=="bigint"?o.toString():o})(gn||(gn={}));var aE;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(aE||(aE={}));const rt=gn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),nu=e=>{switch(typeof e){case"undefined":return rt.undefined;case"string":return rt.string;case"number":return isNaN(e)?rt.nan:rt.number;case"boolean":return rt.boolean;case"function":return rt.function;case"bigint":return rt.bigint;case"symbol":return rt.symbol;case"object":return Array.isArray(e)?rt.array:e===null?rt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?rt.promise:typeof Map<"u"&&e instanceof Map?rt.map:typeof Set<"u"&&e instanceof Set?rt.set:typeof Date<"u"&&e instanceof Date?rt.date:rt.object;default:return rt.unknown}},Ue=gn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),vhe=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:");class Lo extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){const n=t||function(o){return o.message},r={_errors:[]},i=o=>{for(const a of o.issues)if(a.code==="invalid_union")a.unionErrors.map(i);else if(a.code==="invalid_return_type")i(a.returnTypeError);else if(a.code==="invalid_arguments")i(a.argumentsError);else if(a.path.length===0)r._errors.push(n(a));else{let s=r,u=0;for(;un.message){const n={},r=[];for(const i of this.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}Lo.create=e=>new Lo(e);const qd=(e,t)=>{let n;switch(e.code){case Ue.invalid_type:e.received===rt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Ue.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,gn.jsonStringifyReplacer)}`;break;case Ue.unrecognized_keys:n=`Unrecognized key(s) in object: ${gn.joinValues(e.keys,", ")}`;break;case Ue.invalid_union:n="Invalid input";break;case Ue.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${gn.joinValues(e.options)}`;break;case Ue.invalid_enum_value:n=`Invalid enum value. Expected ${gn.joinValues(e.options)}, received '${e.received}'`;break;case Ue.invalid_arguments:n="Invalid function arguments";break;case Ue.invalid_return_type:n="Invalid function return type";break;case Ue.invalid_date:n="Invalid date";break;case Ue.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:gn.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Ue.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Ue.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Ue.custom:n="Invalid input";break;case Ue.invalid_intersection_types:n="Intersection results could not be merged";break;case Ue.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Ue.not_finite:n="Number must be finite";break;default:n=t.defaultError,gn.assertNever(e)}return{message:n}};let OB=qd;function yhe(e){OB=e}function Xy(){return OB}const Qy=e=>{const{data:t,path:n,errorMaps:r,issueData:i}=e,o=[...n,...i.path||[]],a={...i,path:o};if(i.message!==void 0)return{...i,path:o,message:i.message};let s="";const u=r.filter(l=>!!l).slice().reverse();for(const l of u)s=l(a,{data:t,defaultError:s}).message;return{...i,path:o,message:s}},bhe=[];function et(e,t){const n=Xy(),r=Qy({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===qd?void 0:qd].filter(i=>!!i)});e.common.issues.push(r)}class $i{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const r=[];for(const i of n){if(i.status==="aborted")return Dt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){const r=[];for(const i of n){const o=await i.key,a=await i.value;r.push({key:o,value:a})}return $i.mergeObjectSync(t,r)}static mergeObjectSync(t,n){const r={};for(const i of n){const{key:o,value:a}=i;if(o.status==="aborted"||a.status==="aborted")return Dt;o.status==="dirty"&&t.dirty(),a.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof a.value<"u"||i.alwaysSet)&&(r[o.value]=a.value)}return{status:t.value,value:r}}}const Dt=Object.freeze({status:"aborted"}),gd=e=>({status:"dirty",value:e}),Hi=e=>({status:"valid",value:e}),sE=e=>e.status==="aborted",uE=e=>e.status==="dirty",Gc=e=>e.status==="valid",tg=e=>typeof Promise<"u"&&e instanceof Promise;function Jy(e,t,n,r){if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t.get(e)}function AB(e,t,n,r,i){if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(e,n),n}var dt;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(dt||(dt={}));var o0,a0;class ks{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const LR=(e,t)=>{if(Gc(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new Lo(e.common.issues);return this._error=n,this._error}}};function Gt(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(a,s)=>{var u,l;const{message:c}=e;return a.code==="invalid_enum_value"?{message:c??s.defaultError}:typeof s.data>"u"?{message:(u=c??r)!==null&&u!==void 0?u:s.defaultError}:a.code!=="invalid_type"?{message:s.defaultError}:{message:(l=c??n)!==null&&l!==void 0?l:s.defaultError}},description:i}}class en{get description(){return this._def.description}_getType(t){return nu(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:nu(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new $i,ctx:{common:t.parent.common,data:t.data,parsedType:nu(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(tg(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){var r;const i={common:{issues:[],async:(r=n?.async)!==null&&r!==void 0?r:!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:nu(t)},o=this._parseSync({data:t,path:i.path,parent:i});return LR(i,o)}"~validate"(t){var n,r;const i={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:nu(t)};if(!this["~standard"].async)try{const o=this._parseSync({data:t,path:[],parent:i});return Gc(o)?{value:o.value}:{issues:i.common.issues}}catch(o){!((r=(n=o?.message)===null||n===void 0?void 0:n.toLowerCase())===null||r===void 0)&&r.includes("encountered")&&(this["~standard"].async=!0),i.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:i}).then(o=>Gc(o)?{value:o.value}:{issues:i.common.issues})}async parseAsync(t,n){const r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){const r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:nu(t)},i=this._parse({data:t,path:r.path,parent:r}),o=await(tg(i)?i:Promise.resolve(i));return LR(r,o)}refine(t,n){const r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,o)=>{const a=t(i),s=()=>o.addIssue({code:Ue.custom,...r(i)});return typeof Promise<"u"&&a instanceof Promise?a.then(u=>u?!0:(s(),!1)):a?!0:(s(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new Ya({schema:this,typeName:Tt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return Es.create(this,this._def)}nullable(){return Ml.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Ha.create(this)}promise(){return Yd.create(this,this._def)}or(t){return og.create([this,t],this._def)}and(t){return ag.create(this,t,this._def)}transform(t){return new Ya({...Gt(this._def),schema:this,typeName:Tt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new fg({...Gt(this._def),innerType:this,defaultValue:n,typeName:Tt.ZodDefault})}brand(){return new H5({typeName:Tt.ZodBranded,type:this,...Gt(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new dg({...Gt(this._def),innerType:this,catchValue:n,typeName:Tt.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return wm.create(this,t)}readonly(){return hg.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const xhe=/^c[^\s-]{8,}$/i,whe=/^[0-9a-z]+$/,_he=/^[0-9A-HJKMNP-TV-Z]{26}$/i,She=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Che=/^[a-z0-9_-]{21}$/i,Ehe=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ohe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Ahe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Phe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let vS;const khe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,The=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Mhe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Rhe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Dhe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,$he=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,PB="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Ihe=new RegExp(`^${PB}$`);function kB(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`),t}function Nhe(e){return new RegExp(`^${kB(e)}$`)}function TB(e){let t=`${PB}T${kB(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Lhe(e,t){return!!((t==="v4"||!t)&&khe.test(e)||(t==="v6"||!t)&&Mhe.test(e))}function Fhe(e,t){if(!Ehe.test(e))return!1;try{const[n]=e.split("."),r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||!i.typ||!i.alg||t&&i.alg!==t)}catch{return!1}}function jhe(e,t){return!!((t==="v4"||!t)&&The.test(e)||(t==="v6"||!t)&&Rhe.test(e))}class za extends en{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==rt.string){const o=this._getOrReturnCtx(t);return et(o,{code:Ue.invalid_type,expected:rt.string,received:o.parsedType}),Dt}const r=new $i;let i;for(const o of this._def.checks)if(o.kind==="min")t.data.lengtho.value&&(i=this._getOrReturnCtx(t,i),et(i,{code:Ue.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){const a=t.data.length>o.value,s=t.data.lengtht.test(i),{validation:n,code:Ue.invalid_string,...dt.errToObj(r)})}_addCheck(t){return new za({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...dt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...dt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...dt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...dt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...dt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...dt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...dt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...dt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...dt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...dt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...dt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...dt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...dt.errToObj(t)})}datetime(t){var n,r;return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:(n=t?.offset)!==null&&n!==void 0?n:!1,local:(r=t?.local)!==null&&r!==void 0?r:!1,...dt.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...dt.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...dt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...dt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...dt.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...dt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...dt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...dt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...dt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...dt.errToObj(n)})}nonempty(t){return this.min(1,dt.errToObj(t))}trim(){return new za({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new za({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new za({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new za({checks:[],typeName:Tt.ZodString,coerce:(t=e?.coerce)!==null&&t!==void 0?t:!1,...Gt(e)})};function Bhe(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,o=parseInt(e.toFixed(i).replace(".","")),a=parseInt(t.toFixed(i).replace(".",""));return o%a/Math.pow(10,i)}class Pl extends en{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==rt.number){const o=this._getOrReturnCtx(t);return et(o,{code:Ue.invalid_type,expected:rt.number,received:o.parsedType}),Dt}let r;const i=new $i;for(const o of this._def.checks)o.kind==="int"?gn.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),et(r,{code:Ue.invalid_type,expected:"integer",received:"float",message:o.message}),i.dirty()):o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),et(r,{code:Ue.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="multipleOf"?Bhe(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),et(r,{code:Ue.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),et(r,{code:Ue.not_finite,message:o.message}),i.dirty()):gn.assertNever(o);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,dt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,dt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,dt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,dt.toString(n))}setLimit(t,n,r,i){return new Pl({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:dt.toString(i)}]})}_addCheck(t){return new Pl({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:dt.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:dt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:dt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:dt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:dt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:dt.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:dt.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:dt.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:dt.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&gn.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew Pl({checks:[],typeName:Tt.ZodNumber,coerce:e?.coerce||!1,...Gt(e)});class kl extends en{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==rt.bigint)return this._getInvalidInput(t);let r;const i=new $i;for(const o of this._def.checks)o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),et(r,{code:Ue.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),et(r,{code:Ue.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):gn.assertNever(o);return{status:i.value,value:t.data}}_getInvalidInput(t){const n=this._getOrReturnCtx(t);return et(n,{code:Ue.invalid_type,expected:rt.bigint,received:n.parsedType}),Dt}gte(t,n){return this.setLimit("min",t,!0,dt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,dt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,dt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,dt.toString(n))}setLimit(t,n,r,i){return new kl({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:dt.toString(i)}]})}_addCheck(t){return new kl({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:dt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:dt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:dt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:dt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:dt.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new kl({checks:[],typeName:Tt.ZodBigInt,coerce:(t=e?.coerce)!==null&&t!==void 0?t:!1,...Gt(e)})};class ng extends en{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==rt.boolean){const r=this._getOrReturnCtx(t);return et(r,{code:Ue.invalid_type,expected:rt.boolean,received:r.parsedType}),Dt}return Hi(t.data)}}ng.create=e=>new ng({typeName:Tt.ZodBoolean,coerce:e?.coerce||!1,...Gt(e)});class Yc extends en{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==rt.date){const o=this._getOrReturnCtx(t);return et(o,{code:Ue.invalid_type,expected:rt.date,received:o.parsedType}),Dt}if(isNaN(t.data.getTime())){const o=this._getOrReturnCtx(t);return et(o,{code:Ue.invalid_date}),Dt}const r=new $i;let i;for(const o of this._def.checks)o.kind==="min"?t.data.getTime()o.value&&(i=this._getOrReturnCtx(t,i),et(i,{code:Ue.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):gn.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Yc({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:dt.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:dt.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew Yc({checks:[],coerce:e?.coerce||!1,typeName:Tt.ZodDate,...Gt(e)});class eb extends en{_parse(t){if(this._getType(t)!==rt.symbol){const r=this._getOrReturnCtx(t);return et(r,{code:Ue.invalid_type,expected:rt.symbol,received:r.parsedType}),Dt}return Hi(t.data)}}eb.create=e=>new eb({typeName:Tt.ZodSymbol,...Gt(e)});class rg extends en{_parse(t){if(this._getType(t)!==rt.undefined){const r=this._getOrReturnCtx(t);return et(r,{code:Ue.invalid_type,expected:rt.undefined,received:r.parsedType}),Dt}return Hi(t.data)}}rg.create=e=>new rg({typeName:Tt.ZodUndefined,...Gt(e)});class ig extends en{_parse(t){if(this._getType(t)!==rt.null){const r=this._getOrReturnCtx(t);return et(r,{code:Ue.invalid_type,expected:rt.null,received:r.parsedType}),Dt}return Hi(t.data)}}ig.create=e=>new ig({typeName:Tt.ZodNull,...Gt(e)});class Gd extends en{constructor(){super(...arguments),this._any=!0}_parse(t){return Hi(t.data)}}Gd.create=e=>new Gd({typeName:Tt.ZodAny,...Gt(e)});class Rc extends en{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Hi(t.data)}}Rc.create=e=>new Rc({typeName:Tt.ZodUnknown,...Gt(e)});class bu extends en{_parse(t){const n=this._getOrReturnCtx(t);return et(n,{code:Ue.invalid_type,expected:rt.never,received:n.parsedType}),Dt}}bu.create=e=>new bu({typeName:Tt.ZodNever,...Gt(e)});class tb extends en{_parse(t){if(this._getType(t)!==rt.undefined){const r=this._getOrReturnCtx(t);return et(r,{code:Ue.invalid_type,expected:rt.void,received:r.parsedType}),Dt}return Hi(t.data)}}tb.create=e=>new tb({typeName:Tt.ZodVoid,...Gt(e)});class Ha extends en{_parse(t){const{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==rt.array)return et(n,{code:Ue.invalid_type,expected:rt.array,received:n.parsedType}),Dt;if(i.exactLength!==null){const a=n.data.length>i.exactLength.value,s=n.data.lengthi.maxLength.value&&(et(n,{code:Ue.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((a,s)=>i.type._parseAsync(new ks(n,a,n.path,s)))).then(a=>$i.mergeArray(r,a));const o=[...n.data].map((a,s)=>i.type._parseSync(new ks(n,a,n.path,s)));return $i.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new Ha({...this._def,minLength:{value:t,message:dt.toString(n)}})}max(t,n){return new Ha({...this._def,maxLength:{value:t,message:dt.toString(n)}})}length(t,n){return new Ha({...this._def,exactLength:{value:t,message:dt.toString(n)}})}nonempty(t){return this.min(1,t)}}Ha.create=(e,t)=>new Ha({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Tt.ZodArray,...Gt(t)});function ed(e){if(e instanceof cr){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Es.create(ed(r))}return new cr({...e._def,shape:()=>t})}else return e instanceof Ha?new Ha({...e._def,type:ed(e.element)}):e instanceof Es?Es.create(ed(e.unwrap())):e instanceof Ml?Ml.create(ed(e.unwrap())):e instanceof Ts?Ts.create(e.items.map(t=>ed(t))):e}class cr extends en{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=gn.objectKeys(t);return this._cached={shape:t,keys:n}}_parse(t){if(this._getType(t)!==rt.object){const l=this._getOrReturnCtx(t);return et(l,{code:Ue.invalid_type,expected:rt.object,received:l.parsedType}),Dt}const{status:r,ctx:i}=this._processInputParams(t),{shape:o,keys:a}=this._getCached(),s=[];if(!(this._def.catchall instanceof bu&&this._def.unknownKeys==="strip"))for(const l in i.data)a.includes(l)||s.push(l);const u=[];for(const l of a){const c=o[l],f=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new ks(i,f,i.path,l)),alwaysSet:l in i.data})}if(this._def.catchall instanceof bu){const l=this._def.unknownKeys;if(l==="passthrough")for(const c of s)u.push({key:{status:"valid",value:c},value:{status:"valid",value:i.data[c]}});else if(l==="strict")s.length>0&&(et(i,{code:Ue.unrecognized_keys,keys:s}),r.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const l=this._def.catchall;for(const c of s){const f=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new ks(i,f,i.path,c)),alwaysSet:c in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const l=[];for(const c of u){const f=await c.key,h=await c.value;l.push({key:f,value:h,alwaysSet:c.alwaysSet})}return l}).then(l=>$i.mergeObjectSync(r,l)):$i.mergeObjectSync(r,u)}get shape(){return this._def.shape()}strict(t){return dt.errToObj,new cr({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{var i,o,a,s;const u=(a=(o=(i=this._def).errorMap)===null||o===void 0?void 0:o.call(i,n,r).message)!==null&&a!==void 0?a:r.defaultError;return n.code==="unrecognized_keys"?{message:(s=dt.errToObj(t).message)!==null&&s!==void 0?s:u}:{message:u}}}:{}})}strip(){return new cr({...this._def,unknownKeys:"strip"})}passthrough(){return new cr({...this._def,unknownKeys:"passthrough"})}extend(t){return new cr({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new cr({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Tt.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new cr({...this._def,catchall:t})}pick(t){const n={};return gn.objectKeys(t).forEach(r=>{t[r]&&this.shape[r]&&(n[r]=this.shape[r])}),new cr({...this._def,shape:()=>n})}omit(t){const n={};return gn.objectKeys(this.shape).forEach(r=>{t[r]||(n[r]=this.shape[r])}),new cr({...this._def,shape:()=>n})}deepPartial(){return ed(this)}partial(t){const n={};return gn.objectKeys(this.shape).forEach(r=>{const i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}),new cr({...this._def,shape:()=>n})}required(t){const n={};return gn.objectKeys(this.shape).forEach(r=>{if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof Es;)o=o._def.innerType;n[r]=o}}),new cr({...this._def,shape:()=>n})}keyof(){return MB(gn.objectKeys(this.shape))}}cr.create=(e,t)=>new cr({shape:()=>e,unknownKeys:"strip",catchall:bu.create(),typeName:Tt.ZodObject,...Gt(t)});cr.strictCreate=(e,t)=>new cr({shape:()=>e,unknownKeys:"strict",catchall:bu.create(),typeName:Tt.ZodObject,...Gt(t)});cr.lazycreate=(e,t)=>new cr({shape:e,unknownKeys:"strip",catchall:bu.create(),typeName:Tt.ZodObject,...Gt(t)});class og extends en{_parse(t){const{ctx:n}=this._processInputParams(t),r=this._def.options;function i(o){for(const s of o)if(s.result.status==="valid")return s.result;for(const s of o)if(s.result.status==="dirty")return n.common.issues.push(...s.ctx.common.issues),s.result;const a=o.map(s=>new Lo(s.ctx.common.issues));return et(n,{code:Ue.invalid_union,unionErrors:a}),Dt}if(n.common.async)return Promise.all(r.map(async o=>{const a={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:a}),ctx:a}})).then(i);{let o;const a=[];for(const u of r){const l={...n,common:{...n.common,issues:[]},parent:null},c=u._parseSync({data:n.data,path:n.path,parent:l});if(c.status==="valid")return c;c.status==="dirty"&&!o&&(o={result:c,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;const s=a.map(u=>new Lo(u));return et(n,{code:Ue.invalid_union,unionErrors:s}),Dt}}get options(){return this._def.options}}og.create=(e,t)=>new og({options:e,typeName:Tt.ZodUnion,...Gt(t)});const Zs=e=>e instanceof ug?Zs(e.schema):e instanceof Ya?Zs(e.innerType()):e instanceof lg?[e.value]:e instanceof Tl?e.options:e instanceof cg?gn.objectValues(e.enum):e instanceof fg?Zs(e._def.innerType):e instanceof rg?[void 0]:e instanceof ig?[null]:e instanceof Es?[void 0,...Zs(e.unwrap())]:e instanceof Ml?[null,...Zs(e.unwrap())]:e instanceof H5||e instanceof hg?Zs(e.unwrap()):e instanceof dg?Zs(e._def.innerType):[];class t2 extends en{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==rt.object)return et(n,{code:Ue.invalid_type,expected:rt.object,received:n.parsedType}),Dt;const r=this.discriminator,i=n.data[r],o=this.optionsMap.get(i);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(et(n,{code:Ue.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Dt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){const i=new Map;for(const o of n){const a=Zs(o.shape[t]);if(!a.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const s of a){if(i.has(s))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(s)}`);i.set(s,o)}}return new t2({typeName:Tt.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...Gt(r)})}}function lE(e,t){const n=nu(e),r=nu(t);if(e===t)return{valid:!0,data:e};if(n===rt.object&&r===rt.object){const i=gn.objectKeys(t),o=gn.objectKeys(e).filter(s=>i.indexOf(s)!==-1),a={...e,...t};for(const s of o){const u=lE(e[s],t[s]);if(!u.valid)return{valid:!1};a[s]=u.data}return{valid:!0,data:a}}else if(n===rt.array&&r===rt.array){if(e.length!==t.length)return{valid:!1};const i=[];for(let o=0;o{if(sE(o)||sE(a))return Dt;const s=lE(o.value,a.value);return s.valid?((uE(o)||uE(a))&&n.dirty(),{status:n.value,value:s.data}):(et(r,{code:Ue.invalid_intersection_types}),Dt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,a])=>i(o,a)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}ag.create=(e,t,n)=>new ag({left:e,right:t,typeName:Tt.ZodIntersection,...Gt(n)});class Ts extends en{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==rt.array)return et(r,{code:Ue.invalid_type,expected:rt.array,received:r.parsedType}),Dt;if(r.data.lengththis._def.items.length&&(et(r,{code:Ue.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const o=[...r.data].map((a,s)=>{const u=this._def.items[s]||this._def.rest;return u?u._parse(new ks(r,a,r.path,s)):null}).filter(a=>!!a);return r.common.async?Promise.all(o).then(a=>$i.mergeArray(n,a)):$i.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new Ts({...this._def,rest:t})}}Ts.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ts({items:e,typeName:Tt.ZodTuple,rest:null,...Gt(t)})};class sg extends en{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==rt.object)return et(r,{code:Ue.invalid_type,expected:rt.object,received:r.parsedType}),Dt;const i=[],o=this._def.keyType,a=this._def.valueType;for(const s in r.data)i.push({key:o._parse(new ks(r,s,r.path,s)),value:a._parse(new ks(r,r.data[s],r.path,s)),alwaysSet:s in r.data});return r.common.async?$i.mergeObjectAsync(n,i):$i.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof en?new sg({keyType:t,valueType:n,typeName:Tt.ZodRecord,...Gt(r)}):new sg({keyType:za.create(),valueType:t,typeName:Tt.ZodRecord,...Gt(n)})}}class nb extends en{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==rt.map)return et(r,{code:Ue.invalid_type,expected:rt.map,received:r.parsedType}),Dt;const i=this._def.keyType,o=this._def.valueType,a=[...r.data.entries()].map(([s,u],l)=>({key:i._parse(new ks(r,s,r.path,[l,"key"])),value:o._parse(new ks(r,u,r.path,[l,"value"]))}));if(r.common.async){const s=new Map;return Promise.resolve().then(async()=>{for(const u of a){const l=await u.key,c=await u.value;if(l.status==="aborted"||c.status==="aborted")return Dt;(l.status==="dirty"||c.status==="dirty")&&n.dirty(),s.set(l.value,c.value)}return{status:n.value,value:s}})}else{const s=new Map;for(const u of a){const l=u.key,c=u.value;if(l.status==="aborted"||c.status==="aborted")return Dt;(l.status==="dirty"||c.status==="dirty")&&n.dirty(),s.set(l.value,c.value)}return{status:n.value,value:s}}}}nb.create=(e,t,n)=>new nb({valueType:t,keyType:e,typeName:Tt.ZodMap,...Gt(n)});class Zc extends en{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==rt.set)return et(r,{code:Ue.invalid_type,expected:rt.set,received:r.parsedType}),Dt;const i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(et(r,{code:Ue.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());const o=this._def.valueType;function a(u){const l=new Set;for(const c of u){if(c.status==="aborted")return Dt;c.status==="dirty"&&n.dirty(),l.add(c.value)}return{status:n.value,value:l}}const s=[...r.data.values()].map((u,l)=>o._parse(new ks(r,u,r.path,l)));return r.common.async?Promise.all(s).then(u=>a(u)):a(s)}min(t,n){return new Zc({...this._def,minSize:{value:t,message:dt.toString(n)}})}max(t,n){return new Zc({...this._def,maxSize:{value:t,message:dt.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}Zc.create=(e,t)=>new Zc({valueType:e,minSize:null,maxSize:null,typeName:Tt.ZodSet,...Gt(t)});class Ad extends en{constructor(){super(...arguments),this.validate=this.implement}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==rt.function)return et(n,{code:Ue.invalid_type,expected:rt.function,received:n.parsedType}),Dt;function r(s,u){return Qy({data:s,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Xy(),qd].filter(l=>!!l),issueData:{code:Ue.invalid_arguments,argumentsError:u}})}function i(s,u){return Qy({data:s,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Xy(),qd].filter(l=>!!l),issueData:{code:Ue.invalid_return_type,returnTypeError:u}})}const o={errorMap:n.common.contextualErrorMap},a=n.data;if(this._def.returns instanceof Yd){const s=this;return Hi(async function(...u){const l=new Lo([]),c=await s._def.args.parseAsync(u,o).catch(p=>{throw l.addIssue(r(u,p)),l}),f=await Reflect.apply(a,this,c);return await s._def.returns._def.type.parseAsync(f,o).catch(p=>{throw l.addIssue(i(f,p)),l})})}else{const s=this;return Hi(function(...u){const l=s._def.args.safeParse(u,o);if(!l.success)throw new Lo([r(u,l.error)]);const c=Reflect.apply(a,this,l.data),f=s._def.returns.safeParse(c,o);if(!f.success)throw new Lo([i(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new Ad({...this._def,args:Ts.create(t).rest(Rc.create())})}returns(t){return new Ad({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new Ad({args:t||Ts.create([]).rest(Rc.create()),returns:n||Rc.create(),typeName:Tt.ZodFunction,...Gt(r)})}}class ug extends en{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}ug.create=(e,t)=>new ug({getter:e,typeName:Tt.ZodLazy,...Gt(t)});class lg extends en{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return et(n,{received:n.data,code:Ue.invalid_literal,expected:this._def.value}),Dt}return{status:"valid",value:t.data}}get value(){return this._def.value}}lg.create=(e,t)=>new lg({value:e,typeName:Tt.ZodLiteral,...Gt(t)});function MB(e,t){return new Tl({values:e,typeName:Tt.ZodEnum,...Gt(t)})}class Tl extends en{constructor(){super(...arguments),o0.set(this,void 0)}_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),r=this._def.values;return et(n,{expected:gn.joinValues(r),received:n.parsedType,code:Ue.invalid_type}),Dt}if(Jy(this,o0)||AB(this,o0,new Set(this._def.values)),!Jy(this,o0).has(t.data)){const n=this._getOrReturnCtx(t),r=this._def.values;return et(n,{received:n.data,code:Ue.invalid_enum_value,options:r}),Dt}return Hi(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return Tl.create(t,{...this._def,...n})}exclude(t,n=this._def){return Tl.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}}o0=new WeakMap;Tl.create=MB;class cg extends en{constructor(){super(...arguments),a0.set(this,void 0)}_parse(t){const n=gn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==rt.string&&r.parsedType!==rt.number){const i=gn.objectValues(n);return et(r,{expected:gn.joinValues(i),received:r.parsedType,code:Ue.invalid_type}),Dt}if(Jy(this,a0)||AB(this,a0,new Set(gn.getValidEnumValues(this._def.values))),!Jy(this,a0).has(t.data)){const i=gn.objectValues(n);return et(r,{received:r.data,code:Ue.invalid_enum_value,options:i}),Dt}return Hi(t.data)}get enum(){return this._def.values}}a0=new WeakMap;cg.create=(e,t)=>new cg({values:e,typeName:Tt.ZodNativeEnum,...Gt(t)});class Yd extends en{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==rt.promise&&n.common.async===!1)return et(n,{code:Ue.invalid_type,expected:rt.promise,received:n.parsedType}),Dt;const r=n.parsedType===rt.promise?n.data:Promise.resolve(n.data);return Hi(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}}Yd.create=(e,t)=>new Yd({type:e,typeName:Tt.ZodPromise,...Gt(t)});class Ya extends en{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Tt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,o={addIssue:a=>{et(r,a),a.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),i.type==="preprocess"){const a=i.transform(r.data,o);if(r.common.async)return Promise.resolve(a).then(async s=>{if(n.value==="aborted")return Dt;const u=await this._def.schema._parseAsync({data:s,path:r.path,parent:r});return u.status==="aborted"?Dt:u.status==="dirty"||n.value==="dirty"?gd(u.value):u});{if(n.value==="aborted")return Dt;const s=this._def.schema._parseSync({data:a,path:r.path,parent:r});return s.status==="aborted"?Dt:s.status==="dirty"||n.value==="dirty"?gd(s.value):s}}if(i.type==="refinement"){const a=s=>{const u=i.refinement(s,o);if(r.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return s};if(r.common.async===!1){const s=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Dt:(s.status==="dirty"&&n.dirty(),a(s.value),{status:n.value,value:s.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(s=>s.status==="aborted"?Dt:(s.status==="dirty"&&n.dirty(),a(s.value).then(()=>({status:n.value,value:s.value}))))}if(i.type==="transform")if(r.common.async===!1){const a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Gc(a))return a;const s=i.transform(a.value,o);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:s}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>Gc(a)?Promise.resolve(i.transform(a.value,o)).then(s=>({status:n.value,value:s})):a);gn.assertNever(i)}}Ya.create=(e,t,n)=>new Ya({schema:e,typeName:Tt.ZodEffects,effect:t,...Gt(n)});Ya.createWithPreprocess=(e,t,n)=>new Ya({schema:t,effect:{type:"preprocess",transform:e},typeName:Tt.ZodEffects,...Gt(n)});class Es extends en{_parse(t){return this._getType(t)===rt.undefined?Hi(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Es.create=(e,t)=>new Es({innerType:e,typeName:Tt.ZodOptional,...Gt(t)});class Ml extends en{_parse(t){return this._getType(t)===rt.null?Hi(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Ml.create=(e,t)=>new Ml({innerType:e,typeName:Tt.ZodNullable,...Gt(t)});class fg extends en{_parse(t){const{ctx:n}=this._processInputParams(t);let r=n.data;return n.parsedType===rt.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}fg.create=(e,t)=>new fg({innerType:e,typeName:Tt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Gt(t)});class dg extends en{_parse(t){const{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return tg(i)?i.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Lo(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Lo(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}dg.create=(e,t)=>new dg({innerType:e,typeName:Tt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Gt(t)});class rb extends en{_parse(t){if(this._getType(t)!==rt.nan){const r=this._getOrReturnCtx(t);return et(r,{code:Ue.invalid_type,expected:rt.nan,received:r.parsedType}),Dt}return{status:"valid",value:t.data}}}rb.create=e=>new rb({typeName:Tt.ZodNaN,...Gt(e)});const zhe=Symbol("zod_brand");class H5 extends en{_parse(t){const{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class wm extends en{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?Dt:o.status==="dirty"?(n.dirty(),gd(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{const i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Dt:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new wm({in:t,out:n,typeName:Tt.ZodPipeline})}}class hg extends en{_parse(t){const n=this._def.innerType._parse(t),r=i=>(Gc(i)&&(i.value=Object.freeze(i.value)),i);return tg(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}}hg.create=(e,t)=>new hg({innerType:e,typeName:Tt.ZodReadonly,...Gt(t)});function RB(e,t={},n){return e?Gd.create().superRefine((r,i)=>{var o,a;if(!e(r)){const s=typeof t=="function"?t(r):typeof t=="string"?{message:t}:t,u=(a=(o=s.fatal)!==null&&o!==void 0?o:n)!==null&&a!==void 0?a:!0,l=typeof s=="string"?{message:s}:s;i.addIssue({code:"custom",...l,fatal:u})}}):Gd.create()}const Uhe={object:cr.lazycreate};var Tt;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Tt||(Tt={}));const Vhe=(e,t={message:`Input not instance of ${e.name}`})=>RB(n=>n instanceof e,t),DB=za.create,$B=Pl.create,Whe=rb.create,Hhe=kl.create,IB=ng.create,Khe=Yc.create,qhe=eb.create,Ghe=rg.create,Yhe=ig.create,Zhe=Gd.create,Xhe=Rc.create,Qhe=bu.create,Jhe=tb.create,epe=Ha.create,tpe=cr.create,npe=cr.strictCreate,rpe=og.create,ipe=t2.create,ope=ag.create,ape=Ts.create,spe=sg.create,upe=nb.create,lpe=Zc.create,cpe=Ad.create,fpe=ug.create,dpe=lg.create,hpe=Tl.create,ppe=cg.create,gpe=Yd.create,FR=Ya.create,mpe=Es.create,vpe=Ml.create,ype=Ya.createWithPreprocess,bpe=wm.create,xpe=()=>DB().optional(),wpe=()=>$B().optional(),_pe=()=>IB().optional(),Spe={string:e=>za.create({...e,coerce:!0}),number:e=>Pl.create({...e,coerce:!0}),boolean:e=>ng.create({...e,coerce:!0}),bigint:e=>kl.create({...e,coerce:!0}),date:e=>Yc.create({...e,coerce:!0})},Cpe=Dt;var BYe=Object.freeze({__proto__:null,defaultErrorMap:qd,setErrorMap:yhe,getErrorMap:Xy,makeIssue:Qy,EMPTY_PATH:bhe,addIssueToContext:et,ParseStatus:$i,INVALID:Dt,DIRTY:gd,OK:Hi,isAborted:sE,isDirty:uE,isValid:Gc,isAsync:tg,get util(){return gn},get objectUtil(){return aE},ZodParsedType:rt,getParsedType:nu,ZodType:en,datetimeRegex:TB,ZodString:za,ZodNumber:Pl,ZodBigInt:kl,ZodBoolean:ng,ZodDate:Yc,ZodSymbol:eb,ZodUndefined:rg,ZodNull:ig,ZodAny:Gd,ZodUnknown:Rc,ZodNever:bu,ZodVoid:tb,ZodArray:Ha,ZodObject:cr,ZodUnion:og,ZodDiscriminatedUnion:t2,ZodIntersection:ag,ZodTuple:Ts,ZodRecord:sg,ZodMap:nb,ZodSet:Zc,ZodFunction:Ad,ZodLazy:ug,ZodLiteral:lg,ZodEnum:Tl,ZodNativeEnum:cg,ZodPromise:Yd,ZodEffects:Ya,ZodTransformer:Ya,ZodOptional:Es,ZodNullable:Ml,ZodDefault:fg,ZodCatch:dg,ZodNaN:rb,BRAND:zhe,ZodBranded:H5,ZodPipeline:wm,ZodReadonly:hg,custom:RB,Schema:en,ZodSchema:en,late:Uhe,get ZodFirstPartyTypeKind(){return Tt},coerce:Spe,any:Zhe,array:epe,bigint:Hhe,boolean:IB,date:Khe,discriminatedUnion:ipe,effect:FR,enum:hpe,function:cpe,instanceof:Vhe,intersection:ope,lazy:fpe,literal:dpe,map:upe,nan:Whe,nativeEnum:ppe,never:Qhe,null:Yhe,nullable:vpe,number:$B,object:tpe,oboolean:_pe,onumber:wpe,optional:mpe,ostring:xpe,pipeline:bpe,preprocess:ype,promise:gpe,record:spe,set:lpe,strictObject:npe,string:DB,symbol:qhe,transformer:FR,tuple:ape,undefined:Ghe,union:rpe,unknown:Xhe,void:Jhe,NEVER:Cpe,ZodIssueCode:Ue,quotelessJson:vhe,ZodError:Lo});const jR=(e,t,n)=>{if(e&&"reportValidity"in e){const r=Ze(n,t);e.setCustomValidity(r&&r.message||""),e.reportValidity()}},NB=(e,t)=>{for(const n in t.fields){const r=t.fields[n];r&&r.ref&&"reportValidity"in r.ref?jR(r.ref,n,e):r.refs&&r.refs.forEach(i=>jR(i,n,e))}},Epe=(e,t)=>{t.shouldUseNativeValidation&&NB(e,t);const n={};for(const r in e){const i=Ze(t.fields,r),o=Object.assign(e[r]||{},{ref:i&&i.ref});if(Ope(t.names||Object.keys(e),r)){const a=Object.assign({},Ze(n,r));An(a,"root",o),An(n,r,a)}else An(n,r,o)}return n},Ope=(e,t)=>e.some(n=>n.startsWith(t+"."));var Ape=function(e,t){for(var n={};e.length;){var r=e[0],i=r.code,o=r.message,a=r.path.join(".");if(!n[a])if("unionErrors"in r){var s=r.unionErrors[0].errors[0];n[a]={message:s.message,type:s.code}}else n[a]={message:o,type:i};if("unionErrors"in r&&r.unionErrors.forEach(function(c){return c.errors.forEach(function(f){return e.push(f)})}),t){var u=n[a].types,l=u&&u[r.code];n[a]=bB(a,t,n,i,l?[].concat(l,r.message):r.message)}e.shift()}return n},zYe=function(e,t,n){return n===void 0&&(n={}),function(r,i,o){try{return Promise.resolve(function(a,s){try{var u=Promise.resolve(e[n.mode==="sync"?"parse":"parseAsync"](r,t)).then(function(l){return o.shouldUseNativeValidation&&NB({},o),{errors:{},values:n.raw?r:l}})}catch(l){return s(l)}return u&&u.then?u.then(void 0,s):u}(0,function(a){if(function(s){return Array.isArray(s?.errors)}(a))return{values:{},errors:Epe(Ape(a.errors,!o.shouldUseNativeValidation&&o.criteriaMode==="all"),o)};throw a}))}catch(a){return Promise.reject(a)}}},Ppe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],pt=Ppe.reduce((e,t)=>{const n=y.forwardRef((r,i)=>{const{asChild:o,...a}=r,s=o?Al:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),I.jsx(s,{...a,ref:i})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function LB(e,t){e&&Au.flushSync(()=>e.dispatchEvent(t))}var kpe="Label",FB=y.forwardRef((e,t)=>I.jsx(pt.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));FB.displayName=kpe;var UYe=FB,jB={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(La,function(){var n=1e3,r=6e4,i=36e5,o="millisecond",a="second",s="minute",u="hour",l="day",c="week",f="month",h="quarter",p="year",m="date",v="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,w=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,x={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(Z){var G=["th","st","nd","rd"],q=Z%100;return"["+Z+(G[(q-20)%10]||G[q]||G[0])+"]"}},S=function(Z,G,q){var W=String(Z);return!W||W.length>=G?Z:""+Array(G+1-W.length).join(q)+Z},O={s:S,z:function(Z){var G=-Z.utcOffset(),q=Math.abs(G),W=Math.floor(q/60),j=q%60;return(G<=0?"+":"-")+S(W,2,"0")+":"+S(j,2,"0")},m:function Z(G,q){if(G.date()1)return Z(Y[0])}else{var oe=G.name;C[oe]=G,j=oe}return!W&&j&&(E=j),j||!W&&E},U=function(Z,G){if(M(Z))return Z.clone();var q=typeof G=="object"?G:{};return q.date=Z,q.args=arguments,new V(q)},H=O;H.l=L,H.i=M,H.w=function(Z,G){return U(Z,{locale:G.$L,utc:G.$u,x:G.$x,$offset:G.$offset})};var V=function(){function Z(q){this.$L=L(q.locale,null,!0),this.parse(q),this.$x=this.$x||q.x||{},this[k]=!0}var G=Z.prototype;return G.parse=function(q){this.$d=function(W){var j=W.date,K=W.utc;if(j===null)return new Date(NaN);if(H.u(j))return new Date;if(j instanceof Date)return new Date(j);if(typeof j=="string"&&!/Z$/i.test(j)){var Y=j.match(b);if(Y){var oe=Y[2]-1||0,ae=(Y[7]||"0").substring(0,3);return K?new Date(Date.UTC(Y[1],oe,Y[3]||1,Y[4]||0,Y[5]||0,Y[6]||0,ae)):new Date(Y[1],oe,Y[3]||1,Y[4]||0,Y[5]||0,Y[6]||0,ae)}}return new Date(j)}(q),this.init()},G.init=function(){var q=this.$d;this.$y=q.getFullYear(),this.$M=q.getMonth(),this.$D=q.getDate(),this.$W=q.getDay(),this.$H=q.getHours(),this.$m=q.getMinutes(),this.$s=q.getSeconds(),this.$ms=q.getMilliseconds()},G.$utils=function(){return H},G.isValid=function(){return this.$d.toString()!==v},G.isSame=function(q,W){var j=U(q);return this.startOf(W)<=j&&j<=this.endOf(W)},G.isAfter=function(q,W){return U(q){const{children:a,...s}=o,u=y.useMemo(()=>s,Object.values(s));return I.jsx(n.Provider,{value:u,children:a})};r.displayName=e+"Provider";function i(o){const a=y.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[r,i]}function vi(e,t=[]){let n=[];function r(o,a){const s=y.createContext(a),u=n.length;n=[...n,a];const l=f=>{const{scope:h,children:p,...m}=f,v=h?.[e]?.[u]||s,b=y.useMemo(()=>m,Object.values(m));return I.jsx(v.Provider,{value:b,children:p})};l.displayName=o+"Provider";function c(f,h){const p=h?.[e]?.[u]||s,m=y.useContext(p);if(m)return m;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${o}\``)}return[l,c]}const i=()=>{const o=n.map(a=>y.createContext(a));return function(s){const u=s?.[e]||o;return y.useMemo(()=>({[`__scope${e}`]:{...s,[e]:u}}),[s,u])}};return i.scopeName=e,[r,Rpe(i,...t)]}function Rpe(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){const a=r.reduce((s,{useScope:u,scopeName:l})=>{const f=u(o)[`__scope${l}`];return{...s,...f}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}var Dpe=globalThis?.document?y.useLayoutEffect:()=>{},$pe=P4.useId||(()=>{}),Ipe=0;function Fo(e){const[t,n]=y.useState($pe());return Dpe(()=>{e||n(r=>r??String(Ipe++))},[e]),e||(t?`radix-${t}`:"")}function Vr(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}function Za({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,i]=Npe({defaultProp:t,onChange:n}),o=e!==void 0,a=o?e:r,s=Vr(n),u=y.useCallback(l=>{if(o){const f=typeof l=="function"?l(e):l;f!==e&&s(f)}else i(l)},[o,e,i,s]);return[a,u]}function Npe({defaultProp:e,onChange:t}){const n=y.useState(e),[r]=n,i=y.useRef(r),o=Vr(t);return y.useEffect(()=>{i.current!==r&&(o(r),i.current=r)},[r,i,o]),n}function Lpe(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}function Fpe(e,t=globalThis?.document){const n=Lpe(e);y.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var jpe="DismissableLayer",cE="dismissableLayer.update",Bpe="dismissableLayer.pointerDownOutside",zpe="dismissableLayer.focusOutside",BR,BB=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Nh=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:a,onDismiss:s,...u}=e,l=y.useContext(BB),[c,f]=y.useState(null),h=c?.ownerDocument??globalThis?.document,[,p]=y.useState({}),m=Yt(t,k=>f(k)),v=Array.from(l.layers),[b]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),w=v.indexOf(b),x=c?v.indexOf(c):-1,S=l.layersWithOutsidePointerEventsDisabled.size>0,O=x>=w,E=Wpe(k=>{const M=k.target,L=[...l.branches].some(U=>U.contains(M));!O||L||(i?.(k),a?.(k),k.defaultPrevented||s?.())},h),C=Hpe(k=>{const M=k.target;[...l.branches].some(U=>U.contains(M))||(o?.(k),a?.(k),k.defaultPrevented||s?.())},h);return Fpe(k=>{x===l.layers.size-1&&(r?.(k),!k.defaultPrevented&&s&&(k.preventDefault(),s()))},h),y.useEffect(()=>{if(c)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(BR=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(c)),l.layers.add(c),zR(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=BR)}},[c,h,n,l]),y.useEffect(()=>()=>{c&&(l.layers.delete(c),l.layersWithOutsidePointerEventsDisabled.delete(c),zR())},[c,l]),y.useEffect(()=>{const k=()=>p({});return document.addEventListener(cE,k),()=>document.removeEventListener(cE,k)},[]),I.jsx(pt.div,{...u,ref:m,style:{pointerEvents:S?O?"auto":"none":void 0,...e.style},onFocusCapture:Ye(e.onFocusCapture,C.onFocusCapture),onBlurCapture:Ye(e.onBlurCapture,C.onBlurCapture),onPointerDownCapture:Ye(e.onPointerDownCapture,E.onPointerDownCapture)})});Nh.displayName=jpe;var Upe="DismissableLayerBranch",Vpe=y.forwardRef((e,t)=>{const n=y.useContext(BB),r=y.useRef(null),i=Yt(t,r);return y.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),I.jsx(pt.div,{...e,ref:i})});Vpe.displayName=Upe;function Wpe(e,t=globalThis?.document){const n=Vr(e),r=y.useRef(!1),i=y.useRef(()=>{});return y.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let u=function(){zB(Bpe,n,l,{discrete:!0})};const l={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=u,t.addEventListener("click",i.current,{once:!0})):u()}else t.removeEventListener("click",i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Hpe(e,t=globalThis?.document){const n=Vr(e),r=y.useRef(!1);return y.useEffect(()=>{const i=o=>{o.target&&!r.current&&zB(zpe,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function zR(){const e=new CustomEvent(cE);document.dispatchEvent(e)}function zB(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?LB(i,o):i.dispatchEvent(o)}var yS="focusScope.autoFocusOnMount",bS="focusScope.autoFocusOnUnmount",UR={bubbles:!1,cancelable:!0},Kpe="FocusScope",_m=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...a}=e,[s,u]=y.useState(null),l=Vr(i),c=Vr(o),f=y.useRef(null),h=Yt(t,v=>u(v)),p=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let v=function(S){if(p.paused||!s)return;const O=S.target;s.contains(O)?f.current=O:Gu(f.current,{select:!0})},b=function(S){if(p.paused||!s)return;const O=S.relatedTarget;O!==null&&(s.contains(O)||Gu(f.current,{select:!0}))},w=function(S){if(document.activeElement===document.body)for(const E of S)E.removedNodes.length>0&&Gu(s)};document.addEventListener("focusin",v),document.addEventListener("focusout",b);const x=new MutationObserver(w);return s&&x.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",v),document.removeEventListener("focusout",b),x.disconnect()}}},[r,s,p.paused]),y.useEffect(()=>{if(s){WR.add(p);const v=document.activeElement;if(!s.contains(v)){const w=new CustomEvent(yS,UR);s.addEventListener(yS,l),s.dispatchEvent(w),w.defaultPrevented||(qpe(Qpe(UB(s)),{select:!0}),document.activeElement===v&&Gu(s))}return()=>{s.removeEventListener(yS,l),setTimeout(()=>{const w=new CustomEvent(bS,UR);s.addEventListener(bS,c),s.dispatchEvent(w),w.defaultPrevented||Gu(v??document.body,{select:!0}),s.removeEventListener(bS,c),WR.remove(p)},0)}}},[s,l,c,p]);const m=y.useCallback(v=>{if(!n&&!r||p.paused)return;const b=v.key==="Tab"&&!v.altKey&&!v.ctrlKey&&!v.metaKey,w=document.activeElement;if(b&&w){const x=v.currentTarget,[S,O]=Gpe(x);S&&O?!v.shiftKey&&w===O?(v.preventDefault(),n&&Gu(S,{select:!0})):v.shiftKey&&w===S&&(v.preventDefault(),n&&Gu(O,{select:!0})):w===x&&v.preventDefault()}},[n,r,p.paused]);return I.jsx(pt.div,{tabIndex:-1,...a,ref:h,onKeyDown:m})});_m.displayName=Kpe;function qpe(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Gu(r,{select:t}),document.activeElement!==n)return}function Gpe(e){const t=UB(e),n=VR(t,e),r=VR(t.reverse(),e);return[n,r]}function UB(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function VR(e,t){for(const n of e)if(!Ype(n,{upTo:t}))return n}function Ype(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Zpe(e){return e instanceof HTMLInputElement&&"select"in e}function Gu(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Zpe(e)&&t&&e.select()}}var WR=Xpe();function Xpe(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=HR(e,t),e.unshift(t)},remove(t){e=HR(e,t),e[0]?.resume()}}}function HR(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Qpe(e){return e.filter(t=>t.tagName!=="A")}var ii=globalThis?.document?y.useLayoutEffect:()=>{},Jpe="Portal",Lh=y.forwardRef((e,t)=>{const{container:n,...r}=e,[i,o]=y.useState(!1);ii(()=>o(!0),[]);const a=n||i&&globalThis?.document?.body;return a?jx.createPortal(I.jsx(pt.div,{...r,ref:t}),a):null});Lh.displayName=Jpe;function e0e(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var Gr=e=>{const{present:t,children:n}=e,r=t0e(t),i=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),o=Yt(r.ref,n0e(i));return typeof n=="function"||r.isPresent?y.cloneElement(i,{ref:o}):null};Gr.displayName="Presence";function t0e(e){const[t,n]=y.useState(),r=y.useRef({}),i=y.useRef(e),o=y.useRef("none"),a=e?"mounted":"unmounted",[s,u]=e0e(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const l=i1(r.current);o.current=s==="mounted"?l:"none"},[s]),ii(()=>{const l=r.current,c=i.current;if(c!==e){const h=o.current,p=i1(l);e?u("MOUNT"):p==="none"||l?.display==="none"?u("UNMOUNT"):u(c&&h!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,u]),ii(()=>{if(t){let l;const c=t.ownerDocument.defaultView??window,f=p=>{const v=i1(r.current).includes(p.animationName);if(p.target===t&&v&&(u("ANIMATION_END"),!i.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",l=c.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},h=p=>{p.target===t&&(o.current=i1(r.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{c.clearTimeout(l),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:y.useCallback(l=>{l&&(r.current=getComputedStyle(l)),n(l)},[])}}function i1(e){return e?.animationName||"none"}function n0e(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var xS=0;function n2(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??KR()),document.body.insertAdjacentElement("beforeend",e[1]??KR()),xS++,()=>{xS===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),xS--}},[])}function KR(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Ri=function(){return Ri=Object.assign||function(t){for(var n,r=1,i=arguments.length;r"u")return m0e;var t=v0e(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},b0e=g0e(),Pd="data-scroll-locked",x0e=function(e,t,n,r){var i=e.left,o=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` + .`.concat(r0e,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(s,"px ").concat(r,`; + } + body[`).concat(Pd,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(i,`px; + padding-top: `).concat(o,`px; + padding-right: `).concat(a,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(s,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(Q1,` { + right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(J1,` { + margin-right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(Q1," .").concat(Q1,` { + right: 0 `).concat(r,`; + } + + .`).concat(J1," .").concat(J1,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(Pd,`] { + `).concat(i0e,": ").concat(s,`px; + } +`)},GR=function(){var e=parseInt(document.body.getAttribute(Pd)||"0",10);return isFinite(e)?e:0},w0e=function(){y.useEffect(function(){return document.body.setAttribute(Pd,(GR()+1).toString()),function(){var e=GR()-1;e<=0?document.body.removeAttribute(Pd):document.body.setAttribute(Pd,e.toString())}},[])},_0e=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r;w0e();var o=y.useMemo(function(){return y0e(i)},[i]);return y.createElement(b0e,{styles:x0e(o,!t,i,n?"":"!important")})};function S0e(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=GB();return t&&e.setAttribute("nonce",t),e}function C0e(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function E0e(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var O0e=function(){var e=0,t=null;return{add:function(n){e==0&&(t=S0e())&&(C0e(t,n),E0e(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},A0e=function(){var e=O0e();return function(t,n){y.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},q5=function(){var e=A0e(),t=function(n){var r=n.styles,i=n.dynamic;return e(r,i),null};return t},fE=!1;if(typeof window<"u")try{var o1=Object.defineProperty({},"passive",{get:function(){return fE=!0,!0}});window.addEventListener("test",o1,o1),window.removeEventListener("test",o1,o1)}catch{fE=!1}var Vf=fE?{passive:!1}:!1,P0e=function(e){return e.tagName==="TEXTAREA"},YB=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!P0e(e)&&n[t]==="visible")},k0e=function(e){return YB(e,"overflowY")},T0e=function(e){return YB(e,"overflowX")},YR=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var i=ZB(e,r);if(i){var o=XB(e,r),a=o[1],s=o[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},M0e=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},R0e=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},ZB=function(e,t){return e==="v"?k0e(t):T0e(t)},XB=function(e,t){return e==="v"?M0e(t):R0e(t)},D0e=function(e,t){return e==="h"&&t==="rtl"?-1:1},$0e=function(e,t,n,r,i){var o=D0e(e,window.getComputedStyle(t).direction),a=o*r,s=n.target,u=t.contains(s),l=!1,c=a>0,f=0,h=0;do{var p=XB(e,s),m=p[0],v=p[1],b=p[2],w=v-b-o*m;(m||w)&&ZB(e,s)&&(f+=w,h+=m),s instanceof ShadowRoot?s=s.host:s=s.parentNode}while(!u&&s!==document.body||u&&(t.contains(s)||t===s));return(c&&(Math.abs(f)<1||!i)||!c&&(Math.abs(h)<1||!i))&&(l=!0),l},a1=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},ZR=function(e){return[e.deltaX,e.deltaY]},XR=function(e){return e&&"current"in e?e.current:e},I0e=function(e,t){return e[0]===t[0]&&e[1]===t[1]},N0e=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},L0e=0,Wf=[];function F0e(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),i=y.useState(L0e++)[0],o=y.useState(q5)[0],a=y.useRef(e);y.useEffect(function(){a.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var v=VB([e.lockRef.current],(e.shards||[]).map(XR),!0).filter(Boolean);return v.forEach(function(b){return b.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),v.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=y.useCallback(function(v,b){if("touches"in v&&v.touches.length===2||v.type==="wheel"&&v.ctrlKey)return!a.current.allowPinchZoom;var w=a1(v),x=n.current,S="deltaX"in v?v.deltaX:x[0]-w[0],O="deltaY"in v?v.deltaY:x[1]-w[1],E,C=v.target,k=Math.abs(S)>Math.abs(O)?"h":"v";if("touches"in v&&k==="h"&&C.type==="range")return!1;var M=YR(k,C);if(!M)return!0;if(M?E=k:(E=k==="v"?"h":"v",M=YR(k,C)),!M)return!1;if(!r.current&&"changedTouches"in v&&(S||O)&&(r.current=E),!E)return!0;var L=r.current||E;return $0e(L,b,v,L==="h"?S:O,!0)},[]),u=y.useCallback(function(v){var b=v;if(!(!Wf.length||Wf[Wf.length-1]!==o)){var w="deltaY"in b?ZR(b):a1(b),x=t.current.filter(function(E){return E.name===b.type&&(E.target===b.target||b.target===E.shadowParent)&&I0e(E.delta,w)})[0];if(x&&x.should){b.cancelable&&b.preventDefault();return}if(!x){var S=(a.current.shards||[]).map(XR).filter(Boolean).filter(function(E){return E.contains(b.target)}),O=S.length>0?s(b,S[0]):!a.current.noIsolation;O&&b.cancelable&&b.preventDefault()}}},[]),l=y.useCallback(function(v,b,w,x){var S={name:v,delta:b,target:w,should:x,shadowParent:j0e(w)};t.current.push(S),setTimeout(function(){t.current=t.current.filter(function(O){return O!==S})},1)},[]),c=y.useCallback(function(v){n.current=a1(v),r.current=void 0},[]),f=y.useCallback(function(v){l(v.type,ZR(v),v.target,s(v,e.lockRef.current))},[]),h=y.useCallback(function(v){l(v.type,a1(v),v.target,s(v,e.lockRef.current))},[]);y.useEffect(function(){return Wf.push(o),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:h}),document.addEventListener("wheel",u,Vf),document.addEventListener("touchmove",u,Vf),document.addEventListener("touchstart",c,Vf),function(){Wf=Wf.filter(function(v){return v!==o}),document.removeEventListener("wheel",u,Vf),document.removeEventListener("touchmove",u,Vf),document.removeEventListener("touchstart",c,Vf)}},[]);var p=e.removeScrollBar,m=e.inert;return y.createElement(y.Fragment,null,m?y.createElement(o,{styles:N0e(i)}):null,p?y.createElement(_0e,{gapMode:e.gapMode}):null)}function j0e(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const B0e=KB(qB,F0e);var Sm=y.forwardRef(function(e,t){return y.createElement(r2,Ri({},e,{ref:t,sideCar:B0e}))});Sm.classNames=r2.classNames;var z0e=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Hf=new WeakMap,s1=new WeakMap,u1={},CS=0,QB=function(e){return e&&(e.host||QB(e.parentNode))},U0e=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=QB(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},V0e=function(e,t,n,r){var i=U0e(t,Array.isArray(e)?e:[e]);u1[n]||(u1[n]=new WeakMap);var o=u1[n],a=[],s=new Set,u=new Set(i),l=function(f){!f||s.has(f)||(s.add(f),l(f.parentNode))};i.forEach(l);var c=function(f){!f||u.has(f)||Array.prototype.forEach.call(f.children,function(h){if(s.has(h))c(h);else try{var p=h.getAttribute(r),m=p!==null&&p!=="false",v=(Hf.get(h)||0)+1,b=(o.get(h)||0)+1;Hf.set(h,v),o.set(h,b),a.push(h),v===1&&m&&s1.set(h,!0),b===1&&h.setAttribute(n,"true"),m||h.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",h,w)}})};return c(t),s.clear(),CS++,function(){a.forEach(function(f){var h=Hf.get(f)-1,p=o.get(f)-1;Hf.set(f,h),o.set(f,p),h||(s1.has(f)||f.removeAttribute(r),s1.delete(f)),p||f.removeAttribute(n)}),CS--,CS||(Hf=new WeakMap,Hf=new WeakMap,s1=new WeakMap,u1={})}},Cm=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),i=z0e(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live]"))),V0e(r,i,n,"aria-hidden")):function(){return null}},G5="Dialog",[JB,ez]=vi(G5),[W0e,ns]=JB(G5),tz=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!0}=e,s=y.useRef(null),u=y.useRef(null),[l=!1,c]=Za({prop:r,defaultProp:i,onChange:o});return I.jsx(W0e,{scope:t,triggerRef:s,contentRef:u,contentId:Fo(),titleId:Fo(),descriptionId:Fo(),open:l,onOpenChange:c,onOpenToggle:y.useCallback(()=>c(f=>!f),[c]),modal:a,children:n})};tz.displayName=G5;var nz="DialogTrigger",rz=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=ns(nz,n),o=Yt(t,i.triggerRef);return I.jsx(pt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":X5(i.open),...r,ref:o,onClick:Ye(e.onClick,i.onOpenToggle)})});rz.displayName=nz;var Y5="DialogPortal",[H0e,iz]=JB(Y5,{forceMount:void 0}),oz=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=ns(Y5,t);return I.jsx(H0e,{scope:t,forceMount:n,children:y.Children.map(r,a=>I.jsx(Gr,{present:n||o.open,children:I.jsx(Lh,{asChild:!0,container:i,children:a})}))})};oz.displayName=Y5;var ib="DialogOverlay",az=y.forwardRef((e,t)=>{const n=iz(ib,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=ns(ib,e.__scopeDialog);return o.modal?I.jsx(Gr,{present:r||o.open,children:I.jsx(K0e,{...i,ref:t})}):null});az.displayName=ib;var K0e=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=ns(ib,n);return I.jsx(Sm,{as:Al,allowPinchZoom:!0,shards:[i.contentRef],children:I.jsx(pt.div,{"data-state":X5(i.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),Xc="DialogContent",sz=y.forwardRef((e,t)=>{const n=iz(Xc,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=ns(Xc,e.__scopeDialog);return I.jsx(Gr,{present:r||o.open,children:o.modal?I.jsx(q0e,{...i,ref:t}):I.jsx(G0e,{...i,ref:t})})});sz.displayName=Xc;var q0e=y.forwardRef((e,t)=>{const n=ns(Xc,e.__scopeDialog),r=y.useRef(null),i=Yt(t,n.contentRef,r);return y.useEffect(()=>{const o=r.current;if(o)return Cm(o)},[]),I.jsx(uz,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ye(e.onCloseAutoFocus,o=>{o.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Ye(e.onPointerDownOutside,o=>{const a=o.detail.originalEvent,s=a.button===0&&a.ctrlKey===!0;(a.button===2||s)&&o.preventDefault()}),onFocusOutside:Ye(e.onFocusOutside,o=>o.preventDefault())})}),G0e=y.forwardRef((e,t)=>{const n=ns(Xc,e.__scopeDialog),r=y.useRef(!1),i=y.useRef(!1);return I.jsx(uz,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{e.onCloseAutoFocus?.(o),o.defaultPrevented||(r.current||n.triggerRef.current?.focus(),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{e.onInteractOutside?.(o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;n.triggerRef.current?.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),uz=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...a}=e,s=ns(Xc,n),u=y.useRef(null),l=Yt(t,u);return n2(),I.jsxs(I.Fragment,{children:[I.jsx(_m,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:I.jsx(Nh,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":X5(s.open),...a,ref:l,onDismiss:()=>s.onOpenChange(!1)})}),I.jsxs(I.Fragment,{children:[I.jsx(Z0e,{titleId:s.titleId}),I.jsx(Q0e,{contentRef:u,descriptionId:s.descriptionId})]})]})}),Z5="DialogTitle",lz=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=ns(Z5,n);return I.jsx(pt.h2,{id:i.titleId,...r,ref:t})});lz.displayName=Z5;var cz="DialogDescription",fz=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=ns(cz,n);return I.jsx(pt.p,{id:i.descriptionId,...r,ref:t})});fz.displayName=cz;var dz="DialogClose",hz=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=ns(dz,n);return I.jsx(pt.button,{type:"button",...r,ref:t,onClick:Ye(e.onClick,()=>i.onOpenChange(!1))})});hz.displayName=dz;function X5(e){return e?"open":"closed"}var pz="DialogTitleWarning",[Y0e,gz]=Mpe(pz,{contentName:Xc,titleName:Z5,docsSlug:"dialog"}),Z0e=({titleId:e})=>{const t=gz(pz),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},X0e="DialogDescriptionWarning",Q0e=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${gz(X0e).contentName}}.`;return y.useEffect(()=>{const i=e.current?.getAttribute("aria-describedby");t&&i&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},J0e=tz,ege=rz,tge=oz,nge=az,rge=sz,ige=lz,oge=fz,mz=hz;function Yr(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var age=["color"],WYe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,age);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),sge=["color"],HYe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,sge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M7.49991 0.877045C3.84222 0.877045 0.877075 3.84219 0.877075 7.49988C0.877075 11.1575 3.84222 14.1227 7.49991 14.1227C11.1576 14.1227 14.1227 11.1575 14.1227 7.49988C14.1227 3.84219 11.1576 0.877045 7.49991 0.877045ZM1.82708 7.49988C1.82708 4.36686 4.36689 1.82704 7.49991 1.82704C10.6329 1.82704 13.1727 4.36686 13.1727 7.49988C13.1727 10.6329 10.6329 13.1727 7.49991 13.1727C4.36689 13.1727 1.82708 10.6329 1.82708 7.49988ZM10.1589 5.53774C10.3178 5.31191 10.2636 5.00001 10.0378 4.84109C9.81194 4.68217 9.50004 4.73642 9.34112 4.96225L6.51977 8.97154L5.35681 7.78706C5.16334 7.59002 4.84677 7.58711 4.64973 7.78058C4.45268 7.97404 4.44978 8.29061 4.64325 8.48765L6.22658 10.1003C6.33054 10.2062 6.47617 10.2604 6.62407 10.2483C6.77197 10.2363 6.90686 10.1591 6.99226 10.0377L10.1589 5.53774Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),uge=["color"],KYe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,uge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),lge=["color"],qYe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,lge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M8.84182 3.13514C9.04327 3.32401 9.05348 3.64042 8.86462 3.84188L5.43521 7.49991L8.86462 11.1579C9.05348 11.3594 9.04327 11.6758 8.84182 11.8647C8.64036 12.0535 8.32394 12.0433 8.13508 11.8419L4.38508 7.84188C4.20477 7.64955 4.20477 7.35027 4.38508 7.15794L8.13508 3.15794C8.32394 2.95648 8.64036 2.94628 8.84182 3.13514Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),cge=["color"],GYe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,cge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),fge=["color"],YYe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,fge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M3.13523 8.84197C3.3241 9.04343 3.64052 9.05363 3.84197 8.86477L7.5 5.43536L11.158 8.86477C11.3595 9.05363 11.6759 9.04343 11.8648 8.84197C12.0536 8.64051 12.0434 8.32409 11.842 8.13523L7.84197 4.38523C7.64964 4.20492 7.35036 4.20492 7.15803 4.38523L3.15803 8.13523C2.95657 8.32409 2.94637 8.64051 3.13523 8.84197Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),dge=["color"],ZYe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,dge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M0.877075 7.49991C0.877075 3.84222 3.84222 0.877075 7.49991 0.877075C11.1576 0.877075 14.1227 3.84222 14.1227 7.49991C14.1227 11.1576 11.1576 14.1227 7.49991 14.1227C3.84222 14.1227 0.877075 11.1576 0.877075 7.49991ZM7.49991 1.82708C4.36689 1.82708 1.82708 4.36689 1.82708 7.49991C1.82708 10.6329 4.36689 13.1727 7.49991 13.1727C10.6329 13.1727 13.1727 10.6329 13.1727 7.49991C13.1727 4.36689 10.6329 1.82708 7.49991 1.82708Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),hge=["color"],XYe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,hge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),pge=["color"],QYe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,pge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M0.877075 7.49988C0.877075 3.84219 3.84222 0.877045 7.49991 0.877045C11.1576 0.877045 14.1227 3.84219 14.1227 7.49988C14.1227 11.1575 11.1576 14.1227 7.49991 14.1227C3.84222 14.1227 0.877075 11.1575 0.877075 7.49988ZM7.49991 1.82704C4.36689 1.82704 1.82708 4.36686 1.82708 7.49988C1.82708 10.6329 4.36689 13.1727 7.49991 13.1727C10.6329 13.1727 13.1727 10.6329 13.1727 7.49988C13.1727 4.36686 10.6329 1.82704 7.49991 1.82704ZM9.85358 5.14644C10.0488 5.3417 10.0488 5.65829 9.85358 5.85355L8.20713 7.49999L9.85358 9.14644C10.0488 9.3417 10.0488 9.65829 9.85358 9.85355C9.65832 10.0488 9.34173 10.0488 9.14647 9.85355L7.50002 8.2071L5.85358 9.85355C5.65832 10.0488 5.34173 10.0488 5.14647 9.85355C4.95121 9.65829 4.95121 9.3417 5.14647 9.14644L6.79292 7.49999L5.14647 5.85355C4.95121 5.65829 4.95121 5.3417 5.14647 5.14644C5.34173 4.95118 5.65832 4.95118 5.85358 5.14644L7.50002 6.79289L9.14647 5.14644C9.34173 4.95118 9.65832 4.95118 9.85358 5.14644Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),gge=["color"],JYe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,gge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M9.875 7.5C9.875 8.81168 8.81168 9.875 7.5 9.875C6.18832 9.875 5.125 8.81168 5.125 7.5C5.125 6.18832 6.18832 5.125 7.5 5.125C8.81168 5.125 9.875 6.18832 9.875 7.5Z",fill:r}))}),mge=["color"],eZe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,mge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645C6.65829 2.95118 6.34171 2.95118 6.14645 3.14645L2.14645 7.14645C1.95118 7.34171 1.95118 7.65829 2.14645 7.85355L6.14645 11.8536C6.34171 12.0488 6.65829 12.0488 6.85355 11.8536C7.04882 11.6583 7.04882 11.3417 6.85355 11.1464L3.20711 7.5L6.85355 3.85355ZM12.8536 3.85355C13.0488 3.65829 13.0488 3.34171 12.8536 3.14645C12.6583 2.95118 12.3417 2.95118 12.1464 3.14645L8.14645 7.14645C7.95118 7.34171 7.95118 7.65829 8.14645 7.85355L12.1464 11.8536C12.3417 12.0488 12.6583 12.0488 12.8536 11.8536C13.0488 11.6583 13.0488 11.3417 12.8536 11.1464L9.20711 7.5L12.8536 3.85355Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),vge=["color"],tZe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,vge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M2.14645 11.1464C1.95118 11.3417 1.95118 11.6583 2.14645 11.8536C2.34171 12.0488 2.65829 12.0488 2.85355 11.8536L6.85355 7.85355C7.04882 7.65829 7.04882 7.34171 6.85355 7.14645L2.85355 3.14645C2.65829 2.95118 2.34171 2.95118 2.14645 3.14645C1.95118 3.34171 1.95118 3.65829 2.14645 3.85355L5.79289 7.5L2.14645 11.1464ZM8.14645 11.1464C7.95118 11.3417 7.95118 11.6583 8.14645 11.8536C8.34171 12.0488 8.65829 12.0488 8.85355 11.8536L12.8536 7.85355C13.0488 7.65829 13.0488 7.34171 12.8536 7.14645L8.85355 3.14645C8.65829 2.95118 8.34171 2.95118 8.14645 3.14645C7.95118 3.34171 7.95118 3.65829 8.14645 3.85355L11.7929 7.5L8.14645 11.1464Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),yge=["color"],nZe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,yge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M5.5 4.625C6.12132 4.625 6.625 4.12132 6.625 3.5C6.625 2.87868 6.12132 2.375 5.5 2.375C4.87868 2.375 4.375 2.87868 4.375 3.5C4.375 4.12132 4.87868 4.625 5.5 4.625ZM9.5 4.625C10.1213 4.625 10.625 4.12132 10.625 3.5C10.625 2.87868 10.1213 2.375 9.5 2.375C8.87868 2.375 8.375 2.87868 8.375 3.5C8.375 4.12132 8.87868 4.625 9.5 4.625ZM10.625 7.5C10.625 8.12132 10.1213 8.625 9.5 8.625C8.87868 8.625 8.375 8.12132 8.375 7.5C8.375 6.87868 8.87868 6.375 9.5 6.375C10.1213 6.375 10.625 6.87868 10.625 7.5ZM5.5 8.625C6.12132 8.625 6.625 8.12132 6.625 7.5C6.625 6.87868 6.12132 6.375 5.5 6.375C4.87868 6.375 4.375 6.87868 4.375 7.5C4.375 8.12132 4.87868 8.625 5.5 8.625ZM10.625 11.5C10.625 12.1213 10.1213 12.625 9.5 12.625C8.87868 12.625 8.375 12.1213 8.375 11.5C8.375 10.8787 8.87868 10.375 9.5 10.375C10.1213 10.375 10.625 10.8787 10.625 11.5ZM5.5 12.625C6.12132 12.625 6.625 12.1213 6.625 11.5C6.625 10.8787 6.12132 10.375 5.5 10.375C4.87868 10.375 4.375 10.8787 4.375 11.5C4.375 12.1213 4.87868 12.625 5.5 12.625Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),bge=["color"],rZe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,bge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),xge=["color"],iZe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,xge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M5.5 3C4.67157 3 4 3.67157 4 4.5C4 5.32843 4.67157 6 5.5 6C6.32843 6 7 5.32843 7 4.5C7 3.67157 6.32843 3 5.5 3ZM3 5C3.01671 5 3.03323 4.99918 3.04952 4.99758C3.28022 6.1399 4.28967 7 5.5 7C6.71033 7 7.71978 6.1399 7.95048 4.99758C7.96677 4.99918 7.98329 5 8 5H13.5C13.7761 5 14 4.77614 14 4.5C14 4.22386 13.7761 4 13.5 4H8C7.98329 4 7.96677 4.00082 7.95048 4.00242C7.71978 2.86009 6.71033 2 5.5 2C4.28967 2 3.28022 2.86009 3.04952 4.00242C3.03323 4.00082 3.01671 4 3 4H1.5C1.22386 4 1 4.22386 1 4.5C1 4.77614 1.22386 5 1.5 5H3ZM11.9505 10.9976C11.7198 12.1399 10.7103 13 9.5 13C8.28967 13 7.28022 12.1399 7.04952 10.9976C7.03323 10.9992 7.01671 11 7 11H1.5C1.22386 11 1 10.7761 1 10.5C1 10.2239 1.22386 10 1.5 10H7C7.01671 10 7.03323 10.0008 7.04952 10.0024C7.28022 8.8601 8.28967 8 9.5 8C10.7103 8 11.7198 8.8601 11.9505 10.0024C11.9668 10.0008 11.9833 10 12 10H13.5C13.7761 10 14 10.2239 14 10.5C14 10.7761 13.7761 11 13.5 11H12C11.9833 11 11.9668 10.9992 11.9505 10.9976ZM8 10.5C8 9.67157 8.67157 9 9.5 9C10.3284 9 11 9.67157 11 10.5C11 11.3284 10.3284 12 9.5 12C8.67157 12 8 11.3284 8 10.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),wge=["color"],oZe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,wge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M12.1464 1.14645C12.3417 0.951184 12.6583 0.951184 12.8535 1.14645L14.8535 3.14645C15.0488 3.34171 15.0488 3.65829 14.8535 3.85355L10.9109 7.79618C10.8349 7.87218 10.7471 7.93543 10.651 7.9835L6.72359 9.94721C6.53109 10.0435 6.29861 10.0057 6.14643 9.85355C5.99425 9.70137 5.95652 9.46889 6.05277 9.27639L8.01648 5.34897C8.06455 5.25283 8.1278 5.16507 8.2038 5.08907L12.1464 1.14645ZM12.5 2.20711L8.91091 5.79618L7.87266 7.87267L8.12731 8.12732L10.2038 7.08907L13.7929 3.5L12.5 2.20711ZM9.99998 2L8.99998 3H4.9C4.47171 3 4.18056 3.00039 3.95552 3.01877C3.73631 3.03668 3.62421 3.06915 3.54601 3.10899C3.35785 3.20487 3.20487 3.35785 3.10899 3.54601C3.06915 3.62421 3.03669 3.73631 3.01878 3.95552C3.00039 4.18056 3 4.47171 3 4.9V11.1C3 11.5283 3.00039 11.8194 3.01878 12.0445C3.03669 12.2637 3.06915 12.3758 3.10899 12.454C3.20487 12.6422 3.35785 12.7951 3.54601 12.891C3.62421 12.9309 3.73631 12.9633 3.95552 12.9812C4.18056 12.9996 4.47171 13 4.9 13H11.1C11.5283 13 11.8194 12.9996 12.0445 12.9812C12.2637 12.9633 12.3758 12.9309 12.454 12.891C12.6422 12.7951 12.7951 12.6422 12.891 12.454C12.9309 12.3758 12.9633 12.2637 12.9812 12.0445C12.9996 11.8194 13 11.5283 13 11.1V6.99998L14 5.99998V11.1V11.1207C14 11.5231 14 11.8553 13.9779 12.1259C13.9549 12.407 13.9057 12.6653 13.782 12.908C13.5903 13.2843 13.2843 13.5903 12.908 13.782C12.6653 13.9057 12.407 13.9549 12.1259 13.9779C11.8553 14 11.5231 14 11.1207 14H11.1H4.9H4.87934C4.47686 14 4.14468 14 3.87409 13.9779C3.59304 13.9549 3.33469 13.9057 3.09202 13.782C2.7157 13.5903 2.40973 13.2843 2.21799 12.908C2.09434 12.6653 2.04506 12.407 2.0221 12.1259C1.99999 11.8553 1.99999 11.5231 2 11.1207V11.1206V11.1V4.9V4.87935V4.87932V4.87931C1.99999 4.47685 1.99999 4.14468 2.0221 3.87409C2.04506 3.59304 2.09434 3.33469 2.21799 3.09202C2.40973 2.71569 2.7157 2.40973 3.09202 2.21799C3.33469 2.09434 3.59304 2.04506 3.87409 2.0221C4.14468 1.99999 4.47685 1.99999 4.87932 2H4.87935H4.9H9.99998Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),_ge=["color"],aZe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,_ge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM7.50003 4C7.77617 4 8.00003 4.22386 8.00003 4.5V7H10.5C10.7762 7 11 7.22386 11 7.5C11 7.77614 10.7762 8 10.5 8H8.00003V10.5C8.00003 10.7761 7.77617 11 7.50003 11C7.22389 11 7.00003 10.7761 7.00003 10.5V8H4.50003C4.22389 8 4.00003 7.77614 4.00003 7.5C4.00003 7.22386 4.22389 7 4.50003 7H7.00003V4.5C7.00003 4.22386 7.22389 4 7.50003 4Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),Sge=["color"],sZe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,Sge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M0.877075 7.49972C0.877075 3.84204 3.84222 0.876892 7.49991 0.876892C11.1576 0.876892 14.1227 3.84204 14.1227 7.49972C14.1227 11.1574 11.1576 14.1226 7.49991 14.1226C3.84222 14.1226 0.877075 11.1574 0.877075 7.49972ZM7.49991 1.82689C4.36689 1.82689 1.82708 4.36671 1.82708 7.49972C1.82708 10.6327 4.36689 13.1726 7.49991 13.1726C10.6329 13.1726 13.1727 10.6327 13.1727 7.49972C13.1727 4.36671 10.6329 1.82689 7.49991 1.82689ZM8.24993 10.5C8.24993 10.9142 7.91414 11.25 7.49993 11.25C7.08571 11.25 6.74993 10.9142 6.74993 10.5C6.74993 10.0858 7.08571 9.75 7.49993 9.75C7.91414 9.75 8.24993 10.0858 8.24993 10.5ZM6.05003 6.25C6.05003 5.57211 6.63511 4.925 7.50003 4.925C8.36496 4.925 8.95003 5.57211 8.95003 6.25C8.95003 6.74118 8.68002 6.99212 8.21447 7.27494C8.16251 7.30651 8.10258 7.34131 8.03847 7.37854L8.03841 7.37858C7.85521 7.48497 7.63788 7.61119 7.47449 7.73849C7.23214 7.92732 6.95003 8.23198 6.95003 8.7C6.95004 9.00376 7.19628 9.25 7.50004 9.25C7.8024 9.25 8.04778 9.00601 8.05002 8.70417L8.05056 8.7033C8.05924 8.6896 8.08493 8.65735 8.15058 8.6062C8.25207 8.52712 8.36508 8.46163 8.51567 8.37436L8.51571 8.37433C8.59422 8.32883 8.68296 8.27741 8.78559 8.21506C9.32004 7.89038 10.05 7.35382 10.05 6.25C10.05 4.92789 8.93511 3.825 7.50003 3.825C6.06496 3.825 4.95003 4.92789 4.95003 6.25C4.95003 6.55376 5.19628 6.8 5.50003 6.8C5.80379 6.8 6.05003 6.55376 6.05003 6.25Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),Cge=["color"],uZe=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,Cge);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),y.createElement("path",{d:"M5.49998 0.5C5.49998 0.223858 5.72383 0 5.99998 0H7.49998H8.99998C9.27612 0 9.49998 0.223858 9.49998 0.5C9.49998 0.776142 9.27612 1 8.99998 1H7.99998V2.11922C9.09832 2.20409 10.119 2.56622 10.992 3.13572C11.0116 3.10851 11.0336 3.08252 11.058 3.05806L11.858 2.25806C12.1021 2.01398 12.4978 2.01398 12.7419 2.25806C12.986 2.50214 12.986 2.89786 12.7419 3.14194L11.967 3.91682C13.1595 5.07925 13.9 6.70314 13.9 8.49998C13.9 12.0346 11.0346 14.9 7.49998 14.9C3.96535 14.9 1.09998 12.0346 1.09998 8.49998C1.09998 5.13362 3.69904 2.3743 6.99998 2.11922V1H5.99998C5.72383 1 5.49998 0.776142 5.49998 0.5ZM2.09998 8.49998C2.09998 5.51764 4.51764 3.09998 7.49998 3.09998C10.4823 3.09998 12.9 5.51764 12.9 8.49998C12.9 11.4823 10.4823 13.9 7.49998 13.9C4.51764 13.9 2.09998 11.4823 2.09998 8.49998ZM7.99998 4.5C7.99998 4.22386 7.77612 4 7.49998 4C7.22383 4 6.99998 4.22386 6.99998 4.5V9.5C6.99998 9.77614 7.22383 10 7.49998 10C7.77612 10 7.99998 9.77614 7.99998 9.5V4.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),Ege=["title"],Oge=["title"],Age=["title"];function pg(){return pg=Object.assign||function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Pge(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var lZe=function(t){var n=t.title,r=Q5(t,Ege);return F.createElement("svg",pg({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 513 342"},r),n&&F.createElement("title",null,n),F.createElement("path",{fill:"#D80027",d:"M0 0h513v342H0z"}),F.createElement("path",{d:"m226.8 239.2-9.7-15.6-17.9 4.4 11.9-14.1-9.7-15.6 17.1 6.9 11.8-14.1-1.3 18.4 17.1 6.9-17.9 4.4zM290.6 82l-10.1 15.4 11.6 14.3-17.7-4.8-10.1 15.5-1-18.4-17.7-4.8 17.2-6.6-1-18.4 11.6 14.3zm-54.4-56.6-2 18.3 16.8 7.6-18 3.8-2 18.3-9.2-16-17.9 3.8 12.3-13.7-9.2-15.9 16.8 7.5zm56.6 136.4-14.9 10.9 5.8 17.5-14.9-10.8-14.9 11 5.6-17.6-14.9-10.7 18.4-.1 5.6-17.6 5.8 17.5zM115 46.3l17.3 53.5h56.2l-45.4 32.9 17.3 53.5-45.4-33-45.5 33 17.4-53.5-45.5-32.9h56.3z",fill:"#FFDA44"}))},cZe=function(t){var n=t.title,r=Q5(t,Oge);return F.createElement("svg",pg({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 513 342"},r),n&&F.createElement("title",null,n),F.createElement("g",{fill:"#FFF"},F.createElement("path",{d:"M0 0h513v341.3H0V0z"}),F.createElement("path",{d:"M311.7 230 513 341.3v-31.5L369.3 230h-57.6zM200.3 111.3 0 0v31.5l143.7 79.8h56.6z"})),F.createElement("path",{d:"M393.8 230 513 295.7V230H393.8zm-82.1 0L513 341.3v-31.5L369.3 230h-57.6zm146.9 111.3-147-81.7v81.7h147zM90.3 230 0 280.2V230h90.3zm110 14.2v97.2H25.5l174.8-97.2zm-82.1-132.9L0 45.6v65.7h118.2zm82.1 0L0 0v31.5l143.7 79.8h56.6zM53.4 0l147 81.7V0h-147zm368.3 111.3L513 61.1v50.2h-91.3zm-110-14.2V0h174.9L311.7 97.1z",fill:"#0052B4"}),F.createElement("g",{fill:"#D80027"},F.createElement("path",{d:"M288 0h-64v138.7H0v64h224v138.7h64V202.7h224v-64H288V0z"}),F.createElement("path",{d:"M311.7 230 513 341.3v-31.5L369.3 230h-57.6zm-168 0L0 309.9v31.5L200.3 230h-56.6zm56.6-118.7L0 0v31.5l143.7 79.8h56.6zm168 0L513 31.5V0L311.7 111.3h56.6z"})))},fZe=function(t){var n=t.title,r=Q5(t,Age);return F.createElement("svg",pg({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 900 600"},r),n&&F.createElement("title",null,n),F.createElement("path",{fill:"#FFF",d:"M0 0h900v600H0z"}),F.createElement("g",{transform:"rotate(-56.31)"},F.createElement("path",{d:"M-75 228.3H75m-150 37.5H75m-150 37.5H75m-150 475H75m-150 37.5H75m-150 37.5H75",stroke:"#000",strokeWidth:25}),F.createElement("path",{stroke:"#FFF",strokeWidth:12.5,d:"M0 753.3v125"}),F.createElement("circle",{fill:"#ca163a",cy:540.8,r:150}),F.createElement("path",{fill:"#0e4896",d:"M0 390.8c-41.4 0-75 33.6-75 75s33.6 75 75 75 75 33.6 75 75-33.6 75-75 75c-82.8 0-150-67.2-150-150s67.2-150 150-150z"})),F.createElement("path",{d:"m231.56 535.73-83.205-124.808M262.76 514.928l-83.205-124.807m114.407 104.006-83.205-124.808m478.43-138.675-83.205-124.807M720.39 209.843 637.184 85.036m114.407 104.006L668.386 64.234",stroke:"#000",strokeWidth:25}),F.createElement("path",{stroke:"#FFF",strokeWidth:12.5,d:"m205.6 462.897 31.202-20.8m389.981-259.989 36.444-24.296m31.202-20.801 31.202-20.801"}))};function J5(e){const t=e+"CollectionProvider",[n,r]=vi(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=p=>{const{scope:m,children:v}=p,b=F.useRef(null),w=F.useRef(new Map).current;return I.jsx(i,{scope:m,itemMap:w,collectionRef:b,children:v})};a.displayName=t;const s=e+"CollectionSlot",u=F.forwardRef((p,m)=>{const{scope:v,children:b}=p,w=o(s,v),x=Yt(m,w.collectionRef);return I.jsx(Al,{ref:x,children:b})});u.displayName=s;const l=e+"CollectionItemSlot",c="data-radix-collection-item",f=F.forwardRef((p,m)=>{const{scope:v,children:b,...w}=p,x=F.useRef(null),S=Yt(m,x),O=o(l,v);return F.useEffect(()=>(O.itemMap.set(x,{ref:x,...w}),()=>void O.itemMap.delete(x))),I.jsx(Al,{[c]:"",ref:S,children:b})});f.displayName=l;function h(p){const m=o(e+"CollectionConsumer",p);return F.useCallback(()=>{const b=m.collectionRef.current;if(!b)return[];const w=Array.from(b.querySelectorAll(`[${c}]`));return Array.from(m.itemMap.values()).sort((O,E)=>w.indexOf(O.ref.current)-w.indexOf(E.ref.current))},[m.collectionRef,m.itemMap])}return[{Provider:a,Slot:u,ItemSlot:f},h,r]}var kge=y.createContext(void 0);function Em(e){const t=y.useContext(kge);return e||t||"ltr"}const Tge=["top","right","bottom","left"],Rl=Math.min,Ro=Math.max,ob=Math.round,l1=Math.floor,Dl=e=>({x:e,y:e}),Mge={left:"right",right:"left",bottom:"top",top:"bottom"},Rge={start:"end",end:"start"};function dE(e,t,n){return Ro(e,Rl(t,n))}function xu(e,t){return typeof e=="function"?e(t):e}function wu(e){return e.split("-")[0]}function Fh(e){return e.split("-")[1]}function eO(e){return e==="x"?"y":"x"}function tO(e){return e==="y"?"height":"width"}function jh(e){return["top","bottom"].includes(wu(e))?"y":"x"}function nO(e){return eO(jh(e))}function Dge(e,t,n){n===void 0&&(n=!1);const r=Fh(e),i=nO(e),o=tO(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=ab(a)),[a,ab(a)]}function $ge(e){const t=ab(e);return[hE(e),t,hE(t)]}function hE(e){return e.replace(/start|end/g,t=>Rge[t])}function Ige(e,t,n){const r=["left","right"],i=["right","left"],o=["top","bottom"],a=["bottom","top"];switch(e){case"top":case"bottom":return n?t?i:r:t?r:i;case"left":case"right":return t?o:a;default:return[]}}function Nge(e,t,n,r){const i=Fh(e);let o=Ige(wu(e),n==="start",r);return i&&(o=o.map(a=>a+"-"+i),t&&(o=o.concat(o.map(hE)))),o}function ab(e){return e.replace(/left|right|bottom|top/g,t=>Mge[t])}function Lge(e){return{top:0,right:0,bottom:0,left:0,...e}}function vz(e){return typeof e!="number"?Lge(e):{top:e,right:e,bottom:e,left:e}}function sb(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function QR(e,t,n){let{reference:r,floating:i}=e;const o=jh(t),a=nO(t),s=tO(a),u=wu(t),l=o==="y",c=r.x+r.width/2-i.width/2,f=r.y+r.height/2-i.height/2,h=r[s]/2-i[s]/2;let p;switch(u){case"top":p={x:c,y:r.y-i.height};break;case"bottom":p={x:c,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:f};break;case"left":p={x:r.x-i.width,y:f};break;default:p={x:r.x,y:r.y}}switch(Fh(t)){case"start":p[a]-=h*(n&&l?-1:1);break;case"end":p[a]+=h*(n&&l?-1:1);break}return p}const Fge=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=o.filter(Boolean),u=await(a.isRTL==null?void 0:a.isRTL(t));let l=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:c,y:f}=QR(l,r,u),h=r,p={},m=0;for(let v=0;v({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:i,rects:o,platform:a,elements:s,middlewareData:u}=t,{element:l,padding:c=0}=xu(e,t)||{};if(l==null)return{};const f=vz(c),h={x:n,y:r},p=nO(i),m=tO(p),v=await a.getDimensions(l),b=p==="y",w=b?"top":"left",x=b?"bottom":"right",S=b?"clientHeight":"clientWidth",O=o.reference[m]+o.reference[p]-h[p]-o.floating[m],E=h[p]-o.reference[p],C=await(a.getOffsetParent==null?void 0:a.getOffsetParent(l));let k=C?C[S]:0;(!k||!await(a.isElement==null?void 0:a.isElement(C)))&&(k=s.floating[S]||o.floating[m]);const M=O/2-E/2,L=k/2-v[m]/2-1,U=Rl(f[w],L),H=Rl(f[x],L),V=U,ne=k-v[m]-H,Z=k/2-v[m]/2+M,G=dE(V,Z,ne),q=!u.arrow&&Fh(i)!=null&&Z!==G&&o.reference[m]/2-(ZV<=0)){var L,U;const V=(((L=o.flip)==null?void 0:L.index)||0)+1,ne=E[V];if(ne)return{data:{index:V,overflows:M},reset:{placement:ne}};let Z=(U=M.filter(G=>G.overflows[0]<=0).sort((G,q)=>G.overflows[1]-q.overflows[1])[0])==null?void 0:U.placement;if(!Z)switch(p){case"bestFit":{var H;const G=(H=M.map(q=>[q.placement,q.overflows.filter(W=>W>0).reduce((W,j)=>W+j,0)]).sort((q,W)=>q[1]-W[1])[0])==null?void 0:H[0];G&&(Z=G);break}case"initialPlacement":Z=s;break}if(i!==Z)return{reset:{placement:Z}}}return{}}}};function JR(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function e9(e){return Tge.some(t=>e[t]>=0)}const zge=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...i}=xu(e,t);switch(r){case"referenceHidden":{const o=await gg(t,{...i,elementContext:"reference"}),a=JR(o,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:e9(a)}}}case"escaped":{const o=await gg(t,{...i,altBoundary:!0}),a=JR(o,n.floating);return{data:{escapedOffsets:a,escaped:e9(a)}}}default:return{}}}}};async function Uge(e,t){const{placement:n,platform:r,elements:i}=e,o=await(r.isRTL==null?void 0:r.isRTL(i.floating)),a=wu(n),s=Fh(n),u=jh(n)==="y",l=["left","top"].includes(a)?-1:1,c=o&&u?-1:1,f=xu(t,e);let{mainAxis:h,crossAxis:p,alignmentAxis:m}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...f};return s&&typeof m=="number"&&(p=s==="end"?m*-1:m),u?{x:p*c,y:h*l}:{x:h*l,y:p*c}}const Vge=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:i,y:o,placement:a,middlewareData:s}=t,u=await Uge(t,e);return a===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:i+u.x,y:o+u.y,data:{...u,placement:a}}}}},Wge=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:b=>{let{x:w,y:x}=b;return{x:w,y:x}}},...u}=xu(e,t),l={x:n,y:r},c=await gg(t,u),f=jh(wu(i)),h=eO(f);let p=l[h],m=l[f];if(o){const b=h==="y"?"top":"left",w=h==="y"?"bottom":"right",x=p+c[b],S=p-c[w];p=dE(x,p,S)}if(a){const b=f==="y"?"top":"left",w=f==="y"?"bottom":"right",x=m+c[b],S=m-c[w];m=dE(x,m,S)}const v=s.fn({...t,[h]:p,[f]:m});return{...v,data:{x:v.x-n,y:v.y-r}}}}},Hge=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:o,middlewareData:a}=t,{offset:s=0,mainAxis:u=!0,crossAxis:l=!0}=xu(e,t),c={x:n,y:r},f=jh(i),h=eO(f);let p=c[h],m=c[f];const v=xu(s,t),b=typeof v=="number"?{mainAxis:v,crossAxis:0}:{mainAxis:0,crossAxis:0,...v};if(u){const S=h==="y"?"height":"width",O=o.reference[h]-o.floating[S]+b.mainAxis,E=o.reference[h]+o.reference[S]-b.mainAxis;pE&&(p=E)}if(l){var w,x;const S=h==="y"?"width":"height",O=["top","left"].includes(wu(i)),E=o.reference[f]-o.floating[S]+(O&&((w=a.offset)==null?void 0:w[f])||0)+(O?0:b.crossAxis),C=o.reference[f]+o.reference[S]+(O?0:((x=a.offset)==null?void 0:x[f])||0)-(O?b.crossAxis:0);mC&&(m=C)}return{[h]:p,[f]:m}}}},Kge=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:r,platform:i,elements:o}=t,{apply:a=()=>{},...s}=xu(e,t),u=await gg(t,s),l=wu(n),c=Fh(n),f=jh(n)==="y",{width:h,height:p}=r.floating;let m,v;l==="top"||l==="bottom"?(m=l,v=c===(await(i.isRTL==null?void 0:i.isRTL(o.floating))?"start":"end")?"left":"right"):(v=l,m=c==="end"?"top":"bottom");const b=p-u[m],w=h-u[v],x=!t.middlewareData.shift;let S=b,O=w;if(f){const C=h-u.left-u.right;O=c||x?Rl(w,C):C}else{const C=p-u.top-u.bottom;S=c||x?Rl(b,C):C}if(x&&!c){const C=Ro(u.left,0),k=Ro(u.right,0),M=Ro(u.top,0),L=Ro(u.bottom,0);f?O=h-2*(C!==0||k!==0?C+k:Ro(u.left,u.right)):S=p-2*(M!==0||L!==0?M+L:Ro(u.top,u.bottom))}await a({...t,availableWidth:O,availableHeight:S});const E=await i.getDimensions(o.floating);return h!==E.width||p!==E.height?{reset:{rects:!0}}:{}}}};function $l(e){return yz(e)?(e.nodeName||"").toLowerCase():"#document"}function jo(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ku(e){var t;return(t=(yz(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function yz(e){return e instanceof Node||e instanceof jo(e).Node}function _u(e){return e instanceof Element||e instanceof jo(e).Element}function Ms(e){return e instanceof HTMLElement||e instanceof jo(e).HTMLElement}function t9(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof jo(e).ShadowRoot}function Om(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=ma(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(i)}function qge(e){return["table","td","th"].includes($l(e))}function rO(e){const t=iO(),n=ma(e);return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(r=>(n.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(n.contain||"").includes(r))}function Gge(e){let t=Zd(e);for(;Ms(t)&&!i2(t);){if(rO(t))return t;t=Zd(t)}return null}function iO(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function i2(e){return["html","body","#document"].includes($l(e))}function ma(e){return jo(e).getComputedStyle(e)}function o2(e){return _u(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Zd(e){if($l(e)==="html")return e;const t=e.assignedSlot||e.parentNode||t9(e)&&e.host||ku(e);return t9(t)?t.host:t}function bz(e){const t=Zd(e);return i2(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ms(t)&&Om(t)?t:bz(t)}function mg(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=bz(e),o=i===((r=e.ownerDocument)==null?void 0:r.body),a=jo(i);return o?t.concat(a,a.visualViewport||[],Om(i)?i:[],a.frameElement&&n?mg(a.frameElement):[]):t.concat(i,mg(i,[],n))}function xz(e){const t=ma(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const i=Ms(e),o=i?e.offsetWidth:n,a=i?e.offsetHeight:r,s=ob(n)!==o||ob(r)!==a;return s&&(n=o,r=a),{width:n,height:r,$:s}}function oO(e){return _u(e)?e:e.contextElement}function kd(e){const t=oO(e);if(!Ms(t))return Dl(1);const n=t.getBoundingClientRect(),{width:r,height:i,$:o}=xz(t);let a=(o?ob(n.width):n.width)/r,s=(o?ob(n.height):n.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}const Yge=Dl(0);function wz(e){const t=jo(e);return!iO()||!t.visualViewport?Yge:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Zge(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==jo(e)?!1:t}function Qc(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),o=oO(e);let a=Dl(1);t&&(r?_u(r)&&(a=kd(r)):a=kd(e));const s=Zge(o,n,r)?wz(o):Dl(0);let u=(i.left+s.x)/a.x,l=(i.top+s.y)/a.y,c=i.width/a.x,f=i.height/a.y;if(o){const h=jo(o),p=r&&_u(r)?jo(r):r;let m=h,v=m.frameElement;for(;v&&r&&p!==m;){const b=kd(v),w=v.getBoundingClientRect(),x=ma(v),S=w.left+(v.clientLeft+parseFloat(x.paddingLeft))*b.x,O=w.top+(v.clientTop+parseFloat(x.paddingTop))*b.y;u*=b.x,l*=b.y,c*=b.x,f*=b.y,u+=S,l+=O,m=jo(v),v=m.frameElement}}return sb({width:c,height:f,x:u,y:l})}const Xge=[":popover-open",":modal"];function _z(e){return Xge.some(t=>{try{return e.matches(t)}catch{return!1}})}function Qge(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e;const o=i==="fixed",a=ku(r),s=t?_z(t.floating):!1;if(r===a||s&&o)return n;let u={scrollLeft:0,scrollTop:0},l=Dl(1);const c=Dl(0),f=Ms(r);if((f||!f&&!o)&&(($l(r)!=="body"||Om(a))&&(u=o2(r)),Ms(r))){const h=Qc(r);l=kd(r),c.x=h.x+r.clientLeft,c.y=h.y+r.clientTop}return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-u.scrollLeft*l.x+c.x,y:n.y*l.y-u.scrollTop*l.y+c.y}}function Jge(e){return Array.from(e.getClientRects())}function Sz(e){return Qc(ku(e)).left+o2(e).scrollLeft}function eme(e){const t=ku(e),n=o2(e),r=e.ownerDocument.body,i=Ro(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=Ro(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Sz(e);const s=-n.scrollTop;return ma(r).direction==="rtl"&&(a+=Ro(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:a,y:s}}function tme(e,t){const n=jo(e),r=ku(e),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,u=0;if(i){o=i.width,a=i.height;const l=iO();(!l||l&&t==="fixed")&&(s=i.offsetLeft,u=i.offsetTop)}return{width:o,height:a,x:s,y:u}}function nme(e,t){const n=Qc(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=Ms(e)?kd(e):Dl(1),a=e.clientWidth*o.x,s=e.clientHeight*o.y,u=i*o.x,l=r*o.y;return{width:a,height:s,x:u,y:l}}function n9(e,t,n){let r;if(t==="viewport")r=tme(e,n);else if(t==="document")r=eme(ku(e));else if(_u(t))r=nme(t,n);else{const i=wz(e);r={...t,x:t.x-i.x,y:t.y-i.y}}return sb(r)}function Cz(e,t){const n=Zd(e);return n===t||!_u(n)||i2(n)?!1:ma(n).position==="fixed"||Cz(n,t)}function rme(e,t){const n=t.get(e);if(n)return n;let r=mg(e,[],!1).filter(s=>_u(s)&&$l(s)!=="body"),i=null;const o=ma(e).position==="fixed";let a=o?Zd(e):e;for(;_u(a)&&!i2(a);){const s=ma(a),u=rO(a);!u&&s.position==="fixed"&&(i=null),(o?!u&&!i:!u&&s.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||Om(a)&&!u&&Cz(e,a))?r=r.filter(c=>c!==a):i=s,a=Zd(a)}return t.set(e,r),r}function ime(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const a=[...n==="clippingAncestors"?rme(t,this._c):[].concat(n),r],s=a[0],u=a.reduce((l,c)=>{const f=n9(t,c,i);return l.top=Ro(f.top,l.top),l.right=Rl(f.right,l.right),l.bottom=Rl(f.bottom,l.bottom),l.left=Ro(f.left,l.left),l},n9(t,s,i));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}function ome(e){const{width:t,height:n}=xz(e);return{width:t,height:n}}function ame(e,t,n){const r=Ms(t),i=ku(t),o=n==="fixed",a=Qc(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const u=Dl(0);if(r||!r&&!o)if(($l(t)!=="body"||Om(i))&&(s=o2(t)),r){const f=Qc(t,!0,o,t);u.x=f.x+t.clientLeft,u.y=f.y+t.clientTop}else i&&(u.x=Sz(i));const l=a.left+s.scrollLeft-u.x,c=a.top+s.scrollTop-u.y;return{x:l,y:c,width:a.width,height:a.height}}function r9(e,t){return!Ms(e)||ma(e).position==="fixed"?null:t?t(e):e.offsetParent}function Ez(e,t){const n=jo(e);if(!Ms(e)||_z(e))return n;let r=r9(e,t);for(;r&&qge(r)&&ma(r).position==="static";)r=r9(r,t);return r&&($l(r)==="html"||$l(r)==="body"&&ma(r).position==="static"&&!rO(r))?n:r||Gge(e)||n}const sme=async function(e){const t=this.getOffsetParent||Ez,n=this.getDimensions;return{reference:ame(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,...await n(e.floating)}}};function ume(e){return ma(e).direction==="rtl"}const lme={convertOffsetParentRelativeRectToViewportRelativeRect:Qge,getDocumentElement:ku,getClippingRect:ime,getOffsetParent:Ez,getElementRects:sme,getClientRects:Jge,getDimensions:ome,getScale:kd,isElement:_u,isRTL:ume};function cme(e,t){let n=null,r;const i=ku(e);function o(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function a(s,u){s===void 0&&(s=!1),u===void 0&&(u=1),o();const{left:l,top:c,width:f,height:h}=e.getBoundingClientRect();if(s||t(),!f||!h)return;const p=l1(c),m=l1(i.clientWidth-(l+f)),v=l1(i.clientHeight-(c+h)),b=l1(l),x={rootMargin:-p+"px "+-m+"px "+-v+"px "+-b+"px",threshold:Ro(0,Rl(1,u))||1};let S=!0;function O(E){const C=E[0].intersectionRatio;if(C!==u){if(!S)return a();C?a(!1,C):r=setTimeout(()=>{a(!1,1e-7)},100)}S=!1}try{n=new IntersectionObserver(O,{...x,root:i.ownerDocument})}catch{n=new IntersectionObserver(O,x)}n.observe(e)}return a(!0),o}function fme(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:u=!1}=r,l=oO(e),c=i||o?[...l?mg(l):[],...mg(t)]:[];c.forEach(w=>{i&&w.addEventListener("scroll",n,{passive:!0}),o&&w.addEventListener("resize",n)});const f=l&&s?cme(l,n):null;let h=-1,p=null;a&&(p=new ResizeObserver(w=>{let[x]=w;x&&x.target===l&&p&&(p.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var S;(S=p)==null||S.observe(t)})),n()}),l&&!u&&p.observe(l),p.observe(t));let m,v=u?Qc(e):null;u&&b();function b(){const w=Qc(e);v&&(w.x!==v.x||w.y!==v.y||w.width!==v.width||w.height!==v.height)&&n(),v=w,m=requestAnimationFrame(b)}return n(),()=>{var w;c.forEach(x=>{i&&x.removeEventListener("scroll",n),o&&x.removeEventListener("resize",n)}),f?.(),(w=p)==null||w.disconnect(),p=null,u&&cancelAnimationFrame(m)}}const dme=Wge,hme=Bge,pme=Kge,gme=zge,i9=jge,mme=Hge,vme=(e,t,n)=>{const r=new Map,i={platform:lme,...n},o={...i.platform,_c:r};return Fge(e,t,{...i,platform:o})},yme=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:i}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?i9({element:r.current,padding:i}).fn(n):{}:r?i9({element:r,padding:i}).fn(n):{}}}};var ey=typeof document<"u"?y.useLayoutEffect:y.useEffect;function ub(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!ub(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const o=i[r];if(!(o==="_owner"&&e.$$typeof)&&!ub(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function Oz(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function o9(e,t){const n=Oz(e);return Math.round(t*n)/n}function a9(e){const t=y.useRef(e);return ey(()=>{t.current=e}),t}function bme(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:o,floating:a}={},transform:s=!0,whileElementsMounted:u,open:l}=e,[c,f]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[h,p]=y.useState(r);ub(h,r)||p(r);const[m,v]=y.useState(null),[b,w]=y.useState(null),x=y.useCallback(W=>{W!==C.current&&(C.current=W,v(W))},[]),S=y.useCallback(W=>{W!==k.current&&(k.current=W,w(W))},[]),O=o||m,E=a||b,C=y.useRef(null),k=y.useRef(null),M=y.useRef(c),L=u!=null,U=a9(u),H=a9(i),V=y.useCallback(()=>{if(!C.current||!k.current)return;const W={placement:t,strategy:n,middleware:h};H.current&&(W.platform=H.current),vme(C.current,k.current,W).then(j=>{const K={...j,isPositioned:!0};ne.current&&!ub(M.current,K)&&(M.current=K,Au.flushSync(()=>{f(K)}))})},[h,t,n,H]);ey(()=>{l===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,f(W=>({...W,isPositioned:!1})))},[l]);const ne=y.useRef(!1);ey(()=>(ne.current=!0,()=>{ne.current=!1}),[]),ey(()=>{if(O&&(C.current=O),E&&(k.current=E),O&&E){if(U.current)return U.current(O,E,V);V()}},[O,E,V,U,L]);const Z=y.useMemo(()=>({reference:C,floating:k,setReference:x,setFloating:S}),[x,S]),G=y.useMemo(()=>({reference:O,floating:E}),[O,E]),q=y.useMemo(()=>{const W={position:n,left:0,top:0};if(!G.floating)return W;const j=o9(G.floating,c.x),K=o9(G.floating,c.y);return s?{...W,transform:"translate("+j+"px, "+K+"px)",...Oz(G.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:j,top:K}},[n,s,G.floating,c.x,c.y]);return y.useMemo(()=>({...c,update:V,refs:Z,elements:G,floatingStyles:q}),[c,V,Z,G,q])}var xme="Arrow",Az=y.forwardRef((e,t)=>{const{children:n,width:r=10,height:i=5,...o}=e;return I.jsx(pt.svg,{...o,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:I.jsx("polygon",{points:"0,0 30,0 15,10"})})});Az.displayName=xme;var wme=Az;function aO(e){const[t,n]=y.useState(void 0);return ii(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const o=i[0];let a,s;if("borderBoxSize"in o){const u=o.borderBoxSize,l=Array.isArray(u)?u[0]:u;a=l.inlineSize,s=l.blockSize}else a=e.offsetWidth,s=e.offsetHeight;n({width:a,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var sO="Popper",[Pz,zl]=vi(sO),[_me,kz]=Pz(sO),Tz=e=>{const{__scopePopper:t,children:n}=e,[r,i]=y.useState(null);return I.jsx(_me,{scope:t,anchor:r,onAnchorChange:i,children:n})};Tz.displayName=sO;var Mz="PopperAnchor",Rz=y.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,o=kz(Mz,n),a=y.useRef(null),s=Yt(t,a);return y.useEffect(()=>{o.onAnchorChange(r?.current||a.current)}),r?null:I.jsx(pt.div,{...i,ref:s})});Rz.displayName=Mz;var uO="PopperContent",[Sme,Cme]=Pz(uO),Dz=y.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:i=0,align:o="center",alignOffset:a=0,arrowPadding:s=0,avoidCollisions:u=!0,collisionBoundary:l=[],collisionPadding:c=0,sticky:f="partial",hideWhenDetached:h=!1,updatePositionStrategy:p="optimized",onPlaced:m,...v}=e,b=kz(uO,n),[w,x]=y.useState(null),S=Yt(t,Ee=>x(Ee)),[O,E]=y.useState(null),C=aO(O),k=C?.width??0,M=C?.height??0,L=r+(o!=="center"?"-"+o:""),U=typeof c=="number"?c:{top:0,right:0,bottom:0,left:0,...c},H=Array.isArray(l)?l:[l],V=H.length>0,ne={padding:U,boundary:H.filter(Ome),altBoundary:V},{refs:Z,floatingStyles:G,placement:q,isPositioned:W,middlewareData:j}=bme({strategy:"fixed",placement:L,whileElementsMounted:(...Ee)=>fme(...Ee,{animationFrame:p==="always"}),elements:{reference:b.anchor},middleware:[Vge({mainAxis:i+M,alignmentAxis:a}),u&&dme({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?mme():void 0,...ne}),u&&hme({...ne}),pme({...ne,apply:({elements:Ee,rects:it,availableWidth:ke,availableHeight:Le})=>{const{width:De,height:me}=it.reference,yt=Ee.floating.style;yt.setProperty("--radix-popper-available-width",`${ke}px`),yt.setProperty("--radix-popper-available-height",`${Le}px`),yt.setProperty("--radix-popper-anchor-width",`${De}px`),yt.setProperty("--radix-popper-anchor-height",`${me}px`)}}),O&&yme({element:O,padding:s}),Ame({arrowWidth:k,arrowHeight:M}),h&&gme({strategy:"referenceHidden",...ne})]}),[K,Y]=Nz(q),oe=Vr(m);ii(()=>{W&&oe?.()},[W,oe]);const ae=j.arrow?.x,ue=j.arrow?.y,be=j.arrow?.centerOffset!==0,[we,He]=y.useState();return ii(()=>{w&&He(window.getComputedStyle(w).zIndex)},[w]),I.jsx("div",{ref:Z.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:W?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:we,"--radix-popper-transform-origin":[j.transformOrigin?.x,j.transformOrigin?.y].join(" "),...j.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:I.jsx(Sme,{scope:n,placedSide:K,onArrowChange:E,arrowX:ae,arrowY:ue,shouldHideArrow:be,children:I.jsx(pt.div,{"data-side":K,"data-align":Y,...v,ref:S,style:{...v.style,animation:W?void 0:"none"}})})})});Dz.displayName=uO;var $z="PopperArrow",Eme={top:"bottom",right:"left",bottom:"top",left:"right"},Iz=y.forwardRef(function(t,n){const{__scopePopper:r,...i}=t,o=Cme($z,r),a=Eme[o.placedSide];return I.jsx("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:I.jsx(wme,{...i,ref:n,style:{...i.style,display:"block"}})})});Iz.displayName=$z;function Ome(e){return e!==null}var Ame=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,s=a?0:e.arrowWidth,u=a?0:e.arrowHeight,[l,c]=Nz(n),f={start:"0%",center:"50%",end:"100%"}[c],h=(i.arrow?.x??0)+s/2,p=(i.arrow?.y??0)+u/2;let m="",v="";return l==="bottom"?(m=a?f:`${h}px`,v=`${-u}px`):l==="top"?(m=a?f:`${h}px`,v=`${r.floating.height+u}px`):l==="right"?(m=`${-u}px`,v=a?f:`${p}px`):l==="left"&&(m=`${r.floating.width+u}px`,v=a?f:`${p}px`),{data:{x:m,y:v}}}});function Nz(e){const[t,n="center"]=e.split("-");return[t,n]}var a2=Tz,Am=Rz,s2=Dz,u2=Iz,ES="rovingFocusGroup.onEntryFocus",Pme={bubbles:!1,cancelable:!0},l2="RovingFocusGroup",[pE,Lz,kme]=J5(l2),[Tme,c2]=vi(l2,[kme]),[Mme,Rme]=Tme(l2),Fz=y.forwardRef((e,t)=>I.jsx(pE.Provider,{scope:e.__scopeRovingFocusGroup,children:I.jsx(pE.Slot,{scope:e.__scopeRovingFocusGroup,children:I.jsx(Dme,{...e,ref:t})})}));Fz.displayName=l2;var Dme=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:u,onEntryFocus:l,preventScrollOnEntryFocus:c=!1,...f}=e,h=y.useRef(null),p=Yt(t,h),m=Em(o),[v=null,b]=Za({prop:a,defaultProp:s,onChange:u}),[w,x]=y.useState(!1),S=Vr(l),O=Lz(n),E=y.useRef(!1),[C,k]=y.useState(0);return y.useEffect(()=>{const M=h.current;if(M)return M.addEventListener(ES,S),()=>M.removeEventListener(ES,S)},[S]),I.jsx(Mme,{scope:n,orientation:r,dir:m,loop:i,currentTabStopId:v,onItemFocus:y.useCallback(M=>b(M),[b]),onItemShiftTab:y.useCallback(()=>x(!0),[]),onFocusableItemAdd:y.useCallback(()=>k(M=>M+1),[]),onFocusableItemRemove:y.useCallback(()=>k(M=>M-1),[]),children:I.jsx(pt.div,{tabIndex:w||C===0?-1:0,"data-orientation":r,...f,ref:p,style:{outline:"none",...e.style},onMouseDown:Ye(e.onMouseDown,()=>{E.current=!0}),onFocus:Ye(e.onFocus,M=>{const L=!E.current;if(M.target===M.currentTarget&&L&&!w){const U=new CustomEvent(ES,Pme);if(M.currentTarget.dispatchEvent(U),!U.defaultPrevented){const H=O().filter(q=>q.focusable),V=H.find(q=>q.active),ne=H.find(q=>q.id===v),G=[V,ne,...H].filter(Boolean).map(q=>q.ref.current);zz(G,c)}}E.current=!1}),onBlur:Ye(e.onBlur,()=>x(!1))})})}),jz="RovingFocusGroupItem",Bz=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,...a}=e,s=Fo(),u=o||s,l=Rme(jz,n),c=l.currentTabStopId===u,f=Lz(n),{onFocusableItemAdd:h,onFocusableItemRemove:p}=l;return y.useEffect(()=>{if(r)return h(),()=>p()},[r,h,p]),I.jsx(pE.ItemSlot,{scope:n,id:u,focusable:r,active:i,children:I.jsx(pt.span,{tabIndex:c?0:-1,"data-orientation":l.orientation,...a,ref:t,onMouseDown:Ye(e.onMouseDown,m=>{r?l.onItemFocus(u):m.preventDefault()}),onFocus:Ye(e.onFocus,()=>l.onItemFocus(u)),onKeyDown:Ye(e.onKeyDown,m=>{if(m.key==="Tab"&&m.shiftKey){l.onItemShiftTab();return}if(m.target!==m.currentTarget)return;const v=Nme(m,l.orientation,l.dir);if(v!==void 0){if(m.metaKey||m.ctrlKey||m.altKey||m.shiftKey)return;m.preventDefault();let w=f().filter(x=>x.focusable).map(x=>x.ref.current);if(v==="last")w.reverse();else if(v==="prev"||v==="next"){v==="prev"&&w.reverse();const x=w.indexOf(m.currentTarget);w=l.loop?Lme(w,x+1):w.slice(x+1)}setTimeout(()=>zz(w))}})})})});Bz.displayName=jz;var $me={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Ime(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Nme(e,t,n){const r=Ime(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return $me[r]}function zz(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function Lme(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Uz=Fz,Vz=Bz,gE=["Enter"," "],Fme=["ArrowDown","PageUp","Home"],Wz=["ArrowUp","PageDown","End"],jme=[...Fme,...Wz],Bme={ltr:[...gE,"ArrowRight"],rtl:[...gE,"ArrowLeft"]},zme={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Pm="Menu",[vg,Ume,Vme]=J5(Pm),[hf,Hz]=vi(Pm,[Vme,zl,c2]),f2=zl(),Kz=c2(),[Wme,pf]=hf(Pm),[Hme,km]=hf(Pm),qz=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:a=!0}=e,s=f2(t),[u,l]=y.useState(null),c=y.useRef(!1),f=Vr(o),h=Em(i);return y.useEffect(()=>{const p=()=>{c.current=!0,document.addEventListener("pointerdown",m,{capture:!0,once:!0}),document.addEventListener("pointermove",m,{capture:!0,once:!0})},m=()=>c.current=!1;return document.addEventListener("keydown",p,{capture:!0}),()=>{document.removeEventListener("keydown",p,{capture:!0}),document.removeEventListener("pointerdown",m,{capture:!0}),document.removeEventListener("pointermove",m,{capture:!0})}},[]),I.jsx(a2,{...s,children:I.jsx(Wme,{scope:t,open:n,onOpenChange:f,content:u,onContentChange:l,children:I.jsx(Hme,{scope:t,onClose:y.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:c,dir:h,modal:a,children:r})})})};qz.displayName=Pm;var Kme="MenuAnchor",lO=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=f2(n);return I.jsx(Am,{...i,...r,ref:t})});lO.displayName=Kme;var cO="MenuPortal",[qme,Gz]=hf(cO,{forceMount:void 0}),Yz=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:i}=e,o=pf(cO,t);return I.jsx(qme,{scope:t,forceMount:n,children:I.jsx(Gr,{present:n||o.open,children:I.jsx(Lh,{asChild:!0,container:i,children:r})})})};Yz.displayName=cO;var da="MenuContent",[Gme,fO]=hf(da),Zz=y.forwardRef((e,t)=>{const n=Gz(da,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=pf(da,e.__scopeMenu),a=km(da,e.__scopeMenu);return I.jsx(vg.Provider,{scope:e.__scopeMenu,children:I.jsx(Gr,{present:r||o.open,children:I.jsx(vg.Slot,{scope:e.__scopeMenu,children:a.modal?I.jsx(Yme,{...i,ref:t}):I.jsx(Zme,{...i,ref:t})})})})}),Yme=y.forwardRef((e,t)=>{const n=pf(da,e.__scopeMenu),r=y.useRef(null),i=Yt(t,r);return y.useEffect(()=>{const o=r.current;if(o)return Cm(o)},[]),I.jsx(dO,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Ye(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),Zme=y.forwardRef((e,t)=>{const n=pf(da,e.__scopeMenu);return I.jsx(dO,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),dO=y.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:u,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:f,onInteractOutside:h,onDismiss:p,disableOutsideScroll:m,...v}=e,b=pf(da,n),w=km(da,n),x=f2(n),S=Kz(n),O=Ume(n),[E,C]=y.useState(null),k=y.useRef(null),M=Yt(t,k,b.onContentChange),L=y.useRef(0),U=y.useRef(""),H=y.useRef(0),V=y.useRef(null),ne=y.useRef("right"),Z=y.useRef(0),G=m?Sm:y.Fragment,q=m?{as:Al,allowPinchZoom:!0}:void 0,W=K=>{const Y=U.current+K,oe=O().filter(Ee=>!Ee.disabled),ae=document.activeElement,ue=oe.find(Ee=>Ee.ref.current===ae)?.textValue,be=oe.map(Ee=>Ee.textValue),we=uve(be,Y,ue),He=oe.find(Ee=>Ee.textValue===we)?.ref.current;(function Ee(it){U.current=it,window.clearTimeout(L.current),it!==""&&(L.current=window.setTimeout(()=>Ee(""),1e3))})(Y),He&&setTimeout(()=>He.focus())};y.useEffect(()=>()=>window.clearTimeout(L.current),[]),n2();const j=y.useCallback(K=>ne.current===V.current?.side&&cve(K,V.current?.area),[]);return I.jsx(Gme,{scope:n,searchRef:U,onItemEnter:y.useCallback(K=>{j(K)&&K.preventDefault()},[j]),onItemLeave:y.useCallback(K=>{j(K)||(k.current?.focus(),C(null))},[j]),onTriggerLeave:y.useCallback(K=>{j(K)&&K.preventDefault()},[j]),pointerGraceTimerRef:H,onPointerGraceIntentChange:y.useCallback(K=>{V.current=K},[]),children:I.jsx(G,{...q,children:I.jsx(_m,{asChild:!0,trapped:i,onMountAutoFocus:Ye(o,K=>{K.preventDefault(),k.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:a,children:I.jsx(Nh,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:f,onInteractOutside:h,onDismiss:p,children:I.jsx(Uz,{asChild:!0,...S,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:E,onCurrentTabStopIdChange:C,onEntryFocus:Ye(u,K=>{w.isUsingKeyboardRef.current||K.preventDefault()}),preventScrollOnEntryFocus:!0,children:I.jsx(s2,{role:"menu","aria-orientation":"vertical","data-state":dU(b.open),"data-radix-menu-content":"",dir:w.dir,...x,...v,ref:M,style:{outline:"none",...v.style},onKeyDown:Ye(v.onKeyDown,K=>{const oe=K.target.closest("[data-radix-menu-content]")===K.currentTarget,ae=K.ctrlKey||K.altKey||K.metaKey,ue=K.key.length===1;oe&&(K.key==="Tab"&&K.preventDefault(),!ae&&ue&&W(K.key));const be=k.current;if(K.target!==be||!jme.includes(K.key))return;K.preventDefault();const He=O().filter(Ee=>!Ee.disabled).map(Ee=>Ee.ref.current);Wz.includes(K.key)&&He.reverse(),ave(He)}),onBlur:Ye(e.onBlur,K=>{K.currentTarget.contains(K.target)||(window.clearTimeout(L.current),U.current="")}),onPointerMove:Ye(e.onPointerMove,yg(K=>{const Y=K.target,oe=Z.current!==K.clientX;if(K.currentTarget.contains(Y)&&oe){const ae=K.clientX>Z.current?"right":"left";ne.current=ae,Z.current=K.clientX}}))})})})})})})});Zz.displayName=da;var Xme="MenuGroup",hO=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return I.jsx(pt.div,{role:"group",...r,ref:t})});hO.displayName=Xme;var Qme="MenuLabel",Xz=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return I.jsx(pt.div,{...r,ref:t})});Xz.displayName=Qme;var lb="MenuItem",s9="menu.itemSelect",d2=y.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,o=y.useRef(null),a=km(lb,e.__scopeMenu),s=fO(lb,e.__scopeMenu),u=Yt(t,o),l=y.useRef(!1),c=()=>{const f=o.current;if(!n&&f){const h=new CustomEvent(s9,{bubbles:!0,cancelable:!0});f.addEventListener(s9,p=>r?.(p),{once:!0}),LB(f,h),h.defaultPrevented?l.current=!1:a.onClose()}};return I.jsx(Qz,{...i,ref:u,disabled:n,onClick:Ye(e.onClick,c),onPointerDown:f=>{e.onPointerDown?.(f),l.current=!0},onPointerUp:Ye(e.onPointerUp,f=>{l.current||f.currentTarget?.click()}),onKeyDown:Ye(e.onKeyDown,f=>{const h=s.searchRef.current!=="";n||h&&f.key===" "||gE.includes(f.key)&&(f.currentTarget.click(),f.preventDefault())})})});d2.displayName=lb;var Qz=y.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,a=fO(lb,n),s=Kz(n),u=y.useRef(null),l=Yt(t,u),[c,f]=y.useState(!1),[h,p]=y.useState("");return y.useEffect(()=>{const m=u.current;m&&p((m.textContent??"").trim())},[o.children]),I.jsx(vg.ItemSlot,{scope:n,disabled:r,textValue:i??h,children:I.jsx(Vz,{asChild:!0,...s,focusable:!r,children:I.jsx(pt.div,{role:"menuitem","data-highlighted":c?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...o,ref:l,onPointerMove:Ye(e.onPointerMove,yg(m=>{r?a.onItemLeave(m):(a.onItemEnter(m),m.defaultPrevented||m.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Ye(e.onPointerLeave,yg(m=>a.onItemLeave(m))),onFocus:Ye(e.onFocus,()=>f(!0)),onBlur:Ye(e.onBlur,()=>f(!1))})})})}),Jme="MenuCheckboxItem",Jz=y.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...i}=e;return I.jsx(iU,{scope:e.__scopeMenu,checked:n,children:I.jsx(d2,{role:"menuitemcheckbox","aria-checked":cb(n)?"mixed":n,...i,ref:t,"data-state":gO(n),onSelect:Ye(i.onSelect,()=>r?.(cb(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Jz.displayName=Jme;var eU="MenuRadioGroup",[eve,tve]=hf(eU,{value:void 0,onValueChange:()=>{}}),tU=y.forwardRef((e,t)=>{const{value:n,onValueChange:r,...i}=e,o=Vr(r);return I.jsx(eve,{scope:e.__scopeMenu,value:n,onValueChange:o,children:I.jsx(hO,{...i,ref:t})})});tU.displayName=eU;var nU="MenuRadioItem",rU=y.forwardRef((e,t)=>{const{value:n,...r}=e,i=tve(nU,e.__scopeMenu),o=n===i.value;return I.jsx(iU,{scope:e.__scopeMenu,checked:o,children:I.jsx(d2,{role:"menuitemradio","aria-checked":o,...r,ref:t,"data-state":gO(o),onSelect:Ye(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});rU.displayName=nU;var pO="MenuItemIndicator",[iU,nve]=hf(pO,{checked:!1}),oU=y.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...i}=e,o=nve(pO,n);return I.jsx(Gr,{present:r||cb(o.checked)||o.checked===!0,children:I.jsx(pt.span,{...i,ref:t,"data-state":gO(o.checked)})})});oU.displayName=pO;var rve="MenuSeparator",aU=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return I.jsx(pt.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});aU.displayName=rve;var ive="MenuArrow",sU=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=f2(n);return I.jsx(u2,{...i,...r,ref:t})});sU.displayName=ive;var ove="MenuSub",[dZe,uU]=hf(ove),s0="MenuSubTrigger",lU=y.forwardRef((e,t)=>{const n=pf(s0,e.__scopeMenu),r=km(s0,e.__scopeMenu),i=uU(s0,e.__scopeMenu),o=fO(s0,e.__scopeMenu),a=y.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:u}=o,l={__scopeMenu:e.__scopeMenu},c=y.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return y.useEffect(()=>c,[c]),y.useEffect(()=>{const f=s.current;return()=>{window.clearTimeout(f),u(null)}},[s,u]),I.jsx(lO,{asChild:!0,...l,children:I.jsx(Qz,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":dU(n.open),...e,ref:Ux(t,i.onTriggerChange),onClick:f=>{e.onClick?.(f),!(e.disabled||f.defaultPrevented)&&(f.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Ye(e.onPointerMove,yg(f=>{o.onItemEnter(f),!f.defaultPrevented&&!e.disabled&&!n.open&&!a.current&&(o.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),c()},100))})),onPointerLeave:Ye(e.onPointerLeave,yg(f=>{c();const h=n.content?.getBoundingClientRect();if(h){const p=n.content?.dataset.side,m=p==="right",v=m?-5:5,b=h[m?"left":"right"],w=h[m?"right":"left"];o.onPointerGraceIntentChange({area:[{x:f.clientX+v,y:f.clientY},{x:b,y:h.top},{x:w,y:h.top},{x:w,y:h.bottom},{x:b,y:h.bottom}],side:p}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(f),f.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:Ye(e.onKeyDown,f=>{const h=o.searchRef.current!=="";e.disabled||h&&f.key===" "||Bme[r.dir].includes(f.key)&&(n.onOpenChange(!0),n.content?.focus(),f.preventDefault())})})})});lU.displayName=s0;var cU="MenuSubContent",fU=y.forwardRef((e,t)=>{const n=Gz(da,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=pf(da,e.__scopeMenu),a=km(da,e.__scopeMenu),s=uU(cU,e.__scopeMenu),u=y.useRef(null),l=Yt(t,u);return I.jsx(vg.Provider,{scope:e.__scopeMenu,children:I.jsx(Gr,{present:r||o.open,children:I.jsx(vg.Slot,{scope:e.__scopeMenu,children:I.jsx(dO,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:l,align:"start",side:a.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:c=>{a.isUsingKeyboardRef.current&&u.current?.focus(),c.preventDefault()},onCloseAutoFocus:c=>c.preventDefault(),onFocusOutside:Ye(e.onFocusOutside,c=>{c.target!==s.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:Ye(e.onEscapeKeyDown,c=>{a.onClose(),c.preventDefault()}),onKeyDown:Ye(e.onKeyDown,c=>{const f=c.currentTarget.contains(c.target),h=zme[a.dir].includes(c.key);f&&h&&(o.onOpenChange(!1),s.trigger?.focus(),c.preventDefault())})})})})})});fU.displayName=cU;function dU(e){return e?"open":"closed"}function cb(e){return e==="indeterminate"}function gO(e){return cb(e)?"indeterminate":e?"checked":"unchecked"}function ave(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function sve(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function uve(e,t,n){const i=t.length>1&&Array.from(t).every(l=>l===t[0])?t[0]:t,o=n?e.indexOf(n):-1;let a=sve(e,Math.max(o,0));i.length===1&&(a=a.filter(l=>l!==n));const u=a.find(l=>l.toLowerCase().startsWith(i.toLowerCase()));return u!==n?u:void 0}function lve(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=c>r&&n<(l-s)*(r-u)/(c-u)+s&&(i=!i)}return i}function cve(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return lve(n,t)}function yg(e){return t=>t.pointerType==="mouse"?e(t):void 0}var fve=qz,dve=lO,hve=Yz,pve=Zz,gve=hO,mve=Xz,vve=d2,yve=Jz,bve=tU,xve=rU,wve=oU,_ve=aU,Sve=sU,Cve=lU,Eve=fU,mO="DropdownMenu",[Ove,hZe]=vi(mO,[Hz]),Zi=Hz(),[Ave,hU]=Ove(mO),pU=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:o,onOpenChange:a,modal:s=!0}=e,u=Zi(t),l=y.useRef(null),[c=!1,f]=Za({prop:i,defaultProp:o,onChange:a});return I.jsx(Ave,{scope:t,triggerId:Fo(),triggerRef:l,contentId:Fo(),open:c,onOpenChange:f,onOpenToggle:y.useCallback(()=>f(h=>!h),[f]),modal:s,children:I.jsx(fve,{...u,open:c,onOpenChange:f,dir:r,modal:s,children:n})})};pU.displayName=mO;var gU="DropdownMenuTrigger",mU=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,o=hU(gU,n),a=Zi(n);return I.jsx(dve,{asChild:!0,...a,children:I.jsx(pt.button,{type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...i,ref:Ux(t,o.triggerRef),onPointerDown:Ye(e.onPointerDown,s=>{!r&&s.button===0&&s.ctrlKey===!1&&(o.onOpenToggle(),o.open||s.preventDefault())}),onKeyDown:Ye(e.onKeyDown,s=>{r||(["Enter"," "].includes(s.key)&&o.onOpenToggle(),s.key==="ArrowDown"&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});mU.displayName=gU;var Pve="DropdownMenuPortal",vU=e=>{const{__scopeDropdownMenu:t,...n}=e,r=Zi(t);return I.jsx(hve,{...r,...n})};vU.displayName=Pve;var yU="DropdownMenuContent",bU=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=hU(yU,n),o=Zi(n),a=y.useRef(!1);return I.jsx(pve,{id:i.contentId,"aria-labelledby":i.triggerId,...o,...r,ref:t,onCloseAutoFocus:Ye(e.onCloseAutoFocus,s=>{a.current||i.triggerRef.current?.focus(),a.current=!1,s.preventDefault()}),onInteractOutside:Ye(e.onInteractOutside,s=>{const u=s.detail.originalEvent,l=u.button===0&&u.ctrlKey===!0,c=u.button===2||l;(!i.modal||c)&&(a.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});bU.displayName=yU;var kve="DropdownMenuGroup",xU=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(gve,{...i,...r,ref:t})});xU.displayName=kve;var Tve="DropdownMenuLabel",wU=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(mve,{...i,...r,ref:t})});wU.displayName=Tve;var Mve="DropdownMenuItem",_U=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(vve,{...i,...r,ref:t})});_U.displayName=Mve;var Rve="DropdownMenuCheckboxItem",SU=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(yve,{...i,...r,ref:t})});SU.displayName=Rve;var Dve="DropdownMenuRadioGroup",$ve=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(bve,{...i,...r,ref:t})});$ve.displayName=Dve;var Ive="DropdownMenuRadioItem",CU=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(xve,{...i,...r,ref:t})});CU.displayName=Ive;var Nve="DropdownMenuItemIndicator",EU=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(wve,{...i,...r,ref:t})});EU.displayName=Nve;var Lve="DropdownMenuSeparator",OU=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(_ve,{...i,...r,ref:t})});OU.displayName=Lve;var Fve="DropdownMenuArrow",jve=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(Sve,{...i,...r,ref:t})});jve.displayName=Fve;var Bve="DropdownMenuSubTrigger",AU=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(Cve,{...i,...r,ref:t})});AU.displayName=Bve;var zve="DropdownMenuSubContent",PU=y.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Zi(n);return I.jsx(Eve,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});PU.displayName=zve;var pZe=pU,gZe=mU,mZe=vU,vZe=bU,yZe=xU,bZe=wU,xZe=_U,wZe=SU,_Ze=CU,SZe=EU,CZe=OU,EZe=AU,OZe=PU,vO="Collapsible",[Uve,AZe]=vi(vO),[Vve,yO]=Uve(vO),kU=y.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:o,onOpenChange:a,...s}=e,[u=!1,l]=Za({prop:r,defaultProp:i,onChange:a});return I.jsx(Vve,{scope:n,disabled:o,contentId:Fo(),open:u,onOpenToggle:y.useCallback(()=>l(c=>!c),[l]),children:I.jsx(pt.div,{"data-state":xO(u),"data-disabled":o?"":void 0,...s,ref:t})})});kU.displayName=vO;var TU="CollapsibleTrigger",Wve=y.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,i=yO(TU,n);return I.jsx(pt.button,{type:"button","aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":xO(i.open),"data-disabled":i.disabled?"":void 0,disabled:i.disabled,...r,ref:t,onClick:Ye(e.onClick,i.onOpenToggle)})});Wve.displayName=TU;var bO="CollapsibleContent",Hve=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=yO(bO,e.__scopeCollapsible);return I.jsx(Gr,{present:n||i.open,children:({present:o})=>I.jsx(Kve,{...r,ref:t,present:o})})});Hve.displayName=bO;var Kve=y.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:i,...o}=e,a=yO(bO,n),[s,u]=y.useState(r),l=y.useRef(null),c=Yt(t,l),f=y.useRef(0),h=f.current,p=y.useRef(0),m=p.current,v=a.open||s,b=y.useRef(v),w=y.useRef(void 0);return y.useEffect(()=>{const x=requestAnimationFrame(()=>b.current=!1);return()=>cancelAnimationFrame(x)},[]),ii(()=>{const x=l.current;if(x){w.current=w.current||{transitionDuration:x.style.transitionDuration,animationName:x.style.animationName},x.style.transitionDuration="0s",x.style.animationName="none";const S=x.getBoundingClientRect();f.current=S.height,p.current=S.width,b.current||(x.style.transitionDuration=w.current.transitionDuration,x.style.animationName=w.current.animationName),u(r)}},[a.open,r]),I.jsx(pt.div,{"data-state":xO(a.open),"data-disabled":a.disabled?"":void 0,id:a.contentId,hidden:!v,...o,ref:c,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":m?`${m}px`:void 0,...e.style},children:v&&i})});function xO(e){return e?"open":"closed"}var PZe=kU,qve="VisuallyHidden",wO=y.forwardRef((e,t)=>I.jsx(pt.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));wO.displayName=qve;var Gve=wO,[h2,kZe]=vi("Tooltip",[zl]),p2=zl(),MU="TooltipProvider",Yve=700,mE="tooltip.open",[Zve,_O]=h2(MU),RU=e=>{const{__scopeTooltip:t,delayDuration:n=Yve,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:o}=e,[a,s]=y.useState(!0),u=y.useRef(!1),l=y.useRef(0);return y.useEffect(()=>{const c=l.current;return()=>window.clearTimeout(c)},[]),I.jsx(Zve,{scope:t,isOpenDelayed:a,delayDuration:n,onOpen:y.useCallback(()=>{window.clearTimeout(l.current),s(!1)},[]),onClose:y.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>s(!0),r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(c=>{u.current=c},[]),disableHoverableContent:i,children:o})};RU.displayName=MU;var g2="Tooltip",[Xve,Tm]=h2(g2),DU=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:i=!1,onOpenChange:o,disableHoverableContent:a,delayDuration:s}=e,u=_O(g2,e.__scopeTooltip),l=p2(t),[c,f]=y.useState(null),h=Fo(),p=y.useRef(0),m=a??u.disableHoverableContent,v=s??u.delayDuration,b=y.useRef(!1),[w=!1,x]=Za({prop:r,defaultProp:i,onChange:k=>{k?(u.onOpen(),document.dispatchEvent(new CustomEvent(mE))):u.onClose(),o?.(k)}}),S=y.useMemo(()=>w?b.current?"delayed-open":"instant-open":"closed",[w]),O=y.useCallback(()=>{window.clearTimeout(p.current),p.current=0,b.current=!1,x(!0)},[x]),E=y.useCallback(()=>{window.clearTimeout(p.current),p.current=0,x(!1)},[x]),C=y.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{b.current=!0,x(!0),p.current=0},v)},[v,x]);return y.useEffect(()=>()=>{p.current&&(window.clearTimeout(p.current),p.current=0)},[]),I.jsx(a2,{...l,children:I.jsx(Xve,{scope:t,contentId:h,open:w,stateAttribute:S,trigger:c,onTriggerChange:f,onTriggerEnter:y.useCallback(()=>{u.isOpenDelayed?C():O()},[u.isOpenDelayed,C,O]),onTriggerLeave:y.useCallback(()=>{m?E():(window.clearTimeout(p.current),p.current=0)},[E,m]),onOpen:O,onClose:E,disableHoverableContent:m,children:n})})};DU.displayName=g2;var vE="TooltipTrigger",$U=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=Tm(vE,n),o=_O(vE,n),a=p2(n),s=y.useRef(null),u=Yt(t,s,i.onTriggerChange),l=y.useRef(!1),c=y.useRef(!1),f=y.useCallback(()=>l.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),I.jsx(Am,{asChild:!0,...a,children:I.jsx(pt.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:u,onPointerMove:Ye(e.onPointerMove,h=>{h.pointerType!=="touch"&&!c.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),c.current=!0)}),onPointerLeave:Ye(e.onPointerLeave,()=>{i.onTriggerLeave(),c.current=!1}),onPointerDown:Ye(e.onPointerDown,()=>{l.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:Ye(e.onFocus,()=>{l.current||i.onOpen()}),onBlur:Ye(e.onBlur,i.onClose),onClick:Ye(e.onClick,i.onClose)})})});$U.displayName=vE;var SO="TooltipPortal",[Qve,Jve]=h2(SO,{forceMount:void 0}),IU=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,o=Tm(SO,t);return I.jsx(Qve,{scope:t,forceMount:n,children:I.jsx(Gr,{present:n||o.open,children:I.jsx(Lh,{asChild:!0,container:i,children:r})})})};IU.displayName=SO;var Xd="TooltipContent",NU=y.forwardRef((e,t)=>{const n=Jve(Xd,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i="top",...o}=e,a=Tm(Xd,e.__scopeTooltip);return I.jsx(Gr,{present:r||a.open,children:a.disableHoverableContent?I.jsx(LU,{side:i,...o,ref:t}):I.jsx(e1e,{side:i,...o,ref:t})})}),e1e=y.forwardRef((e,t)=>{const n=Tm(Xd,e.__scopeTooltip),r=_O(Xd,e.__scopeTooltip),i=y.useRef(null),o=Yt(t,i),[a,s]=y.useState(null),{trigger:u,onClose:l}=n,c=i.current,{onPointerInTransitChange:f}=r,h=y.useCallback(()=>{s(null),f(!1)},[f]),p=y.useCallback((m,v)=>{const b=m.currentTarget,w={x:m.clientX,y:m.clientY},x=i1e(w,b.getBoundingClientRect()),S=o1e(w,x),O=a1e(v.getBoundingClientRect()),E=u1e([...S,...O]);s(E),f(!0)},[f]);return y.useEffect(()=>()=>h(),[h]),y.useEffect(()=>{if(u&&c){const m=b=>p(b,c),v=b=>p(b,u);return u.addEventListener("pointerleave",m),c.addEventListener("pointerleave",v),()=>{u.removeEventListener("pointerleave",m),c.removeEventListener("pointerleave",v)}}},[u,c,p,h]),y.useEffect(()=>{if(a){const m=v=>{const b=v.target,w={x:v.clientX,y:v.clientY},x=u?.contains(b)||c?.contains(b),S=!s1e(w,a);x?h():S&&(h(),l())};return document.addEventListener("pointermove",m),()=>document.removeEventListener("pointermove",m)}},[u,c,a,l,h]),I.jsx(LU,{...e,ref:o})}),[t1e,n1e]=h2(g2,{isInside:!1}),LU=y.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:o,onPointerDownOutside:a,...s}=e,u=Tm(Xd,n),l=p2(n),{onClose:c}=u;return y.useEffect(()=>(document.addEventListener(mE,c),()=>document.removeEventListener(mE,c)),[c]),y.useEffect(()=>{if(u.trigger){const f=h=>{h.target?.contains(u.trigger)&&c()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[u.trigger,c]),I.jsx(Nh,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:c,children:I.jsxs(s2,{"data-state":u.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[I.jsx(O5,{children:r}),I.jsx(t1e,{scope:n,isInside:!0,children:I.jsx(Gve,{id:u.contentId,role:"tooltip",children:i||r})})]})})});NU.displayName=Xd;var FU="TooltipArrow",r1e=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=p2(n);return n1e(FU,n).isInside?null:I.jsx(u2,{...i,...r,ref:t})});r1e.displayName=FU;function i1e(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,i,o)){case o:return"left";case i:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function o1e(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function a1e(e){const{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function s1e(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=c>r&&n<(l-s)*(r-u)/(c-u)+s&&(i=!i)}return i}function u1e(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),l1e(t)}function l1e(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const o=t[t.length-1],a=t[t.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))t.pop();else break}t.push(i)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const i=e[r];for(;n.length>=2;){const o=n[n.length-1],a=n[n.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))n.pop();else break}n.push(i)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var TZe=RU,MZe=DU,RZe=$U,DZe=IU,$Ze=NU;/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const c1e=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),jU=(...e)=>e.filter((t,n,r)=>!!t&&r.indexOf(t)===n).join(" ");/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var f1e={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const d1e=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i="",children:o,iconNode:a,...s},u)=>y.createElement("svg",{ref:u,...f1e,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:jU("lucide",i),...s},[...a.map(([l,c])=>y.createElement(l,c)),...Array.isArray(o)?o:[o]]));/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vt=(e,t)=>{const n=y.forwardRef(({className:r,...i},o)=>y.createElement(d1e,{ref:o,iconNode:t,className:jU(`lucide-${c1e(e)}`,r),...i}));return n.displayName=`${e}`,n};/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const IZe=Vt("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const NZe=Vt("ArrowDownToLine",[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const LZe=Vt("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const FZe=Vt("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const jZe=Vt("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const BZe=Vt("BarChart3",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zZe=Vt("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const UZe=Vt("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const VZe=Vt("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const WZe=Vt("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const HZe=Vt("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const KZe=Vt("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qZe=Vt("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const GZe=Vt("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const YZe=Vt("CircleHelp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ZZe=Vt("CirclePlus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const XZe=Vt("ClipboardCopy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const QZe=Vt("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const JZe=Vt("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const eXe=Vt("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const tXe=Vt("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const nXe=Vt("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const rXe=Vt("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const iXe=Vt("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const oXe=Vt("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const aXe=Vt("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const sXe=Vt("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z",key:"jj09z8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const uXe=Vt("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const lXe=Vt("Package",[["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const cXe=Vt("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const fXe=Vt("Percent",[["line",{x1:"19",x2:"5",y1:"5",y2:"19",key:"1x9vlm"}],["circle",{cx:"6.5",cy:"6.5",r:"2.5",key:"4mh3h7"}],["circle",{cx:"17.5",cy:"17.5",r:"2.5",key:"1mdrzq"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dXe=Vt("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hXe=Vt("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pXe=Vt("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gXe=Vt("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mXe=Vt("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vXe=Vt("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yXe=Vt("ShieldBan",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m4.243 5.21 14.39 12.472",key:"1c9a7c"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bXe=Vt("Timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xXe=Vt("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wXe=Vt("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const _Xe=Vt("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const SXe=Vt("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** + * @license lucide-react v0.399.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const CXe=Vt("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);var u9=1,h1e=.9,p1e=.8,g1e=.17,OS=.1,AS=.999,m1e=.9999,v1e=.99,y1e=/[\\\/_+.#"@\[\(\{&]/,b1e=/[\\\/_+.#"@\[\(\{&]/g,x1e=/[\s-]/,BU=/[\s-]/g;function yE(e,t,n,r,i,o,a){if(o===t.length)return i===e.length?u9:v1e;var s=`${i},${o}`;if(a[s]!==void 0)return a[s];for(var u=r.charAt(o),l=n.indexOf(u,i),c=0,f,h,p,m;l>=0;)f=yE(e,t,n,r,l+1,o+1,a),f>c&&(l===i?f*=u9:y1e.test(e.charAt(l-1))?(f*=p1e,p=e.slice(i,l-1).match(b1e),p&&i>0&&(f*=Math.pow(AS,p.length))):x1e.test(e.charAt(l-1))?(f*=h1e,m=e.slice(i,l-1).match(BU),m&&i>0&&(f*=Math.pow(AS,m.length))):(f*=g1e,i>0&&(f*=Math.pow(AS,l-i))),e.charAt(l)!==t.charAt(o)&&(f*=m1e)),(ff&&(f=h*OS)),f>c&&(c=f),l=n.indexOf(u,l+1);return a[s]=c,c}function l9(e){return e.toLowerCase().replace(BU," ")}function w1e(e,t){return yE(e,t,l9(e),l9(t),0,0,{})}function Ki(){return Ki=Object.assign?Object.assign.bind():function(e){for(var t=1;te.forEach(n=>_1e(n,t))}function Mm(...e){return y.useCallback(zU(...e),e)}function S1e(e,t=[]){let n=[];function r(o,a){const s=y.createContext(a),u=n.length;n=[...n,a];function l(f){const{scope:h,children:p,...m}=f,v=h?.[e][u]||s,b=y.useMemo(()=>m,Object.values(m));return y.createElement(v.Provider,{value:b},p)}function c(f,h){const p=h?.[e][u]||s,m=y.useContext(p);if(m)return m;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${o}\``)}return l.displayName=o+"Provider",[l,c]}const i=()=>{const o=n.map(a=>y.createContext(a));return function(s){const u=s?.[e]||o;return y.useMemo(()=>({[`__scope${e}`]:{...s,[e]:u}}),[s,u])}};return i.scopeName=e,[r,C1e(i,...t)]}function C1e(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){const a=r.reduce((s,{useScope:u,scopeName:l})=>{const f=u(o)[`__scope${l}`];return{...s,...f}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}const E1e=globalThis?.document?y.useLayoutEffect:()=>{},O1e=P4.useId||(()=>{});let A1e=0;function PS(e){const[t,n]=y.useState(O1e());return E1e(()=>{e||n(r=>r??String(A1e++))},[e]),e||(t?`radix-${t}`:"")}function UU(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])}function P1e({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,i]=k1e({defaultProp:t,onChange:n}),o=e!==void 0,a=o?e:r,s=UU(n),u=y.useCallback(l=>{if(o){const f=typeof l=="function"?l(e):l;f!==e&&s(f)}else i(l)},[o,e,i,s]);return[a,u]}function k1e({defaultProp:e,onChange:t}){const n=y.useState(e),[r]=n,i=y.useRef(r),o=UU(t);return y.useEffect(()=>{i.current!==r&&(o(r),i.current=r)},[r,i,o]),n}const CO=y.forwardRef((e,t)=>{const{children:n,...r}=e,i=y.Children.toArray(n),o=i.find(M1e);if(o){const a=o.props.children,s=i.map(u=>u===o?y.Children.count(a)>1?y.Children.only(null):y.isValidElement(a)?a.props.children:null:u);return y.createElement(bE,Ki({},r,{ref:t}),y.isValidElement(a)?y.cloneElement(a,void 0,s):null)}return y.createElement(bE,Ki({},r,{ref:t}),n)});CO.displayName="Slot";const bE=y.forwardRef((e,t)=>{const{children:n,...r}=e;return y.isValidElement(n)?y.cloneElement(n,{...R1e(r,n.props),ref:zU(t,n.ref)}):y.Children.count(n)>1?y.Children.only(null):null});bE.displayName="SlotClone";const T1e=({children:e})=>y.createElement(y.Fragment,null,e);function M1e(e){return y.isValidElement(e)&&e.type===T1e}function R1e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?n[r]=(...s)=>{o?.(...s),i?.(...s)}:r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}const D1e=["a","button","div","h2","h3","img","li","nav","ol","p","span","svg","ul"],m2=D1e.reduce((e,t)=>{const n=y.forwardRef((r,i)=>{const{asChild:o,...a}=r,s=o?CO:t;return y.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),y.createElement(s,Ki({},a,{ref:i}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function $1e(e,t){e&&Au.flushSync(()=>e.dispatchEvent(t))}function EO(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])}function I1e(e){const t=EO(e);y.useEffect(()=>{const n=r=>{r.key==="Escape"&&t(r)};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[t])}const xE="dismissableLayer.update",N1e="dismissableLayer.pointerDownOutside",L1e="dismissableLayer.focusOutside";let c9;const F1e=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),j1e=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:a,onDismiss:s,...u}=e,l=y.useContext(F1e),[c,f]=y.useState(null),[,h]=y.useState({}),p=Mm(t,C=>f(C)),m=Array.from(l.layers),[v]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),b=m.indexOf(v),w=c?m.indexOf(c):-1,x=l.layersWithOutsidePointerEventsDisabled.size>0,S=w>=b,O=B1e(C=>{const k=C.target,M=[...l.branches].some(L=>L.contains(k));!S||M||(i?.(C),a?.(C),C.defaultPrevented||s?.())}),E=z1e(C=>{const k=C.target;[...l.branches].some(L=>L.contains(k))||(o?.(C),a?.(C),C.defaultPrevented||s?.())});return I1e(C=>{w===l.layers.size-1&&(r?.(C),!C.defaultPrevented&&s&&(C.preventDefault(),s()))}),y.useEffect(()=>{if(c)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(c9=document.body.style.pointerEvents,document.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(c)),l.layers.add(c),f9(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(document.body.style.pointerEvents=c9)}},[c,n,l]),y.useEffect(()=>()=>{c&&(l.layers.delete(c),l.layersWithOutsidePointerEventsDisabled.delete(c),f9())},[c,l]),y.useEffect(()=>{const C=()=>h({});return document.addEventListener(xE,C),()=>document.removeEventListener(xE,C)},[]),y.createElement(m2.div,Ki({},u,{ref:p,style:{pointerEvents:x?S?"auto":"none":void 0,...e.style},onFocusCapture:Td(e.onFocusCapture,E.onFocusCapture),onBlurCapture:Td(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:Td(e.onPointerDownCapture,O.onPointerDownCapture)}))});function B1e(e){const t=EO(e),n=y.useRef(!1),r=y.useRef(()=>{});return y.useEffect(()=>{const i=a=>{if(a.target&&!n.current){let u=function(){VU(N1e,t,s,{discrete:!0})};const s={originalEvent:a};a.pointerType==="touch"?(document.removeEventListener("click",r.current),r.current=u,document.addEventListener("click",r.current,{once:!0})):u()}n.current=!1},o=window.setTimeout(()=>{document.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(o),document.removeEventListener("pointerdown",i),document.removeEventListener("click",r.current)}},[t]),{onPointerDownCapture:()=>n.current=!0}}function z1e(e){const t=EO(e),n=y.useRef(!1);return y.useEffect(()=>{const r=i=>{i.target&&!n.current&&VU(L1e,t,{originalEvent:i},{discrete:!1})};return document.addEventListener("focusin",r),()=>document.removeEventListener("focusin",r)},[t]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function f9(){const e=new CustomEvent(xE);document.dispatchEvent(e)}function VU(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?$1e(i,o):i.dispatchEvent(o)}function d9(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])}const kS="focusScope.autoFocusOnMount",TS="focusScope.autoFocusOnUnmount",h9={bubbles:!1,cancelable:!0},U1e=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...a}=e,[s,u]=y.useState(null),l=d9(i),c=d9(o),f=y.useRef(null),h=Mm(t,v=>u(v)),p=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let v=function(w){if(p.paused||!s)return;const x=w.target;s.contains(x)?f.current=x:cc(f.current,{select:!0})},b=function(w){p.paused||!s||s.contains(w.relatedTarget)||cc(f.current,{select:!0})};return document.addEventListener("focusin",v),document.addEventListener("focusout",b),()=>{document.removeEventListener("focusin",v),document.removeEventListener("focusout",b)}}},[r,s,p.paused]),y.useEffect(()=>{if(s){g9.add(p);const v=document.activeElement;if(!s.contains(v)){const w=new CustomEvent(kS,h9);s.addEventListener(kS,l),s.dispatchEvent(w),w.defaultPrevented||(V1e(G1e(WU(s)),{select:!0}),document.activeElement===v&&cc(s))}return()=>{s.removeEventListener(kS,l),setTimeout(()=>{const w=new CustomEvent(TS,h9);s.addEventListener(TS,c),s.dispatchEvent(w),w.defaultPrevented||cc(v??document.body,{select:!0}),s.removeEventListener(TS,c),g9.remove(p)},0)}}},[s,l,c,p]);const m=y.useCallback(v=>{if(!n&&!r||p.paused)return;const b=v.key==="Tab"&&!v.altKey&&!v.ctrlKey&&!v.metaKey,w=document.activeElement;if(b&&w){const x=v.currentTarget,[S,O]=W1e(x);S&&O?!v.shiftKey&&w===O?(v.preventDefault(),n&&cc(S,{select:!0})):v.shiftKey&&w===S&&(v.preventDefault(),n&&cc(O,{select:!0})):w===x&&v.preventDefault()}},[n,r,p.paused]);return y.createElement(m2.div,Ki({tabIndex:-1},a,{ref:h,onKeyDown:m}))});function V1e(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(cc(r,{select:t}),document.activeElement!==n)return}function W1e(e){const t=WU(e),n=p9(t,e),r=p9(t.reverse(),e);return[n,r]}function WU(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function p9(e,t){for(const n of e)if(!H1e(n,{upTo:t}))return n}function H1e(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function K1e(e){return e instanceof HTMLInputElement&&"select"in e}function cc(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&K1e(e)&&t&&e.select()}}const g9=q1e();function q1e(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=m9(e,t),e.unshift(t)},remove(t){var n;e=m9(e,t),(n=e[0])===null||n===void 0||n.resume()}}}function m9(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function G1e(e){return e.filter(t=>t.tagName!=="A")}const Y1e=y.forwardRef((e,t)=>{var n;const{container:r=globalThis==null||(n=globalThis.document)===null||n===void 0?void 0:n.body,...i}=e;return r?jx.createPortal(y.createElement(m2.div,Ki({},i,{ref:t})),r):null}),v9=globalThis?.document?y.useLayoutEffect:()=>{};function Z1e(e,t){return y.useReducer((n,r)=>{const i=t[n][r];return i??n},e)}const v2=e=>{const{present:t,children:n}=e,r=X1e(t),i=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),o=Mm(r.ref,i.ref);return typeof n=="function"||r.isPresent?y.cloneElement(i,{ref:o}):null};v2.displayName="Presence";function X1e(e){const[t,n]=y.useState(),r=y.useRef({}),i=y.useRef(e),o=y.useRef("none"),a=e?"mounted":"unmounted",[s,u]=Z1e(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const l=c1(r.current);o.current=s==="mounted"?l:"none"},[s]),v9(()=>{const l=r.current,c=i.current;if(c!==e){const h=o.current,p=c1(l);e?u("MOUNT"):p==="none"||l?.display==="none"?u("UNMOUNT"):u(c&&h!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,u]),v9(()=>{if(t){const l=f=>{const p=c1(r.current).includes(f.animationName);f.target===t&&p&&Au.flushSync(()=>u("ANIMATION_END"))},c=f=>{f.target===t&&(o.current=c1(r.current))};return t.addEventListener("animationstart",c),t.addEventListener("animationcancel",l),t.addEventListener("animationend",l),()=>{t.removeEventListener("animationstart",c),t.removeEventListener("animationcancel",l),t.removeEventListener("animationend",l)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:y.useCallback(l=>{l&&(r.current=getComputedStyle(l)),n(l)},[])}}function c1(e){return e?.animationName||"none"}let MS=0;function Q1e(){y.useEffect(()=>{var e,t;const n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(e=n[0])!==null&&e!==void 0?e:y9()),document.body.insertAdjacentElement("beforeend",(t=n[1])!==null&&t!==void 0?t:y9()),MS++,()=>{MS===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),MS--}},[])}function y9(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}var ty="right-scroll-bar-position",ny="width-before-scroll-bar",J1e="with-scroll-bars-hidden",eye="--removed-body-scroll-bar-size";function RS(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function tye(e,t){var n=y.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var i=n.value;i!==r&&(n.value=r,n.callback(r,i))}}}})[0];return n.callback=t,n.facade}var nye=typeof window<"u"?y.useLayoutEffect:y.useEffect,b9=new WeakMap;function rye(e,t){var n=tye(null,function(r){return e.forEach(function(i){return RS(i,r)})});return nye(function(){var r=b9.get(n);if(r){var i=new Set(r),o=new Set(e),a=n.current;i.forEach(function(s){o.has(s)||RS(s,null)}),o.forEach(function(s){i.has(s)||RS(s,a)})}b9.set(n,e)},[e]),n}var HU=WB(),DS=function(){},y2=y.forwardRef(function(e,t){var n=y.useRef(null),r=y.useState({onScrollCapture:DS,onWheelCapture:DS,onTouchMoveCapture:DS}),i=r[0],o=r[1],a=e.forwardProps,s=e.children,u=e.className,l=e.removeScrollBar,c=e.enabled,f=e.shards,h=e.sideCar,p=e.noIsolation,m=e.inert,v=e.allowPinchZoom,b=e.as,w=b===void 0?"div":b,x=K5(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),S=h,O=rye([n,t]),E=Ri(Ri({},x),i);return y.createElement(y.Fragment,null,c&&y.createElement(S,{sideCar:HU,removeScrollBar:l,shards:f,noIsolation:p,inert:m,setCallbacks:o,allowPinchZoom:!!v,lockRef:n}),a?y.cloneElement(y.Children.only(s),Ri(Ri({},E),{ref:O})):y.createElement(w,Ri({},E,{className:u,ref:O}),s))});y2.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};y2.classNames={fullWidth:ny,zeroRight:ty};var iye={left:0,top:0,right:0,gap:0},$S=function(e){return parseInt(e||"",10)||0},oye=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],i=t[e==="padding"?"paddingRight":"marginRight"];return[$S(n),$S(r),$S(i)]},aye=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return iye;var t=oye(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},sye=q5(),Md="data-scroll-locked",uye=function(e,t,n,r){var i=e.left,o=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` + .`.concat(J1e,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(s,"px ").concat(r,`; + } + body[`).concat(Md,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(i,`px; + padding-top: `).concat(o,`px; + padding-right: `).concat(a,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(s,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(ty,` { + right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(ny,` { + margin-right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(ty," .").concat(ty,` { + right: 0 `).concat(r,`; + } + + .`).concat(ny," .").concat(ny,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(Md,`] { + `).concat(eye,": ").concat(s,`px; + } +`)},x9=function(){var e=parseInt(document.body.getAttribute(Md)||"0",10);return isFinite(e)?e:0},lye=function(){y.useEffect(function(){return document.body.setAttribute(Md,(x9()+1).toString()),function(){var e=x9()-1;e<=0?document.body.removeAttribute(Md):document.body.setAttribute(Md,e.toString())}},[])},cye=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r;lye();var o=y.useMemo(function(){return aye(i)},[i]);return y.createElement(sye,{styles:uye(o,!t,i,n?"":"!important")})},wE=!1;if(typeof window<"u")try{var f1=Object.defineProperty({},"passive",{get:function(){return wE=!0,!0}});window.addEventListener("test",f1,f1),window.removeEventListener("test",f1,f1)}catch{wE=!1}var Kf=wE?{passive:!1}:!1,fye=function(e){var t=window.getComputedStyle(e);return t.overflowY!=="hidden"&&!(t.overflowY===t.overflowX&&t.overflowY==="visible")},dye=function(e){var t=window.getComputedStyle(e);return t.overflowX!=="hidden"&&!(t.overflowY===t.overflowX&&t.overflowX==="visible")},w9=function(e,t){var n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var r=KU(e,n);if(r){var i=qU(e,n),o=i[1],a=i[2];if(o>a)return!0}n=n.parentNode}while(n&&n!==document.body);return!1},hye=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},pye=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},KU=function(e,t){return e==="v"?fye(t):dye(t)},qU=function(e,t){return e==="v"?hye(t):pye(t)},gye=function(e,t){return e==="h"&&t==="rtl"?-1:1},mye=function(e,t,n,r,i){var o=gye(e,window.getComputedStyle(t).direction),a=o*r,s=n.target,u=t.contains(s),l=!1,c=a>0,f=0,h=0;do{var p=qU(e,s),m=p[0],v=p[1],b=p[2],w=v-b-o*m;(m||w)&&KU(e,s)&&(f+=w,h+=m),s=s.parentNode}while(!u&&s!==document.body||u&&(t.contains(s)||t===s));return(c&&(f===0||!i)||!c&&(h===0||!i))&&(l=!0),l},d1=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},_9=function(e){return[e.deltaX,e.deltaY]},S9=function(e){return e&&"current"in e?e.current:e},vye=function(e,t){return e[0]===t[0]&&e[1]===t[1]},yye=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},bye=0,qf=[];function xye(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),i=y.useState(bye++)[0],o=y.useState(function(){return q5()})[0],a=y.useRef(e);y.useEffect(function(){a.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var v=VB([e.lockRef.current],(e.shards||[]).map(S9),!0).filter(Boolean);return v.forEach(function(b){return b.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),v.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=y.useCallback(function(v,b){if("touches"in v&&v.touches.length===2)return!a.current.allowPinchZoom;var w=d1(v),x=n.current,S="deltaX"in v?v.deltaX:x[0]-w[0],O="deltaY"in v?v.deltaY:x[1]-w[1],E,C=v.target,k=Math.abs(S)>Math.abs(O)?"h":"v";if("touches"in v&&k==="h"&&C.type==="range")return!1;var M=w9(k,C);if(!M)return!0;if(M?E=k:(E=k==="v"?"h":"v",M=w9(k,C)),!M)return!1;if(!r.current&&"changedTouches"in v&&(S||O)&&(r.current=E),!E)return!0;var L=r.current||E;return mye(L,b,v,L==="h"?S:O,!0)},[]),u=y.useCallback(function(v){var b=v;if(!(!qf.length||qf[qf.length-1]!==o)){var w="deltaY"in b?_9(b):d1(b),x=t.current.filter(function(E){return E.name===b.type&&E.target===b.target&&vye(E.delta,w)})[0];if(x&&x.should){b.preventDefault();return}if(!x){var S=(a.current.shards||[]).map(S9).filter(Boolean).filter(function(E){return E.contains(b.target)}),O=S.length>0?s(b,S[0]):!a.current.noIsolation;O&&b.preventDefault()}}},[]),l=y.useCallback(function(v,b,w,x){var S={name:v,delta:b,target:w,should:x};t.current.push(S),setTimeout(function(){t.current=t.current.filter(function(O){return O!==S})},1)},[]),c=y.useCallback(function(v){n.current=d1(v),r.current=void 0},[]),f=y.useCallback(function(v){l(v.type,_9(v),v.target,s(v,e.lockRef.current))},[]),h=y.useCallback(function(v){l(v.type,d1(v),v.target,s(v,e.lockRef.current))},[]);y.useEffect(function(){return qf.push(o),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:h}),document.addEventListener("wheel",u,Kf),document.addEventListener("touchmove",u,Kf),document.addEventListener("touchstart",c,Kf),function(){qf=qf.filter(function(v){return v!==o}),document.removeEventListener("wheel",u,Kf),document.removeEventListener("touchmove",u,Kf),document.removeEventListener("touchstart",c,Kf)}},[]);var p=e.removeScrollBar,m=e.inert;return y.createElement(y.Fragment,null,m?y.createElement(o,{styles:yye(i)}):null,p?y.createElement(cye,{gapMode:"margin"}):null)}const wye=KB(HU,xye);var GU=y.forwardRef(function(e,t){return y.createElement(y2,Ri({},e,{ref:t,sideCar:wye}))});GU.classNames=y2.classNames;const YU="Dialog",[ZU,EXe]=S1e(YU),[_ye,gf]=ZU(YU),Sye=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!0}=e,s=y.useRef(null),u=y.useRef(null),[l=!1,c]=P1e({prop:r,defaultProp:i,onChange:o});return y.createElement(_ye,{scope:t,triggerRef:s,contentRef:u,contentId:PS(),titleId:PS(),descriptionId:PS(),open:l,onOpenChange:c,onOpenToggle:y.useCallback(()=>c(f=>!f),[c]),modal:a},n)},XU="DialogPortal",[Cye,QU]=ZU(XU,{forceMount:void 0}),Eye=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=gf(XU,t);return y.createElement(Cye,{scope:t,forceMount:n},y.Children.map(r,a=>y.createElement(v2,{present:n||o.open},y.createElement(Y1e,{asChild:!0,container:i},a))))},_E="DialogOverlay",Oye=y.forwardRef((e,t)=>{const n=QU(_E,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=gf(_E,e.__scopeDialog);return o.modal?y.createElement(v2,{present:r||o.open},y.createElement(Aye,Ki({},i,{ref:t}))):null}),Aye=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=gf(_E,n);return y.createElement(GU,{as:CO,allowPinchZoom:!0,shards:[i.contentRef]},y.createElement(m2.div,Ki({"data-state":eV(i.open)},r,{ref:t,style:{pointerEvents:"auto",...r.style}})))}),bg="DialogContent",Pye=y.forwardRef((e,t)=>{const n=QU(bg,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=gf(bg,e.__scopeDialog);return y.createElement(v2,{present:r||o.open},o.modal?y.createElement(kye,Ki({},i,{ref:t})):y.createElement(Tye,Ki({},i,{ref:t})))}),kye=y.forwardRef((e,t)=>{const n=gf(bg,e.__scopeDialog),r=y.useRef(null),i=Mm(t,n.contentRef,r);return y.useEffect(()=>{const o=r.current;if(o)return Cm(o)},[]),y.createElement(JU,Ki({},e,{ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Td(e.onCloseAutoFocus,o=>{var a;o.preventDefault(),(a=n.triggerRef.current)===null||a===void 0||a.focus()}),onPointerDownOutside:Td(e.onPointerDownOutside,o=>{const a=o.detail.originalEvent,s=a.button===0&&a.ctrlKey===!0;(a.button===2||s)&&o.preventDefault()}),onFocusOutside:Td(e.onFocusOutside,o=>o.preventDefault())}))}),Tye=y.forwardRef((e,t)=>{const n=gf(bg,e.__scopeDialog),r=y.useRef(!1);return y.createElement(JU,Ki({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var o;if((o=e.onCloseAutoFocus)===null||o===void 0||o.call(e,i),!i.defaultPrevented){var a;r.current||(a=n.triggerRef.current)===null||a===void 0||a.focus(),i.preventDefault()}r.current=!1},onInteractOutside:i=>{var o,a;(o=e.onInteractOutside)===null||o===void 0||o.call(e,i),i.defaultPrevented||(r.current=!0);const s=i.target;((a=n.triggerRef.current)===null||a===void 0?void 0:a.contains(s))&&i.preventDefault()}}))}),JU=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...a}=e,s=gf(bg,n),u=y.useRef(null),l=Mm(t,u);return Q1e(),y.createElement(y.Fragment,null,y.createElement(U1e,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o},y.createElement(j1e,Ki({role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":eV(s.open)},a,{ref:l,onDismiss:()=>s.onOpenChange(!1)}))),!1)});function eV(e){return e?"open":"closed"}const Mye=Sye,Rye=Eye,Dye=Oye,$ye=Pye;var Iye='[cmdk-list-sizer=""]',jp='[cmdk-group=""]',IS='[cmdk-group-items=""]',Nye='[cmdk-group-heading=""]',OO='[cmdk-item=""]',C9=`${OO}:not([aria-disabled="true"])`,SE="cmdk-item-select",Qs="data-value",Lye=(e,t)=>w1e(e,t),tV=y.createContext(void 0),Rm=()=>y.useContext(tV),nV=y.createContext(void 0),AO=()=>y.useContext(nV),rV=y.createContext(void 0),iV=y.forwardRef((e,t)=>{let n=y.useRef(null),r=td(()=>{var Y,oe,ae;return{search:"",value:(ae=(oe=e.value)!=null?oe:(Y=e.defaultValue)==null?void 0:Y.toLowerCase())!=null?ae:"",filtered:{count:0,items:new Map,groups:new Set}}}),i=td(()=>new Set),o=td(()=>new Map),a=td(()=>new Map),s=td(()=>new Set),u=oV(e),{label:l,children:c,value:f,onValueChange:h,filter:p,shouldFilter:m,vimBindings:v=!0,...b}=e,w=y.useId(),x=y.useId(),S=y.useId(),O=Gye();Bh(()=>{if(f!==void 0){let Y=f.trim().toLowerCase();r.current.value=Y,O(6,H),E.emit()}},[f]);let E=y.useMemo(()=>({subscribe:Y=>(s.current.add(Y),()=>s.current.delete(Y)),snapshot:()=>r.current,setState:(Y,oe,ae)=>{var ue,be,we;if(!Object.is(r.current[Y],oe)){if(r.current[Y]=oe,Y==="search")U(),M(),O(1,L);else if(Y==="value")if(((ue=u.current)==null?void 0:ue.value)!==void 0){let He=oe??"";(we=(be=u.current).onValueChange)==null||we.call(be,He);return}else ae||O(5,H);E.emit()}},emit:()=>{s.current.forEach(Y=>Y())}}),[]),C=y.useMemo(()=>({value:(Y,oe)=>{oe!==a.current.get(Y)&&(a.current.set(Y,oe),r.current.filtered.items.set(Y,k(oe)),O(2,()=>{M(),E.emit()}))},item:(Y,oe)=>(i.current.add(Y),oe&&(o.current.has(oe)?o.current.get(oe).add(Y):o.current.set(oe,new Set([Y]))),O(3,()=>{U(),M(),r.current.value||L(),E.emit()}),()=>{a.current.delete(Y),i.current.delete(Y),r.current.filtered.items.delete(Y);let ae=V();O(4,()=>{U(),ae?.getAttribute("id")===Y&&L(),E.emit()})}),group:Y=>(o.current.has(Y)||o.current.set(Y,new Set),()=>{a.current.delete(Y),o.current.delete(Y)}),filter:()=>u.current.shouldFilter,label:l||e["aria-label"],commandRef:n,listId:w,inputId:S,labelId:x}),[]);function k(Y){var oe,ae;let ue=(ae=(oe=u.current)==null?void 0:oe.filter)!=null?ae:Lye;return Y?ue(Y,r.current.search):0}function M(){if(!n.current||!r.current.search||u.current.shouldFilter===!1)return;let Y=r.current.filtered.items,oe=[];r.current.filtered.groups.forEach(ue=>{let be=o.current.get(ue),we=0;be.forEach(He=>{let Ee=Y.get(He);we=Math.max(Ee,we)}),oe.push([ue,we])});let ae=n.current.querySelector(Iye);ne().sort((ue,be)=>{var we,He;let Ee=ue.getAttribute(Qs),it=be.getAttribute(Qs);return((we=Y.get(it))!=null?we:0)-((He=Y.get(Ee))!=null?He:0)}).forEach(ue=>{let be=ue.closest(IS);be?be.appendChild(ue.parentElement===be?ue:ue.closest(`${IS} > *`)):ae.appendChild(ue.parentElement===ae?ue:ue.closest(`${IS} > *`))}),oe.sort((ue,be)=>be[1]-ue[1]).forEach(ue=>{let be=n.current.querySelector(`${jp}[${Qs}="${ue[0]}"]`);be?.parentElement.appendChild(be)})}function L(){let Y=ne().find(ae=>!ae.ariaDisabled),oe=Y?.getAttribute(Qs);E.setState("value",oe||void 0)}function U(){if(!r.current.search||u.current.shouldFilter===!1){r.current.filtered.count=i.current.size;return}r.current.filtered.groups=new Set;let Y=0;for(let oe of i.current){let ae=a.current.get(oe),ue=k(ae);r.current.filtered.items.set(oe,ue),ue>0&&Y++}for(let[oe,ae]of o.current)for(let ue of ae)if(r.current.filtered.items.get(ue)>0){r.current.filtered.groups.add(oe);break}r.current.filtered.count=Y}function H(){var Y,oe,ae;let ue=V();ue&&(((Y=ue.parentElement)==null?void 0:Y.firstChild)===ue&&((ae=(oe=ue.closest(jp))==null?void 0:oe.querySelector(Nye))==null||ae.scrollIntoView({block:"nearest"})),ue.scrollIntoView({block:"nearest"}))}function V(){var Y;return(Y=n.current)==null?void 0:Y.querySelector(`${OO}[aria-selected="true"]`)}function ne(){return Array.from(n.current.querySelectorAll(C9))}function Z(Y){let oe=ne()[Y];oe&&E.setState("value",oe.getAttribute(Qs))}function G(Y){var oe;let ae=V(),ue=ne(),be=ue.findIndex(He=>He===ae),we=ue[be+Y];(oe=u.current)!=null&&oe.loop&&(we=be+Y<0?ue[ue.length-1]:be+Y===ue.length?ue[0]:ue[be+Y]),we&&E.setState("value",we.getAttribute(Qs))}function q(Y){let oe=V(),ae=oe?.closest(jp),ue;for(;ae&&!ue;)ae=Y>0?Kye(ae,jp):qye(ae,jp),ue=ae?.querySelector(C9);ue?E.setState("value",ue.getAttribute(Qs)):G(Y)}let W=()=>Z(ne().length-1),j=Y=>{Y.preventDefault(),Y.metaKey?W():Y.altKey?q(1):G(1)},K=Y=>{Y.preventDefault(),Y.metaKey?Z(0):Y.altKey?q(-1):G(-1)};return y.createElement("div",{ref:Dm([n,t]),...b,"cmdk-root":"",onKeyDown:Y=>{var oe;if((oe=b.onKeyDown)==null||oe.call(b,Y),!Y.defaultPrevented)switch(Y.key){case"n":case"j":{v&&Y.ctrlKey&&j(Y);break}case"ArrowDown":{j(Y);break}case"p":case"k":{v&&Y.ctrlKey&&K(Y);break}case"ArrowUp":{K(Y);break}case"Home":{Y.preventDefault(),Z(0);break}case"End":{Y.preventDefault(),W();break}case"Enter":if(!Y.nativeEvent.isComposing){Y.preventDefault();let ae=V();if(ae){let ue=new Event(SE);ae.dispatchEvent(ue)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:C.inputId,id:C.labelId,style:Yye},l),y.createElement(nV.Provider,{value:E},y.createElement(tV.Provider,{value:C},c)))}),Fye=y.forwardRef((e,t)=>{var n,r;let i=y.useId(),o=y.useRef(null),a=y.useContext(rV),s=Rm(),u=oV(e),l=(r=(n=u.current)==null?void 0:n.forceMount)!=null?r:a?.forceMount;Bh(()=>s.item(i,a?.id),[]);let c=aV(i,o,[e.value,e.children,o]),f=AO(),h=Jc(E=>E.value&&E.value===c.current),p=Jc(E=>l||s.filter()===!1?!0:E.search?E.filtered.items.get(i)>0:!0);y.useEffect(()=>{let E=o.current;if(!(!E||e.disabled))return E.addEventListener(SE,m),()=>E.removeEventListener(SE,m)},[p,e.onSelect,e.disabled]);function m(){var E,C;v(),(C=(E=u.current).onSelect)==null||C.call(E,c.current)}function v(){f.setState("value",c.current,!0)}if(!p)return null;let{disabled:b,value:w,onSelect:x,forceMount:S,...O}=e;return y.createElement("div",{ref:Dm([o,t]),...O,id:i,"cmdk-item":"",role:"option","aria-disabled":b||void 0,"aria-selected":h||void 0,"data-disabled":b||void 0,"data-selected":h||void 0,onPointerMove:b?void 0:v,onClick:b?void 0:m},e.children)}),jye=y.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...o}=e,a=y.useId(),s=y.useRef(null),u=y.useRef(null),l=y.useId(),c=Rm(),f=Jc(m=>i||c.filter()===!1?!0:m.search?m.filtered.groups.has(a):!0);Bh(()=>c.group(a),[]),aV(a,s,[e.value,e.heading,u]);let h=y.useMemo(()=>({id:a,forceMount:i}),[i]),p=y.createElement(rV.Provider,{value:h},r);return y.createElement("div",{ref:Dm([s,t]),...o,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&y.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:l},n),y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?l:void 0},p))}),Bye=y.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=y.useRef(null),o=Jc(a=>!a.search);return!n&&!o?null:y.createElement("div",{ref:Dm([i,t]),...r,"cmdk-separator":"",role:"separator"})}),zye=y.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,o=AO(),a=Jc(c=>c.search),s=Jc(c=>c.value),u=Rm(),l=y.useMemo(()=>{var c;let f=(c=u.commandRef.current)==null?void 0:c.querySelector(`${OO}[${Qs}="${s}"]`);return f?.getAttribute("id")},[s,u.commandRef]);return y.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),y.createElement("input",{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":l,id:u.inputId,type:"text",value:i?e.value:a,onChange:c=>{i||o.setState("search",c.target.value),n?.(c.target.value)}})}),Uye=y.forwardRef((e,t)=>{let{children:n,...r}=e,i=y.useRef(null),o=y.useRef(null),a=Rm();return y.useEffect(()=>{if(o.current&&i.current){let s=o.current,u=i.current,l,c=new ResizeObserver(()=>{l=requestAnimationFrame(()=>{let f=s.offsetHeight;u.style.setProperty("--cmdk-list-height",f.toFixed(1)+"px")})});return c.observe(s),()=>{cancelAnimationFrame(l),c.unobserve(s)}}},[]),y.createElement("div",{ref:Dm([i,t]),...r,"cmdk-list":"",role:"listbox","aria-label":"Suggestions",id:a.listId,"aria-labelledby":a.inputId},y.createElement("div",{ref:o,"cmdk-list-sizer":""},n))}),Vye=y.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:o,container:a,...s}=e;return y.createElement(Mye,{open:n,onOpenChange:r},y.createElement(Rye,{container:a},y.createElement(Dye,{"cmdk-overlay":"",className:i}),y.createElement($ye,{"aria-label":e.label,"cmdk-dialog":"",className:o},y.createElement(iV,{ref:t,...s}))))}),Wye=y.forwardRef((e,t)=>{let n=y.useRef(!0),r=Jc(i=>i.filtered.count===0);return y.useEffect(()=>{n.current=!1},[]),n.current||!r?null:y.createElement("div",{ref:t,...e,"cmdk-empty":"",role:"presentation"})}),Hye=y.forwardRef((e,t)=>{let{progress:n,children:r,...i}=e;return y.createElement("div",{ref:t,...i,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":"Loading..."},y.createElement("div",{"aria-hidden":!0},r))}),OXe=Object.assign(iV,{List:Uye,Item:Fye,Input:zye,Group:jye,Separator:Bye,Dialog:Vye,Empty:Wye,Loading:Hye});function Kye(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function qye(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function oV(e){let t=y.useRef(e);return Bh(()=>{t.current=e}),t}var Bh=typeof window>"u"?y.useEffect:y.useLayoutEffect;function td(e){let t=y.useRef();return t.current===void 0&&(t.current=e()),t}function Dm(e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}function Jc(e){let t=AO(),n=()=>e(t.snapshot());return y.useSyncExternalStore(t.subscribe,n,n)}function aV(e,t,n){let r=y.useRef(),i=Rm();return Bh(()=>{var o;let a=(()=>{var s;for(let u of n){if(typeof u=="string")return u.trim().toLowerCase();if(typeof u=="object"&&"current"in u)return u.current?(s=u.current.textContent)==null?void 0:s.trim().toLowerCase():r.current}})();i.value(e,a),(o=t.current)==null||o.setAttribute(Qs,a),r.current=a}),r}var Gye=()=>{let[e,t]=y.useState(),n=td(()=>new Map);return Bh(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,i)=>{n.current.set(r,i),t({})}},Yye={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},PO="Avatar",[Zye,AXe]=vi(PO),[Xye,sV]=Zye(PO),uV=y.forwardRef((e,t)=>{const{__scopeAvatar:n,...r}=e,[i,o]=y.useState("idle");return I.jsx(Xye,{scope:n,imageLoadingStatus:i,onImageLoadingStatusChange:o,children:I.jsx(pt.span,{...r,ref:t})})});uV.displayName=PO;var lV="AvatarImage",cV=y.forwardRef((e,t)=>{const{__scopeAvatar:n,src:r,onLoadingStatusChange:i=()=>{},...o}=e,a=sV(lV,n),s=Qye(r,o.referrerPolicy),u=Vr(l=>{i(l),a.onImageLoadingStatusChange(l)});return ii(()=>{s!=="idle"&&u(s)},[s,u]),s==="loaded"?I.jsx(pt.img,{...o,ref:t,src:r}):null});cV.displayName=lV;var fV="AvatarFallback",dV=y.forwardRef((e,t)=>{const{__scopeAvatar:n,delayMs:r,...i}=e,o=sV(fV,n),[a,s]=y.useState(r===void 0);return y.useEffect(()=>{if(r!==void 0){const u=window.setTimeout(()=>s(!0),r);return()=>window.clearTimeout(u)}},[r]),a&&o.imageLoadingStatus!=="loaded"?I.jsx(pt.span,{...i,ref:t}):null});dV.displayName=fV;function Qye(e,t){const[n,r]=y.useState("idle");return ii(()=>{if(!e){r("error");return}let i=!0;const o=new window.Image,a=s=>()=>{i&&r(s)};return r("loading"),o.onload=a("loaded"),o.onerror=a("error"),o.src=e,t&&(o.referrerPolicy=t),()=>{i=!1}},[e,t]),n}var PXe=uV,kXe=cV,TXe=dV,Jye=Array.isArray,vo=Jye,ebe=typeof La=="object"&&La&&La.Object===Object&&La,hV=ebe,tbe=hV,nbe=typeof self=="object"&&self&&self.Object===Object&&self,rbe=tbe||nbe||Function("return this")(),Ds=rbe,ibe=Ds,obe=ibe.Symbol,$m=obe,E9=$m,pV=Object.prototype,abe=pV.hasOwnProperty,sbe=pV.toString,Bp=E9?E9.toStringTag:void 0;function ube(e){var t=abe.call(e,Bp),n=e[Bp];try{e[Bp]=void 0;var r=!0}catch{}var i=sbe.call(e);return r&&(t?e[Bp]=n:delete e[Bp]),i}var lbe=ube,cbe=Object.prototype,fbe=cbe.toString;function dbe(e){return fbe.call(e)}var hbe=dbe,O9=$m,pbe=lbe,gbe=hbe,mbe="[object Null]",vbe="[object Undefined]",A9=O9?O9.toStringTag:void 0;function ybe(e){return e==null?e===void 0?vbe:mbe:A9&&A9 in Object(e)?pbe(e):gbe(e)}var Tu=ybe;function bbe(e){return e!=null&&typeof e=="object"}var Mu=bbe,xbe=Tu,wbe=Mu,_be="[object Symbol]";function Sbe(e){return typeof e=="symbol"||wbe(e)&&xbe(e)==_be}var zh=Sbe,Cbe=vo,Ebe=zh,Obe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Abe=/^\w*$/;function Pbe(e,t){if(Cbe(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||Ebe(e)?!0:Abe.test(e)||!Obe.test(e)||t!=null&&e in Object(t)}var kO=Pbe;function kbe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ul=kbe;const Uh=Dn(Ul);var Tbe=Tu,Mbe=Ul,Rbe="[object AsyncFunction]",Dbe="[object Function]",$be="[object GeneratorFunction]",Ibe="[object Proxy]";function Nbe(e){if(!Mbe(e))return!1;var t=Tbe(e);return t==Dbe||t==$be||t==Rbe||t==Ibe}var TO=Nbe;const Ht=Dn(TO);var Lbe=Ds,Fbe=Lbe["__core-js_shared__"],jbe=Fbe,NS=jbe,P9=function(){var e=/[^.]+$/.exec(NS&&NS.keys&&NS.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Bbe(e){return!!P9&&P9 in e}var zbe=Bbe,Ube=Function.prototype,Vbe=Ube.toString;function Wbe(e){if(e!=null){try{return Vbe.call(e)}catch{}try{return e+""}catch{}}return""}var gV=Wbe,Hbe=TO,Kbe=zbe,qbe=Ul,Gbe=gV,Ybe=/[\\^$.*+?()[\]{}|]/g,Zbe=/^\[object .+?Constructor\]$/,Xbe=Function.prototype,Qbe=Object.prototype,Jbe=Xbe.toString,exe=Qbe.hasOwnProperty,txe=RegExp("^"+Jbe.call(exe).replace(Ybe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function nxe(e){if(!qbe(e)||Kbe(e))return!1;var t=Hbe(e)?txe:Zbe;return t.test(Gbe(e))}var rxe=nxe;function ixe(e,t){return e?.[t]}var oxe=ixe,axe=rxe,sxe=oxe;function uxe(e,t){var n=sxe(e,t);return axe(n)?n:void 0}var mf=uxe,lxe=mf,cxe=lxe(Object,"create"),b2=cxe,k9=b2;function fxe(){this.__data__=k9?k9(null):{},this.size=0}var dxe=fxe;function hxe(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var pxe=hxe,gxe=b2,mxe="__lodash_hash_undefined__",vxe=Object.prototype,yxe=vxe.hasOwnProperty;function bxe(e){var t=this.__data__;if(gxe){var n=t[e];return n===mxe?void 0:n}return yxe.call(t,e)?t[e]:void 0}var xxe=bxe,wxe=b2,_xe=Object.prototype,Sxe=_xe.hasOwnProperty;function Cxe(e){var t=this.__data__;return wxe?t[e]!==void 0:Sxe.call(t,e)}var Exe=Cxe,Oxe=b2,Axe="__lodash_hash_undefined__";function Pxe(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Oxe&&t===void 0?Axe:t,this}var kxe=Pxe,Txe=dxe,Mxe=pxe,Rxe=xxe,Dxe=Exe,$xe=kxe;function Vh(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var Xxe=Zxe,Qxe=x2;function Jxe(e,t){var n=this.__data__,r=Qxe(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var e2e=Jxe,t2e=Lxe,n2e=Hxe,r2e=Gxe,i2e=Xxe,o2e=e2e;function Wh(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0?1:-1},Sc=function(t){return Im(t)&&t.indexOf("%")===t.length-1},qe=function(t){return Awe(t)&&!Kh(t)},Hr=function(t){return qe(t)||Im(t)},Mwe=0,vf=function(t){var n=++Mwe;return"".concat(t||"").concat(n)},ef=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!qe(t)&&!Im(t))return r;var o;if(Sc(t)){var a=t.indexOf("%");o=n*parseFloat(t.slice(0,a))/100}else o=+t;return Kh(o)&&(o=r),i&&o>n&&(o=n),o},rl=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},Rwe=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function jwe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function EE(e){"@babel/helpers - typeof";return EE=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},EE(e)}var N9={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},fu=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},L9=null,FS=null,BO=function e(t){if(t===L9&&Array.isArray(FS))return FS;var n=[];return y.Children.forEach(t,function(r){Ut(r)||(_we.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),FS=n,L9=t,n};function po(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(i){return fu(i)}):r=[fu(t)],BO(e).forEach(function(i){var o=ha(i,"type.displayName")||ha(i,"type.name");r.indexOf(o)!==-1&&n.push(i)}),n}function To(e,t){var n=po(e,t);return n[0]}var F9=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,i=n.height;return!(!qe(r)||r<=0||!qe(i)||i<=0)},Bwe=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],zwe=function(t){return t&&t.type&&Im(t.type)&&Bwe.indexOf(t.type)>=0},EV=function(t){return t&&EE(t)==="object"&&"clipDot"in t},Uwe=function(t,n,r,i){var o,a=(o=LS?.[i])!==null&&o!==void 0?o:[];return!Ht(t)&&(i&&a.includes(n)||Iwe.includes(n))||r&&jO.includes(n)},zt=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var i=t;if(y.isValidElement(t)&&(i=t.props),!Uh(i))return null;var o={};return Object.keys(i).forEach(function(a){var s;Uwe((s=i)===null||s===void 0?void 0:s[a],a,n,r)&&(o[a]=i[a])}),o},OE=function e(t,n){if(t===n)return!0;var r=y.Children.count(t);if(r!==y.Children.count(n))return!1;if(r===0)return!0;if(r===1)return j9(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function qwe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function PE(e){var t=e.children,n=e.width,r=e.height,i=e.viewBox,o=e.className,a=e.style,s=e.title,u=e.desc,l=Kwe(e,Hwe),c=i||{width:n,height:r,x:0,y:0},f=dn("recharts-surface",o);return F.createElement("svg",AE({},zt(l,!0,"svg"),{className:f,width:n,height:r,style:a,viewBox:"".concat(c.x," ").concat(c.y," ").concat(c.width," ").concat(c.height)}),F.createElement("title",null,s),F.createElement("desc",null,u),t)}var Gwe=["children","className"];function kE(){return kE=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Zwe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Cn=F.forwardRef(function(e,t){var n=e.children,r=e.className,i=Ywe(e,Gwe),o=dn("recharts-layer",r);return F.createElement("g",kE({className:o},zt(i,!0),{ref:t}),n)}),du=function(t,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;oi?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r=r?e:Jwe(e,t,n)}var t_e=e_e,n_e="\\ud800-\\udfff",r_e="\\u0300-\\u036f",i_e="\\ufe20-\\ufe2f",o_e="\\u20d0-\\u20ff",a_e=r_e+i_e+o_e,s_e="\\ufe0e\\ufe0f",u_e="\\u200d",l_e=RegExp("["+u_e+n_e+a_e+s_e+"]");function c_e(e){return l_e.test(e)}var OV=c_e;function f_e(e){return e.split("")}var d_e=f_e,AV="\\ud800-\\udfff",h_e="\\u0300-\\u036f",p_e="\\ufe20-\\ufe2f",g_e="\\u20d0-\\u20ff",m_e=h_e+p_e+g_e,v_e="\\ufe0e\\ufe0f",y_e="["+AV+"]",TE="["+m_e+"]",ME="\\ud83c[\\udffb-\\udfff]",b_e="(?:"+TE+"|"+ME+")",PV="[^"+AV+"]",kV="(?:\\ud83c[\\udde6-\\uddff]){2}",TV="[\\ud800-\\udbff][\\udc00-\\udfff]",x_e="\\u200d",MV=b_e+"?",RV="["+v_e+"]?",w_e="(?:"+x_e+"(?:"+[PV,kV,TV].join("|")+")"+RV+MV+")*",__e=RV+MV+w_e,S_e="(?:"+[PV+TE+"?",TE,kV,TV,y_e].join("|")+")",C_e=RegExp(ME+"(?="+ME+")|"+S_e+__e,"g");function E_e(e){return e.match(C_e)||[]}var O_e=E_e,A_e=d_e,P_e=OV,k_e=O_e;function T_e(e){return P_e(e)?k_e(e):A_e(e)}var M_e=T_e,R_e=t_e,D_e=OV,$_e=M_e,I_e=bV;function N_e(e){return function(t){t=I_e(t);var n=D_e(t)?$_e(t):void 0,r=n?n[0]:t.charAt(0),i=n?R_e(n,1).join(""):t.slice(1);return r[e]()+i}}var L_e=N_e,F_e=L_e,j_e=F_e("toUpperCase"),B_e=j_e;const $2=Dn(B_e);function Vn(e){return function(){return e}}const DV=Math.cos,hb=Math.sin,rs=Math.sqrt,pb=Math.PI,I2=2*pb,RE=Math.PI,DE=2*RE,fc=1e-6,z_e=DE-fc;function $V(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return $V;const n=10**t;return function(r){this._+=r[0];for(let i=1,o=r.length;ifc)if(!(Math.abs(f*u-l*c)>fc)||!o)this._append`L${this._x1=t},${this._y1=n}`;else{let p=r-a,m=i-s,v=u*u+l*l,b=p*p+m*m,w=Math.sqrt(v),x=Math.sqrt(h),S=o*Math.tan((RE-Math.acos((v+h-b)/(2*w*x)))/2),O=S/x,E=S/w;Math.abs(O-1)>fc&&this._append`L${t+O*c},${n+O*f}`,this._append`A${o},${o},0,0,${+(f*p>c*m)},${this._x1=t+E*u},${this._y1=n+E*l}`}}arc(t,n,r,i,o,a){if(t=+t,n=+n,r=+r,a=!!a,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(i),u=r*Math.sin(i),l=t+s,c=n+u,f=1^a,h=a?i-o:o-i;this._x1===null?this._append`M${l},${c}`:(Math.abs(this._x1-l)>fc||Math.abs(this._y1-c)>fc)&&this._append`L${l},${c}`,r&&(h<0&&(h=h%DE+DE),h>z_e?this._append`A${r},${r},0,1,${f},${t-s},${n-u}A${r},${r},0,1,${f},${this._x1=l},${this._y1=c}`:h>fc&&this._append`A${r},${r},0,${+(h>=RE)},${f},${this._x1=t+r*Math.cos(o)},${this._y1=n+r*Math.sin(o)}`)}rect(t,n,r,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function zO(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new V_e(t)}function UO(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function IV(e){this._context=e}IV.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function N2(e){return new IV(e)}function NV(e){return e[0]}function LV(e){return e[1]}function FV(e,t){var n=Vn(!0),r=null,i=N2,o=null,a=zO(s);e=typeof e=="function"?e:e===void 0?NV:Vn(e),t=typeof t=="function"?t:t===void 0?LV:Vn(t);function s(u){var l,c=(u=UO(u)).length,f,h=!1,p;for(r==null&&(o=i(p=a())),l=0;l<=c;++l)!(l=p;--m)s.point(S[m],O[m]);s.lineEnd(),s.areaEnd()}w&&(S[h]=+e(b,h,f),O[h]=+t(b,h,f),s.point(r?+r(b,h,f):S[h],n?+n(b,h,f):O[h]))}if(x)return s=null,x+""||null}function c(){return FV().defined(i).curve(a).context(o)}return l.x=function(f){return arguments.length?(e=typeof f=="function"?f:Vn(+f),r=null,l):e},l.x0=function(f){return arguments.length?(e=typeof f=="function"?f:Vn(+f),l):e},l.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Vn(+f),l):r},l.y=function(f){return arguments.length?(t=typeof f=="function"?f:Vn(+f),n=null,l):t},l.y0=function(f){return arguments.length?(t=typeof f=="function"?f:Vn(+f),l):t},l.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Vn(+f),l):n},l.lineX0=l.lineY0=function(){return c().x(e).y(t)},l.lineY1=function(){return c().x(e).y(n)},l.lineX1=function(){return c().x(r).y(t)},l.defined=function(f){return arguments.length?(i=typeof f=="function"?f:Vn(!!f),l):i},l.curve=function(f){return arguments.length?(a=f,o!=null&&(s=a(o)),l):a},l.context=function(f){return arguments.length?(f==null?o=s=null:s=a(o=f),l):o},l}class jV{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function W_e(e){return new jV(e,!0)}function H_e(e){return new jV(e,!1)}const VO={draw(e,t){const n=rs(t/pb);e.moveTo(n,0),e.arc(0,0,n,0,I2)}},K_e={draw(e,t){const n=rs(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},BV=rs(1/3),q_e=BV*2,G_e={draw(e,t){const n=rs(t/q_e),r=n*BV;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},Y_e={draw(e,t){const n=rs(t),r=-n/2;e.rect(r,r,n,n)}},Z_e=.8908130915292852,zV=hb(pb/10)/hb(7*pb/10),X_e=hb(I2/10)*zV,Q_e=-DV(I2/10)*zV,J_e={draw(e,t){const n=rs(t*Z_e),r=X_e*n,i=Q_e*n;e.moveTo(0,-n),e.lineTo(r,i);for(let o=1;o<5;++o){const a=I2*o/5,s=DV(a),u=hb(a);e.lineTo(u*n,-s*n),e.lineTo(s*r-u*i,u*r+s*i)}e.closePath()}},jS=rs(3),eSe={draw(e,t){const n=-rs(t/(jS*3));e.moveTo(0,n*2),e.lineTo(-jS*n,-n),e.lineTo(jS*n,-n),e.closePath()}},ta=-.5,na=rs(3)/2,$E=1/rs(12),tSe=($E/2+1)*3,nSe={draw(e,t){const n=rs(t/tSe),r=n/2,i=n*$E,o=r,a=n*$E+n,s=-o,u=a;e.moveTo(r,i),e.lineTo(o,a),e.lineTo(s,u),e.lineTo(ta*r-na*i,na*r+ta*i),e.lineTo(ta*o-na*a,na*o+ta*a),e.lineTo(ta*s-na*u,na*s+ta*u),e.lineTo(ta*r+na*i,ta*i-na*r),e.lineTo(ta*o+na*a,ta*a-na*o),e.lineTo(ta*s+na*u,ta*u-na*s),e.closePath()}};function rSe(e,t){let n=null,r=zO(i);e=typeof e=="function"?e:Vn(e||VO),t=typeof t=="function"?t:Vn(t===void 0?64:+t);function i(){let o;if(n||(n=o=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return i.type=function(o){return arguments.length?(e=typeof o=="function"?o:Vn(o),i):e},i.size=function(o){return arguments.length?(t=typeof o=="function"?o:Vn(+o),i):t},i.context=function(o){return arguments.length?(n=o??null,i):n},i}function gb(){}function mb(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function UV(e){this._context=e}UV.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:mb(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:mb(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function iSe(e){return new UV(e)}function VV(e){this._context=e}VV.prototype={areaStart:gb,areaEnd:gb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:mb(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function oSe(e){return new VV(e)}function WV(e){this._context=e}WV.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:mb(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function aSe(e){return new WV(e)}function HV(e){this._context=e}HV.prototype={areaStart:gb,areaEnd:gb,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function sSe(e){return new HV(e)}function z9(e){return e<0?-1:1}function U9(e,t,n){var r=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(r||i<0&&-0),a=(n-e._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(z9(o)+z9(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function V9(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function BS(e,t,n){var r=e._x0,i=e._y0,o=e._x1,a=e._y1,s=(o-r)/3;e._context.bezierCurveTo(r+s,i+s*t,o-s,a-s*n,o,a)}function vb(e){this._context=e}vb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:BS(this,this._t0,V9(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,BS(this,V9(this,n=U9(this,e,t)),n);break;default:BS(this,this._t0,n=U9(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function KV(e){this._context=new qV(e)}(KV.prototype=Object.create(vb.prototype)).point=function(e,t){vb.prototype.point.call(this,t,e)};function qV(e){this._context=e}qV.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,o){this._context.bezierCurveTo(t,e,r,n,o,i)}};function uSe(e){return new vb(e)}function lSe(e){return new KV(e)}function GV(e){this._context=e}GV.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=W9(e),i=W9(t),o=0,a=1;a=0;--t)i[t]=(a[t]-i[t+1])/o[t];for(o[n-1]=(e[n]+i[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function fSe(e){return new L2(e,.5)}function dSe(e){return new L2(e,0)}function hSe(e){return new L2(e,1)}function Qd(e,t){if((a=e.length)>1)for(var n=1,r,i,o=e[t[0]],a,s=o.length;n=0;)n[t]=t;return n}function pSe(e,t){return e[t]}function gSe(e){const t=[];return t.key=e,t}function mSe(){var e=Vn([]),t=IE,n=Qd,r=pSe;function i(o){var a=Array.from(e.apply(this,arguments),gSe),s,u=a.length,l=-1,c;for(const f of o)for(s=0,++l;s0){for(var n,r,i=0,o=e[0].length,a;i0){for(var n=0,r=e[t[0]],i,o=r.length;n0)||!((o=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,o,a;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ESe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var YV={symbolCircle:VO,symbolCross:K_e,symbolDiamond:G_e,symbolSquare:Y_e,symbolStar:J_e,symbolTriangle:eSe,symbolWye:nSe},OSe=Math.PI/180,ASe=function(t){var n="symbol".concat($2(t));return YV[n]||VO},PSe=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var i=18*OSe;return 1.25*t*t*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},kSe=function(t,n){YV["symbol".concat($2(t))]=n},F2=function(t){var n=t.type,r=n===void 0?"circle":n,i=t.size,o=i===void 0?64:i,a=t.sizeType,s=a===void 0?"area":a,u=CSe(t,xSe),l=K9(K9({},u),{},{type:r,size:o,sizeType:s}),c=function(){var b=ASe(r),w=rSe().type(b).size(PSe(o,s,r));return w()},f=l.className,h=l.cx,p=l.cy,m=zt(l,!0);return h===+h&&p===+p&&o===+o?F.createElement("path",NE({},m,{className:dn("recharts-symbols",f),transform:"translate(".concat(h,", ").concat(p,")"),d:c()})):null};F2.registerSymbol=kSe;function Jd(e){"@babel/helpers - typeof";return Jd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jd(e)}function LE(){return LE=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var x=p.inactive?l:p.color;return F.createElement("li",LE({className:b,style:f,key:"legend-item-".concat(m)},xg(r.props,p,m)),F.createElement(PE,{width:a,height:a,viewBox:c,style:h},r.renderIcon(p)),F.createElement("span",{className:"recharts-legend-item-text",style:{color:x}},v?v(w,p,m):w))})}},{key:"render",value:function(){var r=this.props,i=r.payload,o=r.layout,a=r.align;if(!i||!i.length)return null;var s={padding:0,margin:0,textAlign:o==="horizontal"?a:"left"};return F.createElement("ul",{className:"recharts-default-legend",style:s},this.renderItems())}}])}(y.PureComponent);_g(WO,"displayName","Legend");_g(WO,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var jSe=w2;function BSe(){this.__data__=new jSe,this.size=0}var zSe=BSe;function USe(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var VSe=USe;function WSe(e){return this.__data__.get(e)}var HSe=WSe;function KSe(e){return this.__data__.has(e)}var qSe=KSe,GSe=w2,YSe=RO,ZSe=DO,XSe=200;function QSe(e,t){var n=this.__data__;if(n instanceof GSe){var r=n.__data__;if(!YSe||r.lengths))return!1;var l=o.get(e),c=o.get(t);if(l&&c)return l==t&&c==e;var f=-1,h=!0,p=n&x3e?new m3e:void 0;for(o.set(e,t),o.set(t,e);++f-1&&e%1==0&&e-1&&e%1==0&&e<=CCe}var GO=ECe,OCe=Tu,ACe=GO,PCe=Mu,kCe="[object Arguments]",TCe="[object Array]",MCe="[object Boolean]",RCe="[object Date]",DCe="[object Error]",$Ce="[object Function]",ICe="[object Map]",NCe="[object Number]",LCe="[object Object]",FCe="[object RegExp]",jCe="[object Set]",BCe="[object String]",zCe="[object WeakMap]",UCe="[object ArrayBuffer]",VCe="[object DataView]",WCe="[object Float32Array]",HCe="[object Float64Array]",KCe="[object Int8Array]",qCe="[object Int16Array]",GCe="[object Int32Array]",YCe="[object Uint8Array]",ZCe="[object Uint8ClampedArray]",XCe="[object Uint16Array]",QCe="[object Uint32Array]",er={};er[WCe]=er[HCe]=er[KCe]=er[qCe]=er[GCe]=er[YCe]=er[ZCe]=er[XCe]=er[QCe]=!0;er[kCe]=er[TCe]=er[UCe]=er[MCe]=er[VCe]=er[RCe]=er[DCe]=er[$Ce]=er[ICe]=er[NCe]=er[LCe]=er[FCe]=er[jCe]=er[BCe]=er[zCe]=!1;function JCe(e){return PCe(e)&&ACe(e.length)&&!!er[OCe(e)]}var eEe=JCe;function tEe(e){return function(t){return e(t)}}var aW=tEe,wb={exports:{}};wb.exports;(function(e,t){var n=hV,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,o=i&&i.exports===r,a=o&&n.process,s=function(){try{var u=i&&i.require&&i.require("util").types;return u||a&&a.binding&&a.binding("util")}catch{}}();e.exports=s})(wb,wb.exports);var nEe=wb.exports,rEe=eEe,iEe=aW,J9=nEe,eD=J9&&J9.isTypedArray,oEe=eD?iEe(eD):rEe,sW=oEe,aEe=lCe,sEe=KO,uEe=vo,lEe=oW,cEe=qO,fEe=sW,dEe=Object.prototype,hEe=dEe.hasOwnProperty;function pEe(e,t){var n=uEe(e),r=!n&&sEe(e),i=!n&&!r&&lEe(e),o=!n&&!r&&!i&&fEe(e),a=n||r||i||o,s=a?aEe(e.length,String):[],u=s.length;for(var l in e)(t||hEe.call(e,l))&&!(a&&(l=="length"||i&&(l=="offset"||l=="parent")||o&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||cEe(l,u)))&&s.push(l);return s}var gEe=pEe,mEe=Object.prototype;function vEe(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||mEe;return e===n}var yEe=vEe;function bEe(e,t){return function(n){return e(t(n))}}var uW=bEe,xEe=uW,wEe=xEe(Object.keys,Object),_Ee=wEe,SEe=yEe,CEe=_Ee,EEe=Object.prototype,OEe=EEe.hasOwnProperty;function AEe(e){if(!SEe(e))return CEe(e);var t=[];for(var n in Object(e))OEe.call(e,n)&&n!="constructor"&&t.push(n);return t}var PEe=AEe,kEe=TO,TEe=GO;function MEe(e){return e!=null&&TEe(e.length)&&!kEe(e)}var Nm=MEe,REe=gEe,DEe=PEe,$Ee=Nm;function IEe(e){return $Ee(e)?REe(e):DEe(e)}var j2=IEe,NEe=X3e,LEe=sCe,FEe=j2;function jEe(e){return NEe(e,FEe,LEe)}var BEe=jEe,tD=BEe,zEe=1,UEe=Object.prototype,VEe=UEe.hasOwnProperty;function WEe(e,t,n,r,i,o){var a=n&zEe,s=tD(e),u=s.length,l=tD(t),c=l.length;if(u!=c&&!a)return!1;for(var f=u;f--;){var h=s[f];if(!(a?h in t:VEe.call(t,h)))return!1}var p=o.get(e),m=o.get(t);if(p&&m)return p==t&&m==e;var v=!0;o.set(e,t),o.set(t,e);for(var b=a;++f-1}var U4e=z4e;function V4e(e,t,n){for(var r=-1,i=e==null?0:e.length;++r=i5e){var l=t?null:n5e(e);if(l)return r5e(l);a=!1,i=t5e,u=new Q4e}else u=t?[]:s;e:for(;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function x5e(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function w5e(e){return e.value}function _5e(e,t){if(F.isValidElement(e))return F.cloneElement(e,t);if(typeof e=="function")return F.createElement(e,t);t.ref;var n=b5e(t,f5e);return F.createElement(WO,n)}var vD=1,Dd=function(e){function t(){var n;d5e(this,t);for(var r=arguments.length,i=new Array(r),o=0;ovD||Math.abs(i.height-this.lastBoundingBox.height)>vD)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,r&&r(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Gs({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var i=this.props,o=i.layout,a=i.align,s=i.verticalAlign,u=i.margin,l=i.chartWidth,c=i.chartHeight,f,h;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(a==="center"&&o==="vertical"){var p=this.getBBoxSnapshot();f={left:((l||0)-p.width)/2}}else f=a==="right"?{right:u&&u.right||0}:{left:u&&u.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(s==="middle"){var m=this.getBBoxSnapshot();h={top:((c||0)-m.height)/2}}else h=s==="bottom"?{bottom:u&&u.bottom||0}:{top:u&&u.top||0};return Gs(Gs({},f),h)}},{key:"render",value:function(){var r=this,i=this.props,o=i.content,a=i.width,s=i.height,u=i.wrapperStyle,l=i.payloadUniqBy,c=i.payload,f=Gs(Gs({position:"absolute",width:a||"auto",height:s||"auto"},this.getDefaultPosition(u)),u);return F.createElement("div",{className:"recharts-legend-wrapper",style:f,ref:function(p){r.wrapperNode=p}},_5e(o,Gs(Gs({},this.props),{},{payload:gW(c,l,w5e)})))}}],[{key:"getWithHeight",value:function(r,i){var o=Gs(Gs({},this.defaultProps),r.props),a=o.layout;return a==="vertical"&&qe(r.props.height)?{height:r.props.height}:a==="horizontal"?{width:r.props.width||i}:null}}])}(y.PureComponent);B2(Dd,"displayName","Legend");B2(Dd,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var yD=$m,S5e=KO,C5e=vo,bD=yD?yD.isConcatSpreadable:void 0;function E5e(e){return C5e(e)||S5e(e)||!!(bD&&e&&e[bD])}var O5e=E5e,A5e=rW,P5e=O5e;function yW(e,t,n,r,i){var o=-1,a=e.length;for(n||(n=P5e),i||(i=[]);++o0&&n(s)?t>1?yW(s,t-1,n,r,i):A5e(i,s):r||(i[i.length]=s)}return i}var bW=yW;function k5e(e){return function(t,n,r){for(var i=-1,o=Object(t),a=r(t),s=a.length;s--;){var u=a[e?s:++i];if(n(o[u],u,o)===!1)break}return t}}var T5e=k5e,M5e=T5e,R5e=M5e(),D5e=R5e,$5e=D5e,I5e=j2;function N5e(e,t){return e&&$5e(e,t,I5e)}var xW=N5e,L5e=Nm;function F5e(e,t){return function(n,r){if(n==null)return n;if(!L5e(n))return e(n,r);for(var i=n.length,o=t?i:-1,a=Object(n);(t?o--:++ot||o&&a&&u&&!s&&!l||r&&a&&u||!n&&u||!i)return 1;if(!r&&!o&&!l&&e=s)return u;var l=n[r];return u*(l=="desc"?-1:1)}}return e.index-t.index}var Q5e=X5e,WS=IO,J5e=NO,eOe=Vl,tOe=wW,nOe=q5e,rOe=aW,iOe=Q5e,oOe=Yh,aOe=vo;function sOe(e,t,n){t.length?t=WS(t,function(o){return aOe(o)?function(a){return J5e(a,o.length===1?o[0]:o)}:o}):t=[oOe];var r=-1;t=WS(t,rOe(eOe));var i=tOe(e,function(o,a,s){var u=WS(t,function(l){return l(o)});return{criteria:u,index:++r,value:o}});return nOe(i,function(o,a){return iOe(o,a,n)})}var uOe=sOe;function lOe(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var cOe=lOe,fOe=cOe,wD=Math.max;function dOe(e,t,n){return t=wD(t===void 0?e.length-1:t,0),function(){for(var r=arguments,i=-1,o=wD(r.length-t,0),a=Array(o);++i0){if(++t>=_Oe)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var OOe=EOe,AOe=wOe,POe=OOe,kOe=POe(AOe),TOe=kOe,MOe=Yh,ROe=hOe,DOe=TOe;function $Oe(e,t){return DOe(ROe(e,t,MOe),e+"")}var IOe=$Oe,NOe=MO,LOe=Nm,FOe=qO,jOe=Ul;function BOe(e,t,n){if(!jOe(n))return!1;var r=typeof t;return(r=="number"?LOe(n)&&FOe(t,n.length):r=="string"&&t in n)?NOe(n[t],e):!1}var z2=BOe,zOe=bW,UOe=uOe,VOe=IOe,SD=z2,WOe=VOe(function(e,t){if(e==null)return[];var n=t.length;return n>1&&SD(e,t[0],t[1])?t=[]:n>2&&SD(t[0],t[1],t[2])&&(t=[t[0]]),UOe(e,zOe(t,1),[])}),HOe=WOe;const XO=Dn(HOe);function Sg(e){"@babel/helpers - typeof";return Sg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Sg(e)}function HE(){return HE=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(zp,"-left"),qe(n)&&t&&qe(t.x)&&n=t.y),"".concat(zp,"-top"),qe(r)&&t&&qe(t.y)&&rv?Math.max(c,u[r]):Math.max(f,u[r])}function aAe(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function sAe(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,i=e.position,o=e.reverseDirection,a=e.tooltipBox,s=e.useTranslate3d,u=e.viewBox,l,c,f;return a.height>0&&a.width>0&&n?(c=OD({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:i,reverseDirection:o,tooltipDimension:a.width,viewBox:u,viewBoxDimension:u.width}),f=OD({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:i,reverseDirection:o,tooltipDimension:a.height,viewBox:u,viewBoxDimension:u.height}),l=aAe({translateX:c,translateY:f,useTranslate3d:s})):l=iAe,{cssProperties:l,cssClasses:oAe({translateX:c,translateY:f,coordinate:n})}}function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}function AD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function PD(e){for(var t=1;tkD||Math.abs(r.height-this.state.lastBoundingBox.height)>kD)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,i=this.props,o=i.active,a=i.allowEscapeViewBox,s=i.animationDuration,u=i.animationEasing,l=i.children,c=i.coordinate,f=i.hasPayload,h=i.isAnimationActive,p=i.offset,m=i.position,v=i.reverseDirection,b=i.useTranslate3d,w=i.viewBox,x=i.wrapperStyle,S=sAe({allowEscapeViewBox:a,coordinate:c,offsetTopLeft:p,position:m,reverseDirection:v,tooltipBox:this.state.lastBoundingBox,useTranslate3d:b,viewBox:w}),O=S.cssClasses,E=S.cssProperties,C=PD(PD({transition:h&&o?"transform ".concat(s,"ms ").concat(u):void 0},E),{},{pointerEvents:"none",visibility:!this.state.dismissed&&o&&f?"visible":"hidden",position:"absolute",top:0,left:0},x);return F.createElement("div",{tabIndex:-1,className:O,style:C,ref:function(M){r.wrapperNode=M}},l)}}])}(y.PureComponent),vAe=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Ka={isSsr:vAe(),get:function(t){return Ka[t]},set:function(t,n){if(typeof t=="string")Ka[t]=n;else{var r=Object.keys(t);r&&r.length&&r.forEach(function(i){Ka[i]=t[i]})}}};function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}function TD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function MD(e){for(var t=1;t0;return F.createElement(mAe,{allowEscapeViewBox:a,animationDuration:s,animationEasing:u,isAnimationActive:h,active:o,coordinate:c,hasPayload:C,offset:p,position:b,reverseDirection:w,useTranslate3d:x,viewBox:S,wrapperStyle:O},AAe(l,MD(MD({},this.props),{},{payload:E})))}}])}(y.PureComponent);QO(Js,"displayName","Tooltip");QO(Js,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Ka.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var PAe=Ds,kAe=function(){return PAe.Date.now()},TAe=kAe,MAe=/\s/;function RAe(e){for(var t=e.length;t--&&MAe.test(e.charAt(t)););return t}var DAe=RAe,$Ae=DAe,IAe=/^\s+/;function NAe(e){return e&&e.slice(0,$Ae(e)+1).replace(IAe,"")}var LAe=NAe,FAe=LAe,RD=Ul,jAe=zh,DD=NaN,BAe=/^[-+]0x[0-9a-f]+$/i,zAe=/^0b[01]+$/i,UAe=/^0o[0-7]+$/i,VAe=parseInt;function WAe(e){if(typeof e=="number")return e;if(jAe(e))return DD;if(RD(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=RD(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=FAe(e);var n=zAe.test(e);return n||UAe.test(e)?VAe(e.slice(2),n?2:8):BAe.test(e)?DD:+e}var AW=WAe,HAe=Ul,KS=TAe,$D=AW,KAe="Expected a function",qAe=Math.max,GAe=Math.min;function YAe(e,t,n){var r,i,o,a,s,u,l=0,c=!1,f=!1,h=!0;if(typeof e!="function")throw new TypeError(KAe);t=$D(t)||0,HAe(n)&&(c=!!n.leading,f="maxWait"in n,o=f?qAe($D(n.maxWait)||0,t):o,h="trailing"in n?!!n.trailing:h);function p(C){var k=r,M=i;return r=i=void 0,l=C,a=e.apply(M,k),a}function m(C){return l=C,s=setTimeout(w,t),c?p(C):a}function v(C){var k=C-u,M=C-l,L=t-k;return f?GAe(L,o-M):L}function b(C){var k=C-u,M=C-l;return u===void 0||k>=t||k<0||f&&M>=o}function w(){var C=KS();if(b(C))return x(C);s=setTimeout(w,v(C))}function x(C){return s=void 0,h&&r?p(C):(r=i=void 0,a)}function S(){s!==void 0&&clearTimeout(s),l=0,r=u=i=s=void 0}function O(){return s===void 0?a:x(KS())}function E(){var C=KS(),k=b(C);if(r=arguments,i=this,u=C,k){if(s===void 0)return m(u);if(f)return clearTimeout(s),s=setTimeout(w,t),p(u)}return s===void 0&&(s=setTimeout(w,t)),a}return E.cancel=S,E.flush=O,E}var ZAe=YAe,XAe=ZAe,QAe=Ul,JAe="Expected a function";function ePe(e,t,n){var r=!0,i=!0;if(typeof e!="function")throw new TypeError(JAe);return QAe(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),XAe(e,t,{leading:r,maxWait:t,trailing:i})}var tPe=ePe;const PW=Dn(tPe);function Eg(e){"@babel/helpers - typeof";return Eg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Eg(e)}function ID(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function m1(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(ne=PW(ne,v,{trailing:!0,leading:!1}));var Z=new ResizeObserver(ne),G=E.current.getBoundingClientRect(),q=G.width,W=G.height;return H(q,W),Z.observe(E.current),function(){Z.disconnect()}},[H,v]);var V=y.useMemo(function(){var ne=L.containerWidth,Z=L.containerHeight;if(ne<0||Z<0)return null;du(Sc(a)||Sc(u),`The width(%s) and height(%s) are both fixed numbers, + maybe you don't need to use a ResponsiveContainer.`,a,u),du(!n||n>0,"The aspect(%s) must be greater than zero.",n);var G=Sc(a)?ne:a,q=Sc(u)?Z:u;n&&n>0&&(G?q=G/n:q&&(G=q*n),h&&q>h&&(q=h)),du(G>0||q>0,`The width(%s) and height(%s) of chart should be greater than 0, + please check the style of container, or the props width(%s) and height(%s), + or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the + height and width.`,G,q,a,u,c,f,n);var W=!Array.isArray(p)&&fu(p.type).endsWith("Chart");return F.Children.map(p,function(j){return F.isValidElement(j)?y.cloneElement(j,m1({width:G,height:q},W?{style:m1({height:"100%",width:"100%",maxHeight:q,maxWidth:G},j.props.style)}:{})):j})},[n,p,u,h,f,c,L,a]);return F.createElement("div",{id:b?"".concat(b):void 0,className:dn("recharts-responsive-container",w),style:m1(m1({},O),{},{width:a,height:u,minWidth:c,minHeight:f,maxHeight:h}),ref:E},V)}),JO=function(t){return null};JO.displayName="Cell";function Og(e){"@babel/helpers - typeof";return Og=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Og(e)}function LD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function YE(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Ka.isSsr)return{width:0,height:0};var r=gPe(n),i=JSON.stringify({text:t,copyStyle:r});if(Gf.widthCache[i])return Gf.widthCache[i];try{var o=document.getElementById(FD);o||(o=document.createElement("span"),o.setAttribute("id",FD),o.setAttribute("aria-hidden","true"),document.body.appendChild(o));var a=YE(YE({},pPe),r);Object.assign(o.style,a),o.textContent="".concat(t);var s=o.getBoundingClientRect(),u={width:s.width,height:s.height};return Gf.widthCache[i]=u,++Gf.cacheCount>hPe&&(Gf.cacheCount=0,Gf.widthCache={}),u}catch{return{width:0,height:0}}},mPe=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function Ag(e){"@babel/helpers - typeof";return Ag=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ag(e)}function Eb(e,t){return xPe(e)||bPe(e,t)||yPe(e,t)||vPe()}function vPe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yPe(e,t){if(e){if(typeof e=="string")return jD(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jD(e,t)}}function jD(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $Pe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function HD(e,t){return FPe(e)||LPe(e,t)||NPe(e,t)||IPe()}function IPe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function NPe(e,t){if(e){if(typeof e=="string")return KD(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return KD(e,t)}}function KD(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return G.reduce(function(q,W){var j=W.word,K=W.width,Y=q[q.length-1];if(Y&&(i==null||o||Y.width+K+rW.width?q:W})};if(!c)return p;for(var v="…",b=function(G){var q=f.slice(0,G),W=RW({breakAll:l,style:u,children:q+v}).wordsWithComputedWidth,j=h(W),K=j.length>a||m(j).width>Number(i);return[K,j]},w=0,x=f.length-1,S=0,O;w<=x&&S<=f.length-1;){var E=Math.floor((w+x)/2),C=E-1,k=b(C),M=HD(k,2),L=M[0],U=M[1],H=b(E),V=HD(H,1),ne=V[0];if(!L&&!ne&&(w=E+1),L&&ne&&(x=E-1),!L&&ne){O=U;break}S++}return O||p},qD=function(t){var n=Ut(t)?[]:t.toString().split(MW);return[{words:n}]},BPe=function(t){var n=t.width,r=t.scaleToFit,i=t.children,o=t.style,a=t.breakAll,s=t.maxLines;if((n||r)&&!Ka.isSsr){var u,l,c=RW({breakAll:a,children:i,style:o});if(c){var f=c.wordsWithComputedWidth,h=c.spaceWidth;u=f,l=h}else return qD(i);return jPe({breakAll:a,children:i,maxLines:s,style:o},u,l,n,r)}return qD(i)},GD="#808080",Ob=function(t){var n=t.x,r=n===void 0?0:n,i=t.y,o=i===void 0?0:i,a=t.lineHeight,s=a===void 0?"1em":a,u=t.capHeight,l=u===void 0?"0.71em":u,c=t.scaleToFit,f=c===void 0?!1:c,h=t.textAnchor,p=h===void 0?"start":h,m=t.verticalAnchor,v=m===void 0?"end":m,b=t.fill,w=b===void 0?GD:b,x=WD(t,RPe),S=y.useMemo(function(){return BPe({breakAll:x.breakAll,children:x.children,maxLines:x.maxLines,scaleToFit:f,style:x.style,width:x.width})},[x.breakAll,x.children,x.maxLines,f,x.style,x.width]),O=x.dx,E=x.dy,C=x.angle,k=x.className,M=x.breakAll,L=WD(x,DPe);if(!Hr(r)||!Hr(o))return null;var U=r+(qe(O)?O:0),H=o+(qe(E)?E:0),V;switch(v){case"start":V=qS("calc(".concat(l,")"));break;case"middle":V=qS("calc(".concat((S.length-1)/2," * -").concat(s," + (").concat(l," / 2))"));break;default:V=qS("calc(".concat(S.length-1," * -").concat(s,")"));break}var ne=[];if(f){var Z=S[0].width,G=x.width;ne.push("scale(".concat((qe(G)?G/Z:1)/Z,")"))}return C&&ne.push("rotate(".concat(C,", ").concat(U,", ").concat(H,")")),ne.length&&(L.transform=ne.join(" ")),F.createElement("text",ZE({},zt(L,!0),{x:U,y:H,className:dn("recharts-text",k),textAnchor:p,fill:w.includes("url")?GD:w}),S.map(function(q,W){var j=q.words.join(M?"":" ");return F.createElement("tspan",{x:U,dy:W===0?V:s,key:"".concat(j,"-").concat(W)},j)}))};function _l(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function zPe(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function eA(e){let t,n,r;e.length!==2?(t=_l,n=(s,u)=>_l(e(s),u),r=(s,u)=>e(s)-u):(t=e===_l||e===zPe?e:UPe,n=e,r=e);function i(s,u,l=0,c=s.length){if(l>>1;n(s[f],u)<0?l=f+1:c=f}while(l>>1;n(s[f],u)<=0?l=f+1:c=f}while(ll&&r(s[f-1],u)>-r(s[f],u)?f-1:f}return{left:i,center:a,right:o}}function UPe(){return 0}function DW(e){return e===null?NaN:+e}function*VPe(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const WPe=eA(_l),Lm=WPe.right;eA(DW).center;class YD extends Map{constructor(t,n=qPe){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(ZD(this,t))}has(t){return super.has(ZD(this,t))}set(t,n){return super.set(HPe(this,t),n)}delete(t){return super.delete(KPe(this,t))}}function ZD({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function HPe({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function KPe({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function qPe(e){return e!==null&&typeof e=="object"?e.valueOf():e}function GPe(e=_l){if(e===_l)return $W;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function $W(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const YPe=Math.sqrt(50),ZPe=Math.sqrt(10),XPe=Math.sqrt(2);function Ab(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=YPe?10:o>=ZPe?5:o>=XPe?2:1;let s,u,l;return i<0?(l=Math.pow(10,-i)/a,s=Math.round(e*l),u=Math.round(t*l),s/lt&&--u,l=-l):(l=Math.pow(10,i)*a,s=Math.round(e/l),u=Math.round(t/l),s*lt&&--u),u0))return[];if(e===t)return[e];const r=t=i))return[];const s=o-i+1,u=new Array(s);if(r)if(a<0)for(let l=0;l=r)&&(n=r);return n}function QD(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function IW(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?$W:GPe(i);r>n;){if(r-n>600){const u=r-n+1,l=t-n+1,c=Math.log(u),f=.5*Math.exp(2*c/3),h=.5*Math.sqrt(c*f*(u-f)/u)*(l-u/2<0?-1:1),p=Math.max(n,Math.floor(t-l*f/u+h)),m=Math.min(r,Math.floor(t+(u-l)*f/u+h));IW(e,t,p,m,i)}const o=e[t];let a=n,s=r;for(Up(e,n,t),i(e[r],o)>0&&Up(e,n,r);a0;)--s}i(e[n],o)===0?Up(e,n,s):(++s,Up(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function Up(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function QPe(e,t,n){if(e=Float64Array.from(VPe(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return QD(e);if(t>=1)return XD(e);var r,i=(r-1)*t,o=Math.floor(i),a=XD(IW(e,o).subarray(0,o+1)),s=QD(e.subarray(o+1));return a+(s-a)*(i-o)}}function JPe(e,t,n=DW){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,o=Math.floor(i),a=+n(e[o],o,e),s=+n(e[o+1],o+1,e);return a+(s-a)*(i-o)}}function e8e(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(i);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?y1(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?y1(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=n8e.exec(e))?new so(t[1],t[2],t[3],1):(t=r8e.exec(e))?new so(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=i8e.exec(e))?y1(t[1],t[2],t[3],t[4]):(t=o8e.exec(e))?y1(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=a8e.exec(e))?o7(t[1],t[2]/100,t[3]/100,1):(t=s8e.exec(e))?o7(t[1],t[2]/100,t[3]/100,t[4]):JD.hasOwnProperty(e)?n7(JD[e]):e==="transparent"?new so(NaN,NaN,NaN,0):null}function n7(e){return new so(e>>16&255,e>>8&255,e&255,1)}function y1(e,t,n,r){return r<=0&&(e=t=n=NaN),new so(e,t,n,r)}function c8e(e){return e instanceof Fm||(e=Mg(e)),e?(e=e.rgb(),new so(e.r,e.g,e.b,e.opacity)):new so}function t6(e,t,n,r){return arguments.length===1?c8e(e):new so(e,t,n,r??1)}function so(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}nA(so,t6,LW(Fm,{brighter(e){return e=e==null?Pb:Math.pow(Pb,e),new so(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?kg:Math.pow(kg,e),new so(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new so(Dc(this.r),Dc(this.g),Dc(this.b),kb(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:r7,formatHex:r7,formatHex8:f8e,formatRgb:i7,toString:i7}));function r7(){return`#${Cc(this.r)}${Cc(this.g)}${Cc(this.b)}`}function f8e(){return`#${Cc(this.r)}${Cc(this.g)}${Cc(this.b)}${Cc((isNaN(this.opacity)?1:this.opacity)*255)}`}function i7(){const e=kb(this.opacity);return`${e===1?"rgb(":"rgba("}${Dc(this.r)}, ${Dc(this.g)}, ${Dc(this.b)}${e===1?")":`, ${e})`}`}function kb(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Dc(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Cc(e){return e=Dc(e),(e<16?"0":"")+e.toString(16)}function o7(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ba(e,t,n,r)}function FW(e){if(e instanceof Ba)return new Ba(e.h,e.s,e.l,e.opacity);if(e instanceof Fm||(e=Mg(e)),!e)return new Ba;if(e instanceof Ba)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,u=(o+i)/2;return s?(t===o?a=(n-r)/s+(n0&&u<1?0:a,new Ba(a,s,u,e.opacity)}function d8e(e,t,n,r){return arguments.length===1?FW(e):new Ba(e,t,n,r??1)}function Ba(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}nA(Ba,d8e,LW(Fm,{brighter(e){return e=e==null?Pb:Math.pow(Pb,e),new Ba(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?kg:Math.pow(kg,e),new Ba(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new so(GS(e>=240?e-240:e+120,i,r),GS(e,i,r),GS(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Ba(a7(this.h),b1(this.s),b1(this.l),kb(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=kb(this.opacity);return`${e===1?"hsl(":"hsla("}${a7(this.h)}, ${b1(this.s)*100}%, ${b1(this.l)*100}%${e===1?")":`, ${e})`}`}}));function a7(e){return e=(e||0)%360,e<0?e+360:e}function b1(e){return Math.max(0,Math.min(1,e||0))}function GS(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const rA=e=>()=>e;function h8e(e,t){return function(n){return e+n*t}}function p8e(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function g8e(e){return(e=+e)==1?jW:function(t,n){return n-t?p8e(t,n,e):rA(isNaN(t)?n:t)}}function jW(e,t){var n=t-e;return n?h8e(e,n):rA(isNaN(e)?t:e)}const s7=function e(t){var n=g8e(t);function r(i,o){var a=n((i=t6(i)).r,(o=t6(o)).r),s=n(i.g,o.g),u=n(i.b,o.b),l=jW(i.opacity,o.opacity);return function(c){return i.r=a(c),i.g=s(c),i.b=u(c),i.opacity=l(c),i+""}}return r.gamma=e,r}(1);function m8e(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;in&&(o=t.slice(n,o),s[a]?s[a]+=o:s[++a]=o),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,u.push({i:a,x:Tb(r,i)})),n=YS.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function A8e(e,t,n){var r=e[0],i=e[1],o=t[0],a=t[1];return i2?P8e:A8e,u=l=null,f}function f(h){return h==null||isNaN(h=+h)?o:(u||(u=s(e.map(r),t,n)))(r(a(h)))}return f.invert=function(h){return a(i((l||(l=s(t,e.map(r),Tb)))(h)))},f.domain=function(h){return arguments.length?(e=Array.from(h,Mb),c()):e.slice()},f.range=function(h){return arguments.length?(t=Array.from(h),c()):t.slice()},f.rangeRound=function(h){return t=Array.from(h),n=iA,c()},f.clamp=function(h){return arguments.length?(a=h?!0:Vi,c()):a!==Vi},f.interpolate=function(h){return arguments.length?(n=h,c()):n},f.unknown=function(h){return arguments.length?(o=h,f):o},function(h,p){return r=h,i=p,c()}}function oA(){return U2()(Vi,Vi)}function k8e(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Rb(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function rh(e){return e=Rb(Math.abs(e)),e?e[1]:NaN}function T8e(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),o.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function M8e(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var R8e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Rg(e){if(!(t=R8e.exec(e)))throw new Error("invalid format: "+e);var t;return new aA({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Rg.prototype=aA.prototype;function aA(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}aA.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function D8e(e){e:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var BW;function $8e(e,t){var n=Rb(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(BW=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Rb(e,Math.max(0,t+o-1))[0]}function l7(e,t){var n=Rb(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const c7={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:k8e,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>l7(e*100,t),r:l7,s:$8e,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function f7(e){return e}var d7=Array.prototype.map,h7=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function I8e(e){var t=e.grouping===void 0||e.thousands===void 0?f7:T8e(d7.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?f7:M8e(d7.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(f){f=Rg(f);var h=f.fill,p=f.align,m=f.sign,v=f.symbol,b=f.zero,w=f.width,x=f.comma,S=f.precision,O=f.trim,E=f.type;E==="n"?(x=!0,E="g"):c7[E]||(S===void 0&&(S=12),O=!0,E="g"),(b||h==="0"&&p==="=")&&(b=!0,h="0",p="=");var C=v==="$"?n:v==="#"&&/[boxX]/.test(E)?"0"+E.toLowerCase():"",k=v==="$"?r:/[%p]/.test(E)?a:"",M=c7[E],L=/[defgprs%]/.test(E);S=S===void 0?6:/[gprs]/.test(E)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function U(H){var V=C,ne=k,Z,G,q;if(E==="c")ne=M(H)+ne,H="";else{H=+H;var W=H<0||1/H<0;if(H=isNaN(H)?u:M(Math.abs(H),S),O&&(H=D8e(H)),W&&+H==0&&m!=="+"&&(W=!1),V=(W?m==="("?m:s:m==="-"||m==="("?"":m)+V,ne=(E==="s"?h7[8+BW/3]:"")+ne+(W&&m==="("?")":""),L){for(Z=-1,G=H.length;++Zq||q>57){ne=(q===46?i+H.slice(Z+1):H.slice(Z))+ne,H=H.slice(0,Z);break}}}x&&!b&&(H=t(H,1/0));var j=V.length+H.length+ne.length,K=j>1)+V+H+ne+K.slice(j);break;default:H=K+V+H+ne;break}return o(H)}return U.toString=function(){return f+""},U}function c(f,h){var p=l((f=Rg(f),f.type="f",f)),m=Math.max(-8,Math.min(8,Math.floor(rh(h)/3)))*3,v=Math.pow(10,-m),b=h7[8+m/3];return function(w){return p(v*w)+b}}return{format:l,formatPrefix:c}}var x1,sA,zW;N8e({thousands:",",grouping:[3],currency:["$",""]});function N8e(e){return x1=I8e(e),sA=x1.format,zW=x1.formatPrefix,x1}function L8e(e){return Math.max(0,-rh(Math.abs(e)))}function F8e(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(rh(t)/3)))*3-rh(Math.abs(e)))}function j8e(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,rh(t)-rh(e))+1}function UW(e,t,n,r){var i=JE(e,t,n),o;switch(r=Rg(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=F8e(i,a))&&(r.precision=o),zW(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=j8e(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=L8e(i))&&(r.precision=o-(r.type==="%")*2);break}}return sA(r)}function Wl(e){var t=e.domain;return e.ticks=function(n){var r=t();return XE(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return UW(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,a=r[i],s=r[o],u,l,c=10;for(s0;){if(l=QE(a,s,n),l===u)return r[i]=a,r[o]=s,t(r);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;u=l}return e},e}function Db(){var e=oA();return e.copy=function(){return jm(e,Db())},xa.apply(e,arguments),Wl(e)}function VW(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Mb),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return VW(e).unknown(t)},e=arguments.length?Array.from(e,Mb):[0,1],Wl(n)}function WW(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],o=e[r],a;return oMath.pow(e,t)}function W8e(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function m7(e){return(t,n)=>-e(-t,n)}function uA(e){const t=e(p7,g7),n=t.domain;let r=10,i,o;function a(){return i=W8e(r),o=V8e(r),n()[0]<0?(i=m7(i),o=m7(o),e(B8e,z8e)):e(p7,g7),t}return t.base=function(s){return arguments.length?(r=+s,a()):r},t.domain=function(s){return arguments.length?(n(s),a()):n()},t.ticks=s=>{const u=n();let l=u[0],c=u[u.length-1];const f=c0){for(;h<=p;++h)for(m=1;mc)break;w.push(v)}}else for(;h<=p;++h)for(m=r-1;m>=1;--m)if(v=h>0?m/o(-h):m*o(h),!(vc)break;w.push(v)}w.length*2{if(s==null&&(s=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=Rg(u)).precision==null&&(u.trim=!0),u=sA(u)),s===1/0)return u;const l=Math.max(1,r*s/t.ticks().length);return c=>{let f=c/o(Math.round(i(c)));return f*rn(WW(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),t}function HW(){const e=uA(U2()).domain([1,10]);return e.copy=()=>jm(e,HW()).base(e.base()),xa.apply(e,arguments),e}function v7(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function y7(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function lA(e){var t=1,n=e(v7(t),y7(t));return n.constant=function(r){return arguments.length?e(v7(t=+r),y7(t)):t},Wl(n)}function KW(){var e=lA(U2());return e.copy=function(){return jm(e,KW()).constant(e.constant())},xa.apply(e,arguments)}function b7(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function H8e(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function K8e(e){return e<0?-e*e:e*e}function cA(e){var t=e(Vi,Vi),n=1;function r(){return n===1?e(Vi,Vi):n===.5?e(H8e,K8e):e(b7(n),b7(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Wl(t)}function fA(){var e=cA(U2());return e.copy=function(){return jm(e,fA()).exponent(e.exponent())},xa.apply(e,arguments),e}function q8e(){return fA.apply(null,arguments).exponent(.5)}function x7(e){return Math.sign(e)*e*e}function G8e(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function qW(){var e=oA(),t=[0,1],n=!1,r;function i(o){var a=G8e(e(o));return isNaN(a)?r:n?Math.round(a):a}return i.invert=function(o){return e.invert(x7(o))},i.domain=function(o){return arguments.length?(e.domain(o),i):e.domain()},i.range=function(o){return arguments.length?(e.range((t=Array.from(o,Mb)).map(x7)),i):t.slice()},i.rangeRound=function(o){return i.range(o).round(!0)},i.round=function(o){return arguments.length?(n=!!o,i):n},i.clamp=function(o){return arguments.length?(e.clamp(o),i):e.clamp()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return qW(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},xa.apply(i,arguments),Wl(i)}function GW(){var e=[],t=[],n=[],r;function i(){var a=0,s=Math.max(1,t.length);for(n=new Array(s-1);++a0?n[s-1]:e[0],s=n?[r[n-1],t]:[r[l-1],r[l]]},a.unknown=function(u){return arguments.length&&(o=u),a},a.thresholds=function(){return r.slice()},a.copy=function(){return YW().domain([e,t]).range(i).unknown(o)},xa.apply(Wl(a),arguments)}function ZW(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[Lm(e,o,0,r)]:n}return i.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var a=t.indexOf(o);return[e[a-1],e[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return ZW().domain(e).range(t).unknown(n)},xa.apply(i,arguments)}const ZS=new Date,XS=new Date;function Zr(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const a=i(o),s=i.ceil(o);return o-a(t(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,s)=>{const u=[];if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o0))return u;let l;do u.push(l=new Date(+o)),t(o,s),e(o);while(lZr(a=>{if(a>=a)for(;e(a),!o(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););}),n&&(i.count=(o,a)=>(ZS.setTime(+o),XS.setTime(+a),e(ZS),e(XS),Math.floor(n(ZS,XS))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?a=>r(a)%o===0:a=>i.count(0,a)%o===0):i)),i}const $b=Zr(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);$b.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Zr(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):$b);$b.range;const ou=1e3,ca=ou*60,au=ca*60,Su=au*24,dA=Su*7,w7=Su*30,QS=Su*365,Ec=Zr(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*ou)},(e,t)=>(t-e)/ou,e=>e.getUTCSeconds());Ec.range;const hA=Zr(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ou)},(e,t)=>{e.setTime(+e+t*ca)},(e,t)=>(t-e)/ca,e=>e.getMinutes());hA.range;const pA=Zr(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*ca)},(e,t)=>(t-e)/ca,e=>e.getUTCMinutes());pA.range;const gA=Zr(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ou-e.getMinutes()*ca)},(e,t)=>{e.setTime(+e+t*au)},(e,t)=>(t-e)/au,e=>e.getHours());gA.range;const mA=Zr(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*au)},(e,t)=>(t-e)/au,e=>e.getUTCHours());mA.range;const Bm=Zr(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*ca)/Su,e=>e.getDate()-1);Bm.range;const V2=Zr(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Su,e=>e.getUTCDate()-1);V2.range;const XW=Zr(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Su,e=>Math.floor(e/Su));XW.range;function yf(e){return Zr(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*ca)/dA)}const W2=yf(0),Ib=yf(1),Y8e=yf(2),Z8e=yf(3),ih=yf(4),X8e=yf(5),Q8e=yf(6);W2.range;Ib.range;Y8e.range;Z8e.range;ih.range;X8e.range;Q8e.range;function bf(e){return Zr(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/dA)}const H2=bf(0),Nb=bf(1),J8e=bf(2),eke=bf(3),oh=bf(4),tke=bf(5),nke=bf(6);H2.range;Nb.range;J8e.range;eke.range;oh.range;tke.range;nke.range;const vA=Zr(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());vA.range;const yA=Zr(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());yA.range;const Cu=Zr(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Cu.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Zr(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});Cu.range;const Eu=Zr(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Eu.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Zr(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});Eu.range;function QW(e,t,n,r,i,o){const a=[[Ec,1,ou],[Ec,5,5*ou],[Ec,15,15*ou],[Ec,30,30*ou],[o,1,ca],[o,5,5*ca],[o,15,15*ca],[o,30,30*ca],[i,1,au],[i,3,3*au],[i,6,6*au],[i,12,12*au],[r,1,Su],[r,2,2*Su],[n,1,dA],[t,1,w7],[t,3,3*w7],[e,1,QS]];function s(l,c,f){const h=cb).right(a,h);if(p===a.length)return e.every(JE(l/QS,c/QS,f));if(p===0)return $b.every(Math.max(JE(l,c,f),1));const[m,v]=a[h/a[p-1][2]53)return null;"w"in me||(me.w=1),"Z"in me?(lt=e3(Vp(me.y,0,1)),Nt=lt.getUTCDay(),lt=Nt>4||Nt===0?Nb.ceil(lt):Nb(lt),lt=V2.offset(lt,(me.V-1)*7),me.y=lt.getUTCFullYear(),me.m=lt.getUTCMonth(),me.d=lt.getUTCDate()+(me.w+6)%7):(lt=JS(Vp(me.y,0,1)),Nt=lt.getDay(),lt=Nt>4||Nt===0?Ib.ceil(lt):Ib(lt),lt=Bm.offset(lt,(me.V-1)*7),me.y=lt.getFullYear(),me.m=lt.getMonth(),me.d=lt.getDate()+(me.w+6)%7)}else("W"in me||"U"in me)&&("w"in me||(me.w="u"in me?me.u%7:"W"in me?1:0),Nt="Z"in me?e3(Vp(me.y,0,1)).getUTCDay():JS(Vp(me.y,0,1)).getDay(),me.m=0,me.d="W"in me?(me.w+6)%7+me.W*7-(Nt+5)%7:me.w+me.U*7-(Nt+6)%7);return"Z"in me?(me.H+=me.Z/100|0,me.M+=me.Z%100,e3(me)):JS(me)}}function M(ke,Le,De,me){for(var yt=0,lt=Le.length,Nt=De.length,yn,nn;yt=Nt)return-1;if(yn=Le.charCodeAt(yt++),yn===37){if(yn=Le.charAt(yt++),nn=E[yn in _7?Le.charAt(yt++):yn],!nn||(me=nn(ke,De,me))<0)return-1}else if(yn!=De.charCodeAt(me++))return-1}return me}function L(ke,Le,De){var me=l.exec(Le.slice(De));return me?(ke.p=c.get(me[0].toLowerCase()),De+me[0].length):-1}function U(ke,Le,De){var me=p.exec(Le.slice(De));return me?(ke.w=m.get(me[0].toLowerCase()),De+me[0].length):-1}function H(ke,Le,De){var me=f.exec(Le.slice(De));return me?(ke.w=h.get(me[0].toLowerCase()),De+me[0].length):-1}function V(ke,Le,De){var me=w.exec(Le.slice(De));return me?(ke.m=x.get(me[0].toLowerCase()),De+me[0].length):-1}function ne(ke,Le,De){var me=v.exec(Le.slice(De));return me?(ke.m=b.get(me[0].toLowerCase()),De+me[0].length):-1}function Z(ke,Le,De){return M(ke,t,Le,De)}function G(ke,Le,De){return M(ke,n,Le,De)}function q(ke,Le,De){return M(ke,r,Le,De)}function W(ke){return a[ke.getDay()]}function j(ke){return o[ke.getDay()]}function K(ke){return u[ke.getMonth()]}function Y(ke){return s[ke.getMonth()]}function oe(ke){return i[+(ke.getHours()>=12)]}function ae(ke){return 1+~~(ke.getMonth()/3)}function ue(ke){return a[ke.getUTCDay()]}function be(ke){return o[ke.getUTCDay()]}function we(ke){return u[ke.getUTCMonth()]}function He(ke){return s[ke.getUTCMonth()]}function Ee(ke){return i[+(ke.getUTCHours()>=12)]}function it(ke){return 1+~~(ke.getUTCMonth()/3)}return{format:function(ke){var Le=C(ke+="",S);return Le.toString=function(){return ke},Le},parse:function(ke){var Le=k(ke+="",!1);return Le.toString=function(){return ke},Le},utcFormat:function(ke){var Le=C(ke+="",O);return Le.toString=function(){return ke},Le},utcParse:function(ke){var Le=k(ke+="",!0);return Le.toString=function(){return ke},Le}}}var _7={"-":"",_:" ",0:"0"},ai=/^\s*\d+/,uke=/^%/,lke=/[\\^$*+?|[\]().{}]/g;function bn(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o[t.toLowerCase(),n]))}function fke(e,t,n){var r=ai.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function dke(e,t,n){var r=ai.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function hke(e,t,n){var r=ai.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function pke(e,t,n){var r=ai.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function gke(e,t,n){var r=ai.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function S7(e,t,n){var r=ai.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function C7(e,t,n){var r=ai.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function mke(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function vke(e,t,n){var r=ai.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function yke(e,t,n){var r=ai.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function E7(e,t,n){var r=ai.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function bke(e,t,n){var r=ai.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function O7(e,t,n){var r=ai.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function xke(e,t,n){var r=ai.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function wke(e,t,n){var r=ai.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function _ke(e,t,n){var r=ai.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Ske(e,t,n){var r=ai.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Cke(e,t,n){var r=uke.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Eke(e,t,n){var r=ai.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Oke(e,t,n){var r=ai.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function A7(e,t){return bn(e.getDate(),t,2)}function Ake(e,t){return bn(e.getHours(),t,2)}function Pke(e,t){return bn(e.getHours()%12||12,t,2)}function kke(e,t){return bn(1+Bm.count(Cu(e),e),t,3)}function JW(e,t){return bn(e.getMilliseconds(),t,3)}function Tke(e,t){return JW(e,t)+"000"}function Mke(e,t){return bn(e.getMonth()+1,t,2)}function Rke(e,t){return bn(e.getMinutes(),t,2)}function Dke(e,t){return bn(e.getSeconds(),t,2)}function $ke(e){var t=e.getDay();return t===0?7:t}function Ike(e,t){return bn(W2.count(Cu(e)-1,e),t,2)}function eH(e){var t=e.getDay();return t>=4||t===0?ih(e):ih.ceil(e)}function Nke(e,t){return e=eH(e),bn(ih.count(Cu(e),e)+(Cu(e).getDay()===4),t,2)}function Lke(e){return e.getDay()}function Fke(e,t){return bn(Ib.count(Cu(e)-1,e),t,2)}function jke(e,t){return bn(e.getFullYear()%100,t,2)}function Bke(e,t){return e=eH(e),bn(e.getFullYear()%100,t,2)}function zke(e,t){return bn(e.getFullYear()%1e4,t,4)}function Uke(e,t){var n=e.getDay();return e=n>=4||n===0?ih(e):ih.ceil(e),bn(e.getFullYear()%1e4,t,4)}function Vke(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+bn(t/60|0,"0",2)+bn(t%60,"0",2)}function P7(e,t){return bn(e.getUTCDate(),t,2)}function Wke(e,t){return bn(e.getUTCHours(),t,2)}function Hke(e,t){return bn(e.getUTCHours()%12||12,t,2)}function Kke(e,t){return bn(1+V2.count(Eu(e),e),t,3)}function tH(e,t){return bn(e.getUTCMilliseconds(),t,3)}function qke(e,t){return tH(e,t)+"000"}function Gke(e,t){return bn(e.getUTCMonth()+1,t,2)}function Yke(e,t){return bn(e.getUTCMinutes(),t,2)}function Zke(e,t){return bn(e.getUTCSeconds(),t,2)}function Xke(e){var t=e.getUTCDay();return t===0?7:t}function Qke(e,t){return bn(H2.count(Eu(e)-1,e),t,2)}function nH(e){var t=e.getUTCDay();return t>=4||t===0?oh(e):oh.ceil(e)}function Jke(e,t){return e=nH(e),bn(oh.count(Eu(e),e)+(Eu(e).getUTCDay()===4),t,2)}function eTe(e){return e.getUTCDay()}function tTe(e,t){return bn(Nb.count(Eu(e)-1,e),t,2)}function nTe(e,t){return bn(e.getUTCFullYear()%100,t,2)}function rTe(e,t){return e=nH(e),bn(e.getUTCFullYear()%100,t,2)}function iTe(e,t){return bn(e.getUTCFullYear()%1e4,t,4)}function oTe(e,t){var n=e.getUTCDay();return e=n>=4||n===0?oh(e):oh.ceil(e),bn(e.getUTCFullYear()%1e4,t,4)}function aTe(){return"+0000"}function k7(){return"%"}function T7(e){return+e}function M7(e){return Math.floor(+e/1e3)}var Yf,rH,iH;sTe({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function sTe(e){return Yf=ske(e),rH=Yf.format,Yf.parse,iH=Yf.utcFormat,Yf.utcParse,Yf}function uTe(e){return new Date(e)}function lTe(e){return e instanceof Date?+e:+new Date(+e)}function bA(e,t,n,r,i,o,a,s,u,l){var c=oA(),f=c.invert,h=c.domain,p=l(".%L"),m=l(":%S"),v=l("%I:%M"),b=l("%I %p"),w=l("%a %d"),x=l("%b %d"),S=l("%B"),O=l("%Y");function E(C){return(u(C)t(i/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(i,o)=>QPe(e,o/r))},n.copy=function(){return uH(t).domain(e)},Ru.apply(n,arguments)}function q2(){var e=0,t=.5,n=1,r=1,i,o,a,s,u,l=Vi,c,f=!1,h;function p(v){return isNaN(v=+v)?h:(v=.5+((v=+c(v))-o)*(r*vt}var vTe=mTe,yTe=dH,bTe=vTe,xTe=Yh;function wTe(e){return e&&e.length?yTe(e,xTe,bTe):void 0}var _Te=wTe;const ul=Dn(_Te);function STe(e,t){return ee.e^o.s<0?1:-1;for(r=o.d.length,i=e.d.length,t=0,n=re.d[t]^o.s<0?1:-1;return r===i?0:r>i^o.s<0?1:-1};st.decimalPlaces=st.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*tr;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};st.dividedBy=st.div=function(e){return hu(this,new this.constructor(e))};st.dividedToIntegerBy=st.idiv=function(e){var t=this,n=t.constructor;return zn(hu(t,new n(e),0,1),n.precision)};st.equals=st.eq=function(e){return!this.cmp(e)};st.exponent=function(){return Mr(this)};st.greaterThan=st.gt=function(e){return this.cmp(e)>0};st.greaterThanOrEqualTo=st.gte=function(e){return this.cmp(e)>=0};st.isInteger=st.isint=function(){return this.e>this.d.length-2};st.isNegative=st.isneg=function(){return this.s<0};st.isPositive=st.ispos=function(){return this.s>0};st.isZero=function(){return this.s===0};st.lessThan=st.lt=function(e){return this.cmp(e)<0};st.lessThanOrEqualTo=st.lte=function(e){return this.cmp(e)<1};st.logarithm=st.log=function(e){var t,n=this,r=n.constructor,i=r.precision,o=i+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(Do))throw Error(va+"NaN");if(n.s<1)throw Error(va+(n.s?"NaN":"-Infinity"));return n.eq(Do)?new r(0):(ar=!1,t=hu(Dg(n,o),Dg(e,o),o),ar=!0,zn(t,i))};st.minus=st.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?mH(t,e):pH(t,(e.s=-e.s,e))};st.modulo=st.mod=function(e){var t,n=this,r=n.constructor,i=r.precision;if(e=new r(e),!e.s)throw Error(va+"NaN");return n.s?(ar=!1,t=hu(n,e,0,1).times(e),ar=!0,n.minus(t)):zn(new r(n),i)};st.naturalExponential=st.exp=function(){return gH(this)};st.naturalLogarithm=st.ln=function(){return Dg(this)};st.negated=st.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};st.plus=st.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?pH(t,e):mH(t,(e.s=-e.s,e))};st.precision=st.sd=function(e){var t,n,r,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error($c+e);if(t=Mr(i)+1,r=i.d.length-1,n=r*tr+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};st.squareRoot=st.sqrt=function(){var e,t,n,r,i,o,a,s=this,u=s.constructor;if(s.s<1){if(!s.s)return new u(0);throw Error(va+"NaN")}for(e=Mr(s),ar=!1,i=Math.sqrt(+s),i==0||i==1/0?(t=ys(s.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=Qh((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new u(t)):r=new u(i.toString()),n=u.precision,i=a=n+3;;)if(o=r,r=o.plus(hu(s,o,a+2)).times(.5),ys(o.d).slice(0,a)===(t=ys(r.d)).slice(0,a)){if(t=t.slice(a-3,a+1),i==a&&t=="4999"){if(zn(o,n+1,0),o.times(o).eq(s)){r=o;break}}else if(t!="9999")break;a+=4}return ar=!0,zn(r,n)};st.times=st.mul=function(e){var t,n,r,i,o,a,s,u,l,c=this,f=c.constructor,h=c.d,p=(e=new f(e)).d;if(!c.s||!e.s)return new f(0);for(e.s*=c.s,n=c.e+e.e,u=h.length,l=p.length,u=0;){for(t=0,i=u+r;i>r;)s=o[i]+p[r]*h[i-r-1]+t,o[i--]=s%ei|0,t=s/ei|0;o[i]=(o[i]+t)%ei|0}for(;!o[--a];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,ar?zn(e,f.precision):e};st.toDecimalPlaces=st.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(Rs(e,0,Xh),t===void 0?t=r.rounding:Rs(t,0,8),zn(n,e+Mr(n)+1,t))};st.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=nf(r,!0):(Rs(e,0,Xh),t===void 0?t=i.rounding:Rs(t,0,8),r=zn(new i(r),e+1,t),n=nf(r,!0,e+1)),n};st.toFixed=function(e,t){var n,r,i=this,o=i.constructor;return e===void 0?nf(i):(Rs(e,0,Xh),t===void 0?t=o.rounding:Rs(t,0,8),r=zn(new o(i),e+Mr(i)+1,t),n=nf(r.abs(),!1,e+Mr(r)+1),i.isneg()&&!i.isZero()?"-"+n:n)};st.toInteger=st.toint=function(){var e=this,t=e.constructor;return zn(new t(e),Mr(e)+1,t.rounding)};st.toNumber=function(){return+this};st.toPower=st.pow=function(e){var t,n,r,i,o,a,s=this,u=s.constructor,l=12,c=+(e=new u(e));if(!e.s)return new u(Do);if(s=new u(s),!s.s){if(e.s<1)throw Error(va+"Infinity");return s}if(s.eq(Do))return s;if(r=u.precision,e.eq(Do))return zn(s,r);if(t=e.e,n=e.d.length-1,a=t>=n,o=s.s,a){if((n=c<0?-c:c)<=hH){for(i=new u(Do),t=Math.ceil(r/tr+4),ar=!1;n%2&&(i=i.times(s),$7(i.d,t)),n=Qh(n/2),n!==0;)s=s.times(s),$7(s.d,t);return ar=!0,e.s<0?new u(Do).div(i):zn(i,r)}}else if(o<0)throw Error(va+"NaN");return o=o<0&&e.d[Math.max(t,n)]&1?-1:1,s.s=1,ar=!1,i=e.times(Dg(s,r+l)),ar=!0,i=gH(i),i.s=o,i};st.toPrecision=function(e,t){var n,r,i=this,o=i.constructor;return e===void 0?(n=Mr(i),r=nf(i,n<=o.toExpNeg||n>=o.toExpPos)):(Rs(e,1,Xh),t===void 0?t=o.rounding:Rs(t,0,8),i=zn(new o(i),e,t),n=Mr(i),r=nf(i,e<=n||n<=o.toExpNeg,e)),r};st.toSignificantDigits=st.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(Rs(e,1,Xh),t===void 0?t=r.rounding:Rs(t,0,8)),zn(new r(n),e,t)};st.toString=st.valueOf=st.val=st.toJSON=st[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=Mr(e),n=e.constructor;return nf(e,t<=n.toExpNeg||t>=n.toExpPos)};function pH(e,t){var n,r,i,o,a,s,u,l,c=e.constructor,f=c.precision;if(!e.s||!t.s)return t.s||(t=new c(e)),ar?zn(t,f):t;if(u=e.d,l=t.d,a=e.e,i=t.e,u=u.slice(),o=a-i,o){for(o<0?(r=u,o=-o,s=l.length):(r=l,i=a,s=u.length),a=Math.ceil(f/tr),s=a>s?a+1:s+1,o>s&&(o=s,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(s=u.length,o=l.length,s-o<0&&(o=s,r=l,l=u,u=r),n=0;o;)n=(u[--o]=u[o]+l[o]+n)/ei|0,u[o]%=ei;for(n&&(u.unshift(n),++i),s=u.length;u[--s]==0;)u.pop();return t.d=u,t.e=i,ar?zn(t,f):t}function Rs(e,t,n){if(e!==~~e||en)throw Error($c+e)}function ys(e){var t,n,r,i=e.length-1,o="",a=e[0];if(i>0){for(o+=a,t=1;ta?1:-1;else for(s=u=0;si[s]?1:-1;break}return u}function n(r,i,o){for(var a=0;o--;)r[o]-=a,a=r[o]1;)r.shift()}return function(r,i,o,a){var s,u,l,c,f,h,p,m,v,b,w,x,S,O,E,C,k,M,L=r.constructor,U=r.s==i.s?1:-1,H=r.d,V=i.d;if(!r.s)return new L(r);if(!i.s)throw Error(va+"Division by zero");for(u=r.e-i.e,k=V.length,E=H.length,p=new L(U),m=p.d=[],l=0;V[l]==(H[l]||0);)++l;if(V[l]>(H[l]||0)&&--u,o==null?x=o=L.precision:a?x=o+(Mr(r)-Mr(i))+1:x=o,x<0)return new L(0);if(x=x/tr+2|0,l=0,k==1)for(c=0,V=V[0],x++;(l1&&(V=e(V,c),H=e(H,c),k=V.length,E=H.length),O=k,v=H.slice(0,k),b=v.length;b=ei/2&&++C;do c=0,s=t(V,v,k,b),s<0?(w=v[0],k!=b&&(w=w*ei+(v[1]||0)),c=w/C|0,c>1?(c>=ei&&(c=ei-1),f=e(V,c),h=f.length,b=v.length,s=t(f,v,h,b),s==1&&(c--,n(f,k16)throw Error(_A+Mr(e));if(!e.s)return new c(Do);for(t==null?(ar=!1,s=f):s=t,a=new c(.03125);e.abs().gte(.1);)e=e.times(a),l+=5;for(r=Math.log(hc(2,l))/Math.LN10*2+5|0,s+=r,n=i=o=new c(Do),c.precision=s;;){if(i=zn(i.times(e),s),n=n.times(++u),a=o.plus(hu(i,n,s)),ys(a.d).slice(0,s)===ys(o.d).slice(0,s)){for(;l--;)o=zn(o.times(o),s);return c.precision=f,t==null?(ar=!0,zn(o,f)):o}o=a}}function Mr(e){for(var t=e.e*tr,n=e.d[0];n>=10;n/=10)t++;return t}function t3(e,t,n){if(t>e.LN10.sd())throw ar=!0,n&&(e.precision=n),Error(va+"LN10 precision limit exceeded");return zn(new e(e.LN10),t)}function Qu(e){for(var t="";e--;)t+="0";return t}function Dg(e,t){var n,r,i,o,a,s,u,l,c,f=1,h=10,p=e,m=p.d,v=p.constructor,b=v.precision;if(p.s<1)throw Error(va+(p.s?"NaN":"-Infinity"));if(p.eq(Do))return new v(0);if(t==null?(ar=!1,l=b):l=t,p.eq(10))return t==null&&(ar=!0),t3(v,l);if(l+=h,v.precision=l,n=ys(m),r=n.charAt(0),o=Mr(p),Math.abs(o)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)p=p.times(e),n=ys(p.d),r=n.charAt(0),f++;o=Mr(p),r>1?(p=new v("0."+n),o++):p=new v(r+"."+n.slice(1))}else return u=t3(v,l+2,b).times(o+""),p=Dg(new v(r+"."+n.slice(1)),l-h).plus(u),v.precision=b,t==null?(ar=!0,zn(p,b)):p;for(s=a=p=hu(p.minus(Do),p.plus(Do),l),c=zn(p.times(p),l),i=3;;){if(a=zn(a.times(c),l),u=s.plus(hu(a,new v(i),l)),ys(u.d).slice(0,l)===ys(s.d).slice(0,l))return s=s.times(2),o!==0&&(s=s.plus(t3(v,l+2,b).times(o+""))),s=hu(s,new v(f),l),v.precision=b,t==null?(ar=!0,zn(s,b)):s;s=u,i+=2}}function D7(e,t){var n,r,i;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(r,i),t){if(i-=r,n=n-r-1,e.e=Qh(n/tr),e.d=[],r=(n+1)%tr,n<0&&(r+=tr),rLb||e.e<-Lb))throw Error(_A+n)}else e.s=0,e.e=0,e.d=[0];return e}function zn(e,t,n){var r,i,o,a,s,u,l,c,f=e.d;for(a=1,o=f[0];o>=10;o/=10)a++;if(r=t-a,r<0)r+=tr,i=t,l=f[c=0];else{if(c=Math.ceil((r+1)/tr),o=f.length,c>=o)return e;for(l=o=f[c],a=1;o>=10;o/=10)a++;r%=tr,i=r-tr+a}if(n!==void 0&&(o=hc(10,a-i-1),s=l/o%10|0,u=t<0||f[c+1]!==void 0||l%o,u=n<4?(s||u)&&(n==0||n==(e.s<0?3:2)):s>5||s==5&&(n==4||u||n==6&&(r>0?i>0?l/hc(10,a-i):0:f[c-1])%10&1||n==(e.s<0?8:7))),t<1||!f[0])return u?(o=Mr(e),f.length=1,t=t-o-1,f[0]=hc(10,(tr-t%tr)%tr),e.e=Qh(-t/tr)||0):(f.length=1,f[0]=e.e=e.s=0),e;if(r==0?(f.length=c,o=1,c--):(f.length=c+1,o=hc(10,tr-r),f[c]=i>0?(l/hc(10,a-i)%hc(10,i)|0)*o:0),u)for(;;)if(c==0){(f[0]+=o)==ei&&(f[0]=1,++e.e);break}else{if(f[c]+=o,f[c]!=ei)break;f[c--]=0,o=1}for(r=f.length;f[--r]===0;)f.pop();if(ar&&(e.e>Lb||e.e<-Lb))throw Error(_A+Mr(e));return e}function mH(e,t){var n,r,i,o,a,s,u,l,c,f,h=e.constructor,p=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),ar?zn(t,p):t;if(u=e.d,f=t.d,r=t.e,l=e.e,u=u.slice(),a=l-r,a){for(c=a<0,c?(n=u,a=-a,s=f.length):(n=f,r=l,s=u.length),i=Math.max(Math.ceil(p/tr),s)+2,a>i&&(a=i,n.length=1),n.reverse(),i=a;i--;)n.push(0);n.reverse()}else{for(i=u.length,s=f.length,c=i0;--i)u[s++]=0;for(i=f.length;i>a;){if(u[--i]0?o=o.charAt(0)+"."+o.slice(1)+Qu(r):a>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+Qu(-i-1)+o,n&&(r=n-a)>0&&(o+=Qu(r))):i>=a?(o+=Qu(i+1-a),n&&(r=n-i-1)>0&&(o=o+"."+Qu(r))):((r=i+1)0&&(i+1===a&&(o+="."),o+=Qu(r))),e.s<0?"-"+o:o}function $7(e,t){if(e.length>t)return e.length=t,!0}function vH(e){var t,n,r;function i(o){var a=this;if(!(a instanceof i))return new i(o);if(a.constructor=i,o instanceof i){a.s=o.s,a.e=o.e,a.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error($c+o);if(o>0)a.s=1;else if(o<0)o=-o,a.s=-1;else{a.s=0,a.e=0,a.d=[0];return}if(o===~~o&&o<1e7){a.e=0,a.d=[o];return}return D7(a,o.toString())}else if(typeof o!="string")throw Error($c+o);if(o.charCodeAt(0)===45?(o=o.slice(1),a.s=-1):a.s=1,HTe.test(o))D7(a,o);else throw Error($c+o)}if(i.prototype=st,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=vH,i.config=i.set=KTe,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&r<=i[t+2])this[n]=r;else throw Error($c+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error($c+n+": "+r);return this}var SA=vH(WTe);Do=new SA(1);const Nn=SA;function qTe(e){return XTe(e)||ZTe(e)||YTe(e)||GTe()}function GTe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function YTe(e,t){if(e){if(typeof e=="string")return i6(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i6(e,t)}}function ZTe(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function XTe(e){if(Array.isArray(e))return i6(e)}function i6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,i):e(t-a,I7(function(){for(var s=arguments.length,u=new Array(s),l=0;le.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,i=!1,o=void 0;try{for(var a=e[Symbol.iterator](),s;!(r=(s=a.next()).done)&&(n.push(s.value),!(t&&n.length===t));r=!0);}catch(u){i=!0,o=u}finally{try{!r&&a.return!=null&&a.return()}finally{if(i)throw o}}return n}}function dMe(e){if(Array.isArray(e))return e}function _H(e){var t=$g(e,2),n=t[0],r=t[1],i=n,o=r;return n>r&&(i=r,o=n),[i,o]}function SH(e,t,n){if(e.lte(0))return new Nn(0);var r=Z2.getDigitCount(e.toNumber()),i=new Nn(10).pow(r),o=e.div(i),a=r!==1?.05:.1,s=new Nn(Math.ceil(o.div(a).toNumber())).add(n).mul(a),u=s.mul(i);return t?u:new Nn(Math.ceil(u))}function hMe(e,t,n){var r=1,i=new Nn(e);if(!i.isint()&&n){var o=Math.abs(e);o<1?(r=new Nn(10).pow(Z2.getDigitCount(e)-1),i=new Nn(Math.floor(i.div(r).toNumber())).mul(r)):o>1&&(i=new Nn(Math.floor(e)))}else e===0?i=new Nn(Math.floor((t-1)/2)):n||(i=new Nn(Math.floor(e)));var a=Math.floor((t-1)/2),s=tMe(eMe(function(u){return i.add(new Nn(u-a).mul(r)).toNumber()}),o6);return s(0,t)}function CH(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new Nn(0),tickMin:new Nn(0),tickMax:new Nn(0)};var o=SH(new Nn(t).sub(e).div(n-1),r,i),a;e<=0&&t>=0?a=new Nn(0):(a=new Nn(e).add(t).div(2),a=a.sub(new Nn(a).mod(o)));var s=Math.ceil(a.sub(e).div(o).toNumber()),u=Math.ceil(new Nn(t).sub(a).div(o).toNumber()),l=s+u+1;return l>n?CH(e,t,n,r,i+1):(l0?u+(n-l):u,s=t>0?s:s+(n-l)),{step:o,tickMin:a.sub(new Nn(s).mul(o)),tickMax:a.add(new Nn(u).mul(o))})}function pMe(e){var t=$g(e,2),n=t[0],r=t[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=Math.max(i,2),s=_H([n,r]),u=$g(s,2),l=u[0],c=u[1];if(l===-1/0||c===1/0){var f=c===1/0?[l].concat(s6(o6(0,i-1).map(function(){return 1/0}))):[].concat(s6(o6(0,i-1).map(function(){return-1/0})),[c]);return n>r?a6(f):f}if(l===c)return hMe(l,i,o);var h=CH(l,c,a,o),p=h.step,m=h.tickMin,v=h.tickMax,b=Z2.rangeStep(m,v.add(new Nn(.1).mul(p)),p);return n>r?a6(b):b}function gMe(e,t){var n=$g(e,2),r=n[0],i=n[1],o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=_H([r,i]),s=$g(a,2),u=s[0],l=s[1];if(u===-1/0||l===1/0)return[r,i];if(u===l)return[u];var c=Math.max(t,2),f=SH(new Nn(l).sub(u).div(c-1),o,0),h=[].concat(s6(Z2.rangeStep(new Nn(u),new Nn(l).sub(new Nn(.99).mul(f)),f)),[l]);return r>i?a6(h):h}var mMe=xH(pMe),vMe=xH(gMe),yMe="Invariant failed";function rf(e,t){throw new Error(yMe)}var bMe=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function ah(e){"@babel/helpers - typeof";return ah=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ah(e)}function Fb(){return Fb=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function OMe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function AMe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function PMe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,a=-1,s=(n=r?.length)!==null&&n!==void 0?n:0;if(s<=1)return 0;if(o&&o.axisType==="angleAxis"&&Math.abs(Math.abs(o.range[1]-o.range[0])-360)<=1e-6)for(var u=o.range,l=0;l0?i[l-1].coordinate:i[s-1].coordinate,f=i[l].coordinate,h=l>=s-1?i[0].coordinate:i[l+1].coordinate,p=void 0;if(Ua(f-c)!==Ua(h-f)){var m=[];if(Ua(h-f)===Ua(u[1]-u[0])){p=h;var v=f+u[1]-u[0];m[0]=Math.min(v,(v+c)/2),m[1]=Math.max(v,(v+c)/2)}else{p=c;var b=h+u[1]-u[0];m[0]=Math.min(f,(b+f)/2),m[1]=Math.max(f,(b+f)/2)}var w=[Math.min(f,(p+f)/2),Math.max(f,(p+f)/2)];if(t>w[0]&&t<=w[1]||t>=m[0]&&t<=m[1]){a=i[l].index;break}}else{var x=Math.min(c,h),S=Math.max(c,h);if(t>(x+f)/2&&t<=(S+f)/2){a=i[l].index;break}}}else for(var O=0;O0&&O(r[O].coordinate+r[O-1].coordinate)/2&&t<=(r[O].coordinate+r[O+1].coordinate)/2||O===s-1&&t>(r[O].coordinate+r[O-1].coordinate)/2){a=r[O].index;break}return a},CA=function(t){var n,r=t,i=r.type.displayName,o=(n=t.type)!==null&&n!==void 0&&n.defaultProps?mr(mr({},t.type.defaultProps),t.props):t.props,a=o.stroke,s=o.fill,u;switch(i){case"Line":u=a;break;case"Area":case"Radar":u=a&&a!=="none"?a:s;break;default:u=s;break}return u},HMe=function(t){var n=t.barSize,r=t.totalSize,i=t.stackGroups,o=i===void 0?{}:i;if(!o)return{};for(var a={},s=Object.keys(o),u=0,l=s.length;u=0});if(w&&w.length){var x=w[0].type.defaultProps,S=x!==void 0?mr(mr({},x),w[0].props):w[0].props,O=S.barSize,E=S[b];a[E]||(a[E]=[]);var C=Ut(O)?n:O;a[E].push({item:w[0],stackList:w.slice(1),barSize:Ut(C)?void 0:ef(C,r,0)})}}return a},KMe=function(t){var n=t.barGap,r=t.barCategoryGap,i=t.bandSize,o=t.sizeList,a=o===void 0?[]:o,s=t.maxBarSize,u=a.length;if(u<1)return null;var l=ef(n,i,0,!0),c,f=[];if(a[0].barSize===+a[0].barSize){var h=!1,p=i/u,m=a.reduce(function(O,E){return O+E.barSize||0},0);m+=(u-1)*l,m>=i&&(m-=(u-1)*l,l=0),m>=i&&p>0&&(h=!0,p*=.9,m=u*p);var v=(i-m)/2>>0,b={offset:v-l,size:0};c=a.reduce(function(O,E){var C={item:E.item,position:{offset:b.offset+b.size+l,size:h?p:E.barSize}},k=[].concat(F7(O),[C]);return b=k[k.length-1].position,E.stackList&&E.stackList.length&&E.stackList.forEach(function(M){k.push({item:M,position:b})}),k},f)}else{var w=ef(r,i,0,!0);i-2*w-(u-1)*l<=0&&(l=0);var x=(i-2*w-(u-1)*l)/u;x>1&&(x>>=0);var S=s===+s?Math.min(x,s):x;c=a.reduce(function(O,E,C){var k=[].concat(F7(O),[{item:E.item,position:{offset:w+(x+l)*C+(x-S)/2,size:S}}]);return E.stackList&&E.stackList.length&&E.stackList.forEach(function(M){k.push({item:M,position:k[k.length-1].position})}),k},f)}return c},qMe=function(t,n,r,i){var o=r.children,a=r.width,s=r.margin,u=a-(s.left||0)-(s.right||0),l=PH({children:o,legendWidth:u});if(l){var c=i||{},f=c.width,h=c.height,p=l.align,m=l.verticalAlign,v=l.layout;if((v==="vertical"||v==="horizontal"&&m==="middle")&&p!=="center"&&qe(t[p]))return mr(mr({},t),{},Id({},p,t[p]+(f||0)));if((v==="horizontal"||v==="vertical"&&p==="center")&&m!=="middle"&&qe(t[m]))return mr(mr({},t),{},Id({},m,t[m]+(h||0)))}return t},GMe=function(t,n,r){return Ut(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},kH=function(t,n,r,i,o){var a=n.props.children,s=po(a,Jh).filter(function(l){return GMe(i,o,l.props.direction)});if(s&&s.length){var u=s.map(function(l){return l.props.dataKey});return t.reduce(function(l,c){var f=Kr(c,r);if(Ut(f))return l;var h=Array.isArray(f)?[G2(f),ul(f)]:[f,f],p=u.reduce(function(m,v){var b=Kr(c,v,0),w=h[0]-Math.abs(Array.isArray(b)?b[0]:b),x=h[1]+Math.abs(Array.isArray(b)?b[1]:b);return[Math.min(w,m[0]),Math.max(x,m[1])]},[1/0,-1/0]);return[Math.min(p[0],l[0]),Math.max(p[1],l[1])]},[1/0,-1/0])}return null},YMe=function(t,n,r,i,o){var a=n.map(function(s){return kH(t,s,r,o,i)}).filter(function(s){return!Ut(s)});return a&&a.length?a.reduce(function(s,u){return[Math.min(s[0],u[0]),Math.max(s[1],u[1])]},[1/0,-1/0]):null},TH=function(t,n,r,i,o){var a=n.map(function(u){var l=u.props.dataKey;return r==="number"&&l&&kH(t,u,l,i)||E0(t,l,r,o)});if(r==="number")return a.reduce(function(u,l){return[Math.min(u[0],l[0]),Math.max(u[1],l[1])]},[1/0,-1/0]);var s={};return a.reduce(function(u,l){for(var c=0,f=l.length;c=2?Ua(s[0]-s[1])*2*l:l,n&&(t.ticks||t.niceTicks)){var c=(t.ticks||t.niceTicks).map(function(f){var h=o?o.indexOf(f):f;return{coordinate:i(h)+l,value:f,offset:l}});return c.filter(function(f){return!Kh(f.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(f,h){return{coordinate:i(f)+l,value:f,index:h,offset:l}}):i.ticks&&!r?i.ticks(t.tickCount).map(function(f){return{coordinate:i(f)+l,value:f,offset:l}}):i.domain().map(function(f,h){return{coordinate:i(f)+l,value:o?o[f]:f,index:h,offset:l}})},n3=new WeakMap,w1=function(t,n){if(typeof n!="function")return t;n3.has(t)||n3.set(t,new WeakMap);var r=n3.get(t);if(r.has(n))return r.get(n);var i=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,i),i},ZMe=function(t,n,r){var i=t.scale,o=t.type,a=t.layout,s=t.axisType;if(i==="auto")return a==="radial"&&s==="radiusAxis"?{scale:Pg(),realScaleType:"band"}:a==="radial"&&s==="angleAxis"?{scale:Db(),realScaleType:"linear"}:o==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:C0(),realScaleType:"point"}:o==="category"?{scale:Pg(),realScaleType:"band"}:{scale:Db(),realScaleType:"linear"};if(Im(i)){var u="scale".concat($2(i));return{scale:(R7[u]||C0)(),realScaleType:R7[u]?u:"point"}}return Ht(i)?{scale:i}:{scale:C0(),realScaleType:"point"}},B7=1e-4,XMe=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,i=t.range(),o=Math.min(i[0],i[1])-B7,a=Math.max(i[0],i[1])+B7,s=t(n[0]),u=t(n[r-1]);(sa||ua)&&t.domain([n[0],n[r-1]])}},QMe=function(t,n){if(!t)return null;for(var r=0,i=t.length;ri)&&(o[1]=i),o[0]>i&&(o[0]=i),o[1]=0?(t[s][r][0]=o,t[s][r][1]=o+u,o=t[s][r][1]):(t[s][r][0]=a,t[s][r][1]=a+u,a=t[s][r][1])}},tRe=function(t){var n=t.length;if(!(n<=0))for(var r=0,i=t[0].length;r=0?(t[a][r][0]=o,t[a][r][1]=o+s,o=t[a][r][1]):(t[a][r][0]=0,t[a][r][1]=0)}},nRe={sign:eRe,expand:vSe,none:Qd,silhouette:ySe,wiggle:bSe,positive:tRe},rRe=function(t,n,r){var i=n.map(function(s){return s.props.dataKey}),o=nRe[r],a=mSe().keys(i).value(function(s,u){return+Kr(s,u,0)}).order(IE).offset(o);return a(t)},iRe=function(t,n,r,i,o,a){if(!t)return null;var s=a?n.reverse():n,u={},l=s.reduce(function(f,h){var p,m=(p=h.type)!==null&&p!==void 0&&p.defaultProps?mr(mr({},h.type.defaultProps),h.props):h.props,v=m.stackId,b=m.hide;if(b)return f;var w=m[r],x=f[w]||{hasStack:!1,stackGroups:{}};if(Hr(v)){var S=x.stackGroups[v]||{numericAxisId:r,cateAxisId:i,items:[]};S.items.push(h),x.hasStack=!0,x.stackGroups[v]=S}else x.stackGroups[vf("_stackId_")]={numericAxisId:r,cateAxisId:i,items:[h]};return mr(mr({},f),{},Id({},w,x))},u),c={};return Object.keys(l).reduce(function(f,h){var p=l[h];if(p.hasStack){var m={};p.stackGroups=Object.keys(p.stackGroups).reduce(function(v,b){var w=p.stackGroups[b];return mr(mr({},v),{},Id({},b,{numericAxisId:r,cateAxisId:i,items:w.items,stackedData:rRe(t,w.items,o)}))},m)}return mr(mr({},f),{},Id({},h,p))},c)},oRe=function(t,n){var r=n.realScaleType,i=n.type,o=n.tickCount,a=n.originalDomain,s=n.allowDecimals,u=r||n.scale;if(u!=="auto"&&u!=="linear")return null;if(o&&i==="number"&&a&&(a[0]==="auto"||a[1]==="auto")){var l=t.domain();if(!l.length)return null;var c=mMe(l,o,s);return t.domain([G2(c),ul(c)]),{niceTicks:c}}if(o&&i==="number"){var f=t.domain(),h=vMe(f,o,s);return{niceTicks:h}}return null};function sh(e){var t=e.axis,n=e.ticks,r=e.bandSize,i=e.entry,o=e.index,a=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Ut(i[t.dataKey])){var s=fb(n,"value",i[t.dataKey]);if(s)return s.coordinate+r/2}return n[o]?n[o].coordinate+r/2:null}var u=Kr(i,Ut(a)?t.dataKey:a);return Ut(u)?null:t.scale(u)}var z7=function(t){var n=t.axis,r=t.ticks,i=t.offset,o=t.bandSize,a=t.entry,s=t.index;if(n.type==="category")return r[s]?r[s].coordinate+i:null;var u=Kr(a,n.dataKey,n.domain[s]);return Ut(u)?null:n.scale(u)-o/2+i},aRe=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var i=Math.min(r[0],r[1]),o=Math.max(r[0],r[1]);return i<=0&&o>=0?0:o<0?o:i}return r[0]},sRe=function(t,n){var r,i=(r=t.type)!==null&&r!==void 0&&r.defaultProps?mr(mr({},t.type.defaultProps),t.props):t.props,o=i.stackId;if(Hr(o)){var a=n[o];if(a){var s=a.items.indexOf(t);return s>=0?a.stackedData[s]:null}}return null},uRe=function(t){return t.reduce(function(n,r){return[G2(r.concat([n[0]]).filter(qe)),ul(r.concat([n[1]]).filter(qe))]},[1/0,-1/0])},DH=function(t,n,r){return Object.keys(t).reduce(function(i,o){var a=t[o],s=a.stackedData,u=s.reduce(function(l,c){var f=uRe(c.slice(n,r+1));return[Math.min(l[0],f[0]),Math.max(l[1],f[1])]},[1/0,-1/0]);return[Math.min(u[0],i[0]),Math.max(u[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},U7=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,V7=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,f6=function(t,n,r){if(Ht(t))return t(n,r);if(!Array.isArray(t))return n;var i=[];if(qe(t[0]))i[0]=r?t[0]:Math.min(t[0],n[0]);else if(U7.test(t[0])){var o=+U7.exec(t[0])[1];i[0]=n[0]-o}else Ht(t[0])?i[0]=t[0](n[0]):i[0]=n[0];if(qe(t[1]))i[1]=r?t[1]:Math.max(t[1],n[1]);else if(V7.test(t[1])){var a=+V7.exec(t[1])[1];i[1]=n[1]+a}else Ht(t[1])?i[1]=t[1](n[1]):i[1]=n[1];return i},Bb=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var i=t.scale.bandwidth();if(!r||i>0)return i}if(t&&n&&n.length>=2){for(var o=XO(n,function(f){return f.coordinate}),a=1/0,s=1,u=o.length;sa&&(l=2*Math.PI-l),{radius:s,angle:dRe(l),angleInRadian:l}},gRe=function(t){var n=t.startAngle,r=t.endAngle,i=Math.floor(n/360),o=Math.floor(r/360),a=Math.min(i,o);return{startAngle:n-a*360,endAngle:r-a*360}},mRe=function(t,n){var r=n.startAngle,i=n.endAngle,o=Math.floor(r/360),a=Math.floor(i/360),s=Math.min(o,a);return t+s*360},q7=function(t,n){var r=t.x,i=t.y,o=pRe({x:r,y:i},n),a=o.radius,s=o.angle,u=n.innerRadius,l=n.outerRadius;if(al)return!1;if(a===0)return!0;var c=gRe(n),f=c.startAngle,h=c.endAngle,p=s,m;if(f<=h){for(;p>h;)p-=360;for(;p=f&&p<=h}else{for(;p>f;)p-=360;for(;p=h&&p<=f}return m?K7(K7({},n),{},{radius:a,angle:mRe(p,n)}):null};function Fg(e){"@babel/helpers - typeof";return Fg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fg(e)}var vRe=["offset"];function yRe(e){return _Re(e)||wRe(e)||xRe(e)||bRe()}function bRe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xRe(e,t){if(e){if(typeof e=="string")return d6(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d6(e,t)}}function wRe(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function _Re(e){if(Array.isArray(e))return d6(e)}function d6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function CRe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function G7(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function jr(e){for(var t=1;t=0?1:-1,S,O;i==="insideStart"?(S=p+x*a,O=v):i==="insideEnd"?(S=m-x*a,O=!v):i==="end"&&(S=m+x*a,O=v),O=w<=0?O:!O;var E=pi(l,c,b,S),C=pi(l,c,b,S+(O?1:-1)*359),k="M".concat(E.x,",").concat(E.y,` + A`).concat(b,",").concat(b,",0,1,").concat(O?0:1,`, + `).concat(C.x,",").concat(C.y),M=Ut(t.id)?vf("recharts-radial-line-"):t.id;return F.createElement("text",jg({},r,{dominantBaseline:"central",className:dn("recharts-radial-bar-label",s)}),F.createElement("defs",null,F.createElement("path",{id:M,d:k})),F.createElement("textPath",{xlinkHref:"#".concat(M)},n))},MRe=function(t){var n=t.viewBox,r=t.offset,i=t.position,o=n,a=o.cx,s=o.cy,u=o.innerRadius,l=o.outerRadius,c=o.startAngle,f=o.endAngle,h=(c+f)/2;if(i==="outside"){var p=pi(a,s,l+r,h),m=p.x,v=p.y;return{x:m,y:v,textAnchor:m>=a?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:a,y:s,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:a,y:s,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:a,y:s,textAnchor:"middle",verticalAnchor:"end"};var b=(u+l)/2,w=pi(a,s,b,h),x=w.x,S=w.y;return{x,y:S,textAnchor:"middle",verticalAnchor:"middle"}},RRe=function(t){var n=t.viewBox,r=t.parentViewBox,i=t.offset,o=t.position,a=n,s=a.x,u=a.y,l=a.width,c=a.height,f=c>=0?1:-1,h=f*i,p=f>0?"end":"start",m=f>0?"start":"end",v=l>=0?1:-1,b=v*i,w=v>0?"end":"start",x=v>0?"start":"end";if(o==="top"){var S={x:s+l/2,y:u-f*i,textAnchor:"middle",verticalAnchor:p};return jr(jr({},S),r?{height:Math.max(u-r.y,0),width:l}:{})}if(o==="bottom"){var O={x:s+l/2,y:u+c+h,textAnchor:"middle",verticalAnchor:m};return jr(jr({},O),r?{height:Math.max(r.y+r.height-(u+c),0),width:l}:{})}if(o==="left"){var E={x:s-b,y:u+c/2,textAnchor:w,verticalAnchor:"middle"};return jr(jr({},E),r?{width:Math.max(E.x-r.x,0),height:c}:{})}if(o==="right"){var C={x:s+l+b,y:u+c/2,textAnchor:x,verticalAnchor:"middle"};return jr(jr({},C),r?{width:Math.max(r.x+r.width-C.x,0),height:c}:{})}var k=r?{width:l,height:c}:{};return o==="insideLeft"?jr({x:s+b,y:u+c/2,textAnchor:x,verticalAnchor:"middle"},k):o==="insideRight"?jr({x:s+l-b,y:u+c/2,textAnchor:w,verticalAnchor:"middle"},k):o==="insideTop"?jr({x:s+l/2,y:u+h,textAnchor:"middle",verticalAnchor:m},k):o==="insideBottom"?jr({x:s+l/2,y:u+c-h,textAnchor:"middle",verticalAnchor:p},k):o==="insideTopLeft"?jr({x:s+b,y:u+h,textAnchor:x,verticalAnchor:m},k):o==="insideTopRight"?jr({x:s+l-b,y:u+h,textAnchor:w,verticalAnchor:m},k):o==="insideBottomLeft"?jr({x:s+b,y:u+c-h,textAnchor:x,verticalAnchor:p},k):o==="insideBottomRight"?jr({x:s+l-b,y:u+c-h,textAnchor:w,verticalAnchor:p},k):Uh(o)&&(qe(o.x)||Sc(o.x))&&(qe(o.y)||Sc(o.y))?jr({x:s+ef(o.x,l),y:u+ef(o.y,c),textAnchor:"end",verticalAnchor:"end"},k):jr({x:s+l/2,y:u+c/2,textAnchor:"middle",verticalAnchor:"middle"},k)},DRe=function(t){return"cx"in t&&qe(t.cx)};function ki(e){var t=e.offset,n=t===void 0?5:t,r=SRe(e,vRe),i=jr({offset:n},r),o=i.viewBox,a=i.position,s=i.value,u=i.children,l=i.content,c=i.className,f=c===void 0?"":c,h=i.textBreakAll;if(!o||Ut(s)&&Ut(u)&&!y.isValidElement(l)&&!Ht(l))return null;if(y.isValidElement(l))return y.cloneElement(l,i);var p;if(Ht(l)){if(p=y.createElement(l,i),y.isValidElement(p))return p}else p=PRe(i);var m=DRe(o),v=zt(i,!0);if(m&&(a==="insideStart"||a==="insideEnd"||a==="end"))return TRe(i,p,v);var b=m?MRe(i):RRe(i);return F.createElement(Ob,jg({className:dn("recharts-label",f)},v,b,{breakAll:h}),p)}ki.displayName="Label";var IH=function(t){var n=t.cx,r=t.cy,i=t.angle,o=t.startAngle,a=t.endAngle,s=t.r,u=t.radius,l=t.innerRadius,c=t.outerRadius,f=t.x,h=t.y,p=t.top,m=t.left,v=t.width,b=t.height,w=t.clockWise,x=t.labelViewBox;if(x)return x;if(qe(v)&&qe(b)){if(qe(f)&&qe(h))return{x:f,y:h,width:v,height:b};if(qe(p)&&qe(m))return{x:p,y:m,width:v,height:b}}return qe(f)&&qe(h)?{x:f,y:h,width:0,height:0}:qe(n)&&qe(r)?{cx:n,cy:r,startAngle:o||i||0,endAngle:a||i||0,innerRadius:l||0,outerRadius:c||u||s||0,clockWise:w}:t.viewBox?t.viewBox:{}},$Re=function(t,n){return t?t===!0?F.createElement(ki,{key:"label-implicit",viewBox:n}):Hr(t)?F.createElement(ki,{key:"label-implicit",viewBox:n,value:t}):y.isValidElement(t)?t.type===ki?y.cloneElement(t,{key:"label-implicit",viewBox:n}):F.createElement(ki,{key:"label-implicit",content:t,viewBox:n}):Ht(t)?F.createElement(ki,{key:"label-implicit",content:t,viewBox:n}):Uh(t)?F.createElement(ki,jg({viewBox:n},t,{key:"label-implicit"})):null:null},IRe=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var i=t.children,o=IH(t),a=po(i,ki).map(function(u,l){return y.cloneElement(u,{viewBox:n||o,key:"label-".concat(l)})});if(!r)return a;var s=$Re(t.label,n||o);return[s].concat(yRe(a))};ki.parseViewBox=IH;ki.renderCallByParent=IRe;function NRe(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var LRe=NRe;const FRe=Dn(LRe);function Bg(e){"@babel/helpers - typeof";return Bg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bg(e)}var jRe=["valueAccessor"],BRe=["data","dataKey","clockWise","id","textBreakAll"];function zRe(e){return HRe(e)||WRe(e)||VRe(e)||URe()}function URe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function VRe(e,t){if(e){if(typeof e=="string")return h6(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h6(e,t)}}function WRe(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function HRe(e){if(Array.isArray(e))return h6(e)}function h6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function YRe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var ZRe=function(t){return Array.isArray(t.value)?FRe(t.value):t.value};function As(e){var t=e.valueAccessor,n=t===void 0?ZRe:t,r=X7(e,jRe),i=r.data,o=r.dataKey,a=r.clockWise,s=r.id,u=r.textBreakAll,l=X7(r,BRe);return!i||!i.length?null:F.createElement(Cn,{className:"recharts-label-list"},i.map(function(c,f){var h=Ut(o)?n(c,f):Kr(c&&c.payload,o),p=Ut(s)?{}:{id:"".concat(s,"-").concat(f)};return F.createElement(ki,Ub({},zt(c,!0),l,p,{parentViewBox:c.parentViewBox,value:h,textBreakAll:u,viewBox:ki.parseViewBox(Ut(a)?c:Z7(Z7({},c),{},{clockWise:a})),key:"label-".concat(f),index:f}))}))}As.displayName="LabelList";function XRe(e,t){return e?e===!0?F.createElement(As,{key:"labelList-implicit",data:t}):F.isValidElement(e)||Ht(e)?F.createElement(As,{key:"labelList-implicit",data:t,content:e}):Uh(e)?F.createElement(As,Ub({data:t},e,{key:"labelList-implicit"})):null:null}function QRe(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,i=po(r,As).map(function(a,s){return y.cloneElement(a,{data:t,key:"labelList-".concat(s)})});if(!n)return i;var o=XRe(e.label,t);return[o].concat(zRe(i))}As.renderCallByParent=QRe;function zg(e){"@babel/helpers - typeof";return zg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zg(e)}function p6(){return p6=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(a>l),`, + `).concat(f.x,",").concat(f.y,` + `);if(i>0){var p=pi(n,r,i,a),m=pi(n,r,i,l);h+="L ".concat(m.x,",").concat(m.y,` + A `).concat(i,",").concat(i,`,0, + `).concat(+(Math.abs(u)>180),",").concat(+(a<=l),`, + `).concat(p.x,",").concat(p.y," Z")}else h+="L ".concat(n,",").concat(r," Z");return h},r9e=function(t){var n=t.cx,r=t.cy,i=t.innerRadius,o=t.outerRadius,a=t.cornerRadius,s=t.forceCornerRadius,u=t.cornerIsExternal,l=t.startAngle,c=t.endAngle,f=Ua(c-l),h=_1({cx:n,cy:r,radius:o,angle:l,sign:f,cornerRadius:a,cornerIsExternal:u}),p=h.circleTangency,m=h.lineTangency,v=h.theta,b=_1({cx:n,cy:r,radius:o,angle:c,sign:-f,cornerRadius:a,cornerIsExternal:u}),w=b.circleTangency,x=b.lineTangency,S=b.theta,O=u?Math.abs(l-c):Math.abs(l-c)-v-S;if(O<0)return s?"M ".concat(m.x,",").concat(m.y,` + a`).concat(a,",").concat(a,",0,0,1,").concat(a*2,`,0 + a`).concat(a,",").concat(a,",0,0,1,").concat(-a*2,`,0 + `):NH({cx:n,cy:r,innerRadius:i,outerRadius:o,startAngle:l,endAngle:c});var E="M ".concat(m.x,",").concat(m.y,` + A`).concat(a,",").concat(a,",0,0,").concat(+(f<0),",").concat(p.x,",").concat(p.y,` + A`).concat(o,",").concat(o,",0,").concat(+(O>180),",").concat(+(f<0),",").concat(w.x,",").concat(w.y,` + A`).concat(a,",").concat(a,",0,0,").concat(+(f<0),",").concat(x.x,",").concat(x.y,` + `);if(i>0){var C=_1({cx:n,cy:r,radius:i,angle:l,sign:f,isExternal:!0,cornerRadius:a,cornerIsExternal:u}),k=C.circleTangency,M=C.lineTangency,L=C.theta,U=_1({cx:n,cy:r,radius:i,angle:c,sign:-f,isExternal:!0,cornerRadius:a,cornerIsExternal:u}),H=U.circleTangency,V=U.lineTangency,ne=U.theta,Z=u?Math.abs(l-c):Math.abs(l-c)-L-ne;if(Z<0&&a===0)return"".concat(E,"L").concat(n,",").concat(r,"Z");E+="L".concat(V.x,",").concat(V.y,` + A`).concat(a,",").concat(a,",0,0,").concat(+(f<0),",").concat(H.x,",").concat(H.y,` + A`).concat(i,",").concat(i,",0,").concat(+(Z>180),",").concat(+(f>0),",").concat(k.x,",").concat(k.y,` + A`).concat(a,",").concat(a,",0,0,").concat(+(f<0),",").concat(M.x,",").concat(M.y,"Z")}else E+="L".concat(n,",").concat(r,"Z");return E},i9e={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},LH=function(t){var n=J7(J7({},i9e),t),r=n.cx,i=n.cy,o=n.innerRadius,a=n.outerRadius,s=n.cornerRadius,u=n.forceCornerRadius,l=n.cornerIsExternal,c=n.startAngle,f=n.endAngle,h=n.className;if(a0&&Math.abs(c-f)<360?b=r9e({cx:r,cy:i,innerRadius:o,outerRadius:a,cornerRadius:Math.min(v,m/2),forceCornerRadius:u,cornerIsExternal:l,startAngle:c,endAngle:f}):b=NH({cx:r,cy:i,innerRadius:o,outerRadius:a,startAngle:c,endAngle:f}),F.createElement("path",p6({},zt(n,!0),{className:p,d:b,role:"img"}))};function Ug(e){"@babel/helpers - typeof";return Ug=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ug(e)}function g6(){return g6=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function p9e(e,t){return ep(e.getTime(),t.getTime())}function s$(e,t,n){if(e.size!==t.size)return!1;for(var r={},i=e.entries(),o=0,a,s;(a=i.next())&&!a.done;){for(var u=t.entries(),l=!1,c=0;(s=u.next())&&!s.done;){var f=a.value,h=f[0],p=f[1],m=s.value,v=m[0],b=m[1];!l&&!r[c]&&(l=n.equals(h,v,o,c,e,t,n)&&n.equals(p,b,h,v,e,t,n))&&(r[c]=!0),c++}if(!l)return!1;o++}return!0}function g9e(e,t,n){var r=a$(e),i=r.length;if(a$(t).length!==i)return!1;for(var o;i-- >0;)if(o=r[i],o===jH&&(e.$$typeof||t.$$typeof)&&e.$$typeof!==t.$$typeof||!FH(t,o)||!n.equals(e[o],t[o],o,o,e,t,n))return!1;return!0}function Gp(e,t,n){var r=i$(e),i=r.length;if(i$(t).length!==i)return!1;for(var o,a,s;i-- >0;)if(o=r[i],o===jH&&(e.$$typeof||t.$$typeof)&&e.$$typeof!==t.$$typeof||!FH(t,o)||!n.equals(e[o],t[o],o,o,e,t,n)||(a=o$(e,o),s=o$(t,o),(a||s)&&(!a||!s||a.configurable!==s.configurable||a.enumerable!==s.enumerable||a.writable!==s.writable)))return!1;return!0}function m9e(e,t){return ep(e.valueOf(),t.valueOf())}function v9e(e,t){return e.source===t.source&&e.flags===t.flags}function u$(e,t,n){if(e.size!==t.size)return!1;for(var r={},i=e.values(),o,a;(o=i.next())&&!o.done;){for(var s=t.values(),u=!1,l=0;(a=s.next())&&!a.done;)!u&&!r[l]&&(u=n.equals(o.value,a.value,o.value,a.value,e,t,n))&&(r[l]=!0),l++;if(!u)return!1}return!0}function y9e(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}var b9e="[object Arguments]",x9e="[object Boolean]",w9e="[object Date]",_9e="[object Map]",S9e="[object Number]",C9e="[object Object]",E9e="[object RegExp]",O9e="[object Set]",A9e="[object String]",P9e=Array.isArray,l$=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,c$=Object.assign,k9e=Object.prototype.toString.call.bind(Object.prototype.toString);function T9e(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areMapsEqual,i=e.areObjectsEqual,o=e.arePrimitiveWrappersEqual,a=e.areRegExpsEqual,s=e.areSetsEqual,u=e.areTypedArraysEqual;return function(c,f,h){if(c===f)return!0;if(c==null||f==null||typeof c!="object"||typeof f!="object")return c!==c&&f!==f;var p=c.constructor;if(p!==f.constructor)return!1;if(p===Object)return i(c,f,h);if(P9e(c))return t(c,f,h);if(l$!=null&&l$(c))return u(c,f,h);if(p===Date)return n(c,f,h);if(p===RegExp)return a(c,f,h);if(p===Map)return r(c,f,h);if(p===Set)return s(c,f,h);var m=k9e(c);return m===w9e?n(c,f,h):m===E9e?a(c,f,h):m===_9e?r(c,f,h):m===O9e?s(c,f,h):m===C9e?typeof c.then!="function"&&typeof f.then!="function"&&i(c,f,h):m===b9e?i(c,f,h):m===x9e||m===S9e||m===A9e?o(c,f,h):!1}}function M9e(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,i={areArraysEqual:r?Gp:h9e,areDatesEqual:p9e,areMapsEqual:r?r$(s$,Gp):s$,areObjectsEqual:r?Gp:g9e,arePrimitiveWrappersEqual:m9e,areRegExpsEqual:v9e,areSetsEqual:r?r$(u$,Gp):u$,areTypedArraysEqual:r?Gp:y9e};if(n&&(i=c$({},i,n(i))),t){var o=C1(i.areArraysEqual),a=C1(i.areMapsEqual),s=C1(i.areObjectsEqual),u=C1(i.areSetsEqual);i=c$({},i,{areArraysEqual:o,areMapsEqual:a,areObjectsEqual:s,areSetsEqual:u})}return i}function R9e(e){return function(t,n,r,i,o,a,s){return e(t,n,s)}}function D9e(e){var t=e.circular,n=e.comparator,r=e.createState,i=e.equals,o=e.strict;if(r)return function(u,l){var c=r(),f=c.cache,h=f===void 0?t?new WeakMap:void 0:f,p=c.meta;return n(u,l,{cache:h,equals:i,meta:p,strict:o})};if(t)return function(u,l){return n(u,l,{cache:new WeakMap,equals:i,meta:void 0,strict:o})};var a={cache:void 0,equals:i,meta:void 0,strict:o};return function(u,l){return n(u,l,a)}}var $9e=Kl();Kl({strict:!0});Kl({circular:!0});Kl({circular:!0,strict:!0});Kl({createInternalComparator:function(){return ep}});Kl({strict:!0,createInternalComparator:function(){return ep}});Kl({circular:!0,createInternalComparator:function(){return ep}});Kl({circular:!0,createInternalComparator:function(){return ep},strict:!0});function Kl(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,i=e.createState,o=e.strict,a=o===void 0?!1:o,s=M9e(e),u=T9e(s),l=r?r(u):R9e(u);return D9e({circular:n,comparator:u,createState:i,equals:l,strict:a})}function I9e(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function f$(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function i(o){n<0&&(n=o),o-n>t?(e(o),n=-1):I9e(i)};requestAnimationFrame(r)}function m6(e){"@babel/helpers - typeof";return m6=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},m6(e)}function N9e(e){return B9e(e)||j9e(e)||F9e(e)||L9e()}function L9e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function F9e(e,t){if(e){if(typeof e=="string")return d$(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d$(e,t)}}function d$(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:w<0?0:w},v=function(w){for(var x=w>1?1:w,S=x,O=0;O<8;++O){var E=f(S)-x,C=p(S);if(Math.abs(E-x)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,i=t.damping,o=i===void 0?8:i,a=t.dt,s=a===void 0?17:a,u=function(c,f,h){var p=-(c-f)*r,m=h*o,v=h+(p-m)*s/1e3,b=h*s/1e3+c;return Math.abs(b-f)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function vDe(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}function r3(e){return wDe(e)||xDe(e)||bDe(e)||yDe()}function yDe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bDe(e,t){if(e){if(typeof e=="string")return w6(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w6(e,t)}}function xDe(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function wDe(e){if(Array.isArray(e))return w6(e)}function w6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Hb(e){return Hb=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Hb(e)}var Xa=function(e){ODe(n,e);var t=ADe(n);function n(r,i){var o;_De(this,n),o=t.call(this,r,i);var a=o.props,s=a.isActive,u=a.attributeName,l=a.from,c=a.to,f=a.steps,h=a.children,p=a.duration;if(o.handleStyleChange=o.handleStyleChange.bind(C6(o)),o.changeStyle=o.changeStyle.bind(C6(o)),!s||p<=0)return o.state={style:{}},typeof h=="function"&&(o.state={style:c}),S6(o);if(f&&f.length)o.state={style:f[0].style};else if(l){if(typeof h=="function")return o.state={style:l},S6(o);o.state={style:u?u0({},u,l):l}}else o.state={style:{}};return o}return CDe(n,[{key:"componentDidMount",value:function(){var i=this.props,o=i.isActive,a=i.canBegin;this.mounted=!0,!(!o||!a)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var o=this.props,a=o.isActive,s=o.canBegin,u=o.attributeName,l=o.shouldReAnimate,c=o.to,f=o.from,h=this.state.style;if(s){if(!a){var p={style:u?u0({},u,c):c};this.state&&h&&(u&&h[u]!==c||!u&&h!==c)&&this.setState(p);return}if(!($9e(i.to,c)&&i.canBegin&&i.isActive)){var m=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var v=m||l?f:i.to;if(this.state&&h){var b={style:u?u0({},u,v):v};(u&&h[u]!==v||!u&&h!==v)&&this.setState(b)}this.runAnimation(Pa(Pa({},this.props),{},{from:v,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var o=this,a=i.from,s=i.to,u=i.duration,l=i.easing,c=i.begin,f=i.onAnimationEnd,h=i.onAnimationStart,p=pDe(a,s,rDe(l),u,this.changeStyle),m=function(){o.stopJSAnimation=p()};this.manager.start([h,c,m,u,f])}},{key:"runStepAnimation",value:function(i){var o=this,a=i.steps,s=i.begin,u=i.onAnimationStart,l=a[0],c=l.style,f=l.duration,h=f===void 0?0:f,p=function(v,b,w){if(w===0)return v;var x=b.duration,S=b.easing,O=S===void 0?"ease":S,E=b.style,C=b.properties,k=b.onAnimationEnd,M=w>0?a[w-1]:b,L=C||Object.keys(E);if(typeof O=="function"||O==="spring")return[].concat(r3(v),[o.runJSAnimation.bind(o,{from:M.style,to:E,duration:x,easing:O}),x]);var U=g$(L,x,O),H=Pa(Pa(Pa({},M.style),E),{},{transition:U});return[].concat(r3(v),[H,x,k]).filter(H9e)};return this.manager.start([u].concat(r3(a.reduce(p,[c,Math.max(h,s)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=z9e());var o=i.begin,a=i.duration,s=i.attributeName,u=i.to,l=i.easing,c=i.onAnimationStart,f=i.onAnimationEnd,h=i.steps,p=i.children,m=this.manager;if(this.unSubscribe=m.subscribe(this.handleStyleChange),typeof l=="function"||typeof p=="function"||l==="spring"){this.runJSAnimation(i);return}if(h.length>1){this.runStepAnimation(i);return}var v=s?u0({},s,u):u,b=g$(Object.keys(v),a,l);m.start([c,o,Pa(Pa({},v),{},{transition:b}),a,f])}},{key:"render",value:function(){var i=this.props,o=i.children;i.begin;var a=i.duration;i.attributeName,i.easing;var s=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var u=mDe(i,gDe),l=y.Children.count(o),c=this.state.style;if(typeof o=="function")return o(c);if(!s||l===0||a<=0)return o;var f=function(p){var m=p.props,v=m.style,b=v===void 0?{}:v,w=m.className,x=y.cloneElement(p,Pa(Pa({},u),{},{style:Pa(Pa({},b),c),className:w}));return x};return l===1?f(y.Children.only(o)):F.createElement("div",null,y.Children.map(o,function(h){return f(h)}))}}]),n}(y.PureComponent);Xa.displayName="Animate";Xa.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Xa.propTypes={from:Mt.oneOfType([Mt.object,Mt.string]),to:Mt.oneOfType([Mt.object,Mt.string]),attributeName:Mt.string,duration:Mt.number,begin:Mt.number,easing:Mt.oneOfType([Mt.string,Mt.func]),steps:Mt.arrayOf(Mt.shape({duration:Mt.number.isRequired,style:Mt.object.isRequired,easing:Mt.oneOfType([Mt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),Mt.func]),properties:Mt.arrayOf("string"),onAnimationEnd:Mt.func})),children:Mt.oneOfType([Mt.node,Mt.func]),isActive:Mt.bool,canBegin:Mt.bool,onAnimationEnd:Mt.func,shouldReAnimate:Mt.bool,onAnimationStart:Mt.func,onAnimationReStart:Mt.func};Mt.object,Mt.object,Mt.object,Mt.element;Mt.object,Mt.object,Mt.object,Mt.oneOfType([Mt.array,Mt.element]),Mt.any;function Hg(e){"@babel/helpers - typeof";return Hg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Hg(e)}function Kb(){return Kb=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0?1:-1,u=r>=0?1:-1,l=i>=0&&r>=0||i<0&&r<0?1:0,c;if(a>0&&o instanceof Array){for(var f=[0,0,0,0],h=0,p=4;ha?a:o[h];c="M".concat(t,",").concat(n+s*f[0]),f[0]>0&&(c+="A ".concat(f[0],",").concat(f[0],",0,0,").concat(l,",").concat(t+u*f[0],",").concat(n)),c+="L ".concat(t+r-u*f[1],",").concat(n),f[1]>0&&(c+="A ".concat(f[1],",").concat(f[1],",0,0,").concat(l,`, + `).concat(t+r,",").concat(n+s*f[1])),c+="L ".concat(t+r,",").concat(n+i-s*f[2]),f[2]>0&&(c+="A ".concat(f[2],",").concat(f[2],",0,0,").concat(l,`, + `).concat(t+r-u*f[2],",").concat(n+i)),c+="L ".concat(t+u*f[3],",").concat(n+i),f[3]>0&&(c+="A ".concat(f[3],",").concat(f[3],",0,0,").concat(l,`, + `).concat(t,",").concat(n+i-s*f[3])),c+="Z"}else if(a>0&&o===+o&&o>0){var m=Math.min(a,o);c="M ".concat(t,",").concat(n+s*m,` + A `).concat(m,",").concat(m,",0,0,").concat(l,",").concat(t+u*m,",").concat(n,` + L `).concat(t+r-u*m,",").concat(n,` + A `).concat(m,",").concat(m,",0,0,").concat(l,",").concat(t+r,",").concat(n+s*m,` + L `).concat(t+r,",").concat(n+i-s*m,` + A `).concat(m,",").concat(m,",0,0,").concat(l,",").concat(t+r-u*m,",").concat(n+i,` + L `).concat(t+u*m,",").concat(n+i,` + A `).concat(m,",").concat(m,",0,0,").concat(l,",").concat(t,",").concat(n+i-s*m," Z")}else c="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(i," h ").concat(-r," Z");return c},LDe=function(t,n){if(!t||!n)return!1;var r=t.x,i=t.y,o=n.x,a=n.y,s=n.width,u=n.height;if(Math.abs(s)>0&&Math.abs(u)>0){var l=Math.min(o,o+s),c=Math.max(o,o+s),f=Math.min(a,a+u),h=Math.max(a,a+u);return r>=l&&r<=c&&i>=f&&i<=h}return!1},FDe={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},EA=function(t){var n=S$(S$({},FDe),t),r=y.useRef(),i=y.useState(-1),o=kDe(i,2),a=o[0],s=o[1];y.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var O=r.current.getTotalLength();O&&s(O)}catch{}},[]);var u=n.x,l=n.y,c=n.width,f=n.height,h=n.radius,p=n.className,m=n.animationEasing,v=n.animationDuration,b=n.animationBegin,w=n.isAnimationActive,x=n.isUpdateAnimationActive;if(u!==+u||l!==+l||c!==+c||f!==+f||c===0||f===0)return null;var S=dn("recharts-rectangle",p);return x?F.createElement(Xa,{canBegin:a>0,from:{width:c,height:f,x:u,y:l},to:{width:c,height:f,x:u,y:l},duration:v,animationEasing:m,isActive:x},function(O){var E=O.width,C=O.height,k=O.x,M=O.y;return F.createElement(Xa,{canBegin:a>0,from:"0px ".concat(a===-1?1:a,"px"),to:"".concat(a,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:v,isActive:w,easing:m},F.createElement("path",Kb({},zt(n,!0),{className:S,d:C$(k,M,E,C,h),ref:r})))}):F.createElement("path",Kb({},zt(n,!0),{className:S,d:C$(u,l,c,f,h)}))};function E6(){return E6=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function HDe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var KDe=function(t,n,r,i,o,a){return"M".concat(t,",").concat(o,"v").concat(i,"M").concat(a,",").concat(n,"h").concat(r)},qDe=function(t){var n=t.x,r=n===void 0?0:n,i=t.y,o=i===void 0?0:i,a=t.top,s=a===void 0?0:a,u=t.left,l=u===void 0?0:u,c=t.width,f=c===void 0?0:c,h=t.height,p=h===void 0?0:h,m=t.className,v=WDe(t,jDe),b=BDe({x:r,y:o,top:s,left:l,width:f,height:p},v);return!qe(r)||!qe(o)||!qe(f)||!qe(p)||!qe(s)||!qe(l)?null:F.createElement("path",O6({},zt(b,!0),{className:dn("recharts-cross",m),d:KDe(r,o,f,p,s,l)}))},GDe=uW,YDe=GDe(Object.getPrototypeOf,Object),ZDe=YDe,XDe=Tu,QDe=ZDe,JDe=Mu,e7e="[object Object]",t7e=Function.prototype,n7e=Object.prototype,KH=t7e.toString,r7e=n7e.hasOwnProperty,i7e=KH.call(Object);function o7e(e){if(!JDe(e)||XDe(e)!=e7e)return!1;var t=QDe(e);if(t===null)return!0;var n=r7e.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&KH.call(n)==i7e}var a7e=o7e;const s7e=Dn(a7e);var u7e=Tu,l7e=Mu,c7e="[object Boolean]";function f7e(e){return e===!0||e===!1||l7e(e)&&u7e(e)==c7e}var d7e=f7e;const h7e=Dn(d7e);function qg(e){"@babel/helpers - typeof";return qg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qg(e)}function qb(){return qb=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:h,x:u,y:l},to:{upperWidth:c,lowerWidth:f,height:h,x:u,y:l},duration:v,animationEasing:m,isActive:w},function(S){var O=S.upperWidth,E=S.lowerWidth,C=S.height,k=S.x,M=S.y;return F.createElement(Xa,{canBegin:a>0,from:"0px ".concat(a===-1?1:a,"px"),to:"".concat(a,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:v,easing:m},F.createElement("path",qb({},zt(n,!0),{className:x,d:k$(k,M,O,E,C),ref:r})))}):F.createElement("g",null,F.createElement("path",qb({},zt(n,!0),{className:x,d:k$(u,l,c,f,h)})))},C7e=["option","shapeType","propTransformer","activeClassName","isActive"];function Gg(e){"@babel/helpers - typeof";return Gg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gg(e)}function E7e(e,t){if(e==null)return{};var n=O7e(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function O7e(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function T$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Gb(e){for(var t=1;t0&&r.handleDrag(i.changedTouches[0])}),Ao(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=r.props,o=i.endIndex,a=i.onDragEnd,s=i.startIndex;a?.({endIndex:o,startIndex:s})}),r.detachDragEndListener()}),Ao(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Ao(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Ao(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Ao(r,"handleSlideDragStart",function(i){var o=L$(i)?i.changedTouches[0]:i;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:o.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return l$e(t,e),o$e(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var i=r.startX,o=r.endX,a=this.state.scaleValues,s=this.props,u=s.gap,l=s.data,c=l.length-1,f=Math.min(i,o),h=Math.max(i,o),p=t.getIndexInRange(a,f),m=t.getIndexInRange(a,h);return{startIndex:p-p%u,endIndex:m===c?c:m-m%u}}},{key:"getTextOfTick",value:function(r){var i=this.props,o=i.data,a=i.tickFormatter,s=i.dataKey,u=Kr(o[r],s,r);return Ht(a)?a(u,r):u}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var i=this.state,o=i.slideMoveStartX,a=i.startX,s=i.endX,u=this.props,l=u.x,c=u.width,f=u.travellerWidth,h=u.startIndex,p=u.endIndex,m=u.onChange,v=r.pageX-o;v>0?v=Math.min(v,l+c-f-s,l+c-f-a):v<0&&(v=Math.max(v,l-a,l-s));var b=this.getIndex({startX:a+v,endX:s+v});(b.startIndex!==h||b.endIndex!==p)&&m&&m(b),this.setState({startX:a+v,endX:s+v,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,i){var o=L$(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:o.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var i=this.state,o=i.brushMoveStartX,a=i.movingTravellerId,s=i.endX,u=i.startX,l=this.state[a],c=this.props,f=c.x,h=c.width,p=c.travellerWidth,m=c.onChange,v=c.gap,b=c.data,w={startX:this.state.startX,endX:this.state.endX},x=r.pageX-o;x>0?x=Math.min(x,f+h-p-l):x<0&&(x=Math.max(x,f-l)),w[a]=l+x;var S=this.getIndex(w),O=S.startIndex,E=S.endIndex,C=function(){var M=b.length-1;return a==="startX"&&(s>u?O%v===0:E%v===0)||su?E%v===0:O%v===0)||s>u&&E===M};this.setState(Ao(Ao({},a,l+x),"brushMoveStartX",r.pageX),function(){m&&C()&&m(S)})}},{key:"handleTravellerMoveKeyboard",value:function(r,i){var o=this,a=this.state,s=a.scaleValues,u=a.startX,l=a.endX,c=this.state[i],f=s.indexOf(c);if(f!==-1){var h=f+r;if(!(h===-1||h>=s.length)){var p=s[h];i==="startX"&&p>=l||i==="endX"&&p<=u||this.setState(Ao({},i,p),function(){o.props.onChange(o.getIndex({startX:o.state.startX,endX:o.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,i=r.x,o=r.y,a=r.width,s=r.height,u=r.fill,l=r.stroke;return F.createElement("rect",{stroke:l,fill:u,x:i,y:o,width:a,height:s})}},{key:"renderPanorama",value:function(){var r=this.props,i=r.x,o=r.y,a=r.width,s=r.height,u=r.data,l=r.children,c=r.padding,f=y.Children.only(l);return f?F.cloneElement(f,{x:i,y:o,width:a,height:s,margin:c,compact:!0,data:u}):null}},{key:"renderTravellerLayer",value:function(r,i){var o,a,s=this,u=this.props,l=u.y,c=u.travellerWidth,f=u.height,h=u.traveller,p=u.ariaLabel,m=u.data,v=u.startIndex,b=u.endIndex,w=Math.max(r,this.props.x),x=o3(o3({},zt(this.props,!1)),{},{x:w,y:l,width:c,height:f}),S=p||"Min value: ".concat((o=m[v])===null||o===void 0?void 0:o.name,", Max value: ").concat((a=m[b])===null||a===void 0?void 0:a.name);return F.createElement(Cn,{tabIndex:0,role:"slider","aria-label":S,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(E){["ArrowLeft","ArrowRight"].includes(E.key)&&(E.preventDefault(),E.stopPropagation(),s.handleTravellerMoveKeyboard(E.key==="ArrowRight"?1:-1,i))},onFocus:function(){s.setState({isTravellerFocused:!0})},onBlur:function(){s.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(h,x))}},{key:"renderSlide",value:function(r,i){var o=this.props,a=o.y,s=o.height,u=o.stroke,l=o.travellerWidth,c=Math.min(r,i)+l,f=Math.max(Math.abs(i-r)-l,0);return F.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:u,fillOpacity:.2,x:c,y:a,width:f,height:s})}},{key:"renderText",value:function(){var r=this.props,i=r.startIndex,o=r.endIndex,a=r.y,s=r.height,u=r.travellerWidth,l=r.stroke,c=this.state,f=c.startX,h=c.endX,p=5,m={pointerEvents:"none",fill:l};return F.createElement(Cn,{className:"recharts-brush-texts"},F.createElement(Ob,Zb({textAnchor:"end",verticalAnchor:"middle",x:Math.min(f,h)-p,y:a+s/2},m),this.getTextOfTick(i)),F.createElement(Ob,Zb({textAnchor:"start",verticalAnchor:"middle",x:Math.max(f,h)+u+p,y:a+s/2},m),this.getTextOfTick(o)))}},{key:"render",value:function(){var r=this.props,i=r.data,o=r.className,a=r.children,s=r.x,u=r.y,l=r.width,c=r.height,f=r.alwaysShowText,h=this.state,p=h.startX,m=h.endX,v=h.isTextActive,b=h.isSlideMoving,w=h.isTravellerMoving,x=h.isTravellerFocused;if(!i||!i.length||!qe(s)||!qe(u)||!qe(l)||!qe(c)||l<=0||c<=0)return null;var S=dn("recharts-brush",o),O=F.Children.count(a)===1,E=r$e("userSelect","none");return F.createElement(Cn,{className:S,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:E},this.renderBackground(),O&&this.renderPanorama(),this.renderSlide(p,m),this.renderTravellerLayer(p,"startX"),this.renderTravellerLayer(m,"endX"),(v||b||w||x||f)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var i=r.x,o=r.y,a=r.width,s=r.height,u=r.stroke,l=Math.floor(o+s/2)-1;return F.createElement(F.Fragment,null,F.createElement("rect",{x:i,y:o,width:a,height:s,fill:u,stroke:"none"}),F.createElement("line",{x1:i+1,y1:l,x2:i+a-1,y2:l,fill:"none",stroke:"#fff"}),F.createElement("line",{x1:i+1,y1:l+2,x2:i+a-1,y2:l+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,i){var o;return F.isValidElement(r)?o=F.cloneElement(r,i):Ht(r)?o=r(i):o=t.renderDefaultTraveller(i),o}},{key:"getDerivedStateFromProps",value:function(r,i){var o=r.data,a=r.width,s=r.x,u=r.travellerWidth,l=r.updateId,c=r.startIndex,f=r.endIndex;if(o!==i.prevData||l!==i.prevUpdateId)return o3({prevData:o,prevTravellerWidth:u,prevUpdateId:l,prevX:s,prevWidth:a},o&&o.length?f$e({data:o,width:a,x:s,travellerWidth:u,startIndex:c,endIndex:f}):{scale:null,scaleValues:null});if(i.scale&&(a!==i.prevWidth||s!==i.prevX||u!==i.prevTravellerWidth)){i.scale.range([s,s+a-u]);var h=i.scale.domain().map(function(p){return i.scale(p)});return{prevData:o,prevTravellerWidth:u,prevUpdateId:l,prevX:s,prevWidth:a,startX:i.scale(r.startIndex),endX:i.scale(r.endIndex),scaleValues:h}}return null}},{key:"getIndexInRange",value:function(r,i){for(var o=r.length,a=0,s=o-1;s-a>1;){var u=Math.floor((a+s)/2);r[u]>i?s=u:a=u}return i>=r[s]?s:a}}])}(y.PureComponent);Ao(ch,"displayName","Brush");Ao(ch,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var d$e=ZO;function h$e(e,t){var n;return d$e(e,function(r,i,o){return n=t(r,i,o),!n}),!!n}var p$e=h$e,g$e=eW,m$e=Vl,v$e=p$e,y$e=vo,b$e=z2;function x$e(e,t,n){var r=y$e(e)?g$e:v$e;return n&&b$e(e,t,n)&&(t=void 0),r(e,m$e(t))}var w$e=x$e;const _$e=Dn(w$e);var Ps=function(t,n){var r=t.alwaysShow,i=t.ifOverflow;return r&&(i="extendDomain"),i===n},F$=_W;function S$e(e,t,n){t=="__proto__"&&F$?F$(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var C$e=S$e,E$e=C$e,O$e=xW,A$e=Vl;function P$e(e,t){var n={};return t=A$e(t),O$e(e,function(r,i,o){E$e(n,i,t(r,i,o))}),n}var k$e=P$e;const T$e=Dn(k$e);function M$e(e,t){for(var n=-1,r=e==null?0:e.length;++n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function G$e(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Y$e(e,t){var n=e.x,r=e.y,i=q$e(e,V$e),o="".concat(n),a=parseInt(o,10),s="".concat(r),u=parseInt(s,10),l="".concat(t.height||i.height),c=parseInt(l,10),f="".concat(t.width||i.width),h=parseInt(f,10);return Yp(Yp(Yp(Yp(Yp({},t),i),a?{x:a}:{}),u?{y:u}:{}),{},{height:c,width:h,name:t.name,radius:t.radius})}function B$(e){return F.createElement(A6,k6({shapeType:"rectangle",propTransformer:Y$e,activeClassName:"recharts-active-bar"},e))}var Z$e=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,i){if(typeof t=="number")return t;var o=typeof r=="number";return o?t(r,i):(o||rf(),n)}},X$e=["value","background"],QH;function fh(e){"@babel/helpers - typeof";return fh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fh(e)}function Q$e(e,t){if(e==null)return{};var n=J$e(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function J$e(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Qb(){return Qb=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(G)0&&Math.abs(Z)0&&(ne=Math.min((be||0)-(Z[we-1]||0),ne))}),Number.isFinite(ne)){var G=ne/V,q=v.layout==="vertical"?r.height:r.width;if(v.padding==="gap"&&(k=G*q/2),v.padding==="no-gap"){var W=ef(t.barCategoryGap,G*q),j=G*q/2;k=j-W-(j-W)/q*W}}}i==="xAxis"?M=[r.left+(S.left||0)+(k||0),r.left+r.width-(S.right||0)-(k||0)]:i==="yAxis"?M=u==="horizontal"?[r.top+r.height-(S.bottom||0),r.top+(S.top||0)]:[r.top+(S.top||0)+(k||0),r.top+r.height-(S.bottom||0)-(k||0)]:M=v.range,E&&(M=[M[1],M[0]]);var K=ZMe(v,o,h),Y=K.scale,oe=K.realScaleType;Y.domain(w).range(M),XMe(Y);var ae=oRe(Y,Da(Da({},v),{},{realScaleType:oe}));i==="xAxis"?(H=b==="top"&&!O||b==="bottom"&&O,L=r.left,U=f[C]-H*v.height):i==="yAxis"&&(H=b==="left"&&!O||b==="right"&&O,L=f[C]-H*v.width,U=r.top);var ue=Da(Da(Da({},v),ae),{},{realScaleType:oe,x:L,y:U,scale:Y,width:i==="xAxis"?r.width:v.width,height:i==="yAxis"?r.height:v.height});return ue.bandSize=Bb(ue,ae),!v.hide&&i==="xAxis"?f[C]+=(H?-1:1)*ue.height:v.hide||(f[C]+=(H?-1:1)*ue.width),Da(Da({},p),{},ew({},m,ue))},{})},nK=function(t,n){var r=t.x,i=t.y,o=n.x,a=n.y;return{x:Math.min(r,o),y:Math.min(i,a),width:Math.abs(o-r),height:Math.abs(a-i)}},fIe=function(t){var n=t.x1,r=t.y1,i=t.x2,o=t.y2;return nK({x:n,y:r},{x:i,y:o})},rK=function(){function e(t){sIe(this,e),this.scale=t}return uIe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.bandAware,o=r.position;if(n!==void 0){if(o)switch(o){case"start":return this.scale(n);case"middle":{var a=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+a}case"end":{var s=this.bandwidth?this.bandwidth():0;return this.scale(n)+s}default:return this.scale(n)}if(i){var u=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+u}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),i=r[0],o=r[r.length-1];return i<=o?n>=i&&n<=o:n>=o&&n<=i}}],[{key:"create",value:function(n){return new e(n)}}])}();ew(rK,"EPS",1e-4);var OA=function(t){var n=Object.keys(t).reduce(function(r,i){return Da(Da({},r),{},ew({},i,rK.create(t[i])))},{});return Da(Da({},n),{},{apply:function(i){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=o.bandAware,s=o.position;return T$e(i,function(u,l){return n[l].apply(u,{bandAware:a,position:s})})},isInRange:function(i){return XH(i,function(o,a){return n[a].isInRange(o)})}})};function dIe(e){return(e%180+180)%180}var hIe=function(t){var n=t.width,r=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=dIe(i),a=o*Math.PI/180,s=Math.atan(r/n),u=a>s&&a-1?i[o?t[a]:a]:void 0}}var yIe=vIe,bIe=qH;function xIe(e){var t=bIe(e),n=t%1;return t===t?n?t-n:t:0}var wIe=xIe,_Ie=pW,SIe=Vl,CIe=wIe,EIe=Math.max;function OIe(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:CIe(n);return i<0&&(i=EIe(r+i,0)),_Ie(e,SIe(t),i)}var AIe=OIe,PIe=yIe,kIe=AIe,TIe=PIe(kIe),MIe=TIe;const RIe=Dn(MIe);var DIe=I2e(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),AA=y.createContext(void 0),PA=y.createContext(void 0),iK=y.createContext(void 0),oK=y.createContext({}),aK=y.createContext(void 0),sK=y.createContext(0),uK=y.createContext(0),H$=function(t){var n=t.state,r=n.xAxisMap,i=n.yAxisMap,o=n.offset,a=t.clipPathId,s=t.children,u=t.width,l=t.height,c=DIe(o);return F.createElement(AA.Provider,{value:r},F.createElement(PA.Provider,{value:i},F.createElement(oK.Provider,{value:o},F.createElement(iK.Provider,{value:c},F.createElement(aK.Provider,{value:a},F.createElement(sK.Provider,{value:l},F.createElement(uK.Provider,{value:u},s)))))))},$Ie=function(){return y.useContext(aK)},lK=function(t){var n=y.useContext(AA);n==null&&rf();var r=n[t];return r==null&&rf(),r},IIe=function(){var t=y.useContext(AA);return rl(t)},NIe=function(){var t=y.useContext(PA),n=RIe(t,function(r){return XH(r.domain,Number.isFinite)});return n||rl(t)},cK=function(t){var n=y.useContext(PA);n==null&&rf();var r=n[t];return r==null&&rf(),r},LIe=function(){var t=y.useContext(iK);return t},FIe=function(){return y.useContext(oK)},kA=function(){return y.useContext(uK)},TA=function(){return y.useContext(sK)};function dh(e){"@babel/helpers - typeof";return dh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dh(e)}function jIe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function BIe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*i)return!1;var o=n();return e*(t-e*o/2-r)>=0&&e*(t+e*o/2-i)<=0}function wNe(e,t){return vK(e,t+1)}function _Ne(e,t,n,r,i){for(var o=(r||[]).slice(),a=t.start,s=t.end,u=0,l=1,c=a,f=function(){var m=r?.[u];if(m===void 0)return{v:vK(r,l)};var v=u,b,w=function(){return b===void 0&&(b=n(m,v)),b},x=m.coordinate,S=u===0||rx(e,x,w,c,s);S||(u=0,c=a,l+=1),S&&(c=x+e*(w()/2+i),u+=l)},h;l<=o.length;)if(h=f(),h)return h.v;return[]}function Jg(e){"@babel/helpers - typeof";return Jg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jg(e)}function J$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ai(e){for(var t=1;t0?p.coordinate-b*e:p.coordinate})}else o[h]=p=Ai(Ai({},p),{},{tickCoord:p.coordinate});var w=rx(e,p.tickCoord,v,s,u);w&&(u=p.tickCoord-e*(v()/2+i),o[h]=Ai(Ai({},p),{},{isShow:!0}))},c=a-1;c>=0;c--)l(c);return o}function ANe(e,t,n,r,i,o){var a=(r||[]).slice(),s=a.length,u=t.start,l=t.end;if(o){var c=r[s-1],f=n(c,s-1),h=e*(c.coordinate+e*f/2-l);a[s-1]=c=Ai(Ai({},c),{},{tickCoord:h>0?c.coordinate-h*e:c.coordinate});var p=rx(e,c.tickCoord,function(){return f},u,l);p&&(l=c.tickCoord-e*(f/2+i),a[s-1]=Ai(Ai({},c),{},{isShow:!0}))}for(var m=o?s-1:s,v=function(x){var S=a[x],O,E=function(){return O===void 0&&(O=n(S,x)),O};if(x===0){var C=e*(S.coordinate-e*E()/2-u);a[x]=S=Ai(Ai({},S),{},{tickCoord:C<0?S.coordinate-C*e:S.coordinate})}else a[x]=S=Ai(Ai({},S),{},{tickCoord:S.coordinate});var k=rx(e,S.tickCoord,E,u,l);k&&(u=S.tickCoord+e*(E()/2+i),a[x]=Ai(Ai({},S),{},{isShow:!0}))},b=0;b=2?Ua(i[1].coordinate-i[0].coordinate):1,w=xNe(o,b,p);return u==="equidistantPreserveStart"?_Ne(b,w,v,i,a):(u==="preserveStart"||u==="preserveStartEnd"?h=ANe(b,w,v,i,a,u==="preserveStartEnd"):h=ONe(b,w,v,i,a),h.filter(function(x){return x.isShow}))}var PNe=["viewBox"],kNe=["viewBox"],TNe=["ticks"];function gh(e){"@babel/helpers - typeof";return gh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gh(e)}function vd(){return vd=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function MNe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function RNe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function tI(e,t){for(var n=0;n0?u(this.props):u(p)),a<=0||s<=0||!m||!m.length?null:F.createElement(Cn,{className:dn("recharts-cartesian-axis",l),ref:function(b){r.layerReference=b}},o&&this.renderAxisLine(),this.renderTicks(m,this.state.fontSize,this.state.letterSpacing),ki.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,i,o){var a;return F.isValidElement(r)?a=F.cloneElement(r,i):Ht(r)?a=r(i):a=F.createElement(Ob,vd({},i,{className:"recharts-cartesian-axis-tick-value"}),o),a}}])}(y.Component);$A(np,"displayName","CartesianAxis");$A(np,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var jNe=["x1","y1","x2","y2","key"],BNe=["offset"];function of(e){"@babel/helpers - typeof";return of=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},of(e)}function nI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ti(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function WNe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var HNe=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,i=t.x,o=t.y,a=t.width,s=t.height,u=t.ry;return F.createElement("rect",{x:i,y:o,ry:u,width:a,height:s,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function xK(e,t){var n;if(F.isValidElement(e))n=F.cloneElement(e,t);else if(Ht(e))n=e(t);else{var r=t.x1,i=t.y1,o=t.x2,a=t.y2,s=t.key,u=rI(t,jNe),l=zt(u,!1);l.offset;var c=rI(l,BNe);n=F.createElement("line",Oc({},c,{x1:r,y1:i,x2:o,y2:a,fill:"none",key:s}))}return n}function KNe(e){var t=e.x,n=e.width,r=e.horizontal,i=r===void 0?!0:r,o=e.horizontalPoints;if(!i||!o||!o.length)return null;var a=o.map(function(s,u){var l=Ti(Ti({},e),{},{x1:t,y1:s,x2:t+n,y2:s,key:"line-".concat(u),index:u});return xK(i,l)});return F.createElement("g",{className:"recharts-cartesian-grid-horizontal"},a)}function qNe(e){var t=e.y,n=e.height,r=e.vertical,i=r===void 0?!0:r,o=e.verticalPoints;if(!i||!o||!o.length)return null;var a=o.map(function(s,u){var l=Ti(Ti({},e),{},{x1:s,y1:t,x2:s,y2:t+n,key:"line-".concat(u),index:u});return xK(i,l)});return F.createElement("g",{className:"recharts-cartesian-grid-vertical"},a)}function GNe(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,i=e.y,o=e.width,a=e.height,s=e.horizontalPoints,u=e.horizontal,l=u===void 0?!0:u;if(!l||!t||!t.length)return null;var c=s.map(function(h){return Math.round(h+i-i)}).sort(function(h,p){return h-p});i!==c[0]&&c.unshift(0);var f=c.map(function(h,p){var m=!c[p+1],v=m?i+a-h:c[p+1]-h;if(v<=0)return null;var b=p%t.length;return F.createElement("rect",{key:"react-".concat(p),y:h,x:r,height:v,width:o,stroke:"none",fill:t[b],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return F.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},f)}function YNe(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,i=e.fillOpacity,o=e.x,a=e.y,s=e.width,u=e.height,l=e.verticalPoints;if(!n||!r||!r.length)return null;var c=l.map(function(h){return Math.round(h+o-o)}).sort(function(h,p){return h-p});o!==c[0]&&c.unshift(0);var f=c.map(function(h,p){var m=!c[p+1],v=m?o+s-h:c[p+1]-h;if(v<=0)return null;var b=p%r.length;return F.createElement("rect",{key:"react-".concat(p),x:h,y:a,width:v,height:u,stroke:"none",fill:r[b],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return F.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},f)}var ZNe=function(t,n){var r=t.xAxis,i=t.width,o=t.height,a=t.offset;return RH(DA(Ti(Ti(Ti({},np.defaultProps),r),{},{ticks:su(r,!0),viewBox:{x:0,y:0,width:i,height:o}})),a.left,a.left+a.width,n)},XNe=function(t,n){var r=t.yAxis,i=t.width,o=t.height,a=t.offset;return RH(DA(Ti(Ti(Ti({},np.defaultProps),r),{},{ticks:su(r,!0),viewBox:{x:0,y:0,width:i,height:o}})),a.top,a.top+a.height,n)},Zf={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function QNe(e){var t,n,r,i,o,a,s=kA(),u=TA(),l=FIe(),c=Ti(Ti({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Zf.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Zf.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Zf.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:Zf.horizontalFill,vertical:(o=e.vertical)!==null&&o!==void 0?o:Zf.vertical,verticalFill:(a=e.verticalFill)!==null&&a!==void 0?a:Zf.verticalFill,x:qe(e.x)?e.x:l.left,y:qe(e.y)?e.y:l.top,width:qe(e.width)?e.width:l.width,height:qe(e.height)?e.height:l.height}),f=c.x,h=c.y,p=c.width,m=c.height,v=c.syncWithTicks,b=c.horizontalValues,w=c.verticalValues,x=IIe(),S=NIe();if(!qe(p)||p<=0||!qe(m)||m<=0||!qe(f)||f!==+f||!qe(h)||h!==+h)return null;var O=c.verticalCoordinatesGenerator||ZNe,E=c.horizontalCoordinatesGenerator||XNe,C=c.horizontalPoints,k=c.verticalPoints;if((!C||!C.length)&&Ht(E)){var M=b&&b.length,L=E({yAxis:S?Ti(Ti({},S),{},{ticks:M?b:S.ticks}):void 0,width:s,height:u,offset:l},M?!0:v);du(Array.isArray(L),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(of(L),"]")),Array.isArray(L)&&(C=L)}if((!k||!k.length)&&Ht(O)){var U=w&&w.length,H=O({xAxis:x?Ti(Ti({},x),{},{ticks:U?w:x.ticks}):void 0,width:s,height:u,offset:l},U?!0:v);du(Array.isArray(H),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(of(H),"]")),Array.isArray(H)&&(k=H)}return F.createElement("g",{className:"recharts-cartesian-grid"},F.createElement(HNe,{fill:c.fill,fillOpacity:c.fillOpacity,x:c.x,y:c.y,width:c.width,height:c.height,ry:c.ry}),F.createElement(KNe,Oc({},c,{offset:l,horizontalPoints:C,xAxis:x,yAxis:S})),F.createElement(qNe,Oc({},c,{offset:l,verticalPoints:k,xAxis:x,yAxis:S})),F.createElement(GNe,Oc({},c,{horizontalPoints:C})),F.createElement(YNe,Oc({},c,{verticalPoints:k})))}QNe.displayName="CartesianGrid";var JNe=["type","layout","connectNulls","ref"],eLe=["key"];function mh(e){"@babel/helpers - typeof";return mh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},mh(e)}function iI(e,t){if(e==null)return{};var n=tLe(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function tLe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function A0(){return A0=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);nf){p=[].concat(Xf(u.slice(0,m)),[f-v]);break}var b=p.length%2===0?[0,h]:[h];return[].concat(Xf(t.repeat(u,c)),Xf(p),b).map(function(w){return"".concat(w,"px")}).join(", ")}),$a(n,"id",vf("recharts-line-")),$a(n,"pathRef",function(a){n.mainCurve=a}),$a(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),$a(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return fLe(t,e),sLe(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var o=this.props,a=o.points,s=o.xAxis,u=o.yAxis,l=o.layout,c=o.children,f=po(c,Jh);if(!f)return null;var h=function(v,b){return{x:v.x,y:v.y,value:v.value,errorVal:Kr(v.payload,b)}},p={clipPath:r?"url(#clipPath-".concat(i,")"):null};return F.createElement(Cn,p,f.map(function(m){return F.cloneElement(m,{key:"bar-".concat(m.props.dataKey),data:a,xAxis:s,yAxis:u,layout:l,dataPointFormatter:h})}))}},{key:"renderDots",value:function(r,i,o){var a=this.props.isAnimationActive;if(a&&!this.state.isAnimationFinished)return null;var s=this.props,u=s.dot,l=s.points,c=s.dataKey,f=zt(this.props,!1),h=zt(u,!0),p=l.map(function(v,b){var w=Oo(Oo(Oo({key:"dot-".concat(b),r:3},f),h),{},{value:v.value,dataKey:c,cx:v.x,cy:v.y,index:b,payload:v.payload});return t.renderDotItem(u,w)}),m={clipPath:r?"url(#clipPath-".concat(i?"":"dots-").concat(o,")"):null};return F.createElement(Cn,A0({className:"recharts-line-dots",key:"dots"},m),p)}},{key:"renderCurveStatically",value:function(r,i,o,a){var s=this.props,u=s.type,l=s.layout,c=s.connectNulls;s.ref;var f=iI(s,JNe),h=Oo(Oo(Oo({},zt(f,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:i?"url(#clipPath-".concat(o,")"):null,points:r},a),{},{type:u,layout:l,connectNulls:c});return F.createElement(Ic,A0({},h,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,i){var o=this,a=this.props,s=a.points,u=a.strokeDasharray,l=a.isAnimationActive,c=a.animationBegin,f=a.animationDuration,h=a.animationEasing,p=a.animationId,m=a.animateNewValues,v=a.width,b=a.height,w=this.state,x=w.prevPoints,S=w.totalLength;return F.createElement(Xa,{begin:c,duration:f,isActive:l,easing:h,from:{t:0},to:{t:1},key:"line-".concat(p),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(O){var E=O.t;if(x){var C=x.length/s.length,k=s.map(function(V,ne){var Z=Math.floor(ne*C);if(x[Z]){var G=x[Z],q=Er(G.x,V.x),W=Er(G.y,V.y);return Oo(Oo({},V),{},{x:q(E),y:W(E)})}if(m){var j=Er(v*2,V.x),K=Er(b/2,V.y);return Oo(Oo({},V),{},{x:j(E),y:K(E)})}return Oo(Oo({},V),{},{x:V.x,y:V.y})});return o.renderCurveStatically(k,r,i)}var M=Er(0,S),L=M(E),U;if(u){var H="".concat(u).split(/[,\s]+/gim).map(function(V){return parseFloat(V)});U=o.getStrokeDasharray(L,S,H)}else U=o.generateSimpleStrokeDasharray(S,L);return o.renderCurveStatically(s,r,i,{strokeDasharray:U})})}},{key:"renderCurve",value:function(r,i){var o=this.props,a=o.points,s=o.isAnimationActive,u=this.state,l=u.prevPoints,c=u.totalLength;return s&&a&&a.length&&(!l&&c>0||!tf(l,a))?this.renderCurveWithAnimation(r,i):this.renderCurveStatically(a,r,i)}},{key:"render",value:function(){var r,i=this.props,o=i.hide,a=i.dot,s=i.points,u=i.className,l=i.xAxis,c=i.yAxis,f=i.top,h=i.left,p=i.width,m=i.height,v=i.isAnimationActive,b=i.id;if(o||!s||!s.length)return null;var w=this.state.isAnimationFinished,x=s.length===1,S=dn("recharts-line",u),O=l&&l.allowDataOverflow,E=c&&c.allowDataOverflow,C=O||E,k=Ut(b)?this.id:b,M=(r=zt(a,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},L=M.r,U=L===void 0?3:L,H=M.strokeWidth,V=H===void 0?2:H,ne=EV(a)?a:{},Z=ne.clipDot,G=Z===void 0?!0:Z,q=U*2+V;return F.createElement(Cn,{className:S},O||E?F.createElement("defs",null,F.createElement("clipPath",{id:"clipPath-".concat(k)},F.createElement("rect",{x:O?h:h-p/2,y:E?f:f-m/2,width:O?p:p*2,height:E?m:m*2})),!G&&F.createElement("clipPath",{id:"clipPath-dots-".concat(k)},F.createElement("rect",{x:h-q/2,y:f-q/2,width:p+q,height:m+q}))):null,!x&&this.renderCurve(C,k),this.renderErrorBar(C,k),(x||a)&&this.renderDots(C,G,k),(!v||w)&&As.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:i.curPoints}:r.points!==i.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,i){for(var o=r.length%2!==0?[].concat(Xf(r),[0]):r,a=[],s=0;s=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function gLe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ac(){return Ac=Object.assign?Object.assign.bind():function(e){for(var t=1;t0||!tf(c,a)||!tf(f,s))?this.renderAreaWithAnimation(r,i):this.renderAreaStatically(a,s,r,i)}},{key:"render",value:function(){var r,i=this.props,o=i.hide,a=i.dot,s=i.points,u=i.className,l=i.top,c=i.left,f=i.xAxis,h=i.yAxis,p=i.width,m=i.height,v=i.isAnimationActive,b=i.id;if(o||!s||!s.length)return null;var w=this.state.isAnimationFinished,x=s.length===1,S=dn("recharts-area",u),O=f&&f.allowDataOverflow,E=h&&h.allowDataOverflow,C=O||E,k=Ut(b)?this.id:b,M=(r=zt(a,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},L=M.r,U=L===void 0?3:L,H=M.strokeWidth,V=H===void 0?2:H,ne=EV(a)?a:{},Z=ne.clipDot,G=Z===void 0?!0:Z,q=U*2+V;return F.createElement(Cn,{className:S},O||E?F.createElement("defs",null,F.createElement("clipPath",{id:"clipPath-".concat(k)},F.createElement("rect",{x:O?c:c-p/2,y:E?l:l-m/2,width:O?p:p*2,height:E?m:m*2})),!G&&F.createElement("clipPath",{id:"clipPath-dots-".concat(k)},F.createElement("rect",{x:c-q/2,y:l-q/2,width:p+q,height:m+q}))):null,x?null:this.renderArea(C,k),(a||x)&&this.renderDots(C,G,k),(!v||w)&&As.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,curBaseLine:r.baseLine,prevPoints:i.curPoints,prevBaseLine:i.curBaseLine}:r.points!==i.curPoints||r.baseLine!==i.curBaseLine?{curPoints:r.points,curBaseLine:r.baseLine}:null}}])}(y.PureComponent);SK=xf;bs(xf,"displayName","Area");bs(xf,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Ka.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});bs(xf,"getBaseValue",function(e,t,n,r){var i=e.layout,o=e.baseValue,a=t.props.baseValue,s=a??o;if(qe(s)&&typeof s=="number")return s;var u=i==="horizontal"?r:n,l=u.scale.domain();if(u.type==="number"){var c=Math.max(l[0],l[1]),f=Math.min(l[0],l[1]);return s==="dataMin"?f:s==="dataMax"||c<0?c:Math.max(Math.min(l[0],l[1]),0)}return s==="dataMin"?l[0]:s==="dataMax"?l[1]:l[0]});bs(xf,"getComposedData",function(e){var t=e.props,n=e.item,r=e.xAxis,i=e.yAxis,o=e.xAxisTicks,a=e.yAxisTicks,s=e.bandSize,u=e.dataKey,l=e.stackedData,c=e.dataStartIndex,f=e.displayedData,h=e.offset,p=t.layout,m=l&&l.length,v=SK.getBaseValue(t,n,r,i),b=p==="horizontal",w=!1,x=f.map(function(O,E){var C;m?C=l[c+E]:(C=Kr(O,u),Array.isArray(C)?w=!0:C=[v,C]);var k=C[1]==null||m&&Kr(O,u)==null;return b?{x:sh({axis:r,ticks:o,bandSize:s,entry:O,index:E}),y:k?null:i.scale(C[1]),value:C,payload:O}:{x:k?null:r.scale(C[1]),y:sh({axis:i,ticks:a,bandSize:s,entry:O,index:E}),value:C,payload:O}}),S;return m||w?S=x.map(function(O){var E=Array.isArray(O.value)?O.value[0]:null;return b?{x:O.x,y:E!=null&&O.y!=null?i.scale(E):null}:{x:E!=null?r.scale(E):null,y:O.y}}):S=b?i.scale(v):r.scale(v),Yu({points:x,baseLine:S,layout:p,isRange:w},h)});bs(xf,"renderDotItem",function(e,t){var n;if(F.isValidElement(e))n=F.cloneElement(e,t);else if(Ht(e))n=e(t);else{var r=dn("recharts-area-dot",typeof e!="boolean"?e.className:""),i=t.key,o=CK(t,pLe);n=F.createElement(X2,Ac({},o,{key:i,className:r}))}return n});function yh(e){"@babel/helpers - typeof";return yh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yh(e)}function SLe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function CLe(e,t){for(var n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function DLe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function $Le(e){var t=e.option,n=e.isActive,r=RLe(e,MLe);return typeof t=="string"?F.createElement(A6,P0({option:F.createElement(F2,P0({type:t},r)),isActive:n,shapeType:"symbols"},r)):F.createElement(A6,P0({option:t,isActive:n,shapeType:"symbols"},r))}function bh(e){"@babel/helpers - typeof";return bh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},bh(e)}function k0(){return k0=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function PFe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function kFe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function TFe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?a:t&&t.length&&qe(i)&&qe(o)?t.slice(i,o+1):[]};function KK(e){return e==="number"?[0,"auto"]:void 0}var X6=function(t,n,r,i){var o=t.graphicalItems,a=t.tooltipAxis,s=uw(n,t);return r<0||!o||!o.length||r>=s.length?null:o.reduce(function(u,l){var c,f=(c=l.props.data)!==null&&c!==void 0?c:n;f&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(f=f.slice(t.dataStartIndex,t.dataEndIndex+1));var h;if(a.dataKey&&!a.allowDuplicatedCategory){var p=f===void 0?s:f;h=fb(p,a.dataKey,i)}else h=f&&f[r]||s[r];return h?[].concat(Sh(u),[$H(l,h)]):u},[])},mI=function(t,n,r,i){var o=i||{x:t.chartX,y:t.chartY},a=UFe(o,r),s=t.orderedTooltipTicks,u=t.tooltipAxis,l=t.tooltipTicks,c=WMe(a,s,l,u);if(c>=0&&l){var f=l[c]&&l[c].value,h=X6(t,n,c,f),p=VFe(r,s,c,o);return{activeTooltipIndex:c,activeLabel:f,activePayload:h,activeCoordinate:p}}return null},WFe=function(t,n){var r=n.axes,i=n.graphicalItems,o=n.axisType,a=n.axisIdKey,s=n.stackGroups,u=n.dataStartIndex,l=n.dataEndIndex,c=t.layout,f=t.children,h=t.stackOffset,p=MH(c,o);return r.reduce(function(m,v){var b,w=v.type.defaultProps!==void 0?Se(Se({},v.type.defaultProps),v.props):v.props,x=w.type,S=w.dataKey,O=w.allowDataOverflow,E=w.allowDuplicatedCategory,C=w.scale,k=w.ticks,M=w.includeHidden,L=w[a];if(m[L])return m;var U=uw(t.data,{graphicalItems:i.filter(function(ae){var ue,be=a in ae.props?ae.props[a]:(ue=ae.type.defaultProps)===null||ue===void 0?void 0:ue[a];return be===L}),dataStartIndex:u,dataEndIndex:l}),H=U.length,V,ne,Z;mFe(w.domain,O,x)&&(V=f6(w.domain,null,O),p&&(x==="number"||C!=="auto")&&(Z=E0(U,S,"category")));var G=KK(x);if(!V||V.length===0){var q,W=(q=w.domain)!==null&&q!==void 0?q:G;if(S){if(V=E0(U,S,x),x==="category"&&p){var j=Rwe(V);E&&j?(ne=V,V=Yb(0,H)):E||(V=W7(W,V,v).reduce(function(ae,ue){return ae.indexOf(ue)>=0?ae:[].concat(Sh(ae),[ue])},[]))}else if(x==="category")E?V=V.filter(function(ae){return ae!==""&&!Ut(ae)}):V=W7(W,V,v).reduce(function(ae,ue){return ae.indexOf(ue)>=0||ue===""||Ut(ue)?ae:[].concat(Sh(ae),[ue])},[]);else if(x==="number"){var K=YMe(U,i.filter(function(ae){var ue,be,we=a in ae.props?ae.props[a]:(ue=ae.type.defaultProps)===null||ue===void 0?void 0:ue[a],He="hide"in ae.props?ae.props.hide:(be=ae.type.defaultProps)===null||be===void 0?void 0:be.hide;return we===L&&(M||!He)}),S,o,c);K&&(V=K)}p&&(x==="number"||C!=="auto")&&(Z=E0(U,S,"category"))}else p?V=Yb(0,H):s&&s[L]&&s[L].hasStack&&x==="number"?V=h==="expand"?[0,1]:DH(s[L].stackGroups,u,l):V=TH(U,i.filter(function(ae){var ue=a in ae.props?ae.props[a]:ae.type.defaultProps[a],be="hide"in ae.props?ae.props.hide:ae.type.defaultProps.hide;return ue===L&&(M||!be)}),x,c,!0);if(x==="number")V=G6(f,V,L,o,k),W&&(V=f6(W,V,O));else if(x==="category"&&W){var Y=W,oe=V.every(function(ae){return Y.indexOf(ae)>=0});oe&&(V=Y)}}return Se(Se({},m),{},kt({},L,Se(Se({},w),{},{axisType:o,domain:V,categoricalDomain:Z,duplicateDomain:ne,originalDomain:(b=w.domain)!==null&&b!==void 0?b:G,isCategorical:p,layout:c})))},{})},HFe=function(t,n){var r=n.graphicalItems,i=n.Axis,o=n.axisType,a=n.axisIdKey,s=n.stackGroups,u=n.dataStartIndex,l=n.dataEndIndex,c=t.layout,f=t.children,h=uw(t.data,{graphicalItems:r,dataStartIndex:u,dataEndIndex:l}),p=h.length,m=MH(c,o),v=-1;return r.reduce(function(b,w){var x=w.type.defaultProps!==void 0?Se(Se({},w.type.defaultProps),w.props):w.props,S=x[a],O=KK("number");if(!b[S]){v++;var E;return m?E=Yb(0,p):s&&s[S]&&s[S].hasStack?(E=DH(s[S].stackGroups,u,l),E=G6(f,E,S,o)):(E=f6(O,TH(h,r.filter(function(C){var k,M,L=a in C.props?C.props[a]:(k=C.type.defaultProps)===null||k===void 0?void 0:k[a],U="hide"in C.props?C.props.hide:(M=C.type.defaultProps)===null||M===void 0?void 0:M.hide;return L===S&&!U}),"number",c),i.defaultProps.allowDataOverflow),E=G6(f,E,S,o)),Se(Se({},b),{},kt({},S,Se(Se({axisType:o},i.defaultProps),{},{hide:!0,orientation:ha(BFe,"".concat(o,".").concat(v%2),null),domain:E,originalDomain:O,isCategorical:m,layout:c})))}return b},{})},KFe=function(t,n){var r=n.axisType,i=r===void 0?"xAxis":r,o=n.AxisComp,a=n.graphicalItems,s=n.stackGroups,u=n.dataStartIndex,l=n.dataEndIndex,c=t.children,f="".concat(i,"Id"),h=po(c,o),p={};return h.length?p=WFe(t,{axes:h,graphicalItems:a,axisType:i,axisIdKey:f,stackGroups:s,dataStartIndex:u,dataEndIndex:l}):a&&a.length&&(p=HFe(t,{Axis:o,graphicalItems:a,axisType:i,axisIdKey:f,stackGroups:s,dataStartIndex:u,dataEndIndex:l})),p},qFe=function(t){var n=rl(t),r=su(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:XO(r,function(i){return i.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Bb(n,r)}},vI=function(t){var n=t.children,r=t.defaultShowTooltip,i=To(n,ch),o=0,a=0;return t.data&&t.data.length!==0&&(a=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(o=i.props.startIndex),i.props.endIndex>=0&&(a=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:o,dataEndIndex:a,activeTooltipIndex:-1,isTooltipActive:!!r}},GFe=function(t){return!t||!t.length?!1:t.some(function(n){var r=fu(n&&n.type);return r&&r.indexOf("Bar")>=0})},yI=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},YFe=function(t,n){var r=t.props,i=t.graphicalItems,o=t.xAxisMap,a=o===void 0?{}:o,s=t.yAxisMap,u=s===void 0?{}:s,l=r.width,c=r.height,f=r.children,h=r.margin||{},p=To(f,ch),m=To(f,Dd),v=Object.keys(u).reduce(function(E,C){var k=u[C],M=k.orientation;return!k.mirror&&!k.hide?Se(Se({},E),{},kt({},M,E[M]+k.width)):E},{left:h.left||0,right:h.right||0}),b=Object.keys(a).reduce(function(E,C){var k=a[C],M=k.orientation;return!k.mirror&&!k.hide?Se(Se({},E),{},kt({},M,ha(E,"".concat(M))+k.height)):E},{top:h.top||0,bottom:h.bottom||0}),w=Se(Se({},b),v),x=w.bottom;p&&(w.bottom+=p.props.height||ch.defaultProps.height),m&&n&&(w=qMe(w,i,r,n));var S=l-w.left-w.right,O=c-w.top-w.bottom;return Se(Se({brushBottom:x},w),{},{width:Math.max(S,0),height:Math.max(O,0)})},ZFe=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},XFe=function(t){var n=t.chartName,r=t.GraphicalChild,i=t.defaultTooltipEventType,o=i===void 0?"axis":i,a=t.validateTooltipEventTypes,s=a===void 0?["axis"]:a,u=t.axisComponents,l=t.legendContent,c=t.formatAxisMap,f=t.defaultProps,h=function(w,x){var S=x.graphicalItems,O=x.stackGroups,E=x.offset,C=x.updateId,k=x.dataStartIndex,M=x.dataEndIndex,L=w.barSize,U=w.layout,H=w.barGap,V=w.barCategoryGap,ne=w.maxBarSize,Z=yI(U),G=Z.numericAxisName,q=Z.cateAxisName,W=GFe(S),j=[];return S.forEach(function(K,Y){var oe=uw(w.data,{graphicalItems:[K],dataStartIndex:k,dataEndIndex:M}),ae=K.type.defaultProps!==void 0?Se(Se({},K.type.defaultProps),K.props):K.props,ue=ae.dataKey,be=ae.maxBarSize,we=ae["".concat(G,"Id")],He=ae["".concat(q,"Id")],Ee={},it=u.reduce(function(ze,Fe){var Ae=x["".concat(Fe.axisType,"Map")],tt=ae["".concat(Fe.axisType,"Id")];Ae&&Ae[tt]||Fe.axisType==="zAxis"||rf();var mt=Ae[tt];return Se(Se({},ze),{},kt(kt({},Fe.axisType,mt),"".concat(Fe.axisType,"Ticks"),su(mt)))},Ee),ke=it[q],Le=it["".concat(q,"Ticks")],De=O&&O[we]&&O[we].hasStack&&sRe(K,O[we].stackGroups),me=fu(K.type).indexOf("Bar")>=0,yt=Bb(ke,Le),lt=[],Nt=W&&HMe({barSize:L,stackGroups:O,totalSize:ZFe(it,q)});if(me){var yn,nn,te=Ut(be)?ne:be,de=(yn=(nn=Bb(ke,Le,!0))!==null&&nn!==void 0?nn:te)!==null&&yn!==void 0?yn:0;lt=KMe({barGap:H,barCategoryGap:V,bandSize:de!==yt?de:yt,sizeList:Nt[He],maxBarSize:te}),de!==yt&&(lt=lt.map(function(ze){return Se(Se({},ze),{},{position:Se(Se({},ze.position),{},{offset:ze.position.offset-de/2})})}))}var ge=K&&K.type&&K.type.getComposedData;ge&&j.push({props:Se(Se({},ge(Se(Se({},it),{},{displayedData:oe,props:w,dataKey:ue,item:K,bandSize:yt,barPosition:lt,offset:E,stackedData:De,layout:U,dataStartIndex:k,dataEndIndex:M}))),{},kt(kt(kt({key:K.key||"item-".concat(Y)},G,it[G]),q,it[q]),"animationId",C)),childIndex:Wwe(K,w.children),item:K})}),j},p=function(w,x){var S=w.props,O=w.dataStartIndex,E=w.dataEndIndex,C=w.updateId;if(!F9({props:S}))return null;var k=S.children,M=S.layout,L=S.stackOffset,U=S.data,H=S.reverseStackOrder,V=yI(M),ne=V.numericAxisName,Z=V.cateAxisName,G=po(k,r),q=iRe(U,G,"".concat(ne,"Id"),"".concat(Z,"Id"),L,H),W=u.reduce(function(ae,ue){var be="".concat(ue.axisType,"Map");return Se(Se({},ae),{},kt({},be,KFe(S,Se(Se({},ue),{},{graphicalItems:G,stackGroups:ue.axisType===ne&&q,dataStartIndex:O,dataEndIndex:E}))))},{}),j=YFe(Se(Se({},W),{},{props:S,graphicalItems:G}),x?.legendBBox);Object.keys(W).forEach(function(ae){W[ae]=c(S,W[ae],j,ae.replace("Map",""),n)});var K=W["".concat(Z,"Map")],Y=qFe(K),oe=h(S,Se(Se({},W),{},{dataStartIndex:O,dataEndIndex:E,updateId:C,graphicalItems:G,stackGroups:q,offset:j}));return Se(Se({formattedGraphicalItems:oe,graphicalItems:G,offset:j,stackGroups:q},Y),W)},m=function(b){function w(x){var S,O,E;return kFe(this,w),E=RFe(this,w,[x]),kt(E,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),kt(E,"accessibilityManager",new gFe),kt(E,"handleLegendBBoxUpdate",function(C){if(C){var k=E.state,M=k.dataStartIndex,L=k.dataEndIndex,U=k.updateId;E.setState(Se({legendBBox:C},p({props:E.props,dataStartIndex:M,dataEndIndex:L,updateId:U},Se(Se({},E.state),{},{legendBBox:C}))))}}),kt(E,"handleReceiveSyncEvent",function(C,k,M){if(E.props.syncId===C){if(M===E.eventEmitterSymbol&&typeof E.props.syncMethod!="function")return;E.applySyncEvent(k)}}),kt(E,"handleBrushChange",function(C){var k=C.startIndex,M=C.endIndex;if(k!==E.state.dataStartIndex||M!==E.state.dataEndIndex){var L=E.state.updateId;E.setState(function(){return Se({dataStartIndex:k,dataEndIndex:M},p({props:E.props,dataStartIndex:k,dataEndIndex:M,updateId:L},E.state))}),E.triggerSyncEvent({dataStartIndex:k,dataEndIndex:M})}}),kt(E,"handleMouseEnter",function(C){var k=E.getMouseInfo(C);if(k){var M=Se(Se({},k),{},{isTooltipActive:!0});E.setState(M),E.triggerSyncEvent(M);var L=E.props.onMouseEnter;Ht(L)&&L(M,C)}}),kt(E,"triggeredAfterMouseMove",function(C){var k=E.getMouseInfo(C),M=k?Se(Se({},k),{},{isTooltipActive:!0}):{isTooltipActive:!1};E.setState(M),E.triggerSyncEvent(M);var L=E.props.onMouseMove;Ht(L)&&L(M,C)}),kt(E,"handleItemMouseEnter",function(C){E.setState(function(){return{isTooltipActive:!0,activeItem:C,activePayload:C.tooltipPayload,activeCoordinate:C.tooltipPosition||{x:C.cx,y:C.cy}}})}),kt(E,"handleItemMouseLeave",function(){E.setState(function(){return{isTooltipActive:!1}})}),kt(E,"handleMouseMove",function(C){C.persist(),E.throttleTriggeredAfterMouseMove(C)}),kt(E,"handleMouseLeave",function(C){E.throttleTriggeredAfterMouseMove.cancel();var k={isTooltipActive:!1};E.setState(k),E.triggerSyncEvent(k);var M=E.props.onMouseLeave;Ht(M)&&M(k,C)}),kt(E,"handleOuterEvent",function(C){var k=Vwe(C),M=ha(E.props,"".concat(k));if(k&&Ht(M)){var L,U;/.*touch.*/i.test(k)?U=E.getMouseInfo(C.changedTouches[0]):U=E.getMouseInfo(C),M((L=U)!==null&&L!==void 0?L:{},C)}}),kt(E,"handleClick",function(C){var k=E.getMouseInfo(C);if(k){var M=Se(Se({},k),{},{isTooltipActive:!0});E.setState(M),E.triggerSyncEvent(M);var L=E.props.onClick;Ht(L)&&L(M,C)}}),kt(E,"handleMouseDown",function(C){var k=E.props.onMouseDown;if(Ht(k)){var M=E.getMouseInfo(C);k(M,C)}}),kt(E,"handleMouseUp",function(C){var k=E.props.onMouseUp;if(Ht(k)){var M=E.getMouseInfo(C);k(M,C)}}),kt(E,"handleTouchMove",function(C){C.changedTouches!=null&&C.changedTouches.length>0&&E.throttleTriggeredAfterMouseMove(C.changedTouches[0])}),kt(E,"handleTouchStart",function(C){C.changedTouches!=null&&C.changedTouches.length>0&&E.handleMouseDown(C.changedTouches[0])}),kt(E,"handleTouchEnd",function(C){C.changedTouches!=null&&C.changedTouches.length>0&&E.handleMouseUp(C.changedTouches[0])}),kt(E,"handleDoubleClick",function(C){var k=E.props.onDoubleClick;if(Ht(k)){var M=E.getMouseInfo(C);k(M,C)}}),kt(E,"handleContextMenu",function(C){var k=E.props.onContextMenu;if(Ht(k)){var M=E.getMouseInfo(C);k(M,C)}}),kt(E,"triggerSyncEvent",function(C){E.props.syncId!==void 0&&s3.emit(u3,E.props.syncId,C,E.eventEmitterSymbol)}),kt(E,"applySyncEvent",function(C){var k=E.props,M=k.layout,L=k.syncMethod,U=E.state.updateId,H=C.dataStartIndex,V=C.dataEndIndex;if(C.dataStartIndex!==void 0||C.dataEndIndex!==void 0)E.setState(Se({dataStartIndex:H,dataEndIndex:V},p({props:E.props,dataStartIndex:H,dataEndIndex:V,updateId:U},E.state)));else if(C.activeTooltipIndex!==void 0){var ne=C.chartX,Z=C.chartY,G=C.activeTooltipIndex,q=E.state,W=q.offset,j=q.tooltipTicks;if(!W)return;if(typeof L=="function")G=L(j,C);else if(L==="value"){G=-1;for(var K=0;K=0){var De,me;if(ne.dataKey&&!ne.allowDuplicatedCategory){var yt=typeof ne.dataKey=="function"?Le:"payload.".concat(ne.dataKey.toString());De=fb(K,yt,G),me=Y&&oe&&fb(oe,yt,G)}else De=K?.[Z],me=Y&&oe&&oe[Z];if(He||we){var lt=C.props.activeIndex!==void 0?C.props.activeIndex:Z;return[y.cloneElement(C,Se(Se(Se({},L.props),it),{},{activeIndex:lt})),null,null]}if(!Ut(De))return[ke].concat(Sh(E.renderActivePoints({item:L,activePoint:De,basePoint:me,childIndex:Z,isRange:Y})))}else{var Nt,yn=(Nt=E.getItemByXY(E.state.activeCoordinate))!==null&&Nt!==void 0?Nt:{graphicalItem:ke},nn=yn.graphicalItem,te=nn.item,de=te===void 0?C:te,ge=nn.childIndex,ze=Se(Se(Se({},L.props),it),{},{activeIndex:ge});return[y.cloneElement(de,ze),null,null]}return Y?[ke,null,null]:[ke,null]}),kt(E,"renderCustomized",function(C,k,M){return y.cloneElement(C,Se(Se({key:"recharts-customized-".concat(M)},E.props),E.state))}),kt(E,"renderMap",{CartesianGrid:{handler:O1,once:!0},ReferenceArea:{handler:E.renderReferenceElement},ReferenceLine:{handler:O1},ReferenceDot:{handler:E.renderReferenceElement},XAxis:{handler:O1},YAxis:{handler:O1},Brush:{handler:E.renderBrush,once:!0},Bar:{handler:E.renderGraphicChild},Line:{handler:E.renderGraphicChild},Area:{handler:E.renderGraphicChild},Radar:{handler:E.renderGraphicChild},RadialBar:{handler:E.renderGraphicChild},Scatter:{handler:E.renderGraphicChild},Pie:{handler:E.renderGraphicChild},Funnel:{handler:E.renderGraphicChild},Tooltip:{handler:E.renderCursor,once:!0},PolarGrid:{handler:E.renderPolarGrid,once:!0},PolarAngleAxis:{handler:E.renderPolarAxis},PolarRadiusAxis:{handler:E.renderPolarAxis},Customized:{handler:E.renderCustomized}}),E.clipPathId="".concat((S=x.id)!==null&&S!==void 0?S:vf("recharts"),"-clip"),E.throttleTriggeredAfterMouseMove=PW(E.triggeredAfterMouseMove,(O=x.throttleDelay)!==null&&O!==void 0?O:1e3/60),E.state={},E}return IFe(w,b),MFe(w,[{key:"componentDidMount",value:function(){var S,O;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(S=this.props.margin.left)!==null&&S!==void 0?S:0,top:(O=this.props.margin.top)!==null&&O!==void 0?O:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var S=this.props,O=S.children,E=S.data,C=S.height,k=S.layout,M=To(O,Js);if(M){var L=M.props.defaultIndex;if(!(typeof L!="number"||L<0||L>this.state.tooltipTicks.length-1)){var U=this.state.tooltipTicks[L]&&this.state.tooltipTicks[L].value,H=X6(this.state,E,L,U),V=this.state.tooltipTicks[L].coordinate,ne=(this.state.offset.top+C)/2,Z=k==="horizontal",G=Z?{x:V,y:ne}:{y:V,x:ne},q=this.state.formattedGraphicalItems.find(function(j){var K=j.item;return K.type.name==="Scatter"});q&&(G=Se(Se({},G),q.props.points[L].tooltipPosition),H=q.props.points[L].tooltipPayload);var W={activeTooltipIndex:L,isTooltipActive:!0,activeLabel:U,activePayload:H,activeCoordinate:G};this.setState(W),this.renderCursor(M),this.accessibilityManager.setIndex(L)}}}},{key:"getSnapshotBeforeUpdate",value:function(S,O){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==O.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==S.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==S.margin){var E,C;this.accessibilityManager.setDetails({offset:{left:(E=this.props.margin.left)!==null&&E!==void 0?E:0,top:(C=this.props.margin.top)!==null&&C!==void 0?C:0}})}return null}},{key:"componentDidUpdate",value:function(S){OE([To(S.children,Js)],[To(this.props.children,Js)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var S=To(this.props.children,Js);if(S&&typeof S.props.shared=="boolean"){var O=S.props.shared?"axis":"item";return s.indexOf(O)>=0?O:o}return o}},{key:"getMouseInfo",value:function(S){if(!this.container)return null;var O=this.container,E=O.getBoundingClientRect(),C=mPe(E),k={chartX:Math.round(S.pageX-C.left),chartY:Math.round(S.pageY-C.top)},M=E.width/O.offsetWidth||1,L=this.inRange(k.chartX,k.chartY,M);if(!L)return null;var U=this.state,H=U.xAxisMap,V=U.yAxisMap,ne=this.getTooltipEventType();if(ne!=="axis"&&H&&V){var Z=rl(H).scale,G=rl(V).scale,q=Z&&Z.invert?Z.invert(k.chartX):null,W=G&&G.invert?G.invert(k.chartY):null;return Se(Se({},k),{},{xValue:q,yValue:W})}var j=mI(this.state,this.props.data,this.props.layout,L);return j?Se(Se({},k),j):null}},{key:"inRange",value:function(S,O){var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,C=this.props.layout,k=S/E,M=O/E;if(C==="horizontal"||C==="vertical"){var L=this.state.offset,U=k>=L.left&&k<=L.left+L.width&&M>=L.top&&M<=L.top+L.height;return U?{x:k,y:M}:null}var H=this.state,V=H.angleAxisMap,ne=H.radiusAxisMap;if(V&&ne){var Z=rl(V);return q7({x:k,y:M},Z)}return null}},{key:"parseEventsOfWrapper",value:function(){var S=this.props.children,O=this.getTooltipEventType(),E=To(S,Js),C={};E&&O==="axis"&&(E.props.trigger==="click"?C={onClick:this.handleClick}:C={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var k=db(this.props,this.handleOuterEvent);return Se(Se({},k),C)}},{key:"addListener",value:function(){s3.on(u3,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){s3.removeListener(u3,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(S,O,E){for(var C=this.state.formattedGraphicalItems,k=0,M=C.length;k{const{__scopeTabs:n,value:r,onValueChange:i,defaultValue:o,orientation:a="horizontal",dir:s,activationMode:u="automatic",...l}=e,c=Em(s),[f,h]=Za({prop:r,onChange:i,defaultProp:o});return I.jsx(JFe,{scope:n,baseId:Fo(),value:f,onValueChange:h,orientation:a,dir:c,activationMode:u,children:I.jsx(pt.div,{dir:c,"data-orientation":a,...l,ref:t})})});GK.displayName=LA;var YK="TabsList",ZK=y.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...i}=e,o=FA(YK,n),a=qK(n);return I.jsx(Uz,{asChild:!0,...a,orientation:o.orientation,dir:o.dir,loop:r,children:I.jsx(pt.div,{role:"tablist","aria-orientation":o.orientation,...i,ref:t})})});ZK.displayName=YK;var XK="TabsTrigger",QK=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:i=!1,...o}=e,a=FA(XK,n),s=qK(n),u=tq(a.baseId,r),l=nq(a.baseId,r),c=r===a.value;return I.jsx(Vz,{asChild:!0,...s,focusable:!i,active:c,children:I.jsx(pt.button,{type:"button",role:"tab","aria-selected":c,"aria-controls":l,"data-state":c?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:u,...o,ref:t,onMouseDown:Ye(e.onMouseDown,f=>{!i&&f.button===0&&f.ctrlKey===!1?a.onValueChange(r):f.preventDefault()}),onKeyDown:Ye(e.onKeyDown,f=>{[" ","Enter"].includes(f.key)&&a.onValueChange(r)}),onFocus:Ye(e.onFocus,()=>{const f=a.activationMode!=="manual";!c&&!i&&f&&a.onValueChange(r)})})})});QK.displayName=XK;var JK="TabsContent",eq=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:i,children:o,...a}=e,s=FA(JK,n),u=tq(s.baseId,r),l=nq(s.baseId,r),c=r===s.value,f=y.useRef(c);return y.useEffect(()=>{const h=requestAnimationFrame(()=>f.current=!1);return()=>cancelAnimationFrame(h)},[]),I.jsx(Gr,{present:i||c,children:({present:h})=>I.jsx(pt.div,{"data-state":c?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":u,hidden:!h,id:l,tabIndex:0,...a,ref:t,style:{...e.style,animationDuration:f.current?"0s":void 0},children:h&&o})})});eq.displayName=JK;function tq(e,t){return`${e}-trigger-${t}`}function nq(e,t){return`${e}-content-${t}`}var $Xe=GK,IXe=ZK,NXe=QK,LXe=eq;function Q6(e,[t,n]){return Math.min(n,Math.max(t,e))}function jA(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var eje=[" ","Enter","ArrowUp","ArrowDown"],tje=[" ","Enter"],zm="Select",[lw,cw,nje]=J5(zm),[rp,FXe]=vi(zm,[nje,zl]),fw=zl(),[rje,ql]=rp(zm),[ije,oje]=rp(zm),rq=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:o,value:a,defaultValue:s,onValueChange:u,dir:l,name:c,autoComplete:f,disabled:h,required:p,form:m}=e,v=fw(t),[b,w]=y.useState(null),[x,S]=y.useState(null),[O,E]=y.useState(!1),C=Em(l),[k=!1,M]=Za({prop:r,defaultProp:i,onChange:o}),[L,U]=Za({prop:a,defaultProp:s,onChange:u}),H=y.useRef(null),V=b?m||!!b.closest("form"):!0,[ne,Z]=y.useState(new Set),G=Array.from(ne).map(q=>q.props.value).join(";");return I.jsx(a2,{...v,children:I.jsxs(rje,{required:p,scope:t,trigger:b,onTriggerChange:w,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:O,onValueNodeHasChildrenChange:E,contentId:Fo(),value:L,onValueChange:U,open:k,onOpenChange:M,dir:C,triggerPointerDownPosRef:H,disabled:h,children:[I.jsx(lw.Provider,{scope:t,children:I.jsx(ije,{scope:e.__scopeSelect,onNativeOptionAdd:y.useCallback(q=>{Z(W=>new Set(W).add(q))},[]),onNativeOptionRemove:y.useCallback(q=>{Z(W=>{const j=new Set(W);return j.delete(q),j})},[]),children:n})}),V?I.jsxs(kq,{"aria-hidden":!0,required:p,tabIndex:-1,name:c,autoComplete:f,value:L,onChange:q=>U(q.target.value),disabled:h,form:m,children:[L===void 0?I.jsx("option",{value:""}):null,Array.from(ne)]},G):null]})})};rq.displayName=zm;var iq="SelectTrigger",oq=y.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...i}=e,o=fw(n),a=ql(iq,n),s=a.disabled||r,u=Yt(t,a.onTriggerChange),l=cw(n),c=y.useRef("touch"),[f,h,p]=Tq(v=>{const b=l().filter(S=>!S.disabled),w=b.find(S=>S.value===a.value),x=Mq(b,v,w);x!==void 0&&a.onValueChange(x.value)}),m=v=>{s||(a.onOpenChange(!0),p()),v&&(a.triggerPointerDownPosRef.current={x:Math.round(v.pageX),y:Math.round(v.pageY)})};return I.jsx(Am,{asChild:!0,...o,children:I.jsx(pt.button,{type:"button",role:"combobox","aria-controls":a.contentId,"aria-expanded":a.open,"aria-required":a.required,"aria-autocomplete":"none",dir:a.dir,"data-state":a.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":Pq(a.value)?"":void 0,...i,ref:u,onClick:Ye(i.onClick,v=>{v.currentTarget.focus(),c.current!=="mouse"&&m(v)}),onPointerDown:Ye(i.onPointerDown,v=>{c.current=v.pointerType;const b=v.target;b.hasPointerCapture(v.pointerId)&&b.releasePointerCapture(v.pointerId),v.button===0&&v.ctrlKey===!1&&v.pointerType==="mouse"&&(m(v),v.preventDefault())}),onKeyDown:Ye(i.onKeyDown,v=>{const b=f.current!=="";!(v.ctrlKey||v.altKey||v.metaKey)&&v.key.length===1&&h(v.key),!(b&&v.key===" ")&&eje.includes(v.key)&&(m(),v.preventDefault())})})})});oq.displayName=iq;var aq="SelectValue",sq=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,children:o,placeholder:a="",...s}=e,u=ql(aq,n),{onValueNodeHasChildrenChange:l}=u,c=o!==void 0,f=Yt(t,u.onValueNodeChange);return ii(()=>{l(c)},[l,c]),I.jsx(pt.span,{...s,ref:f,style:{pointerEvents:"none"},children:Pq(u.value)?I.jsx(I.Fragment,{children:a}):o})});sq.displayName=aq;var aje="SelectIcon",uq=y.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...i}=e;return I.jsx(pt.span,{"aria-hidden":!0,...i,ref:t,children:r||"▼"})});uq.displayName=aje;var sje="SelectPortal",lq=e=>I.jsx(Lh,{asChild:!0,...e});lq.displayName=sje;var af="SelectContent",cq=y.forwardRef((e,t)=>{const n=ql(af,e.__scopeSelect),[r,i]=y.useState();if(ii(()=>{i(new DocumentFragment)},[]),!n.open){const o=r;return o?Au.createPortal(I.jsx(fq,{scope:e.__scopeSelect,children:I.jsx(lw.Slot,{scope:e.__scopeSelect,children:I.jsx("div",{children:e.children})})}),o):null}return I.jsx(dq,{...e,ref:t})});cq.displayName=af;var ka=10,[fq,Gl]=rp(af),uje="SelectContentImpl",dq=y.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:a,side:s,sideOffset:u,align:l,alignOffset:c,arrowPadding:f,collisionBoundary:h,collisionPadding:p,sticky:m,hideWhenDetached:v,avoidCollisions:b,...w}=e,x=ql(af,n),[S,O]=y.useState(null),[E,C]=y.useState(null),k=Yt(t,Ee=>O(Ee)),[M,L]=y.useState(null),[U,H]=y.useState(null),V=cw(n),[ne,Z]=y.useState(!1),G=y.useRef(!1);y.useEffect(()=>{if(S)return Cm(S)},[S]),n2();const q=y.useCallback(Ee=>{const[it,...ke]=V().map(me=>me.ref.current),[Le]=ke.slice(-1),De=document.activeElement;for(const me of Ee)if(me===De||(me?.scrollIntoView({block:"nearest"}),me===it&&E&&(E.scrollTop=0),me===Le&&E&&(E.scrollTop=E.scrollHeight),me?.focus(),document.activeElement!==De))return},[V,E]),W=y.useCallback(()=>q([M,S]),[q,M,S]);y.useEffect(()=>{ne&&W()},[ne,W]);const{onOpenChange:j,triggerPointerDownPosRef:K}=x;y.useEffect(()=>{if(S){let Ee={x:0,y:0};const it=Le=>{Ee={x:Math.abs(Math.round(Le.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(Le.pageY)-(K.current?.y??0))}},ke=Le=>{Ee.x<=10&&Ee.y<=10?Le.preventDefault():S.contains(Le.target)||j(!1),document.removeEventListener("pointermove",it),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",it),document.addEventListener("pointerup",ke,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",it),document.removeEventListener("pointerup",ke,{capture:!0})}}},[S,j,K]),y.useEffect(()=>{const Ee=()=>j(!1);return window.addEventListener("blur",Ee),window.addEventListener("resize",Ee),()=>{window.removeEventListener("blur",Ee),window.removeEventListener("resize",Ee)}},[j]);const[Y,oe]=Tq(Ee=>{const it=V().filter(De=>!De.disabled),ke=it.find(De=>De.ref.current===document.activeElement),Le=Mq(it,Ee,ke);Le&&setTimeout(()=>Le.ref.current.focus())}),ae=y.useCallback((Ee,it,ke)=>{const Le=!G.current&&!ke;(x.value!==void 0&&x.value===it||Le)&&(L(Ee),Le&&(G.current=!0))},[x.value]),ue=y.useCallback(()=>S?.focus(),[S]),be=y.useCallback((Ee,it,ke)=>{const Le=!G.current&&!ke;(x.value!==void 0&&x.value===it||Le)&&H(Ee)},[x.value]),we=r==="popper"?J6:hq,He=we===J6?{side:s,sideOffset:u,align:l,alignOffset:c,arrowPadding:f,collisionBoundary:h,collisionPadding:p,sticky:m,hideWhenDetached:v,avoidCollisions:b}:{};return I.jsx(fq,{scope:n,content:S,viewport:E,onViewportChange:C,itemRefCallback:ae,selectedItem:M,onItemLeave:ue,itemTextRefCallback:be,focusSelectedItem:W,selectedItemText:U,position:r,isPositioned:ne,searchRef:Y,children:I.jsx(Sm,{as:Al,allowPinchZoom:!0,children:I.jsx(_m,{asChild:!0,trapped:x.open,onMountAutoFocus:Ee=>{Ee.preventDefault()},onUnmountAutoFocus:Ye(i,Ee=>{x.trigger?.focus({preventScroll:!0}),Ee.preventDefault()}),children:I.jsx(Nh,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:Ee=>Ee.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:I.jsx(we,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed",dir:x.dir,onContextMenu:Ee=>Ee.preventDefault(),...w,...He,onPlaced:()=>Z(!0),ref:k,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:Ye(w.onKeyDown,Ee=>{const it=Ee.ctrlKey||Ee.altKey||Ee.metaKey;if(Ee.key==="Tab"&&Ee.preventDefault(),!it&&Ee.key.length===1&&oe(Ee.key),["ArrowUp","ArrowDown","Home","End"].includes(Ee.key)){let Le=V().filter(De=>!De.disabled).map(De=>De.ref.current);if(["ArrowUp","End"].includes(Ee.key)&&(Le=Le.slice().reverse()),["ArrowUp","ArrowDown"].includes(Ee.key)){const De=Ee.target,me=Le.indexOf(De);Le=Le.slice(me+1)}setTimeout(()=>q(Le)),Ee.preventDefault()}})})})})})})});dq.displayName=uje;var lje="SelectItemAlignedPosition",hq=y.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...i}=e,o=ql(af,n),a=Gl(af,n),[s,u]=y.useState(null),[l,c]=y.useState(null),f=Yt(t,k=>c(k)),h=cw(n),p=y.useRef(!1),m=y.useRef(!0),{viewport:v,selectedItem:b,selectedItemText:w,focusSelectedItem:x}=a,S=y.useCallback(()=>{if(o.trigger&&o.valueNode&&s&&l&&v&&b&&w){const k=o.trigger.getBoundingClientRect(),M=l.getBoundingClientRect(),L=o.valueNode.getBoundingClientRect(),U=w.getBoundingClientRect();if(o.dir!=="rtl"){const De=U.left-M.left,me=L.left-De,yt=k.left-me,lt=k.width+yt,Nt=Math.max(lt,M.width),yn=window.innerWidth-ka,nn=Q6(me,[ka,Math.max(ka,yn-Nt)]);s.style.minWidth=lt+"px",s.style.left=nn+"px"}else{const De=M.right-U.right,me=window.innerWidth-L.right-De,yt=window.innerWidth-k.right-me,lt=k.width+yt,Nt=Math.max(lt,M.width),yn=window.innerWidth-ka,nn=Q6(me,[ka,Math.max(ka,yn-Nt)]);s.style.minWidth=lt+"px",s.style.right=nn+"px"}const H=h(),V=window.innerHeight-ka*2,ne=v.scrollHeight,Z=window.getComputedStyle(l),G=parseInt(Z.borderTopWidth,10),q=parseInt(Z.paddingTop,10),W=parseInt(Z.borderBottomWidth,10),j=parseInt(Z.paddingBottom,10),K=G+q+ne+j+W,Y=Math.min(b.offsetHeight*5,K),oe=window.getComputedStyle(v),ae=parseInt(oe.paddingTop,10),ue=parseInt(oe.paddingBottom,10),be=k.top+k.height/2-ka,we=V-be,He=b.offsetHeight/2,Ee=b.offsetTop+He,it=G+q+Ee,ke=K-it;if(it<=be){const De=H.length>0&&b===H[H.length-1].ref.current;s.style.bottom="0px";const me=l.clientHeight-v.offsetTop-v.offsetHeight,yt=Math.max(we,He+(De?ue:0)+me+W),lt=it+yt;s.style.height=lt+"px"}else{const De=H.length>0&&b===H[0].ref.current;s.style.top="0px";const yt=Math.max(be,G+v.offsetTop+(De?ae:0)+He)+ke;s.style.height=yt+"px",v.scrollTop=it-be+v.offsetTop}s.style.margin=`${ka}px 0`,s.style.minHeight=Y+"px",s.style.maxHeight=V+"px",r?.(),requestAnimationFrame(()=>p.current=!0)}},[h,o.trigger,o.valueNode,s,l,v,b,w,o.dir,r]);ii(()=>S(),[S]);const[O,E]=y.useState();ii(()=>{l&&E(window.getComputedStyle(l).zIndex)},[l]);const C=y.useCallback(k=>{k&&m.current===!0&&(S(),x?.(),m.current=!1)},[S,x]);return I.jsx(fje,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:C,children:I.jsx("div",{ref:u,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:O},children:I.jsx(pt.div,{...i,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});hq.displayName=lje;var cje="SelectPopperPosition",J6=y.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:i=ka,...o}=e,a=fw(n);return I.jsx(s2,{...a,...o,ref:t,align:r,collisionPadding:i,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});J6.displayName=cje;var[fje,BA]=rp(af,{}),e4="SelectViewport",pq=y.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...i}=e,o=Gl(e4,n),a=BA(e4,n),s=Yt(t,o.onViewportChange),u=y.useRef(0);return I.jsxs(I.Fragment,{children:[I.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),I.jsx(lw.Slot,{scope:n,children:I.jsx(pt.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:Ye(i.onScroll,l=>{const c=l.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:h}=a;if(h?.current&&f){const p=Math.abs(u.current-c.scrollTop);if(p>0){const m=window.innerHeight-ka*2,v=parseFloat(f.style.minHeight),b=parseFloat(f.style.height),w=Math.max(v,b);if(w0?O:0,f.style.justifyContent="flex-end")}}}u.current=c.scrollTop})})})]})});pq.displayName=e4;var gq="SelectGroup",[dje,hje]=rp(gq),mq=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=Fo();return I.jsx(dje,{scope:n,id:i,children:I.jsx(pt.div,{role:"group","aria-labelledby":i,...r,ref:t})})});mq.displayName=gq;var vq="SelectLabel",yq=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=hje(vq,n);return I.jsx(pt.div,{id:i.id,...r,ref:t})});yq.displayName=vq;var dx="SelectItem",[pje,bq]=rp(dx),xq=y.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:i=!1,textValue:o,...a}=e,s=ql(dx,n),u=Gl(dx,n),l=s.value===r,[c,f]=y.useState(o??""),[h,p]=y.useState(!1),m=Yt(t,x=>u.itemRefCallback?.(x,r,i)),v=Fo(),b=y.useRef("touch"),w=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return I.jsx(pje,{scope:n,value:r,disabled:i,textId:v,isSelected:l,onItemTextChange:y.useCallback(x=>{f(S=>S||(x?.textContent??"").trim())},[]),children:I.jsx(lw.ItemSlot,{scope:n,value:r,disabled:i,textValue:c,children:I.jsx(pt.div,{role:"option","aria-labelledby":v,"data-highlighted":h?"":void 0,"aria-selected":l&&h,"data-state":l?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...a,ref:m,onFocus:Ye(a.onFocus,()=>p(!0)),onBlur:Ye(a.onBlur,()=>p(!1)),onClick:Ye(a.onClick,()=>{b.current!=="mouse"&&w()}),onPointerUp:Ye(a.onPointerUp,()=>{b.current==="mouse"&&w()}),onPointerDown:Ye(a.onPointerDown,x=>{b.current=x.pointerType}),onPointerMove:Ye(a.onPointerMove,x=>{b.current=x.pointerType,i?u.onItemLeave?.():b.current==="mouse"&&x.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Ye(a.onPointerLeave,x=>{x.currentTarget===document.activeElement&&u.onItemLeave?.()}),onKeyDown:Ye(a.onKeyDown,x=>{u.searchRef?.current!==""&&x.key===" "||(tje.includes(x.key)&&w(),x.key===" "&&x.preventDefault())})})})})});xq.displayName=dx;var l0="SelectItemText",wq=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,...o}=e,a=ql(l0,n),s=Gl(l0,n),u=bq(l0,n),l=oje(l0,n),[c,f]=y.useState(null),h=Yt(t,w=>f(w),u.onItemTextChange,w=>s.itemTextRefCallback?.(w,u.value,u.disabled)),p=c?.textContent,m=y.useMemo(()=>I.jsx("option",{value:u.value,disabled:u.disabled,children:p},u.value),[u.disabled,u.value,p]),{onNativeOptionAdd:v,onNativeOptionRemove:b}=l;return ii(()=>(v(m),()=>b(m)),[v,b,m]),I.jsxs(I.Fragment,{children:[I.jsx(pt.span,{id:u.textId,...o,ref:h}),u.isSelected&&a.valueNode&&!a.valueNodeHasChildren?Au.createPortal(o.children,a.valueNode):null]})});wq.displayName=l0;var _q="SelectItemIndicator",Sq=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return bq(_q,n).isSelected?I.jsx(pt.span,{"aria-hidden":!0,...r,ref:t}):null});Sq.displayName=_q;var t4="SelectScrollUpButton",Cq=y.forwardRef((e,t)=>{const n=Gl(t4,e.__scopeSelect),r=BA(t4,e.__scopeSelect),[i,o]=y.useState(!1),a=Yt(t,r.onScrollButtonChange);return ii(()=>{if(n.viewport&&n.isPositioned){let s=function(){const l=u.scrollTop>0;o(l)};const u=n.viewport;return s(),u.addEventListener("scroll",s),()=>u.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?I.jsx(Oq,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:u}=n;s&&u&&(s.scrollTop=s.scrollTop-u.offsetHeight)}}):null});Cq.displayName=t4;var n4="SelectScrollDownButton",Eq=y.forwardRef((e,t)=>{const n=Gl(n4,e.__scopeSelect),r=BA(n4,e.__scopeSelect),[i,o]=y.useState(!1),a=Yt(t,r.onScrollButtonChange);return ii(()=>{if(n.viewport&&n.isPositioned){let s=function(){const l=u.scrollHeight-u.clientHeight,c=Math.ceil(u.scrollTop)u.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?I.jsx(Oq,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:u}=n;s&&u&&(s.scrollTop=s.scrollTop+u.offsetHeight)}}):null});Eq.displayName=n4;var Oq=y.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...i}=e,o=Gl("SelectScrollButton",n),a=y.useRef(null),s=cw(n),u=y.useCallback(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]);return y.useEffect(()=>()=>u(),[u]),ii(()=>{s().find(c=>c.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[s]),I.jsx(pt.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:Ye(i.onPointerDown,()=>{a.current===null&&(a.current=window.setInterval(r,50))}),onPointerMove:Ye(i.onPointerMove,()=>{o.onItemLeave?.(),a.current===null&&(a.current=window.setInterval(r,50))}),onPointerLeave:Ye(i.onPointerLeave,()=>{u()})})}),gje="SelectSeparator",Aq=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return I.jsx(pt.div,{"aria-hidden":!0,...r,ref:t})});Aq.displayName=gje;var r4="SelectArrow",mje=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=fw(n),o=ql(r4,n),a=Gl(r4,n);return o.open&&a.position==="popper"?I.jsx(u2,{...i,...r,ref:t}):null});mje.displayName=r4;function Pq(e){return e===""||e===void 0}var kq=y.forwardRef((e,t)=>{const{value:n,...r}=e,i=y.useRef(null),o=Yt(t,i),a=jA(n);return y.useEffect(()=>{const s=i.current,u=window.HTMLSelectElement.prototype,c=Object.getOwnPropertyDescriptor(u,"value").set;if(a!==n&&c){const f=new Event("change",{bubbles:!0});c.call(s,n),s.dispatchEvent(f)}},[a,n]),I.jsx(wO,{asChild:!0,children:I.jsx("select",{...r,ref:o,defaultValue:n})})});kq.displayName="BubbleSelect";function Tq(e){const t=Vr(e),n=y.useRef(""),r=y.useRef(0),i=y.useCallback(a=>{const s=n.current+a;t(s),function u(l){n.current=l,window.clearTimeout(r.current),l!==""&&(r.current=window.setTimeout(()=>u(""),1e3))}(s)},[t]),o=y.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,o]}function Mq(e,t,n){const i=t.length>1&&Array.from(t).every(l=>l===t[0])?t[0]:t,o=n?e.indexOf(n):-1;let a=vje(e,Math.max(o,0));i.length===1&&(a=a.filter(l=>l!==n));const u=a.find(l=>l.textValue.toLowerCase().startsWith(i.toLowerCase()));return u!==n?u:void 0}function vje(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var jXe=rq,BXe=oq,zXe=sq,UXe=uq,VXe=lq,WXe=cq,HXe=pq,KXe=mq,qXe=yq,GXe=xq,YXe=wq,ZXe=Sq,XXe=Cq,QXe=Eq,JXe=Aq;const zA=6048e5,yje=864e5,bI=Symbol.for("constructDateFrom");function oi(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&bI in e?e[bI](t):e instanceof Date?new e.constructor(t):new Date(t)}function Rn(e,t){return oi(t||e,e)}function Ui(e,t,n){const r=Rn(e,n?.in);return isNaN(t)?oi(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Qa(e,t,n){const r=Rn(e,n?.in);if(isNaN(t))return oi(n?.in||e,NaN);if(!t)return r;const i=r.getDate(),o=oi(n?.in||e,r.getTime());o.setMonth(r.getMonth()+t+1,0);const a=o.getDate();return i>=a?o:(r.setFullYear(o.getFullYear(),o.getMonth(),i),r)}let bje={};function Um(){return bje}function ya(e,t){const n=Um(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=Rn(e,t?.in),o=i.getDay(),a=(o=o.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function hx(e){const t=Rn(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function wf(e,...t){const n=oi.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function uf(e,t){const n=Rn(e,t?.in);return n.setHours(0,0,0,0),n}function xs(e,t,n){const[r,i]=wf(n?.in,e,t),o=uf(r),a=uf(i),s=+o-hx(o),u=+a-hx(a);return Math.round((s-u)/yje)}function xje(e,t){const n=Rq(e,t),r=oi(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),sf(r)}function i4(e,t,n){return Ui(e,t*7,n)}function wje(e,t,n){return Qa(e,t*12,n)}function _je(e,t){let n,r=t?.in;return e.forEach(i=>{!r&&typeof i=="object"&&(r=oi.bind(null,i));const o=Rn(i,r);(!n||n{!r&&typeof i=="object"&&(r=oi.bind(null,i));const o=Rn(i,r);(!n||n>o||isNaN(+o))&&(n=o)}),oi(r,n||NaN)}function uo(e,t,n){const[r,i]=wf(n?.in,e,t);return+uf(r)==+uf(i)}function UA(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Cje(e){return!(!UA(e)&&typeof e!="number"||isNaN(+Rn(e)))}function nm(e,t,n){const[r,i]=wf(n?.in,e,t),o=r.getFullYear()-i.getFullYear(),a=r.getMonth()-i.getMonth();return o*12+a}function Eje(e,t,n){const[r,i]=wf(n?.in,e,t),o=ya(r,n),a=ya(i,n),s=+o-hx(o),u=+a-hx(a);return Math.round((s-u)/zA)}function VA(e,t){const n=Rn(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function go(e,t){const n=Rn(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function Dq(e,t){const n=Rn(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function WA(e,t){const n=Um(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=Rn(e,t?.in),o=i.getDay(),a=(o{let r;const i=Oje[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function Nd(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const Pje={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},kje={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Tje={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Mje={date:Nd({formats:Pje,defaultWidth:"full"}),time:Nd({formats:kje,defaultWidth:"full"}),dateTime:Nd({formats:Tje,defaultWidth:"full"})},Rje={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Dje=(e,t,n,r)=>Rje[e];function ps(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let i;if(r==="formatting"&&e.formattingValues){const a=e.defaultFormattingWidth||e.defaultWidth,s=n?.width?String(n.width):a;i=e.formattingValues[s]||e.formattingValues[a]}else{const a=e.defaultWidth,s=n?.width?String(n.width):e.defaultWidth;i=e.values[s]||e.values[a]}const o=e.argumentCallback?e.argumentCallback(t):t;return i[o]}}const $je={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Ije={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Nje={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Lje={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Fje={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},jje={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Bje=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},zje={ordinalNumber:Bje,era:ps({values:$je,defaultWidth:"wide"}),quarter:ps({values:Ije,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ps({values:Nje,defaultWidth:"wide"}),day:ps({values:Lje,defaultWidth:"wide"}),dayPeriod:ps({values:Fje,defaultWidth:"wide",formattingValues:jje,defaultFormattingWidth:"wide"})};function gs(e){return(t,n={})=>{const r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(i);if(!o)return null;const a=o[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(s)?Vje(s,f=>f.test(a)):Uje(s,f=>f.test(a));let l;l=e.valueCallback?e.valueCallback(u):u,l=n.valueCallback?n.valueCallback(l):l;const c=t.slice(a.length);return{value:l,rest:c}}}function Uje(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Vje(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const i=r[0],o=t.match(e.parsePattern);if(!o)return null;let a=e.valueCallback?e.valueCallback(o[0]):o[0];a=n.valueCallback?n.valueCallback(a):a;const s=t.slice(i.length);return{value:a,rest:s}}}const Wje=/^(\d+)(th|st|nd|rd)?/i,Hje=/\d+/i,Kje={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},qje={any:[/^b/i,/^(a|c)/i]},Gje={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Yje={any:[/1/i,/2/i,/3/i,/4/i]},Zje={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},Xje={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Qje={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Jje={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},eBe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},tBe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},nBe={ordinalNumber:Iq({matchPattern:Wje,parsePattern:Hje,valueCallback:e=>parseInt(e,10)}),era:gs({matchPatterns:Kje,defaultMatchWidth:"wide",parsePatterns:qje,defaultParseWidth:"any"}),quarter:gs({matchPatterns:Gje,defaultMatchWidth:"wide",parsePatterns:Yje,defaultParseWidth:"any",valueCallback:e=>e+1}),month:gs({matchPatterns:Zje,defaultMatchWidth:"wide",parsePatterns:Xje,defaultParseWidth:"any"}),day:gs({matchPatterns:Qje,defaultMatchWidth:"wide",parsePatterns:Jje,defaultParseWidth:"any"}),dayPeriod:gs({matchPatterns:eBe,defaultMatchWidth:"any",parsePatterns:tBe,defaultParseWidth:"any"})},Nq={code:"en-US",formatDistance:Aje,formatLong:Mje,formatRelative:Dje,localize:zje,match:nBe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function rBe(e,t){const n=Rn(e,t?.in);return xs(n,Dq(n))+1}function Lq(e,t){const n=Rn(e,t?.in),r=+sf(n)-+xje(n);return Math.round(r/zA)+1}function Fq(e,t){const n=Rn(e,t?.in),r=n.getFullYear(),i=Um(),o=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,a=oi(t?.in||e,0);a.setFullYear(r+1,0,o),a.setHours(0,0,0,0);const s=ya(a,t),u=oi(t?.in||e,0);u.setFullYear(r,0,o),u.setHours(0,0,0,0);const l=ya(u,t);return+n>=+s?r+1:+n>=+l?r:r-1}function iBe(e,t){const n=Um(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=Fq(e,t),o=oi(t?.in||e,0);return o.setFullYear(i,0,r),o.setHours(0,0,0,0),ya(o,t)}function jq(e,t){const n=Rn(e,t?.in),r=+ya(n,t)-+iBe(n,t);return Math.round(r/zA)+1}function Tn(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Ku={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Tn(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Tn(n+1,2)},d(e,t){return Tn(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Tn(e.getHours()%12||12,t.length)},H(e,t){return Tn(e.getHours(),t.length)},m(e,t){return Tn(e.getMinutes(),t.length)},s(e,t){return Tn(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),i=Math.trunc(r*Math.pow(10,n-3));return Tn(i,t.length)}},Qf={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},xI={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),i=r>0?r:1-r;return n.ordinalNumber(i,{unit:"year"})}return Ku.y(e,t)},Y:function(e,t,n,r){const i=Fq(e,r),o=i>0?i:1-i;if(t==="YY"){const a=o%100;return Tn(a,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):Tn(o,t.length)},R:function(e,t){const n=Rq(e);return Tn(n,t.length)},u:function(e,t){const n=e.getFullYear();return Tn(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Tn(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Tn(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Ku.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Tn(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const i=jq(e,r);return t==="wo"?n.ordinalNumber(i,{unit:"week"}):Tn(i,t.length)},I:function(e,t,n){const r=Lq(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Tn(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Ku.d(e,t)},D:function(e,t,n){const r=rBe(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Tn(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const i=e.getDay(),o=(i-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return Tn(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});case"eeee":default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const i=e.getDay(),o=(i-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return Tn(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});case"cccc":default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),i=r===0?7:r;switch(t){case"i":return String(i);case"ii":return Tn(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const i=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let i;switch(r===12?i=Qf.noon:r===0?i=Qf.midnight:i=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let i;switch(r>=17?i=Qf.evening:r>=12?i=Qf.afternoon:r>=4?i=Qf.morning:i=Qf.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Ku.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Ku.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Tn(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Tn(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Ku.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Ku.s(e,t)},S:function(e,t){return Ku.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return _I(r);case"XXXX":case"XX":return pc(r);case"XXXXX":case"XXX":default:return pc(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return _I(r);case"xxxx":case"xx":return pc(r);case"xxxxx":case"xxx":default:return pc(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+wI(r,":");case"OOOO":default:return"GMT"+pc(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+wI(r,":");case"zzzz":default:return"GMT"+pc(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return Tn(r,t.length)},T:function(e,t,n){return Tn(+e,t.length)}};function wI(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),i=Math.trunc(r/60),o=r%60;return o===0?n+String(i):n+String(i)+t+Tn(o,2)}function _I(e,t){return e%60===0?(e>0?"-":"+")+Tn(Math.abs(e)/60,2):pc(e,t)}function pc(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),i=Tn(Math.trunc(r/60),2),o=Tn(r%60,2);return n+i+t+o}const SI=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},Bq=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},oBe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return SI(e,t);let o;switch(r){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;case"PPPP":default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",SI(r,t)).replace("{{time}}",Bq(i,t))},aBe={p:Bq,P:oBe},sBe=/^D+$/,uBe=/^Y+$/,lBe=["D","DD","YY","YYYY"];function cBe(e){return sBe.test(e)}function fBe(e){return uBe.test(e)}function dBe(e,t,n){const r=hBe(e,t,n);if(console.warn(r),lBe.includes(e))throw new RangeError(r)}function hBe(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const pBe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,gBe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,mBe=/^'([^]*?)'?$/,vBe=/''/g,yBe=/[a-zA-Z]/;function _f(e,t,n){const r=Um(),i=n?.locale??r.locale??Nq,o=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,a=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=Rn(e,n?.in);if(!Cje(s))throw new RangeError("Invalid time value");let u=t.match(gBe).map(c=>{const f=c[0];if(f==="p"||f==="P"){const h=aBe[f];return h(c,i.formatLong)}return c}).join("").match(pBe).map(c=>{if(c==="''")return{isToken:!1,value:"'"};const f=c[0];if(f==="'")return{isToken:!1,value:bBe(c)};if(xI[f])return{isToken:!0,value:c};if(f.match(yBe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+f+"`");return{isToken:!1,value:c}});i.localize.preprocessor&&(u=i.localize.preprocessor(s,u));const l={firstWeekContainsDate:o,weekStartsOn:a,locale:i};return u.map(c=>{if(!c.isToken)return c.value;const f=c.value;(!n?.useAdditionalWeekYearTokens&&fBe(f)||!n?.useAdditionalDayOfYearTokens&&cBe(f))&&dBe(f,t,String(e));const h=xI[f[0]];return h(s,f,i.localize,l)}).join("")}function bBe(e){const t=e.match(mBe);return t?t[1].replace(vBe,"'"):e}function xBe(e,t){const n=Rn(e,t?.in),r=n.getFullYear(),i=n.getMonth(),o=oi(n,0);return o.setFullYear(r,i+1,0),o.setHours(0,0,0,0),o.getDate()}function wBe(e){return Math.trunc(+Rn(e)/1e3)}function _Be(e,t){const n=Rn(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(0,0,0,0),Rn(n,t?.in)}function SBe(e,t){const n=Rn(e,t?.in);return Eje(_Be(n,t),go(n,t),t)+1}function o4(e,t){return+Rn(e)>+Rn(t)}function zq(e,t){return+Rn(e)<+Rn(t)}function CBe(e,t,n){const[r,i]=wf(n?.in,e,t);return+ya(r,n)==+ya(i,n)}function HA(e,t,n){const[r,i]=wf(n?.in,e,t);return r.getFullYear()===i.getFullYear()&&r.getMonth()===i.getMonth()}function EBe(e,t,n){const[r,i]=wf(n?.in,e,t);return r.getFullYear()===i.getFullYear()}function c3(e,t,n){return Ui(e,-t,n)}function f3(e,t,n){const r=Rn(e,n?.in),i=r.getFullYear(),o=r.getDate(),a=oi(e,0);a.setFullYear(i,t,15),a.setHours(0,0,0,0);const s=xBe(a);return r.setMonth(t,Math.min(o,s)),r}function CI(e,t,n){const r=Rn(e,n?.in);return isNaN(+r)?oi(e,NaN):(r.setFullYear(t),r)}function eQe(e){return uf(Date.now(),e)}const OBe={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},ABe=(e,t,n)=>{let r;const i=OBe[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},PBe={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},kBe={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},TBe={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},MBe={date:Nd({formats:PBe,defaultWidth:"full"}),time:Nd({formats:kBe,defaultWidth:"full"}),dateTime:Nd({formats:TBe,defaultWidth:"full"})};function EI(e,t,n){const r="eeee p";return CBe(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const RBe={lastWeek:EI,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:EI,other:"PP p"},DBe=(e,t,n,r)=>{const i=RBe[e];return typeof i=="function"?i(t,n,r):i},$Be={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},IBe={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},NBe={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},LBe={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},FBe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},jBe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},BBe=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},zBe={ordinalNumber:BBe,era:ps({values:$Be,defaultWidth:"wide"}),quarter:ps({values:IBe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ps({values:NBe,defaultWidth:"wide"}),day:ps({values:LBe,defaultWidth:"wide"}),dayPeriod:ps({values:FBe,defaultWidth:"wide",formattingValues:jBe,defaultFormattingWidth:"wide"})},UBe=/^(第\s*)?\d+(日|时|分|秒)?/i,VBe=/\d+/i,WBe={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},HBe={any:[/^(前)/i,/^(公元)/i]},KBe={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},qBe={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},GBe={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},YBe={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},ZBe={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},XBe={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},QBe={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},JBe={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},eze={ordinalNumber:Iq({matchPattern:UBe,parsePattern:VBe,valueCallback:e=>parseInt(e,10)}),era:gs({matchPatterns:WBe,defaultMatchWidth:"wide",parsePatterns:HBe,defaultParseWidth:"any"}),quarter:gs({matchPatterns:KBe,defaultMatchWidth:"wide",parsePatterns:qBe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:gs({matchPatterns:GBe,defaultMatchWidth:"wide",parsePatterns:YBe,defaultParseWidth:"any"}),day:gs({matchPatterns:ZBe,defaultMatchWidth:"wide",parsePatterns:XBe,defaultParseWidth:"any"}),dayPeriod:gs({matchPatterns:QBe,defaultMatchWidth:"any",parsePatterns:JBe,defaultParseWidth:"any"})},tQe={code:"zh-CN",formatDistance:ABe,formatLong:MBe,formatRelative:DBe,localize:zBe,match:eze,options:{weekStartsOn:1,firstWeekContainsDate:4}};var Rt=function(){return Rt=Object.assign||function(t){for(var n,r=1,i=arguments.length;r1&&(u||!l),f=t>1&&(l||!u),h=function(){r&&o(r)},p=function(){i&&o(i)};return I.jsx(Dze,{displayMonth:e.displayMonth,hideNext:c,hidePrevious:f,nextMonth:i,previousMonth:r,onPreviousClick:h,onNextClick:p})}function $ze(e){var t,n=Kn(),r=n.classNames,i=n.disableNavigation,o=n.styles,a=n.captionLayout,s=n.components,u=(t=s?.CaptionLabel)!==null&&t!==void 0?t:Wq,l;return i?l=I.jsx(u,{id:e.id,displayMonth:e.displayMonth}):a==="dropdown"?l=I.jsx(OI,{displayMonth:e.displayMonth,id:e.id}):a==="dropdown-buttons"?l=I.jsxs(I.Fragment,{children:[I.jsx(OI,{displayMonth:e.displayMonth,displayIndex:e.displayIndex,id:e.id}),I.jsx(AI,{displayMonth:e.displayMonth,displayIndex:e.displayIndex,id:e.id})]}):l=I.jsxs(I.Fragment,{children:[I.jsx(u,{id:e.id,displayMonth:e.displayMonth,displayIndex:e.displayIndex}),I.jsx(AI,{displayMonth:e.displayMonth,id:e.id})]}),I.jsx("div",{className:r.caption,style:o.caption,children:l})}function Ize(e){var t=Kn(),n=t.footer,r=t.styles,i=t.classNames.tfoot;return n?I.jsx("tfoot",{className:i,style:r.tfoot,children:I.jsx("tr",{children:I.jsx("td",{colSpan:8,children:n})})}):I.jsx(I.Fragment,{})}function Nze(e,t,n){for(var r=n?sf(new Date):ya(new Date,{locale:e,weekStartsOn:t}),i=[],o=0;o<7;o++){var a=Ui(r,o);i.push(a)}return i}function Lze(){var e=Kn(),t=e.classNames,n=e.styles,r=e.showWeekNumber,i=e.locale,o=e.weekStartsOn,a=e.ISOWeek,s=e.formatters.formatWeekdayName,u=e.labels.labelWeekday,l=Nze(i,o,a);return I.jsxs("tr",{style:n.head_row,className:t.head_row,children:[r&&I.jsx("td",{style:n.head_cell,className:t.head_cell}),l.map(function(c,f){return I.jsx("th",{scope:"col",className:t.head_cell,style:n.head_cell,"aria-label":u(c,{locale:i}),children:s(c,{locale:i})},f)})]})}function Fze(){var e,t=Kn(),n=t.classNames,r=t.styles,i=t.components,o=(e=i?.HeadRow)!==null&&e!==void 0?e:Lze;return I.jsx("thead",{style:r.head,className:n.head,children:I.jsx(o,{})})}function jze(e){var t=Kn(),n=t.locale,r=t.formatters.formatDay;return I.jsx(I.Fragment,{children:r(e.date,{locale:n})})}var KA=y.createContext(void 0);function Bze(e){if(!Vm(e.initialProps)){var t={selected:void 0,modifiers:{disabled:[]}};return I.jsx(KA.Provider,{value:t,children:e.children})}return I.jsx(zze,{initialProps:e.initialProps,children:e.children})}function zze(e){var t=e.initialProps,n=e.children,r=t.selected,i=t.min,o=t.max,a=function(l,c,f){var h,p;(h=t.onDayClick)===null||h===void 0||h.call(t,l,c,f);var m=!!(c.selected&&i&&r?.length===i);if(!m){var v=!!(!c.selected&&o&&r?.length===o);if(!v){var b=r?Uq([],r):[];if(c.selected){var w=b.findIndex(function(x){return uo(l,x)});b.splice(w,1)}else b.push(l);(p=t.onSelect)===null||p===void 0||p.call(t,b,l,c,f)}}},s={disabled:[]};r&&s.disabled.push(function(l){var c=o&&r.length>o-1,f=r.some(function(h){return uo(h,l)});return!!(c&&!f)});var u={selected:r,onDayClick:a,modifiers:s};return I.jsx(KA.Provider,{value:u,children:n})}function qA(){var e=y.useContext(KA);if(!e)throw new Error("useSelectMultiple must be used within a SelectMultipleProvider");return e}function Uze(e,t){var n=t||{},r=n.from,i=n.to;return r&&i?uo(i,e)&&uo(r,e)?void 0:uo(i,e)?{from:i,to:void 0}:uo(r,e)?void 0:o4(r,e)?{from:e,to:i}:{from:r,to:e}:i?o4(e,i)?{from:i,to:e}:{from:e,to:i}:r?zq(e,r)?{from:e,to:r}:{from:r,to:e}:{from:e,to:void 0}}var GA=y.createContext(void 0);function Vze(e){if(!Wm(e.initialProps)){var t={selected:void 0,modifiers:{range_start:[],range_end:[],range_middle:[],disabled:[]}};return I.jsx(GA.Provider,{value:t,children:e.children})}return I.jsx(Wze,{initialProps:e.initialProps,children:e.children})}function Wze(e){var t=e.initialProps,n=e.children,r=t.selected,i=r||{},o=i.from,a=i.to,s=t.min,u=t.max,l=function(p,m,v){var b,w;(b=t.onDayClick)===null||b===void 0||b.call(t,p,m,v);var x=Uze(p,r);(w=t.onSelect)===null||w===void 0||w.call(t,x,p,m,v)},c={range_start:[],range_end:[],range_middle:[],disabled:[]};if(o?(c.range_start=[o],a?(c.range_end=[a],uo(o,a)||(c.range_middle=[{after:o,before:a}])):c.range_end=[o]):a&&(c.range_start=[a],c.range_end=[a]),s&&(o&&!a&&c.disabled.push({after:c3(o,s-1),before:Ui(o,s-1)}),o&&a&&c.disabled.push({after:o,before:Ui(o,s-1)}),!o&&a&&c.disabled.push({after:c3(a,s-1),before:Ui(a,s-1)})),u){if(o&&!a&&(c.disabled.push({before:Ui(o,-u+1)}),c.disabled.push({after:Ui(o,u-1)})),o&&a){var f=xs(a,o)+1,h=u-f;c.disabled.push({before:c3(o,h)}),c.disabled.push({after:Ui(a,h)})}!o&&a&&(c.disabled.push({before:Ui(a,-u+1)}),c.disabled.push({after:Ui(a,u-1)}))}return I.jsx(GA.Provider,{value:{selected:r,onDayClick:l,modifiers:c},children:n})}function YA(){var e=y.useContext(GA);if(!e)throw new Error("useSelectRange must be used within a SelectRangeProvider");return e}function ry(e){return Array.isArray(e)?Uq([],e):e!==void 0?[e]:[]}function Hze(e){var t={};return Object.entries(e).forEach(function(n){var r=n[0],i=n[1];t[r]=ry(i)}),t}var Ja;(function(e){e.Outside="outside",e.Disabled="disabled",e.Selected="selected",e.Hidden="hidden",e.Today="today",e.RangeStart="range_start",e.RangeEnd="range_end",e.RangeMiddle="range_middle"})(Ja||(Ja={}));var Kze=Ja.Selected,Ys=Ja.Disabled,qze=Ja.Hidden,Gze=Ja.Today,d3=Ja.RangeEnd,h3=Ja.RangeMiddle,p3=Ja.RangeStart,Yze=Ja.Outside;function Zze(e,t,n){var r,i=(r={},r[Kze]=ry(e.selected),r[Ys]=ry(e.disabled),r[qze]=ry(e.hidden),r[Gze]=[e.today],r[d3]=[],r[h3]=[],r[p3]=[],r[Yze]=[],r);return e.fromDate&&i[Ys].push({before:e.fromDate}),e.toDate&&i[Ys].push({after:e.toDate}),Vm(e)?i[Ys]=i[Ys].concat(t.modifiers[Ys]):Wm(e)&&(i[Ys]=i[Ys].concat(n.modifiers[Ys]),i[p3]=n.modifiers[p3],i[h3]=n.modifiers[h3],i[d3]=n.modifiers[d3]),i}var qq=y.createContext(void 0);function Xze(e){var t=Kn(),n=qA(),r=YA(),i=Zze(t,n,r),o=Hze(t.modifiers),a=Rt(Rt({},i),o);return I.jsx(qq.Provider,{value:a,children:e.children})}function Gq(){var e=y.useContext(qq);if(!e)throw new Error("useModifiers must be used within a ModifiersProvider");return e}function Qze(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function Jze(e){return!!(e&&typeof e=="object"&&"from"in e)}function eUe(e){return!!(e&&typeof e=="object"&&"after"in e)}function tUe(e){return!!(e&&typeof e=="object"&&"before"in e)}function nUe(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function rUe(e,t){var n,r=t.from,i=t.to;if(r&&i){var o=xs(i,r)<0;o&&(n=[i,r],r=n[0],i=n[1]);var a=xs(e,r)>=0&&xs(i,e)>=0;return a}return i?uo(i,e):r?uo(r,e):!1}function iUe(e){return UA(e)}function oUe(e){return Array.isArray(e)&&e.every(UA)}function aUe(e,t){return t.some(function(n){if(typeof n=="boolean")return n;if(iUe(n))return uo(e,n);if(oUe(n))return n.includes(e);if(Jze(n))return rUe(e,n);if(nUe(n))return n.dayOfWeek.includes(e.getDay());if(Qze(n)){var r=xs(n.before,e),i=xs(n.after,e),o=r>0,a=i<0,s=o4(n.before,n.after);return s?a&&o:o||a}return eUe(n)?xs(e,n.after)>0:tUe(n)?xs(n.before,e)>0:typeof n=="function"?n(e):!1})}function ZA(e,t,n){var r=Object.keys(t).reduce(function(o,a){var s=t[a];return aUe(e,s)&&o.push(a),o},[]),i={};return r.forEach(function(o){return i[o]=!0}),n&&!HA(e,n)&&(i.outside=!0),i}function sUe(e,t){for(var n=go(e[0]),r=VA(e[e.length-1]),i,o,a=n;a<=r;){var s=ZA(a,t),u=!s.disabled&&!s.hidden;if(!u){a=Ui(a,1);continue}if(s.selected)return a;s.today&&!o&&(o=a),i||(i=a),a=Ui(a,1)}return o||i}var uUe=365;function Yq(e,t){var n=t.moveBy,r=t.direction,i=t.context,o=t.modifiers,a=t.retry,s=a===void 0?{count:0,lastFocused:e}:a,u=i.weekStartsOn,l=i.fromDate,c=i.toDate,f=i.locale,h={day:Ui,week:i4,month:Qa,year:wje,startOfWeek:function(b){return i.ISOWeek?sf(b):ya(b,{locale:f,weekStartsOn:u})},endOfWeek:function(b){return i.ISOWeek?$q(b):WA(b,{locale:f,weekStartsOn:u})}},p=h[n](e,r==="after"?1:-1);r==="before"&&l?p=_je([l,p]):r==="after"&&c&&(p=Sje([c,p]));var m=!0;if(o){var v=ZA(p,o);m=!v.disabled&&!v.hidden}return m?p:s.count>uUe?s.lastFocused:Yq(p,{moveBy:n,direction:r,context:i,modifiers:o,retry:Rt(Rt({},s),{count:s.count+1})})}var Zq=y.createContext(void 0);function lUe(e){var t=Hm(),n=Gq(),r=y.useState(),i=r[0],o=r[1],a=y.useState(),s=a[0],u=a[1],l=sUe(t.displayMonths,n),c=i??(s&&t.isDateDisplayed(s))?s:l,f=function(){u(i),o(void 0)},h=function(b){o(b)},p=Kn(),m=function(b,w){if(i){var x=Yq(i,{moveBy:b,direction:w,context:p,modifiers:n});uo(i,x)||(t.goToDate(x,i),h(x))}},v={focusedDay:i,focusTarget:c,blur:f,focus:h,focusDayAfter:function(){return m("day","after")},focusDayBefore:function(){return m("day","before")},focusWeekAfter:function(){return m("week","after")},focusWeekBefore:function(){return m("week","before")},focusMonthBefore:function(){return m("month","before")},focusMonthAfter:function(){return m("month","after")},focusYearBefore:function(){return m("year","before")},focusYearAfter:function(){return m("year","after")},focusStartOfWeek:function(){return m("startOfWeek","before")},focusEndOfWeek:function(){return m("endOfWeek","after")}};return I.jsx(Zq.Provider,{value:v,children:e.children})}function XA(){var e=y.useContext(Zq);if(!e)throw new Error("useFocusContext must be used within a FocusProvider");return e}function cUe(e,t){var n=Gq(),r=ZA(e,n,t);return r}var QA=y.createContext(void 0);function fUe(e){if(!dw(e.initialProps)){var t={selected:void 0};return I.jsx(QA.Provider,{value:t,children:e.children})}return I.jsx(dUe,{initialProps:e.initialProps,children:e.children})}function dUe(e){var t=e.initialProps,n=e.children,r=function(o,a,s){var u,l,c;if((u=t.onDayClick)===null||u===void 0||u.call(t,o,a,s),a.selected&&!t.required){(l=t.onSelect)===null||l===void 0||l.call(t,void 0,o,a,s);return}(c=t.onSelect)===null||c===void 0||c.call(t,o,o,a,s)},i={selected:t.selected,onDayClick:r};return I.jsx(QA.Provider,{value:i,children:n})}function Xq(){var e=y.useContext(QA);if(!e)throw new Error("useSelectSingle must be used within a SelectSingleProvider");return e}function hUe(e,t){var n=Kn(),r=Xq(),i=qA(),o=YA(),a=XA(),s=a.focusDayAfter,u=a.focusDayBefore,l=a.focusWeekAfter,c=a.focusWeekBefore,f=a.blur,h=a.focus,p=a.focusMonthBefore,m=a.focusMonthAfter,v=a.focusYearBefore,b=a.focusYearAfter,w=a.focusStartOfWeek,x=a.focusEndOfWeek,S=function(W){var j,K,Y,oe;dw(n)?(j=r.onDayClick)===null||j===void 0||j.call(r,e,t,W):Vm(n)?(K=i.onDayClick)===null||K===void 0||K.call(i,e,t,W):Wm(n)?(Y=o.onDayClick)===null||Y===void 0||Y.call(o,e,t,W):(oe=n.onDayClick)===null||oe===void 0||oe.call(n,e,t,W)},O=function(W){var j;h(e),(j=n.onDayFocus)===null||j===void 0||j.call(n,e,t,W)},E=function(W){var j;f(),(j=n.onDayBlur)===null||j===void 0||j.call(n,e,t,W)},C=function(W){var j;(j=n.onDayMouseEnter)===null||j===void 0||j.call(n,e,t,W)},k=function(W){var j;(j=n.onDayMouseLeave)===null||j===void 0||j.call(n,e,t,W)},M=function(W){var j;(j=n.onDayPointerEnter)===null||j===void 0||j.call(n,e,t,W)},L=function(W){var j;(j=n.onDayPointerLeave)===null||j===void 0||j.call(n,e,t,W)},U=function(W){var j;(j=n.onDayTouchCancel)===null||j===void 0||j.call(n,e,t,W)},H=function(W){var j;(j=n.onDayTouchEnd)===null||j===void 0||j.call(n,e,t,W)},V=function(W){var j;(j=n.onDayTouchMove)===null||j===void 0||j.call(n,e,t,W)},ne=function(W){var j;(j=n.onDayTouchStart)===null||j===void 0||j.call(n,e,t,W)},Z=function(W){var j;(j=n.onDayKeyUp)===null||j===void 0||j.call(n,e,t,W)},G=function(W){var j;switch(W.key){case"ArrowLeft":W.preventDefault(),W.stopPropagation(),n.dir==="rtl"?s():u();break;case"ArrowRight":W.preventDefault(),W.stopPropagation(),n.dir==="rtl"?u():s();break;case"ArrowDown":W.preventDefault(),W.stopPropagation(),l();break;case"ArrowUp":W.preventDefault(),W.stopPropagation(),c();break;case"PageUp":W.preventDefault(),W.stopPropagation(),W.shiftKey?v():p();break;case"PageDown":W.preventDefault(),W.stopPropagation(),W.shiftKey?b():m();break;case"Home":W.preventDefault(),W.stopPropagation(),w();break;case"End":W.preventDefault(),W.stopPropagation(),x();break}(j=n.onDayKeyDown)===null||j===void 0||j.call(n,e,t,W)},q={onClick:S,onFocus:O,onBlur:E,onKeyDown:G,onKeyUp:Z,onMouseEnter:C,onMouseLeave:k,onPointerEnter:M,onPointerLeave:L,onTouchCancel:U,onTouchEnd:H,onTouchMove:V,onTouchStart:ne};return q}function pUe(){var e=Kn(),t=Xq(),n=qA(),r=YA(),i=dw(e)?t.selected:Vm(e)?n.selected:Wm(e)?r.selected:void 0;return i}function gUe(e){return Object.values(Ja).includes(e)}function mUe(e,t){var n=[e.classNames.day];return Object.keys(t).forEach(function(r){var i=e.modifiersClassNames[r];if(i)n.push(i);else if(gUe(r)){var o=e.classNames["day_".concat(r)];o&&n.push(o)}}),n}function vUe(e,t){var n=Rt({},e.styles.day);return Object.keys(t).forEach(function(r){var i;n=Rt(Rt({},n),(i=e.modifiersStyles)===null||i===void 0?void 0:i[r])}),n}function yUe(e,t,n){var r,i,o,a=Kn(),s=XA(),u=cUe(e,t),l=hUe(e,u),c=pUe(),f=!!(a.onDayClick||a.mode!=="default");y.useEffect(function(){var C;u.outside||s.focusedDay&&f&&uo(s.focusedDay,e)&&((C=n.current)===null||C===void 0||C.focus())},[s.focusedDay,e,n,f,u.outside]);var h=mUe(a,u).join(" "),p=vUe(a,u),m=!!(u.outside&&!a.showOutsideDays||u.hidden),v=(o=(i=a.components)===null||i===void 0?void 0:i.DayContent)!==null&&o!==void 0?o:jze,b=I.jsx(v,{date:e,displayMonth:t,activeModifiers:u}),w={style:p,className:h,children:b,role:"gridcell"},x=s.focusTarget&&uo(s.focusTarget,e)&&!u.outside,S=s.focusedDay&&uo(s.focusedDay,e),O=Rt(Rt(Rt({},w),(r={disabled:u.disabled,role:"gridcell"},r["aria-selected"]=u.selected,r.tabIndex=S||x?0:-1,r)),l),E={isButton:f,isHidden:m,activeModifiers:u,selectedDays:c,buttonProps:O,divProps:w};return E}function bUe(e){var t=y.useRef(null),n=yUe(e.date,e.displayMonth,t);return n.isHidden?I.jsx("div",{role:"gridcell"}):n.isButton?I.jsx(px,Rt({name:"day",ref:t},n.buttonProps)):I.jsx("div",Rt({},n.divProps))}function xUe(e){var t=e.number,n=e.dates,r=Kn(),i=r.onWeekNumberClick,o=r.styles,a=r.classNames,s=r.locale,u=r.labels.labelWeekNumber,l=r.formatters.formatWeekNumber,c=l(Number(t),{locale:s});if(!i)return I.jsx("span",{className:a.weeknumber,style:o.weeknumber,children:c});var f=u(Number(t),{locale:s}),h=function(p){i(t,n,p)};return I.jsx(px,{name:"week-number","aria-label":f,className:a.weeknumber,style:o.weeknumber,onClick:h,children:c})}function wUe(e){var t,n,r=Kn(),i=r.styles,o=r.classNames,a=r.showWeekNumber,s=r.components,u=(t=s?.Day)!==null&&t!==void 0?t:bUe,l=(n=s?.WeekNumber)!==null&&n!==void 0?n:xUe,c;return a&&(c=I.jsx("td",{className:o.cell,style:i.cell,children:I.jsx(l,{number:e.weekNumber,dates:e.dates})})),I.jsxs("tr",{className:o.row,style:i.row,children:[c,e.dates.map(function(f){return I.jsx("td",{className:o.cell,style:i.cell,role:"presentation",children:I.jsx(u,{displayMonth:e.displayMonth,date:f})},wBe(f))})]})}function PI(e,t,n){for(var r=n?.ISOWeek?$q(t):WA(t,n),i=n?.ISOWeek?sf(e):ya(e,n),o=xs(r,i),a=[],s=0;s<=o;s++)a.push(Ui(i,s));var u=a.reduce(function(l,c){var f=n?.ISOWeek?Lq(c):jq(c,n),h=l.find(function(p){return p.weekNumber===f});return h?(h.dates.push(c),l):(l.push({weekNumber:f,dates:[c]}),l)},[]);return u}function _Ue(e,t){var n=PI(go(e),VA(e),t);if(t?.useFixedWeeks){var r=SBe(e,t);if(r<6){var i=n[n.length-1],o=i.dates[i.dates.length-1],a=i4(o,6-r),s=PI(i4(o,1),a,t);n.push.apply(n,s)}}return n}function SUe(e){var t,n,r,i=Kn(),o=i.locale,a=i.classNames,s=i.styles,u=i.hideHead,l=i.fixedWeeks,c=i.components,f=i.weekStartsOn,h=i.firstWeekContainsDate,p=i.ISOWeek,m=_Ue(e.displayMonth,{useFixedWeeks:!!l,ISOWeek:p,locale:o,weekStartsOn:f,firstWeekContainsDate:h}),v=(t=c?.Head)!==null&&t!==void 0?t:Fze,b=(n=c?.Row)!==null&&n!==void 0?n:wUe,w=(r=c?.Footer)!==null&&r!==void 0?r:Ize;return I.jsxs("table",{id:e.id,className:a.table,style:s.table,role:"grid","aria-labelledby":e["aria-labelledby"],children:[!u&&I.jsx(v,{}),I.jsx("tbody",{className:a.tbody,style:s.tbody,children:m.map(function(x){return I.jsx(b,{displayMonth:e.displayMonth,dates:x.dates,weekNumber:x.weekNumber},x.weekNumber)})}),I.jsx(w,{displayMonth:e.displayMonth})]})}function CUe(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var EUe=CUe()?y.useLayoutEffect:y.useEffect,g3=!1,OUe=0;function kI(){return"react-day-picker-".concat(++OUe)}function AUe(e){var t,n=e??(g3?kI():null),r=y.useState(n),i=r[0],o=r[1];return EUe(function(){i===null&&o(kI())},[]),y.useEffect(function(){g3===!1&&(g3=!0)},[]),(t=e??i)!==null&&t!==void 0?t:void 0}function PUe(e){var t,n,r=Kn(),i=r.dir,o=r.classNames,a=r.styles,s=r.components,u=Hm().displayMonths,l=AUe(r.id?"".concat(r.id,"-").concat(e.displayIndex):void 0),c=r.id?"".concat(r.id,"-grid-").concat(e.displayIndex):void 0,f=[o.month],h=a.month,p=e.displayIndex===0,m=e.displayIndex===u.length-1,v=!p&&!m;i==="rtl"&&(t=[p,m],m=t[0],p=t[1]),p&&(f.push(o.caption_start),h=Rt(Rt({},h),a.caption_start)),m&&(f.push(o.caption_end),h=Rt(Rt({},h),a.caption_end)),v&&(f.push(o.caption_between),h=Rt(Rt({},h),a.caption_between));var b=(n=s?.Caption)!==null&&n!==void 0?n:$ze;return I.jsxs("div",{className:f.join(" "),style:h,children:[I.jsx(b,{id:l,displayMonth:e.displayMonth,displayIndex:e.displayIndex}),I.jsx(SUe,{id:c,"aria-labelledby":l,displayMonth:e.displayMonth})]},e.displayIndex)}function kUe(e){var t=Kn(),n=t.classNames,r=t.styles;return I.jsx("div",{className:n.months,style:r.months,children:e.children})}function TUe(e){var t,n,r=e.initialProps,i=Kn(),o=XA(),a=Hm(),s=y.useState(!1),u=s[0],l=s[1];y.useEffect(function(){i.initialFocus&&o.focusTarget&&(u||(o.focus(o.focusTarget),l(!0)))},[i.initialFocus,u,o.focus,o.focusTarget,o]);var c=[i.classNames.root,i.className];i.numberOfMonths>1&&c.push(i.classNames.multiple_months),i.showWeekNumber&&c.push(i.classNames.with_weeknumber);var f=Rt(Rt({},i.styles.root),i.style),h=Object.keys(r).filter(function(m){return m.startsWith("data-")}).reduce(function(m,v){var b;return Rt(Rt({},m),(b={},b[v]=r[v],b))},{}),p=(n=(t=r.components)===null||t===void 0?void 0:t.Months)!==null&&n!==void 0?n:kUe;return I.jsx("div",Rt({className:c.join(" "),style:f,dir:i.dir,id:i.id,nonce:r.nonce,title:r.title,lang:r.lang},h,{children:I.jsx(p,{children:a.displayMonths.map(function(m,v){return I.jsx(PUe,{displayIndex:v,displayMonth:m},v)})})}))}function MUe(e){var t=e.children,n=tze(e,["children"]);return I.jsx(xze,{initialProps:n,children:I.jsx(Tze,{children:I.jsx(fUe,{initialProps:n,children:I.jsx(Bze,{initialProps:n,children:I.jsx(Vze,{initialProps:n,children:I.jsx(Xze,{children:I.jsx(lUe,{children:t})})})})})})})}function nQe(e){return I.jsx(MUe,Rt({},e,{children:I.jsx(TUe,{initialProps:e})}))}var JA="Popover",[Qq,rQe]=vi(JA,[zl]),Km=zl(),[RUe,Yl]=Qq(JA),Jq=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!1}=e,s=Km(t),u=y.useRef(null),[l,c]=y.useState(!1),[f=!1,h]=Za({prop:r,defaultProp:i,onChange:o});return I.jsx(a2,{...s,children:I.jsx(RUe,{scope:t,contentId:Fo(),triggerRef:u,open:f,onOpenChange:h,onOpenToggle:y.useCallback(()=>h(p=>!p),[h]),hasCustomAnchor:l,onCustomAnchorAdd:y.useCallback(()=>c(!0),[]),onCustomAnchorRemove:y.useCallback(()=>c(!1),[]),modal:a,children:n})})};Jq.displayName=JA;var eG="PopoverAnchor",DUe=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Yl(eG,n),o=Km(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:s}=i;return y.useEffect(()=>(a(),()=>s()),[a,s]),I.jsx(Am,{...o,...r,ref:t})});DUe.displayName=eG;var tG="PopoverTrigger",nG=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Yl(tG,n),o=Km(n),a=Yt(t,i.triggerRef),s=I.jsx(pt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":sG(i.open),...r,ref:a,onClick:Ye(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:I.jsx(Am,{asChild:!0,...o,children:s})});nG.displayName=tG;var eP="PopoverPortal",[$Ue,IUe]=Qq(eP,{forceMount:void 0}),rG=e=>{const{__scopePopover:t,forceMount:n,children:r,container:i}=e,o=Yl(eP,t);return I.jsx($Ue,{scope:t,forceMount:n,children:I.jsx(Gr,{present:n||o.open,children:I.jsx(Lh,{asChild:!0,container:i,children:r})})})};rG.displayName=eP;var Ch="PopoverContent",iG=y.forwardRef((e,t)=>{const n=IUe(Ch,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,o=Yl(Ch,e.__scopePopover);return I.jsx(Gr,{present:r||o.open,children:o.modal?I.jsx(NUe,{...i,ref:t}):I.jsx(LUe,{...i,ref:t})})});iG.displayName=Ch;var NUe=y.forwardRef((e,t)=>{const n=Yl(Ch,e.__scopePopover),r=y.useRef(null),i=Yt(t,r),o=y.useRef(!1);return y.useEffect(()=>{const a=r.current;if(a)return Cm(a)},[]),I.jsx(Sm,{as:Al,allowPinchZoom:!0,children:I.jsx(oG,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ye(e.onCloseAutoFocus,a=>{a.preventDefault(),o.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Ye(e.onPointerDownOutside,a=>{const s=a.detail.originalEvent,u=s.button===0&&s.ctrlKey===!0,l=s.button===2||u;o.current=l},{checkForDefaultPrevented:!1}),onFocusOutside:Ye(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),LUe=y.forwardRef((e,t)=>{const n=Yl(Ch,e.__scopePopover),r=y.useRef(!1),i=y.useRef(!1);return I.jsx(oG,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{e.onCloseAutoFocus?.(o),o.defaultPrevented||(r.current||n.triggerRef.current?.focus(),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{e.onInteractOutside?.(o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;n.triggerRef.current?.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),oG=y.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,disableOutsidePointerEvents:a,onEscapeKeyDown:s,onPointerDownOutside:u,onFocusOutside:l,onInteractOutside:c,...f}=e,h=Yl(Ch,n),p=Km(n);return n2(),I.jsx(_m,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:I.jsx(Nh,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:c,onEscapeKeyDown:s,onPointerDownOutside:u,onFocusOutside:l,onDismiss:()=>h.onOpenChange(!1),children:I.jsx(s2,{"data-state":sG(h.open),role:"dialog",id:h.contentId,...p,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),aG="PopoverClose",FUe=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Yl(aG,n);return I.jsx(pt.button,{type:"button",...r,ref:t,onClick:Ye(e.onClick,()=>i.onOpenChange(!1))})});FUe.displayName=aG;var jUe="PopoverArrow",BUe=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Km(n);return I.jsx(u2,{...i,...r,ref:t})});BUe.displayName=jUe;function sG(e){return e?"open":"closed"}var iQe=Jq,oQe=nG,aQe=rG,sQe=iG,gx={exports:{}};/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */gx.exports;(function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",l=500,c="__lodash_placeholder__",f=1,h=2,p=4,m=1,v=2,b=1,w=2,x=4,S=8,O=16,E=32,C=64,k=128,M=256,L=512,U=30,H="...",V=800,ne=16,Z=1,G=2,q=3,W=1/0,j=9007199254740991,K=17976931348623157e292,Y=NaN,oe=4294967295,ae=oe-1,ue=oe>>>1,be=[["ary",k],["bind",b],["bindKey",w],["curry",S],["curryRight",O],["flip",L],["partial",E],["partialRight",C],["rearg",M]],we="[object Arguments]",He="[object Array]",Ee="[object AsyncFunction]",it="[object Boolean]",ke="[object Date]",Le="[object DOMException]",De="[object Error]",me="[object Function]",yt="[object GeneratorFunction]",lt="[object Map]",Nt="[object Number]",yn="[object Null]",nn="[object Object]",te="[object Promise]",de="[object Proxy]",ge="[object RegExp]",ze="[object Set]",Fe="[object String]",Ae="[object Symbol]",tt="[object Undefined]",mt="[object WeakMap]",xn="[object WeakSet]",Kt="[object ArrayBuffer]",wn="[object DataView]",Ii="[object Float32Array]",br="[object Float64Array]",yi="[object Int8Array]",sr="[object Int16Array]",si="[object Int32Array]",bi="[object Uint8Array]",Rr="[object Uint8ClampedArray]",Xi="[object Uint16Array]",yo="[object Uint32Array]",xi=/\b__p \+= '';/g,Dr=/\b(__p \+=) '' \+/g,_a=/(__e\(.*?\)|\b__t\)) \+\n'';/g,_t=/&(?:amp|lt|gt|quot|#39);/g,hn=/[&<>"']/g,_n=RegExp(_t.source),qn=RegExp(hn.source),ur=/<%-([\s\S]+?)%>/g,Xr=/<%([\s\S]+?)%>/g,bo=/<%=([\s\S]+?)%>/g,Zl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Sf=/^\w*$/,re=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,se=/[\\^$.*+?()[\]{}|]/g,ve=RegExp(se.source),T=/^\s+/,D=/\s/,$=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,A=/\{\n\/\* \[wrapped with (.+)\] \*/,N=/,? & /,Q=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ee=/[()=,{}\[\]\/\s]/,fe=/\\(\\)?/g,_e=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,je=/\w*$/,We=/^[-+]0x[0-9a-f]+$/i,ct=/^0b[01]+$/i,Ie=/^\[object .+?Constructor\]$/,nt=/^0o[0-7]+$/i,bt=/^(?:0|[1-9]\d*)$/,Ot=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,gt=/($^)/,ht=/['\n\r\u2028\u2029\\]/g,xt="\\ud800-\\udfff",wt="\\u0300-\\u036f",Qe="\\ufe20-\\ufe2f",ut="\\u20d0-\\u20ff",Xe=wt+Qe+ut,Ne="\\u2700-\\u27bf",Ke="a-z\\xdf-\\xf6\\xf8-\\xff",Ge="\\xac\\xb1\\xd7\\xf7",pe="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",he="\\u2000-\\u206f",Re=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Oe="A-Z\\xc0-\\xd6\\xd8-\\xde",Pe="\\ufe0e\\ufe0f",Be=Ge+pe+he+Re,vt="['’]",Lt="["+xt+"]",Ft="["+Be+"]",$t="["+Xe+"]",J="\\d+",Zt="["+Ne+"]",sn="["+Ke+"]",un="[^"+xt+Be+J+Ne+Ke+Oe+"]",jt="\\ud83c[\\udffb-\\udfff]",ln="(?:"+$t+"|"+jt+")",rn="[^"+xt+"]",Gn="(?:\\ud83c[\\udde6-\\uddff]){2}",mn="[\\ud800-\\udbff][\\udc00-\\udfff]",Pn="["+Oe+"]",Yn="\\u200d",Zn="(?:"+sn+"|"+un+")",xr="(?:"+Pn+"|"+un+")",$r="(?:"+vt+"(?:d|ll|m|re|s|t|ve))?",Ir="(?:"+vt+"(?:D|LL|M|RE|S|T|VE))?",Nr=ln+"?",MP="["+Pe+"]?",hZ="(?:"+Yn+"(?:"+[rn,Gn,mn].join("|")+")"+MP+Nr+")*",pZ="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",gZ="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",RP=MP+Nr+hZ,mZ="(?:"+[Zt,Gn,mn].join("|")+")"+RP,vZ="(?:"+[rn+$t+"?",$t,Gn,mn,Lt].join("|")+")",yZ=RegExp(vt,"g"),bZ=RegExp($t,"g"),_w=RegExp(jt+"(?="+jt+")|"+vZ+RP,"g"),xZ=RegExp([Pn+"?"+sn+"+"+$r+"(?="+[Ft,Pn,"$"].join("|")+")",xr+"+"+Ir+"(?="+[Ft,Pn+Zn,"$"].join("|")+")",Pn+"?"+Zn+"+"+$r,Pn+"+"+Ir,gZ,pZ,J,mZ].join("|"),"g"),wZ=RegExp("["+Yn+xt+Xe+Pe+"]"),_Z=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,SZ=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],CZ=-1,Xn={};Xn[Ii]=Xn[br]=Xn[yi]=Xn[sr]=Xn[si]=Xn[bi]=Xn[Rr]=Xn[Xi]=Xn[yo]=!0,Xn[we]=Xn[He]=Xn[Kt]=Xn[it]=Xn[wn]=Xn[ke]=Xn[De]=Xn[me]=Xn[lt]=Xn[Nt]=Xn[nn]=Xn[ge]=Xn[ze]=Xn[Fe]=Xn[mt]=!1;var Un={};Un[we]=Un[He]=Un[Kt]=Un[wn]=Un[it]=Un[ke]=Un[Ii]=Un[br]=Un[yi]=Un[sr]=Un[si]=Un[lt]=Un[Nt]=Un[nn]=Un[ge]=Un[ze]=Un[Fe]=Un[Ae]=Un[bi]=Un[Rr]=Un[Xi]=Un[yo]=!0,Un[De]=Un[me]=Un[mt]=!1;var EZ={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},OZ={"&":"&","<":"<",">":">",'"':""","'":"'"},AZ={"&":"&","<":"<",">":">",""":'"',"'":"'"},PZ={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},kZ=parseFloat,TZ=parseInt,DP=typeof La=="object"&&La&&La.Object===Object&&La,MZ=typeof self=="object"&&self&&self.Object===Object&&self,ui=DP||MZ||Function("return this")(),Sw=t&&!t.nodeType&&t,Xl=Sw&&!0&&e&&!e.nodeType&&e,$P=Xl&&Xl.exports===Sw,Cw=$P&&DP.process,qo=function(){try{var le=Xl&&Xl.require&&Xl.require("util").types;return le||Cw&&Cw.binding&&Cw.binding("util")}catch{}}(),IP=qo&&qo.isArrayBuffer,NP=qo&&qo.isDate,LP=qo&&qo.isMap,FP=qo&&qo.isRegExp,jP=qo&&qo.isSet,BP=qo&&qo.isTypedArray;function xo(le,Ce,ye){switch(ye.length){case 0:return le.call(Ce);case 1:return le.call(Ce,ye[0]);case 2:return le.call(Ce,ye[0],ye[1]);case 3:return le.call(Ce,ye[0],ye[1],ye[2])}return le.apply(Ce,ye)}function RZ(le,Ce,ye,ot){for(var Bt=-1,Sn=le==null?0:le.length;++Bt-1}function Ew(le,Ce,ye){for(var ot=-1,Bt=le==null?0:le.length;++ot-1;);return ye}function GP(le,Ce){for(var ye=le.length;ye--&&Cf(Ce,le[ye],0)>-1;);return ye}function zZ(le,Ce){for(var ye=le.length,ot=0;ye--;)le[ye]===Ce&&++ot;return ot}var UZ=kw(EZ),VZ=kw(OZ);function WZ(le){return"\\"+PZ[le]}function HZ(le,Ce){return le==null?n:le[Ce]}function Ef(le){return wZ.test(le)}function KZ(le){return _Z.test(le)}function qZ(le){for(var Ce,ye=[];!(Ce=le.next()).done;)ye.push(Ce.value);return ye}function Dw(le){var Ce=-1,ye=Array(le.size);return le.forEach(function(ot,Bt){ye[++Ce]=[Bt,ot]}),ye}function YP(le,Ce){return function(ye){return le(Ce(ye))}}function Nu(le,Ce){for(var ye=-1,ot=le.length,Bt=0,Sn=[];++ye-1}function $X(d,g){var _=this.__data__,P=hv(_,d);return P<0?(++this.size,_.push([d,g])):_[P][1]=g,this}Ls.prototype.clear=TX,Ls.prototype.delete=MX,Ls.prototype.get=RX,Ls.prototype.has=DX,Ls.prototype.set=$X;function Fs(d){var g=-1,_=d==null?0:d.length;for(this.clear();++g<_;){var P=d[g];this.set(P[0],P[1])}}function IX(){this.size=0,this.__data__={hash:new Jl,map:new(sp||Ls),string:new Jl}}function NX(d){var g=Ev(this,d).delete(d);return this.size-=g?1:0,g}function LX(d){return Ev(this,d).get(d)}function FX(d){return Ev(this,d).has(d)}function jX(d,g){var _=Ev(this,d),P=_.size;return _.set(d,g),this.size+=_.size==P?0:1,this}Fs.prototype.clear=IX,Fs.prototype.delete=NX,Fs.prototype.get=LX,Fs.prototype.has=FX,Fs.prototype.set=jX;function ec(d){var g=-1,_=d==null?0:d.length;for(this.__data__=new Fs;++g<_;)this.add(d[g])}function BX(d){return this.__data__.set(d,u),this}function zX(d){return this.__data__.has(d)}ec.prototype.add=ec.prototype.push=BX,ec.prototype.has=zX;function Ca(d){var g=this.__data__=new Ls(d);this.size=g.size}function UX(){this.__data__=new Ls,this.size=0}function VX(d){var g=this.__data__,_=g.delete(d);return this.size=g.size,_}function WX(d){return this.__data__.get(d)}function HX(d){return this.__data__.has(d)}function KX(d,g){var _=this.__data__;if(_ instanceof Ls){var P=_.__data__;if(!sp||P.length=g?d:g)),d}function Xo(d,g,_,P,R,z){var X,ie=g&f,ce=g&h,Te=g&p;if(_&&(X=R?_(d,P,R,z):_(d)),X!==n)return X;if(!lr(d))return d;var Me=Wt(d);if(Me){if(X=FQ(d),!ie)return Qi(d,X)}else{var $e=_i(d),Je=$e==me||$e==yt;if(Uu(d))return M8(d,ie);if($e==nn||$e==we||Je&&!R){if(X=ce||Je?{}:Z8(d),!ie)return ce?AQ(d,ZX(X,d)):OQ(d,s8(X,d))}else{if(!Un[$e])return R?d:{};X=jQ(d,$e,ie)}}z||(z=new Ca);var ft=z.get(d);if(ft)return ft;z.set(d,X),Ek(d)?d.forEach(function(Pt){X.add(Xo(Pt,g,_,Pt,d,z))}):Sk(d)&&d.forEach(function(Pt,on){X.set(on,Xo(Pt,g,_,on,d,z))});var At=Te?ce?o_:i_:ce?eo:Qr,Jt=Me?n:At(d);return Go(Jt||d,function(Pt,on){Jt&&(on=Pt,Pt=d[on]),fp(X,on,Xo(Pt,g,_,on,d,z))}),X}function XX(d){var g=Qr(d);return function(_){return u8(_,d,g)}}function u8(d,g,_){var P=_.length;if(d==null)return!P;for(d=jn(d);P--;){var R=_[P],z=g[R],X=d[R];if(X===n&&!(R in d)||!z(X))return!1}return!0}function l8(d,g,_){if(typeof d!="function")throw new Yo(a);return yp(function(){d.apply(n,_)},g)}function dp(d,g,_,P){var R=-1,z=Zm,X=!0,ie=d.length,ce=[],Te=g.length;if(!ie)return ce;_&&(g=rr(g,wo(_))),P?(z=Ew,X=!1):g.length>=i&&(z=op,X=!1,g=new ec(g));e:for(;++RR?0:R+_),P=P===n||P>R?R:Xt(P),P<0&&(P+=R),P=_>P?0:Ak(P);_0&&_(ie)?g>1?li(ie,g-1,_,P,R):Iu(R,ie):P||(R[R.length]=ie)}return R}var Bw=L8(),d8=L8(!0);function os(d,g){return d&&Bw(d,g,Qr)}function zw(d,g){return d&&d8(d,g,Qr)}function gv(d,g){return $u(g,function(_){return Vs(d[_])})}function nc(d,g){g=Bu(g,d);for(var _=0,P=g.length;d!=null&&_g}function eQ(d,g){return d!=null&&kn.call(d,g)}function tQ(d,g){return d!=null&&g in jn(d)}function nQ(d,g,_){return d>=wi(g,_)&&d=120&&Me.length>=120)?new ec(X&&Me):n}Me=d[0];var $e=-1,Je=ie[0];e:for(;++$e-1;)ie!==d&&av.call(ie,ce,1),av.call(d,ce,1);return d}function S8(d,g){for(var _=d?g.length:0,P=_-1;_--;){var R=g[_];if(_==P||R!==z){var z=R;Us(R)?av.call(d,R,1):Xw(d,R)}}return d}function Gw(d,g){return d+lv(r8()*(g-d+1))}function gQ(d,g,_,P){for(var R=-1,z=Fr(uv((g-d)/(_||1)),0),X=ye(z);z--;)X[P?z:++R]=d,d+=_;return X}function Yw(d,g){var _="";if(!d||g<1||g>j)return _;do g%2&&(_+=d),g=lv(g/2),g&&(d+=d);while(g);return _}function tn(d,g){return d_(J8(d,g,to),d+"")}function mQ(d){return a8(Nf(d))}function vQ(d,g){var _=Nf(d);return Ov(_,tc(g,0,_.length))}function gp(d,g,_,P){if(!lr(d))return d;g=Bu(g,d);for(var R=-1,z=g.length,X=z-1,ie=d;ie!=null&&++RR?0:R+g),_=_>R?R:_,_<0&&(_+=R),R=g>_?0:_-g>>>0,g>>>=0;for(var z=ye(R);++P>>1,X=d[z];X!==null&&!So(X)&&(_?X<=g:X=i){var Te=g?null:MQ(d);if(Te)return Qm(Te);X=!1,R=op,ce=new ec}else ce=g?[]:ie;e:for(;++P=P?d:Qo(d,g,_)}var T8=uX||function(d){return ui.clearTimeout(d)};function M8(d,g){if(g)return d.slice();var _=d.length,P=QP?QP(_):new d.constructor(_);return d.copy(P),P}function t_(d){var g=new d.constructor(d.byteLength);return new iv(g).set(new iv(d)),g}function _Q(d,g){var _=g?t_(d.buffer):d.buffer;return new d.constructor(_,d.byteOffset,d.byteLength)}function SQ(d){var g=new d.constructor(d.source,je.exec(d));return g.lastIndex=d.lastIndex,g}function CQ(d){return cp?jn(cp.call(d)):{}}function R8(d,g){var _=g?t_(d.buffer):d.buffer;return new d.constructor(_,d.byteOffset,d.length)}function D8(d,g){if(d!==g){var _=d!==n,P=d===null,R=d===d,z=So(d),X=g!==n,ie=g===null,ce=g===g,Te=So(g);if(!ie&&!Te&&!z&&d>g||z&&X&&ce&&!ie&&!Te||P&&X&&ce||!_&&ce||!R)return 1;if(!P&&!z&&!Te&&d=ie)return ce;var Te=_[P];return ce*(Te=="desc"?-1:1)}}return d.index-g.index}function $8(d,g,_,P){for(var R=-1,z=d.length,X=_.length,ie=-1,ce=g.length,Te=Fr(z-X,0),Me=ye(ce+Te),$e=!P;++ie1?_[R-1]:n,X=R>2?_[2]:n;for(z=d.length>3&&typeof z=="function"?(R--,z):n,X&&Li(_[0],_[1],X)&&(z=R<3?n:z,R=1),g=jn(g);++P-1?R[z?g[X]:X]:n}}function B8(d){return zs(function(g){var _=g.length,P=_,R=Zo.prototype.thru;for(d&&g.reverse();P--;){var z=g[P];if(typeof z!="function")throw new Yo(a);if(R&&!X&&Cv(z)=="wrapper")var X=new Zo([],!0)}for(P=X?P:_;++P<_;){z=g[P];var ie=Cv(z),ce=ie=="wrapper"?a_(z):n;ce&&c_(ce[0])&&ce[1]==(k|S|E|M)&&!ce[4].length&&ce[9]==1?X=X[Cv(ce[0])].apply(X,ce[3]):X=z.length==1&&c_(z)?X[ie]():X.thru(z)}return function(){var Te=arguments,Me=Te[0];if(X&&Te.length==1&&Wt(Me))return X.plant(Me).value();for(var $e=0,Je=_?g[$e].apply(this,Te):Me;++$e<_;)Je=g[$e].call(this,Je);return Je}})}function xv(d,g,_,P,R,z,X,ie,ce,Te){var Me=g&k,$e=g&b,Je=g&w,ft=g&(S|O),At=g&L,Jt=Je?n:mp(d);function Pt(){for(var on=arguments.length,pn=ye(on),Co=on;Co--;)pn[Co]=arguments[Co];if(ft)var Fi=$f(Pt),Eo=zZ(pn,Fi);if(P&&(pn=$8(pn,P,R,ft)),z&&(pn=I8(pn,z,X,ft)),on-=Eo,ft&&on1&&pn.reverse(),Me&&ceie))return!1;var Te=z.get(d),Me=z.get(g);if(Te&&Me)return Te==g&&Me==d;var $e=-1,Je=!0,ft=_&v?new ec:n;for(z.set(d,g),z.set(g,d);++$e1?"& ":"")+g[P],g=g.join(_>2?", ":" "),d.replace($,`{ +/* [wrapped with `+g+`] */ +`)}function zQ(d){return Wt(d)||oc(d)||!!(t8&&d&&d[t8])}function Us(d,g){var _=typeof d;return g=g??j,!!g&&(_=="number"||_!="symbol"&&bt.test(d))&&d>-1&&d%1==0&&d0){if(++g>=V)return arguments[0]}else g=0;return d.apply(n,arguments)}}function Ov(d,g){var _=-1,P=d.length,R=P-1;for(g=g===n?P:g;++_1?d[g-1]:n;return _=typeof _=="function"?(d.pop(),_):n,fk(d,_)});function dk(d){var g=B(d);return g.__chain__=!0,g}function QJ(d,g){return g(d),d}function Av(d,g){return g(d)}var JJ=zs(function(d){var g=d.length,_=g?d[0]:0,P=this.__wrapped__,R=function(z){return jw(z,d)};return g>1||this.__actions__.length||!(P instanceof cn)||!Us(_)?this.thru(R):(P=P.slice(_,+_+(g?1:0)),P.__actions__.push({func:Av,args:[R],thisArg:n}),new Zo(P,this.__chain__).thru(function(z){return g&&!z.length&&z.push(n),z}))});function eee(){return dk(this)}function tee(){return new Zo(this.value(),this.__chain__)}function nee(){this.__values__===n&&(this.__values__=Ok(this.value()));var d=this.__index__>=this.__values__.length,g=d?n:this.__values__[this.__index__++];return{done:d,value:g}}function ree(){return this}function iee(d){for(var g,_=this;_ instanceof dv;){var P=ok(_);P.__index__=0,P.__values__=n,g?R.__wrapped__=P:g=P;var R=P;_=_.__wrapped__}return R.__wrapped__=d,g}function oee(){var d=this.__wrapped__;if(d instanceof cn){var g=d;return this.__actions__.length&&(g=new cn(this)),g=g.reverse(),g.__actions__.push({func:Av,args:[h_],thisArg:n}),new Zo(g,this.__chain__)}return this.thru(h_)}function aee(){return P8(this.__wrapped__,this.__actions__)}var see=bv(function(d,g,_){kn.call(d,_)?++d[_]:js(d,_,1)});function uee(d,g,_){var P=Wt(d)?zP:QX;return _&&Li(d,g,_)&&(g=n),P(d,Et(g,3))}function lee(d,g){var _=Wt(d)?$u:f8;return _(d,Et(g,3))}var cee=j8(ak),fee=j8(sk);function dee(d,g){return li(Pv(d,g),1)}function hee(d,g){return li(Pv(d,g),W)}function pee(d,g,_){return _=_===n?1:Xt(_),li(Pv(d,g),_)}function hk(d,g){var _=Wt(d)?Go:Fu;return _(d,Et(g,3))}function pk(d,g){var _=Wt(d)?DZ:c8;return _(d,Et(g,3))}var gee=bv(function(d,g,_){kn.call(d,_)?d[_].push(g):js(d,_,[g])});function mee(d,g,_,P){d=Ji(d)?d:Nf(d),_=_&&!P?Xt(_):0;var R=d.length;return _<0&&(_=Fr(R+_,0)),Dv(d)?_<=R&&d.indexOf(g,_)>-1:!!R&&Cf(d,g,_)>-1}var vee=tn(function(d,g,_){var P=-1,R=typeof g=="function",z=Ji(d)?ye(d.length):[];return Fu(d,function(X){z[++P]=R?xo(g,X,_):hp(X,g,_)}),z}),yee=bv(function(d,g,_){js(d,_,g)});function Pv(d,g){var _=Wt(d)?rr:v8;return _(d,Et(g,3))}function bee(d,g,_,P){return d==null?[]:(Wt(g)||(g=g==null?[]:[g]),_=P?n:_,Wt(_)||(_=_==null?[]:[_]),w8(d,g,_))}var xee=bv(function(d,g,_){d[_?0:1].push(g)},function(){return[[],[]]});function wee(d,g,_){var P=Wt(d)?Ow:HP,R=arguments.length<3;return P(d,Et(g,4),_,R,Fu)}function _ee(d,g,_){var P=Wt(d)?$Z:HP,R=arguments.length<3;return P(d,Et(g,4),_,R,c8)}function See(d,g){var _=Wt(d)?$u:f8;return _(d,Mv(Et(g,3)))}function Cee(d){var g=Wt(d)?a8:mQ;return g(d)}function Eee(d,g,_){(_?Li(d,g,_):g===n)?g=1:g=Xt(g);var P=Wt(d)?qX:vQ;return P(d,g)}function Oee(d){var g=Wt(d)?GX:bQ;return g(d)}function Aee(d){if(d==null)return 0;if(Ji(d))return Dv(d)?Of(d):d.length;var g=_i(d);return g==lt||g==ze?d.size:Hw(d).length}function Pee(d,g,_){var P=Wt(d)?Aw:xQ;return _&&Li(d,g,_)&&(g=n),P(d,Et(g,3))}var kee=tn(function(d,g){if(d==null)return[];var _=g.length;return _>1&&Li(d,g[0],g[1])?g=[]:_>2&&Li(g[0],g[1],g[2])&&(g=[g[0]]),w8(d,li(g,1),[])}),kv=lX||function(){return ui.Date.now()};function Tee(d,g){if(typeof g!="function")throw new Yo(a);return d=Xt(d),function(){if(--d<1)return g.apply(this,arguments)}}function gk(d,g,_){return g=_?n:g,g=d&&g==null?d.length:g,Bs(d,k,n,n,n,n,g)}function mk(d,g){var _;if(typeof g!="function")throw new Yo(a);return d=Xt(d),function(){return--d>0&&(_=g.apply(this,arguments)),d<=1&&(g=n),_}}var g_=tn(function(d,g,_){var P=b;if(_.length){var R=Nu(_,$f(g_));P|=E}return Bs(d,P,g,_,R)}),vk=tn(function(d,g,_){var P=b|w;if(_.length){var R=Nu(_,$f(vk));P|=E}return Bs(g,P,d,_,R)});function yk(d,g,_){g=_?n:g;var P=Bs(d,S,n,n,n,n,n,g);return P.placeholder=yk.placeholder,P}function bk(d,g,_){g=_?n:g;var P=Bs(d,O,n,n,n,n,n,g);return P.placeholder=bk.placeholder,P}function xk(d,g,_){var P,R,z,X,ie,ce,Te=0,Me=!1,$e=!1,Je=!0;if(typeof d!="function")throw new Yo(a);g=ea(g)||0,lr(_)&&(Me=!!_.leading,$e="maxWait"in _,z=$e?Fr(ea(_.maxWait)||0,g):z,Je="trailing"in _?!!_.trailing:Je);function ft(_r){var Oa=P,Hs=R;return P=R=n,Te=_r,X=d.apply(Hs,Oa),X}function At(_r){return Te=_r,ie=yp(on,g),Me?ft(_r):X}function Jt(_r){var Oa=_r-ce,Hs=_r-Te,jk=g-Oa;return $e?wi(jk,z-Hs):jk}function Pt(_r){var Oa=_r-ce,Hs=_r-Te;return ce===n||Oa>=g||Oa<0||$e&&Hs>=z}function on(){var _r=kv();if(Pt(_r))return pn(_r);ie=yp(on,Jt(_r))}function pn(_r){return ie=n,Je&&P?ft(_r):(P=R=n,X)}function Co(){ie!==n&&T8(ie),Te=0,P=ce=R=ie=n}function Fi(){return ie===n?X:pn(kv())}function Eo(){var _r=kv(),Oa=Pt(_r);if(P=arguments,R=this,ce=_r,Oa){if(ie===n)return At(ce);if($e)return T8(ie),ie=yp(on,g),ft(ce)}return ie===n&&(ie=yp(on,g)),X}return Eo.cancel=Co,Eo.flush=Fi,Eo}var Mee=tn(function(d,g){return l8(d,1,g)}),Ree=tn(function(d,g,_){return l8(d,ea(g)||0,_)});function Dee(d){return Bs(d,L)}function Tv(d,g){if(typeof d!="function"||g!=null&&typeof g!="function")throw new Yo(a);var _=function(){var P=arguments,R=g?g.apply(this,P):P[0],z=_.cache;if(z.has(R))return z.get(R);var X=d.apply(this,P);return _.cache=z.set(R,X)||z,X};return _.cache=new(Tv.Cache||Fs),_}Tv.Cache=Fs;function Mv(d){if(typeof d!="function")throw new Yo(a);return function(){var g=arguments;switch(g.length){case 0:return!d.call(this);case 1:return!d.call(this,g[0]);case 2:return!d.call(this,g[0],g[1]);case 3:return!d.call(this,g[0],g[1],g[2])}return!d.apply(this,g)}}function $ee(d){return mk(2,d)}var Iee=wQ(function(d,g){g=g.length==1&&Wt(g[0])?rr(g[0],wo(Et())):rr(li(g,1),wo(Et()));var _=g.length;return tn(function(P){for(var R=-1,z=wi(P.length,_);++R=g}),oc=p8(function(){return arguments}())?p8:function(d){return pr(d)&&kn.call(d,"callee")&&!e8.call(d,"callee")},Wt=ye.isArray,Zee=IP?wo(IP):iQ;function Ji(d){return d!=null&&Rv(d.length)&&!Vs(d)}function wr(d){return pr(d)&&Ji(d)}function Xee(d){return d===!0||d===!1||pr(d)&&Ni(d)==it}var Uu=fX||A_,Qee=NP?wo(NP):oQ;function Jee(d){return pr(d)&&d.nodeType===1&&!bp(d)}function ete(d){if(d==null)return!0;if(Ji(d)&&(Wt(d)||typeof d=="string"||typeof d.splice=="function"||Uu(d)||If(d)||oc(d)))return!d.length;var g=_i(d);if(g==lt||g==ze)return!d.size;if(vp(d))return!Hw(d).length;for(var _ in d)if(kn.call(d,_))return!1;return!0}function tte(d,g){return pp(d,g)}function nte(d,g,_){_=typeof _=="function"?_:n;var P=_?_(d,g):n;return P===n?pp(d,g,n,_):!!P}function v_(d){if(!pr(d))return!1;var g=Ni(d);return g==De||g==Le||typeof d.message=="string"&&typeof d.name=="string"&&!bp(d)}function rte(d){return typeof d=="number"&&n8(d)}function Vs(d){if(!lr(d))return!1;var g=Ni(d);return g==me||g==yt||g==Ee||g==de}function _k(d){return typeof d=="number"&&d==Xt(d)}function Rv(d){return typeof d=="number"&&d>-1&&d%1==0&&d<=j}function lr(d){var g=typeof d;return d!=null&&(g=="object"||g=="function")}function pr(d){return d!=null&&typeof d=="object"}var Sk=LP?wo(LP):sQ;function ite(d,g){return d===g||Ww(d,g,s_(g))}function ote(d,g,_){return _=typeof _=="function"?_:n,Ww(d,g,s_(g),_)}function ate(d){return Ck(d)&&d!=+d}function ste(d){if(WQ(d))throw new Bt(o);return g8(d)}function ute(d){return d===null}function lte(d){return d==null}function Ck(d){return typeof d=="number"||pr(d)&&Ni(d)==Nt}function bp(d){if(!pr(d)||Ni(d)!=nn)return!1;var g=ov(d);if(g===null)return!0;var _=kn.call(g,"constructor")&&g.constructor;return typeof _=="function"&&_ instanceof _&&tv.call(_)==oX}var y_=FP?wo(FP):uQ;function cte(d){return _k(d)&&d>=-j&&d<=j}var Ek=jP?wo(jP):lQ;function Dv(d){return typeof d=="string"||!Wt(d)&&pr(d)&&Ni(d)==Fe}function So(d){return typeof d=="symbol"||pr(d)&&Ni(d)==Ae}var If=BP?wo(BP):cQ;function fte(d){return d===n}function dte(d){return pr(d)&&_i(d)==mt}function hte(d){return pr(d)&&Ni(d)==xn}var pte=Sv(Kw),gte=Sv(function(d,g){return d<=g});function Ok(d){if(!d)return[];if(Ji(d))return Dv(d)?Sa(d):Qi(d);if(ap&&d[ap])return qZ(d[ap]());var g=_i(d),_=g==lt?Dw:g==ze?Qm:Nf;return _(d)}function Ws(d){if(!d)return d===0?d:0;if(d=ea(d),d===W||d===-W){var g=d<0?-1:1;return g*K}return d===d?d:0}function Xt(d){var g=Ws(d),_=g%1;return g===g?_?g-_:g:0}function Ak(d){return d?tc(Xt(d),0,oe):0}function ea(d){if(typeof d=="number")return d;if(So(d))return Y;if(lr(d)){var g=typeof d.valueOf=="function"?d.valueOf():d;d=lr(g)?g+"":g}if(typeof d!="string")return d===0?d:+d;d=KP(d);var _=ct.test(d);return _||nt.test(d)?TZ(d.slice(2),_?2:8):We.test(d)?Y:+d}function Pk(d){return as(d,eo(d))}function mte(d){return d?tc(Xt(d),-j,j):d===0?d:0}function On(d){return d==null?"":_o(d)}var vte=Rf(function(d,g){if(vp(g)||Ji(g)){as(g,Qr(g),d);return}for(var _ in g)kn.call(g,_)&&fp(d,_,g[_])}),kk=Rf(function(d,g){as(g,eo(g),d)}),$v=Rf(function(d,g,_,P){as(g,eo(g),d,P)}),yte=Rf(function(d,g,_,P){as(g,Qr(g),d,P)}),bte=zs(jw);function xte(d,g){var _=Mf(d);return g==null?_:s8(_,g)}var wte=tn(function(d,g){d=jn(d);var _=-1,P=g.length,R=P>2?g[2]:n;for(R&&Li(g[0],g[1],R)&&(P=1);++_1),z}),as(d,o_(d),_),P&&(_=Xo(_,f|h|p,RQ));for(var R=g.length;R--;)Xw(_,g[R]);return _});function jte(d,g){return Mk(d,Mv(Et(g)))}var Bte=zs(function(d,g){return d==null?{}:hQ(d,g)});function Mk(d,g){if(d==null)return{};var _=rr(o_(d),function(P){return[P]});return g=Et(g),_8(d,_,function(P,R){return g(P,R[0])})}function zte(d,g,_){g=Bu(g,d);var P=-1,R=g.length;for(R||(R=1,d=n);++Pg){var P=d;d=g,g=P}if(_||d%1||g%1){var R=r8();return wi(d+R*(g-d+kZ("1e-"+((R+"").length-1))),g)}return Gw(d,g)}var Qte=Df(function(d,g,_){return g=g.toLowerCase(),d+(_?$k(g):g)});function $k(d){return w_(On(d).toLowerCase())}function Ik(d){return d=On(d),d&&d.replace(Ot,UZ).replace(bZ,"")}function Jte(d,g,_){d=On(d),g=_o(g);var P=d.length;_=_===n?P:tc(Xt(_),0,P);var R=_;return _-=g.length,_>=0&&d.slice(_,R)==g}function ene(d){return d=On(d),d&&qn.test(d)?d.replace(hn,VZ):d}function tne(d){return d=On(d),d&&ve.test(d)?d.replace(se,"\\$&"):d}var nne=Df(function(d,g,_){return d+(_?"-":"")+g.toLowerCase()}),rne=Df(function(d,g,_){return d+(_?" ":"")+g.toLowerCase()}),ine=F8("toLowerCase");function one(d,g,_){d=On(d),g=Xt(g);var P=g?Of(d):0;if(!g||P>=g)return d;var R=(g-P)/2;return _v(lv(R),_)+d+_v(uv(R),_)}function ane(d,g,_){d=On(d),g=Xt(g);var P=g?Of(d):0;return g&&P>>0,_?(d=On(d),d&&(typeof g=="string"||g!=null&&!y_(g))&&(g=_o(g),!g&&Ef(d))?zu(Sa(d),0,_):d.split(g,_)):[]}var hne=Df(function(d,g,_){return d+(_?" ":"")+w_(g)});function pne(d,g,_){return d=On(d),_=_==null?0:tc(Xt(_),0,d.length),g=_o(g),d.slice(_,_+g.length)==g}function gne(d,g,_){var P=B.templateSettings;_&&Li(d,g,_)&&(g=n),d=On(d),g=$v({},g,P,H8);var R=$v({},g.imports,P.imports,H8),z=Qr(R),X=Rw(R,z),ie,ce,Te=0,Me=g.interpolate||gt,$e="__p += '",Je=$w((g.escape||gt).source+"|"+Me.source+"|"+(Me===bo?_e:gt).source+"|"+(g.evaluate||gt).source+"|$","g"),ft="//# sourceURL="+(kn.call(g,"sourceURL")?(g.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++CZ+"]")+` +`;d.replace(Je,function(Pt,on,pn,Co,Fi,Eo){return pn||(pn=Co),$e+=d.slice(Te,Eo).replace(ht,WZ),on&&(ie=!0,$e+=`' + +__e(`+on+`) + +'`),Fi&&(ce=!0,$e+=`'; +`+Fi+`; +__p += '`),pn&&($e+=`' + +((__t = (`+pn+`)) == null ? '' : __t) + +'`),Te=Eo+Pt.length,Pt}),$e+=`'; +`;var At=kn.call(g,"variable")&&g.variable;if(!At)$e=`with (obj) { +`+$e+` +} +`;else if(ee.test(At))throw new Bt(s);$e=(ce?$e.replace(xi,""):$e).replace(Dr,"$1").replace(_a,"$1;"),$e="function("+(At||"obj")+`) { +`+(At?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(ie?", __e = _.escape":"")+(ce?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+$e+`return __p +}`;var Jt=Lk(function(){return Sn(z,ft+"return "+$e).apply(n,X)});if(Jt.source=$e,v_(Jt))throw Jt;return Jt}function mne(d){return On(d).toLowerCase()}function vne(d){return On(d).toUpperCase()}function yne(d,g,_){if(d=On(d),d&&(_||g===n))return KP(d);if(!d||!(g=_o(g)))return d;var P=Sa(d),R=Sa(g),z=qP(P,R),X=GP(P,R)+1;return zu(P,z,X).join("")}function bne(d,g,_){if(d=On(d),d&&(_||g===n))return d.slice(0,ZP(d)+1);if(!d||!(g=_o(g)))return d;var P=Sa(d),R=GP(P,Sa(g))+1;return zu(P,0,R).join("")}function xne(d,g,_){if(d=On(d),d&&(_||g===n))return d.replace(T,"");if(!d||!(g=_o(g)))return d;var P=Sa(d),R=qP(P,Sa(g));return zu(P,R).join("")}function wne(d,g){var _=U,P=H;if(lr(g)){var R="separator"in g?g.separator:R;_="length"in g?Xt(g.length):_,P="omission"in g?_o(g.omission):P}d=On(d);var z=d.length;if(Ef(d)){var X=Sa(d);z=X.length}if(_>=z)return d;var ie=_-Of(P);if(ie<1)return P;var ce=X?zu(X,0,ie).join(""):d.slice(0,ie);if(R===n)return ce+P;if(X&&(ie+=ce.length-ie),y_(R)){if(d.slice(ie).search(R)){var Te,Me=ce;for(R.global||(R=$w(R.source,On(je.exec(R))+"g")),R.lastIndex=0;Te=R.exec(Me);)var $e=Te.index;ce=ce.slice(0,$e===n?ie:$e)}}else if(d.indexOf(_o(R),ie)!=ie){var Je=ce.lastIndexOf(R);Je>-1&&(ce=ce.slice(0,Je))}return ce+P}function _ne(d){return d=On(d),d&&_n.test(d)?d.replace(_t,XZ):d}var Sne=Df(function(d,g,_){return d+(_?" ":"")+g.toUpperCase()}),w_=F8("toUpperCase");function Nk(d,g,_){return d=On(d),g=_?n:g,g===n?KZ(d)?eX(d):LZ(d):d.match(g)||[]}var Lk=tn(function(d,g){try{return xo(d,n,g)}catch(_){return v_(_)?_:new Bt(_)}}),Cne=zs(function(d,g){return Go(g,function(_){_=ss(_),js(d,_,g_(d[_],d))}),d});function Ene(d){var g=d==null?0:d.length,_=Et();return d=g?rr(d,function(P){if(typeof P[1]!="function")throw new Yo(a);return[_(P[0]),P[1]]}):[],tn(function(P){for(var R=-1;++Rj)return[];var _=oe,P=wi(d,oe);g=Et(g),d-=oe;for(var R=Mw(P,g);++_0||g<0)?new cn(_):(d<0?_=_.takeRight(-d):d&&(_=_.drop(d)),g!==n&&(g=Xt(g),_=g<0?_.dropRight(-g):_.take(g-d)),_)},cn.prototype.takeRightWhile=function(d){return this.reverse().takeWhile(d).reverse()},cn.prototype.toArray=function(){return this.take(oe)},os(cn.prototype,function(d,g){var _=/^(?:filter|find|map|reject)|While$/.test(g),P=/^(?:head|last)$/.test(g),R=B[P?"take"+(g=="last"?"Right":""):g],z=P||/^find/.test(g);R&&(B.prototype[g]=function(){var X=this.__wrapped__,ie=P?[1]:arguments,ce=X instanceof cn,Te=ie[0],Me=ce||Wt(X),$e=function(on){var pn=R.apply(B,Iu([on],ie));return P&&Je?pn[0]:pn};Me&&_&&typeof Te=="function"&&Te.length!=1&&(ce=Me=!1);var Je=this.__chain__,ft=!!this.__actions__.length,At=z&&!Je,Jt=ce&&!ft;if(!z&&Me){X=Jt?X:new cn(this);var Pt=d.apply(X,ie);return Pt.__actions__.push({func:Av,args:[$e],thisArg:n}),new Zo(Pt,Je)}return At&&Jt?d.apply(this,ie):(Pt=this.thru($e),At?P?Pt.value()[0]:Pt.value():Pt)})}),Go(["pop","push","shift","sort","splice","unshift"],function(d){var g=Jm[d],_=/^(?:push|sort|unshift)$/.test(d)?"tap":"thru",P=/^(?:pop|shift)$/.test(d);B.prototype[d]=function(){var R=arguments;if(P&&!this.__chain__){var z=this.value();return g.apply(Wt(z)?z:[],R)}return this[_](function(X){return g.apply(Wt(X)?X:[],R)})}}),os(cn.prototype,function(d,g){var _=B[g];if(_){var P=_.name+"";kn.call(Tf,P)||(Tf[P]=[]),Tf[P].push({name:g,func:_})}}),Tf[xv(n,w).name]=[{name:"wrapper",func:n}],cn.prototype.clone=_X,cn.prototype.reverse=SX,cn.prototype.value=CX,B.prototype.at=JJ,B.prototype.chain=eee,B.prototype.commit=tee,B.prototype.next=nee,B.prototype.plant=iee,B.prototype.reverse=oee,B.prototype.toJSON=B.prototype.valueOf=B.prototype.value=aee,B.prototype.first=B.prototype.head,ap&&(B.prototype[ap]=ree),B},Af=tX();Xl?((Xl.exports=Af)._=Af,Sw._=Af):ui._=Af}).call(La)})(gx,gx.exports);var uQe=gx.exports;function zUe(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var tP="ScrollArea",[uG,lQe]=vi(tP),[UUe,wa]=uG(tP),lG=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:i,scrollHideDelay:o=600,...a}=e,[s,u]=y.useState(null),[l,c]=y.useState(null),[f,h]=y.useState(null),[p,m]=y.useState(null),[v,b]=y.useState(null),[w,x]=y.useState(0),[S,O]=y.useState(0),[E,C]=y.useState(!1),[k,M]=y.useState(!1),L=Yt(t,H=>u(H)),U=Em(i);return I.jsx(UUe,{scope:n,type:r,dir:U,scrollHideDelay:o,scrollArea:s,viewport:l,onViewportChange:c,content:f,onContentChange:h,scrollbarX:p,onScrollbarXChange:m,scrollbarXEnabled:E,onScrollbarXEnabledChange:C,scrollbarY:v,onScrollbarYChange:b,scrollbarYEnabled:k,onScrollbarYEnabledChange:M,onCornerWidthChange:x,onCornerHeightChange:O,children:I.jsx(pt.div,{dir:U,...a,ref:L,style:{position:"relative","--radix-scroll-area-corner-width":w+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});lG.displayName=tP;var cG="ScrollAreaViewport",fG=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:i,...o}=e,a=wa(cG,n),s=y.useRef(null),u=Yt(t,s,a.onViewportChange);return I.jsxs(I.Fragment,{children:[I.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),I.jsx(pt.div,{"data-radix-scroll-area-viewport":"",...o,ref:u,style:{overflowX:a.scrollbarXEnabled?"scroll":"hidden",overflowY:a.scrollbarYEnabled?"scroll":"hidden",...e.style},children:I.jsx("div",{ref:a.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});fG.displayName=cG;var $s="ScrollAreaScrollbar",VUe=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=wa($s,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:a}=i,s=e.orientation==="horizontal";return y.useEffect(()=>(s?o(!0):a(!0),()=>{s?o(!1):a(!1)}),[s,o,a]),i.type==="hover"?I.jsx(WUe,{...r,ref:t,forceMount:n}):i.type==="scroll"?I.jsx(HUe,{...r,ref:t,forceMount:n}):i.type==="auto"?I.jsx(dG,{...r,ref:t,forceMount:n}):i.type==="always"?I.jsx(nP,{...r,ref:t}):null});VUe.displayName=$s;var WUe=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=wa($s,e.__scopeScrollArea),[o,a]=y.useState(!1);return y.useEffect(()=>{const s=i.scrollArea;let u=0;if(s){const l=()=>{window.clearTimeout(u),a(!0)},c=()=>{u=window.setTimeout(()=>a(!1),i.scrollHideDelay)};return s.addEventListener("pointerenter",l),s.addEventListener("pointerleave",c),()=>{window.clearTimeout(u),s.removeEventListener("pointerenter",l),s.removeEventListener("pointerleave",c)}}},[i.scrollArea,i.scrollHideDelay]),I.jsx(Gr,{present:n||o,children:I.jsx(dG,{"data-state":o?"visible":"hidden",...r,ref:t})})}),HUe=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=wa($s,e.__scopeScrollArea),o=e.orientation==="horizontal",a=pw(()=>u("SCROLL_END"),100),[s,u]=zUe("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return y.useEffect(()=>{if(s==="idle"){const l=window.setTimeout(()=>u("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(l)}},[s,i.scrollHideDelay,u]),y.useEffect(()=>{const l=i.viewport,c=o?"scrollLeft":"scrollTop";if(l){let f=l[c];const h=()=>{const p=l[c];f!==p&&(u("SCROLL"),a()),f=p};return l.addEventListener("scroll",h),()=>l.removeEventListener("scroll",h)}},[i.viewport,o,u,a]),I.jsx(Gr,{present:n||s!=="hidden",children:I.jsx(nP,{"data-state":s==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Ye(e.onPointerEnter,()=>u("POINTER_ENTER")),onPointerLeave:Ye(e.onPointerLeave,()=>u("POINTER_LEAVE"))})})}),dG=y.forwardRef((e,t)=>{const n=wa($s,e.__scopeScrollArea),{forceMount:r,...i}=e,[o,a]=y.useState(!1),s=e.orientation==="horizontal",u=pw(()=>{if(n.viewport){const l=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,i=wa($s,e.__scopeScrollArea),o=y.useRef(null),a=y.useRef(0),[s,u]=y.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=mG(s.viewport,s.content),c={...r,sizes:s,onSizesChange:u,hasThumb:l>0&&l<1,onThumbChange:h=>o.current=h,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:h=>a.current=h};function f(h,p){return QUe(h,a.current,s,p)}return n==="horizontal"?I.jsx(KUe,{...c,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const h=i.viewport.scrollLeft,p=TI(h,s,i.dir);o.current.style.transform=`translate3d(${p}px, 0, 0)`}},onWheelScroll:h=>{i.viewport&&(i.viewport.scrollLeft=h)},onDragScroll:h=>{i.viewport&&(i.viewport.scrollLeft=f(h,i.dir))}}):n==="vertical"?I.jsx(qUe,{...c,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const h=i.viewport.scrollTop,p=TI(h,s);o.current.style.transform=`translate3d(0, ${p}px, 0)`}},onWheelScroll:h=>{i.viewport&&(i.viewport.scrollTop=h)},onDragScroll:h=>{i.viewport&&(i.viewport.scrollTop=f(h))}}):null}),KUe=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=wa($s,e.__scopeScrollArea),[a,s]=y.useState(),u=y.useRef(null),l=Yt(t,u,o.onScrollbarXChange);return y.useEffect(()=>{u.current&&s(getComputedStyle(u.current))},[u]),I.jsx(pG,{"data-orientation":"horizontal",...i,ref:l,sizes:n,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":hw(n)+"px",...e.style},onThumbPointerDown:c=>e.onThumbPointerDown(c.x),onDragScroll:c=>e.onDragScroll(c.x),onWheelScroll:(c,f)=>{if(o.viewport){const h=o.viewport.scrollLeft+c.deltaX;e.onWheelScroll(h),yG(h,f)&&c.preventDefault()}},onResize:()=>{u.current&&o.viewport&&a&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:vx(a.paddingLeft),paddingEnd:vx(a.paddingRight)}})}})}),qUe=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=wa($s,e.__scopeScrollArea),[a,s]=y.useState(),u=y.useRef(null),l=Yt(t,u,o.onScrollbarYChange);return y.useEffect(()=>{u.current&&s(getComputedStyle(u.current))},[u]),I.jsx(pG,{"data-orientation":"vertical",...i,ref:l,sizes:n,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":hw(n)+"px",...e.style},onThumbPointerDown:c=>e.onThumbPointerDown(c.y),onDragScroll:c=>e.onDragScroll(c.y),onWheelScroll:(c,f)=>{if(o.viewport){const h=o.viewport.scrollTop+c.deltaY;e.onWheelScroll(h),yG(h,f)&&c.preventDefault()}},onResize:()=>{u.current&&o.viewport&&a&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:vx(a.paddingTop),paddingEnd:vx(a.paddingBottom)}})}})}),[GUe,hG]=uG($s),pG=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:o,onThumbPointerUp:a,onThumbPointerDown:s,onThumbPositionChange:u,onDragScroll:l,onWheelScroll:c,onResize:f,...h}=e,p=wa($s,n),[m,v]=y.useState(null),b=Yt(t,L=>v(L)),w=y.useRef(null),x=y.useRef(""),S=p.viewport,O=r.content-r.viewport,E=Vr(c),C=Vr(u),k=pw(f,10);function M(L){if(w.current){const U=L.clientX-w.current.left,H=L.clientY-w.current.top;l({x:U,y:H})}}return y.useEffect(()=>{const L=U=>{const H=U.target;m?.contains(H)&&E(U,O)};return document.addEventListener("wheel",L,{passive:!1}),()=>document.removeEventListener("wheel",L,{passive:!1})},[S,m,O,E]),y.useEffect(C,[r,C]),Eh(m,k),Eh(p.content,k),I.jsx(GUe,{scope:n,scrollbar:m,hasThumb:i,onThumbChange:Vr(o),onThumbPointerUp:Vr(a),onThumbPositionChange:C,onThumbPointerDown:Vr(s),children:I.jsx(pt.div,{...h,ref:b,style:{position:"absolute",...h.style},onPointerDown:Ye(e.onPointerDown,L=>{L.button===0&&(L.target.setPointerCapture(L.pointerId),w.current=m.getBoundingClientRect(),x.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",p.viewport&&(p.viewport.style.scrollBehavior="auto"),M(L))}),onPointerMove:Ye(e.onPointerMove,M),onPointerUp:Ye(e.onPointerUp,L=>{const U=L.target;U.hasPointerCapture(L.pointerId)&&U.releasePointerCapture(L.pointerId),document.body.style.webkitUserSelect=x.current,p.viewport&&(p.viewport.style.scrollBehavior=""),w.current=null})})})}),mx="ScrollAreaThumb",YUe=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=hG(mx,e.__scopeScrollArea);return I.jsx(Gr,{present:n||i.hasThumb,children:I.jsx(ZUe,{ref:t,...r})})}),ZUe=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...i}=e,o=wa(mx,n),a=hG(mx,n),{onThumbPositionChange:s}=a,u=Yt(t,f=>a.onThumbChange(f)),l=y.useRef(void 0),c=pw(()=>{l.current&&(l.current(),l.current=void 0)},100);return y.useEffect(()=>{const f=o.viewport;if(f){const h=()=>{if(c(),!l.current){const p=JUe(f,s);l.current=p,s()}};return s(),f.addEventListener("scroll",h),()=>f.removeEventListener("scroll",h)}},[o.viewport,c,s]),I.jsx(pt.div,{"data-state":a.hasThumb?"visible":"hidden",...i,ref:u,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Ye(e.onPointerDownCapture,f=>{const p=f.target.getBoundingClientRect(),m=f.clientX-p.left,v=f.clientY-p.top;a.onThumbPointerDown({x:m,y:v})}),onPointerUp:Ye(e.onPointerUp,a.onThumbPointerUp)})});YUe.displayName=mx;var rP="ScrollAreaCorner",gG=y.forwardRef((e,t)=>{const n=wa(rP,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?I.jsx(XUe,{...e,ref:t}):null});gG.displayName=rP;var XUe=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,i=wa(rP,n),[o,a]=y.useState(0),[s,u]=y.useState(0),l=!!(o&&s);return Eh(i.scrollbarX,()=>{const c=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(c),u(c)}),Eh(i.scrollbarY,()=>{const c=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(c),a(c)}),l?I.jsx(pt.div,{...r,ref:t,style:{width:o,height:s,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function vx(e){return e?parseInt(e,10):0}function mG(e,t){const n=e/t;return isNaN(n)?0:n}function hw(e){const t=mG(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function QUe(e,t,n,r="ltr"){const i=hw(n),o=i/2,a=t||o,s=i-a,u=n.scrollbar.paddingStart+a,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,c=n.content-n.viewport,f=r==="ltr"?[0,c]:[c*-1,0];return vG([u,l],f)(e)}function TI(e,t,n="ltr"){const r=hw(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-i,a=t.content-t.viewport,s=o-r,u=n==="ltr"?[0,a]:[a*-1,0],l=Q6(e,u);return vG([0,a],[0,s])(l)}function vG(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function yG(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function i(){const o={left:e.scrollLeft,top:e.scrollTop},a=n.left!==o.left,s=n.top!==o.top;(a||s)&&t(),n=o,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function pw(e,t){const n=Vr(e),r=y.useRef(0);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),y.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function Eh(e,t){const n=Vr(t);ii(()=>{let r=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return i.observe(e),()=>{window.cancelAnimationFrame(r),i.unobserve(e)}}},[e,n])}var cQe=lG,fQe=fG,dQe=gG,iP="Progress",oP=100,[eVe,hQe]=vi(iP),[tVe,nVe]=eVe(iP),bG=y.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:i,getValueLabel:o=rVe,...a}=e;(i||i===0)&&!MI(i)&&console.error(iVe(`${i}`,"Progress"));const s=MI(i)?i:oP;r!==null&&!RI(r,s)&&console.error(oVe(`${r}`,"Progress"));const u=RI(r,s)?r:null,l=yx(u)?o(u,s):void 0;return I.jsx(tVe,{scope:n,value:u,max:s,children:I.jsx(pt.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":yx(u)?u:void 0,"aria-valuetext":l,role:"progressbar","data-state":_G(u,s),"data-value":u??void 0,"data-max":s,...a,ref:t})})});bG.displayName=iP;var xG="ProgressIndicator",wG=y.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,i=nVe(xG,n);return I.jsx(pt.div,{"data-state":_G(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})});wG.displayName=xG;function rVe(e,t){return`${Math.round(e/t*100)}%`}function _G(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function yx(e){return typeof e=="number"}function MI(e){return yx(e)&&!isNaN(e)&&e>0}function RI(e,t){return yx(e)&&!isNaN(e)&&e<=t&&e>=0}function iVe(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${oP}\`.`}function oVe(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${oP} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`}var pQe=bG,gQe=wG,aVe="Separator",DI="horizontal",sVe=["horizontal","vertical"],SG=y.forwardRef((e,t)=>{const{decorative:n,orientation:r=DI,...i}=e,o=uVe(r)?r:DI,s=n?{role:"none"}:{"aria-orientation":o==="vertical"?o:void 0,role:"separator"};return I.jsx(pt.div,{"data-orientation":o,...s,...i,ref:t})});SG.displayName=aVe;function uVe(e){return sVe.includes(e)}var mQe=SG,aP="Switch",[lVe,vQe]=vi(aP),[cVe,fVe]=lVe(aP),CG=y.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:i,defaultChecked:o,required:a,disabled:s,value:u="on",onCheckedChange:l,form:c,...f}=e,[h,p]=y.useState(null),m=Yt(t,S=>p(S)),v=y.useRef(!1),b=h?c||!!h.closest("form"):!0,[w=!1,x]=Za({prop:i,defaultProp:o,onChange:l});return I.jsxs(cVe,{scope:n,checked:w,disabled:s,children:[I.jsx(pt.button,{type:"button",role:"switch","aria-checked":w,"aria-required":a,"data-state":AG(w),"data-disabled":s?"":void 0,disabled:s,value:u,...f,ref:m,onClick:Ye(e.onClick,S=>{x(O=>!O),b&&(v.current=S.isPropagationStopped(),v.current||S.stopPropagation())})}),b&&I.jsx(dVe,{control:h,bubbles:!v.current,name:r,value:u,checked:w,required:a,disabled:s,form:c,style:{transform:"translateX(-100%)"}})]})});CG.displayName=aP;var EG="SwitchThumb",OG=y.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,i=fVe(EG,n);return I.jsx(pt.span,{"data-state":AG(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:t})});OG.displayName=EG;var dVe=e=>{const{control:t,checked:n,bubbles:r=!0,...i}=e,o=y.useRef(null),a=jA(n),s=aO(t);return y.useEffect(()=>{const u=o.current,l=window.HTMLInputElement.prototype,f=Object.getOwnPropertyDescriptor(l,"checked").set;if(a!==n&&f){const h=new Event("click",{bubbles:r});f.call(u,n),u.dispatchEvent(h)}},[a,n,r]),I.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:o,style:{...e.style,...s,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function AG(e){return e?"checked":"unchecked"}var yQe=CG,bQe=OG;/** + * table-core + * + * Copyright (c) TanStack + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function fl(e,t){return typeof e=="function"?e(t):e}function Vo(e,t){return n=>{t.setState(r=>({...r,[e]:fl(n,r[e])}))}}function gw(e){return e instanceof Function}function hVe(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function pVe(e,t){const n=[],r=i=>{i.forEach(o=>{n.push(o);const a=t(o);a!=null&&a.length&&r(a)})};return r(e),n}function St(e,t,n){let r=[],i;return o=>{let a;n.key&&n.debug&&(a=Date.now());const s=e(o);if(!(s.length!==r.length||s.some((c,f)=>r[f]!==c)))return i;r=s;let l;if(n.key&&n.debug&&(l=Date.now()),i=t(...s),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){const c=Math.round((Date.now()-a)*100)/100,f=Math.round((Date.now()-l)*100)/100,h=f/16,p=(m,v)=>{for(m=String(m);m.length{var i;return(i=e?.debugAll)!=null?i:e[t]},key:!1,onChange:r}}function gVe(e,t,n,r){const i=()=>{var a;return(a=o.getValue())!=null?a:e.options.renderFallbackValue},o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:i,getContext:St(()=>[e,n,t,o],(a,s,u,l)=>({table:a,column:s,row:u,cell:l,getValue:l.getValue,renderValue:l.renderValue}),Ct(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(o,n,t,e)},{}),o}function mVe(e,t,n,r){var i,o;const s={...e._getDefaultColumnDef(),...t},u=s.accessorKey;let l=(i=(o=s.id)!=null?o:u?typeof String.prototype.replaceAll=="function"?u.replaceAll(".","_"):u.replace(/\./g,"_"):void 0)!=null?i:typeof s.header=="string"?s.header:void 0,c;if(s.accessorFn?c=s.accessorFn:u&&(u.includes(".")?c=h=>{let p=h;for(const v of u.split(".")){var m;p=(m=p)==null?void 0:m[v]}return p}:c=h=>h[s.accessorKey]),!l)throw new Error;let f={id:`${String(l)}`,accessorFn:c,parent:r,depth:n,columnDef:s,columns:[],getFlatColumns:St(()=>[!0],()=>{var h;return[f,...(h=f.columns)==null?void 0:h.flatMap(p=>p.getFlatColumns())]},Ct(e.options,"debugColumns")),getLeafColumns:St(()=>[e._getOrderColumnsFn()],h=>{var p;if((p=f.columns)!=null&&p.length){let m=f.columns.flatMap(v=>v.getLeafColumns());return h(m)}return[f]},Ct(e.options,"debugColumns"))};for(const h of e._features)h.createColumn==null||h.createColumn(f,e);return f}const Ei="debugHeaders";function $I(e,t,n){var r;let o={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],s=u=>{u.subHeaders&&u.subHeaders.length&&u.subHeaders.map(s),a.push(u)};return s(o),a},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(o,e)}),o}const vVe={createTable:e=>{e.getHeaderGroups=St(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{var o,a;const s=(o=r?.map(f=>n.find(h=>h.id===f)).filter(Boolean))!=null?o:[],u=(a=i?.map(f=>n.find(h=>h.id===f)).filter(Boolean))!=null?a:[],l=n.filter(f=>!(r!=null&&r.includes(f.id))&&!(i!=null&&i.includes(f.id)));return A1(t,[...s,...l,...u],e)},Ct(e.options,Ei)),e.getCenterHeaderGroups=St(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(o=>!(r!=null&&r.includes(o.id))&&!(i!=null&&i.includes(o.id))),A1(t,n,e,"center")),Ct(e.options,Ei)),e.getLeftHeaderGroups=St(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var i;const o=(i=r?.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?i:[];return A1(t,o,e,"left")},Ct(e.options,Ei)),e.getRightHeaderGroups=St(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var i;const o=(i=r?.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?i:[];return A1(t,o,e,"right")},Ct(e.options,Ei)),e.getFooterGroups=St(()=>[e.getHeaderGroups()],t=>[...t].reverse(),Ct(e.options,Ei)),e.getLeftFooterGroups=St(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),Ct(e.options,Ei)),e.getCenterFooterGroups=St(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),Ct(e.options,Ei)),e.getRightFooterGroups=St(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),Ct(e.options,Ei)),e.getFlatHeaders=St(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ct(e.options,Ei)),e.getLeftFlatHeaders=St(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ct(e.options,Ei)),e.getCenterFlatHeaders=St(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ct(e.options,Ei)),e.getRightFlatHeaders=St(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),Ct(e.options,Ei)),e.getCenterLeafHeaders=St(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ct(e.options,Ei)),e.getLeftLeafHeaders=St(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ct(e.options,Ei)),e.getRightLeafHeaders=St(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Ct(e.options,Ei)),e.getLeafHeaders=St(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var i,o,a,s,u,l;return[...(i=(o=t[0])==null?void 0:o.headers)!=null?i:[],...(a=(s=n[0])==null?void 0:s.headers)!=null?a:[],...(u=(l=r[0])==null?void 0:l.headers)!=null?u:[]].map(c=>c.getLeafHeaders()).flat()},Ct(e.options,Ei))}};function A1(e,t,n,r){var i,o;let a=0;const s=function(h,p){p===void 0&&(p=1),a=Math.max(a,p),h.filter(m=>m.getIsVisible()).forEach(m=>{var v;(v=m.columns)!=null&&v.length&&s(m.columns,p+1)},0)};s(e);let u=[];const l=(h,p)=>{const m={depth:p,id:[r,`${p}`].filter(Boolean).join("_"),headers:[]},v=[];h.forEach(b=>{const w=[...v].reverse()[0],x=b.column.depth===m.depth;let S,O=!1;if(x&&b.column.parent?S=b.column.parent:(S=b.column,O=!0),w&&w?.column===S)w.subHeaders.push(b);else{const E=$I(n,S,{id:[r,p,S.id,b?.id].filter(Boolean).join("_"),isPlaceholder:O,placeholderId:O?`${v.filter(C=>C.column===S).length}`:void 0,depth:p,index:v.length});E.subHeaders.push(b),v.push(E)}m.headers.push(b),b.headerGroup=m}),u.push(m),p>0&&l(v,p-1)},c=t.map((h,p)=>$I(n,h,{depth:a,index:p}));l(c,a-1),u.reverse();const f=h=>h.filter(m=>m.column.getIsVisible()).map(m=>{let v=0,b=0,w=[0];m.subHeaders&&m.subHeaders.length?(w=[],f(m.subHeaders).forEach(S=>{let{colSpan:O,rowSpan:E}=S;v+=O,w.push(E)})):v=1;const x=Math.min(...w);return b=b+x,m.colSpan=v,m.rowSpan=b,{colSpan:v,rowSpan:b}});return f((i=(o=u[0])==null?void 0:o.headers)!=null?i:[]),u}const sP=(e,t,n,r,i,o,a)=>{let s={id:t,index:r,original:n,depth:i,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:u=>{if(s._valuesCache.hasOwnProperty(u))return s._valuesCache[u];const l=e.getColumn(u);if(l!=null&&l.accessorFn)return s._valuesCache[u]=l.accessorFn(s.original,r),s._valuesCache[u]},getUniqueValues:u=>{if(s._uniqueValuesCache.hasOwnProperty(u))return s._uniqueValuesCache[u];const l=e.getColumn(u);if(l!=null&&l.accessorFn)return l.columnDef.getUniqueValues?(s._uniqueValuesCache[u]=l.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[u]):(s._uniqueValuesCache[u]=[s.getValue(u)],s._uniqueValuesCache[u])},renderValue:u=>{var l;return(l=s.getValue(u))!=null?l:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>pVe(s.subRows,u=>u.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let u=[],l=s;for(;;){const c=l.getParentRow();if(!c)break;u.push(c),l=c}return u.reverse()},getAllCells:St(()=>[e.getAllLeafColumns()],u=>u.map(l=>gVe(e,s,l,l.id)),Ct(e.options,"debugRows")),_getAllCellsByColumnId:St(()=>[s.getAllCells()],u=>u.reduce((l,c)=>(l[c.column.id]=c,l),{}),Ct(e.options,"debugRows"))};for(let u=0;u{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},PG=(e,t,n)=>{var r,i;const o=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((i=e.getValue(t))==null||(i=i.toString())==null||(i=i.toLowerCase())==null)&&i.includes(o))};PG.autoRemove=e=>qa(e);const kG=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};kG.autoRemove=e=>qa(e);const TG=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===n?.toLowerCase()};TG.autoRemove=e=>qa(e);const MG=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};MG.autoRemove=e=>qa(e)||!(e!=null&&e.length);const RG=(e,t,n)=>!n.some(r=>{var i;return!((i=e.getValue(t))!=null&&i.includes(r))});RG.autoRemove=e=>qa(e)||!(e!=null&&e.length);const DG=(e,t,n)=>n.some(r=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(r)});DG.autoRemove=e=>qa(e)||!(e!=null&&e.length);const $G=(e,t,n)=>e.getValue(t)===n;$G.autoRemove=e=>qa(e);const IG=(e,t,n)=>e.getValue(t)==n;IG.autoRemove=e=>qa(e);const uP=(e,t,n)=>{let[r,i]=n;const o=e.getValue(t);return o>=r&&o<=i};uP.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,i=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(r)?-1/0:r,a=n===null||Number.isNaN(i)?1/0:i;if(o>a){const s=o;o=a,a=s}return[o,a]};uP.autoRemove=e=>qa(e)||qa(e[0])&&qa(e[1]);const eu={includesString:PG,includesStringSensitive:kG,equalsString:TG,arrIncludes:MG,arrIncludesAll:RG,arrIncludesSome:DG,equals:$G,weakEquals:IG,inNumberRange:uP};function qa(e){return e==null||e===""}const bVe={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:Vo("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n?.getValue(e.id);return typeof r=="string"?eu.includesString:typeof r=="number"?eu.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?eu.equals:Array.isArray(r)?eu.arrIncludes:eu.weakEquals},e.getFilterFn=()=>{var n,r;return gw(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:eu[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,i;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const i=e.getFilterFn(),o=r?.find(c=>c.id===e.id),a=fl(n,o?o.value:void 0);if(II(i,a,e)){var s;return(s=r?.filter(c=>c.id!==e.id))!=null?s:[]}const u={id:e.id,value:a};if(o){var l;return(l=r?.map(c=>c.id===e.id?u:c))!=null?l:[]}return r!=null&&r.length?[...r,u]:[u]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=i=>{var o;return(o=fl(t,i))==null?void 0:o.filter(a=>{const s=n.find(u=>u.id===a.id);if(s){const u=s.getFilterFn();if(II(u,a.value,s))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function II(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const xVe=(e,t,n)=>n.reduce((r,i)=>{const o=i.getValue(e);return r+(typeof o=="number"?o:0)},0),wVe=(e,t,n)=>{let r;return n.forEach(i=>{const o=i.getValue(e);o!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}),r},_Ve=(e,t,n)=>{let r;return n.forEach(i=>{const o=i.getValue(e);o!=null&&(r=o)&&(r=o)}),r},SVe=(e,t,n)=>{let r,i;return n.forEach(o=>{const a=o.getValue(e);a!=null&&(r===void 0?a>=a&&(r=i=a):(r>a&&(r=a),i{let n=0,r=0;if(t.forEach(i=>{let o=i.getValue(e);o!=null&&(o=+o)>=o&&(++n,r+=o)}),n)return r/n},EVe=(e,t)=>{if(!t.length)return;const n=t.map(o=>o.getValue(e));if(!hVe(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),i=n.sort((o,a)=>o-a);return n.length%2!==0?i[r]:(i[r-1]+i[r])/2},OVe=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),AVe=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,PVe=(e,t)=>t.length,m3={sum:xVe,min:wVe,max:_Ve,extent:SVe,mean:CVe,median:EVe,unique:OVe,uniqueCount:AVe,count:PVe},kVe={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:Vo("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((r=t.options.enableGrouping)!=null?r:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n?.getValue(e.id);if(typeof r=="number")return m3.sum;if(Object.prototype.toString.call(r)==="[object Date]")return m3.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return gw(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:m3[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var i;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((i=n.subRows)!=null&&i.length)}}};function TVe(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(o=>!t.includes(o.id));return n==="remove"?r:[...t.map(o=>e.find(a=>a.id===o)).filter(Boolean),...r]}const MVe={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:Vo("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=St(n=>[T0(t,n)],n=>n.findIndex(r=>r.id===e.id),Ct(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=T0(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const i=T0(t,n);return((r=i[i.length-1])==null?void 0:r.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=St(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>i=>{let o=[];if(!(t!=null&&t.length))o=i;else{const a=[...t],s=[...i];for(;s.length&&a.length;){const u=a.shift(),l=s.findIndex(c=>c.id===u);l>-1&&o.push(s.splice(l,1)[0])}o=[...o,...s]}return TVe(o,n,r)},Ct(e.options,"debugTable"))}},v3=()=>({left:[],right:[]}),RVe={getInitialState:e=>({columnPinning:v3(),...e}),getDefaultOptions:e=>({onColumnPinningChange:Vo("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(i=>i.id).filter(Boolean);t.setColumnPinning(i=>{var o,a;if(n==="right"){var s,u;return{left:((s=i?.left)!=null?s:[]).filter(f=>!(r!=null&&r.includes(f))),right:[...((u=i?.right)!=null?u:[]).filter(f=>!(r!=null&&r.includes(f))),...r]}}if(n==="left"){var l,c;return{left:[...((l=i?.left)!=null?l:[]).filter(f=>!(r!=null&&r.includes(f))),...r],right:((c=i?.right)!=null?c:[]).filter(f=>!(r!=null&&r.includes(f)))}}return{left:((o=i?.left)!=null?o:[]).filter(f=>!(r!=null&&r.includes(f))),right:((a=i?.right)!=null?a:[]).filter(f=>!(r!=null&&r.includes(f)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var i,o,a;return((i=r.columnDef.enablePinning)!=null?i:!0)&&((o=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?o:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(s=>s.id),{left:r,right:i}=t.getState().columnPinning,o=n.some(s=>r?.includes(s)),a=n.some(s=>i?.includes(s));return o?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,r;const i=e.getIsPinned();return i?(n=(r=t.getState().columnPinning)==null||(r=r[i])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=St(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,i)=>{const o=[...r??[],...i??[]];return n.filter(a=>!o.includes(a.column.id))},Ct(t.options,"debugRows")),e.getLeftVisibleCells=St(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,r)=>(r??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),Ct(t.options,"debugRows")),e.getRightVisibleCells=St(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"right"})),Ct(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?v3():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:v3())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var i,o;return!!((i=r.left)!=null&&i.length||(o=r.right)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=St(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),Ct(e.options,"debugColumns")),e.getRightLeafColumns=St(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),Ct(e.options,"debugColumns")),e.getCenterLeafColumns=St(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const i=[...n??[],...r??[]];return t.filter(o=>!i.includes(o.id))},Ct(e.options,"debugColumns"))}},P1={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},y3=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),DVe={getDefaultColumnDef:()=>P1,getInitialState:e=>({columnSizing:{},columnSizingInfo:y3(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:Vo("columnSizing",e),onColumnSizingInfoChange:Vo("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,i;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:P1.minSize,(r=o??e.columnDef.size)!=null?r:P1.size),(i=e.columnDef.maxSize)!=null?i:P1.maxSize)},e.getStart=St(n=>[n,T0(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((i,o)=>i+o.getSize(),0),Ct(t.options,"debugColumns")),e.getAfter=St(n=>[n,T0(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((i,o)=>i+o.getSize(),0),Ct(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...i}=n;return i})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=i=>{if(i.subHeaders.length)i.subHeaders.forEach(r);else{var o;n+=(o=i.column.getSize())!=null?o:0}};return r(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const r=t.getColumn(e.column.id),i=r?.getCanResize();return o=>{if(!r||!i||(o.persist==null||o.persist(),b3(o)&&o.touches&&o.touches.length>1))return;const a=e.getSize(),s=e?e.getLeafHeaders().map(w=>[w.column.id,w.column.getSize()]):[[r.id,r.getSize()]],u=b3(o)?Math.round(o.touches[0].clientX):o.clientX,l={},c=(w,x)=>{typeof x=="number"&&(t.setColumnSizingInfo(S=>{var O,E;const C=t.options.columnResizeDirection==="rtl"?-1:1,k=(x-((O=S?.startOffset)!=null?O:0))*C,M=Math.max(k/((E=S?.startSize)!=null?E:0),-.999999);return S.columnSizingStart.forEach(L=>{let[U,H]=L;l[U]=Math.round(Math.max(H+H*M,0)*100)/100}),{...S,deltaOffset:k,deltaPercentage:M}}),(t.options.columnResizeMode==="onChange"||w==="end")&&t.setColumnSizing(S=>({...S,...l})))},f=w=>c("move",w),h=w=>{c("end",w),t.setColumnSizingInfo(x=>({...x,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=n||typeof document<"u"?document:null,m={moveHandler:w=>f(w.clientX),upHandler:w=>{p?.removeEventListener("mousemove",m.moveHandler),p?.removeEventListener("mouseup",m.upHandler),h(w.clientX)}},v={moveHandler:w=>(w.cancelable&&(w.preventDefault(),w.stopPropagation()),f(w.touches[0].clientX),!1),upHandler:w=>{var x;p?.removeEventListener("touchmove",v.moveHandler),p?.removeEventListener("touchend",v.upHandler),w.cancelable&&(w.preventDefault(),w.stopPropagation()),h((x=w.touches[0])==null?void 0:x.clientX)}},b=$Ve()?{passive:!1}:!1;b3(o)?(p?.addEventListener("touchmove",v.moveHandler,b),p?.addEventListener("touchend",v.upHandler,b)):(p?.addEventListener("mousemove",m.moveHandler,b),p?.addEventListener("mouseup",m.upHandler,b)),t.setColumnSizingInfo(w=>({...w,startOffset:u,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:s,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?y3():(n=e.initialState.columnSizingInfo)!=null?n:y3())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0}}};let k1=null;function $Ve(){if(typeof k1=="boolean")return k1;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return k1=e,k1}function b3(e){return e.type==="touchstart"}const IVe={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:Vo("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;const i=e.columns;return(n=i.length?i.some(o=>o.getIsVisible()):(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=St(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),Ct(t.options,"debugRows")),e.getVisibleCells=St(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,i)=>[...n,...r,...i],Ct(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>St(()=>[r(),r().filter(i=>i.getIsVisible()).map(i=>i.id).join("_")],i=>i.filter(o=>o.getIsVisible==null?void 0:o.getIsVisible()),Ct(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((i,o)=>({...i,[o.id]:n||!(o.getCanHide!=null&&o.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function T0(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const NVe={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},LVe={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:Vo("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,r,i,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>eu.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return gw(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:eu[r]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},FVe={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:Vo("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var i,o;e.setExpanded(r?{}:(i=(o=e.initialState)==null?void 0:o.expanded)!=null?i:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(i=>!i.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const a=o.split(".");r=Math.max(r,a.length)}),r},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{var i;const o=r===!0?!0:!!(r!=null&&r[e.id]);let a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(s=>{a[s]=!0}):a=r,n=(i=n)!=null?i:!o,!o&&n)return{...a,[e.id]:!0};if(o&&!n){const{[e.id]:s,...u}=a;return u}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r?.[e.id])},e.getCanExpand=()=>{var n,r,i;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((i=e.subRows)!=null&&i.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},a4=0,s4=10,x3=()=>({pageIndex:a4,pageSize:s4}),jVe={getInitialState:e=>({...e,pagination:{...x3(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:Vo("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const i=o=>fl(r,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},e.resetPagination=r=>{var i;e.setPagination(r?x3():(i=e.initialState.pagination)!=null?i:x3())},e.setPageIndex=r=>{e.setPagination(i=>{let o=fl(r,i.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.max(0,Math.min(o,a)),{...i,pageIndex:o}})},e.resetPageIndex=r=>{var i,o;e.setPageIndex(r?a4:(i=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageIndex)!=null?i:a4)},e.resetPageSize=r=>{var i,o;e.setPageSize(r?s4:(i=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageSize)!=null?i:s4)},e.setPageSize=r=>{e.setPagination(i=>{const o=Math.max(1,fl(r,i.pageSize)),a=i.pageSize*i.pageIndex,s=Math.floor(a/o);return{...i,pageIndex:s,pageSize:o}})},e.setPageCount=r=>e.setPagination(i=>{var o;let a=fl(r,(o=e.options.pageCount)!=null?o:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...i,pageCount:a}}),e.getPageOptions=St(()=>[e.getPageCount()],r=>{let i=[];return r&&r>0&&(i=[...new Array(r)].fill(null).map((o,a)=>a)),i},Ct(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,i=e.getPageCount();return i===-1?!0:i===0?!1:re.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var r;return(r=e.options.rowCount)!=null?r:e.getPrePaginationRowModel().rows.length}}},w3=()=>({top:[],bottom:[]}),BVe={getInitialState:e=>({rowPinning:w3(),...e}),getDefaultOptions:e=>({onRowPinningChange:Vo("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,r,i)=>{const o=r?e.getLeafRows().map(u=>{let{id:l}=u;return l}):[],a=i?e.getParentRows().map(u=>{let{id:l}=u;return l}):[],s=new Set([...a,e.id,...o]);t.setRowPinning(u=>{var l,c;if(n==="bottom"){var f,h;return{top:((f=u?.top)!=null?f:[]).filter(v=>!(s!=null&&s.has(v))),bottom:[...((h=u?.bottom)!=null?h:[]).filter(v=>!(s!=null&&s.has(v))),...Array.from(s)]}}if(n==="top"){var p,m;return{top:[...((p=u?.top)!=null?p:[]).filter(v=>!(s!=null&&s.has(v))),...Array.from(s)],bottom:((m=u?.bottom)!=null?m:[]).filter(v=>!(s!=null&&s.has(v)))}}return{top:((l=u?.top)!=null?l:[]).filter(v=>!(s!=null&&s.has(v))),bottom:((c=u?.bottom)!=null?c:[]).filter(v=>!(s!=null&&s.has(v)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:i}=t.options;return typeof r=="function"?r(e):(n=r??i)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:i}=t.getState().rowPinning,o=n.some(s=>r?.includes(s)),a=n.some(s=>i?.includes(s));return o?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const i=e.getIsPinned();if(!i)return-1;const o=(n=i==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:s}=a;return s});return(r=o?.indexOf(e.id))!=null?r:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?w3():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:w3())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var i,o;return!!((i=r.top)!=null&&i.length||(o=r.bottom)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=(t,n,r)=>{var i;return((i=e.options.keepPinnedRows)==null||i?(n??[]).map(a=>{const s=e.getRow(a,!0);return s.getIsAllParentsExpanded()?s:null}):(n??[]).map(a=>t.find(s=>s.id===a))).filter(Boolean).map(a=>({...a,position:r}))},e.getTopRows=St(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),Ct(e.options,"debugRows")),e.getBottomRows=St(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),Ct(e.options,"debugRows")),e.getCenterRows=St(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const i=new Set([...n??[],...r??[]]);return t.filter(o=>!i.has(o.id))},Ct(e.options,"debugRows"))}},zVe={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:Vo("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},i=e.getPreGroupedRowModel().flatRows;return t?i.forEach(o=>{o.getCanSelect()&&(r[o.id]=!0)}):i.forEach(o=>{delete r[o.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),i={...n};return e.getRowModel().rows.forEach(o=>{u4(i,o.id,r,!0,e)}),i}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=St(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?_3(e,n):{rows:[],flatRows:[],rowsById:{}},Ct(e.options,"debugTable")),e.getFilteredSelectedRowModel=St(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?_3(e,n):{rows:[],flatRows:[],rowsById:{}},Ct(e.options,"debugTable")),e.getGroupedSelectedRowModel=St(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?_3(e,n):{rows:[],flatRows:[],rowsById:{}},Ct(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(i=>i.getCanSelect()&&!n[i.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(i=>i.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(i=>!n[i.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{const i=e.getIsSelected();t.setRowSelection(o=>{var a;if(n=typeof n<"u"?n:!i,e.getCanSelect()&&i===n)return o;const s={...o};return u4(s,e.id,n,(a=r?.selectChildren)!=null?a:!0,t),s})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return lP(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return l4(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return l4(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return r=>{var i;n&&e.toggleSelected((i=r.target)==null?void 0:i.checked)}}}},u4=(e,t,n,r,i)=>{var o;const a=i.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(s=>delete e[s]),a.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(o=a.subRows)!=null&&o.length&&a.getCanSelectSubRows()&&a.subRows.forEach(s=>u4(e,s.id,n,r,i))};function _3(e,t){const n=e.getState().rowSelection,r=[],i={},o=function(a,s){return a.map(u=>{var l;const c=lP(u,n);if(c&&(r.push(u),i[u.id]=u),(l=u.subRows)!=null&&l.length&&(u={...u,subRows:o(u.subRows)}),c)return u}).filter(Boolean)};return{rows:o(t.rows),flatRows:r,rowsById:i}}function lP(e,t){var n;return(n=t[e.id])!=null?n:!1}function l4(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let i=!0,o=!1;return e.subRows.forEach(a=>{if(!(o&&!i)&&(a.getCanSelect()&&(lP(a,t)?o=!0:i=!1),a.subRows&&a.subRows.length)){const s=l4(a,t);s==="all"?o=!0:(s==="some"&&(o=!0),i=!1)}}),i?"all":o?"some":!1}const c4=/([0-9]+)/gm,UVe=(e,t,n)=>NG(Il(e.getValue(n)).toLowerCase(),Il(t.getValue(n)).toLowerCase()),VVe=(e,t,n)=>NG(Il(e.getValue(n)),Il(t.getValue(n))),WVe=(e,t,n)=>cP(Il(e.getValue(n)).toLowerCase(),Il(t.getValue(n)).toLowerCase()),HVe=(e,t,n)=>cP(Il(e.getValue(n)),Il(t.getValue(n))),KVe=(e,t,n)=>{const r=e.getValue(n),i=t.getValue(n);return r>i?1:rcP(e.getValue(n),t.getValue(n));function cP(e,t){return e===t?0:e>t?1:-1}function Il(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function NG(e,t){const n=e.split(c4).filter(Boolean),r=t.split(c4).filter(Boolean);for(;n.length&&r.length;){const i=n.shift(),o=r.shift(),a=parseInt(i,10),s=parseInt(o,10),u=[a,s].sort();if(isNaN(u[0])){if(i>o)return 1;if(o>i)return-1;continue}if(isNaN(u[1]))return isNaN(a)?-1:1;if(a>s)return 1;if(s>a)return-1}return n.length-r.length}const Zp={alphanumeric:UVe,alphanumericCaseSensitive:VVe,text:WVe,textCaseSensitive:HVe,datetime:KVe,basic:qVe},GVe={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:Vo("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const i of n){const o=i?.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return Zp.datetime;if(typeof o=="string"&&(r=!0,o.split(c4).length>1))return Zp.alphanumeric}return r?Zp.text:Zp.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof n?.getValue(e.id)=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return gw(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:Zp[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const i=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(a=>{const s=a?.find(p=>p.id===e.id),u=a?.findIndex(p=>p.id===e.id);let l=[],c,f=o?n:i==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&r?s?c="toggle":c="add":a!=null&&a.length&&u!==a.length-1?c="replace":s?c="toggle":c="replace",c==="toggle"&&(o||i||(c="remove")),c==="add"){var h;l=[...a,{id:e.id,desc:f}],l.splice(0,l.length-((h=t.options.maxMultiSortColCount)!=null?h:Number.MAX_SAFE_INTEGER))}else c==="toggle"?l=a.map(p=>p.id===e.id?{...p,desc:f}:p):c==="remove"?l=a.filter(p=>p.id!==e.id):l=[{id:e.id,desc:f}];return l})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,i;const o=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==o&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(i=t.options.enableMultiRemove)!=null)||i)?!1:a==="desc"?"asc":"desc":o},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(i=>i.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},YVe=[vVe,IVe,MVe,RVe,yVe,bVe,NVe,LVe,GVe,kVe,FVe,jVe,BVe,zVe,DVe];function ZVe(e){var t,n;const r=[...YVe,...(t=e._features)!=null?t:[]];let i={_features:r};const o=i._features.reduce((h,p)=>Object.assign(h,p.getDefaultOptions==null?void 0:p.getDefaultOptions(i)),{}),a=h=>i.options.mergeOptions?i.options.mergeOptions(o,h):{...o,...h};let u={...{},...(n=e.initialState)!=null?n:{}};i._features.forEach(h=>{var p;u=(p=h.getInitialState==null?void 0:h.getInitialState(u))!=null?p:u});const l=[];let c=!1;const f={_features:r,options:{...o,...e},initialState:u,_queue:h=>{l.push(h),c||(c=!0,Promise.resolve().then(()=>{for(;l.length;)l.shift()();c=!1}).catch(p=>setTimeout(()=>{throw p})))},reset:()=>{i.setState(i.initialState)},setOptions:h=>{const p=fl(h,i.options);i.options=a(p)},getState:()=>i.options.state,setState:h=>{i.options.onStateChange==null||i.options.onStateChange(h)},_getRowId:(h,p,m)=>{var v;return(v=i.options.getRowId==null?void 0:i.options.getRowId(h,p,m))!=null?v:`${m?[m.id,p].join("."):p}`},getCoreRowModel:()=>(i._getCoreRowModel||(i._getCoreRowModel=i.options.getCoreRowModel(i)),i._getCoreRowModel()),getRowModel:()=>i.getPaginationRowModel(),getRow:(h,p)=>{let m=(p?i.getPrePaginationRowModel():i.getRowModel()).rowsById[h];if(!m&&(m=i.getCoreRowModel().rowsById[h],!m))throw new Error;return m},_getDefaultColumnDef:St(()=>[i.options.defaultColumn],h=>{var p;return h=(p=h)!=null?p:{},{header:m=>{const v=m.header.column.columnDef;return v.accessorKey?v.accessorKey:v.accessorFn?v.id:null},cell:m=>{var v,b;return(v=(b=m.renderValue())==null||b.toString==null?void 0:b.toString())!=null?v:null},...i._features.reduce((m,v)=>Object.assign(m,v.getDefaultColumnDef==null?void 0:v.getDefaultColumnDef()),{}),...h}},Ct(e,"debugColumns")),_getColumnDefs:()=>i.options.columns,getAllColumns:St(()=>[i._getColumnDefs()],h=>{const p=function(m,v,b){return b===void 0&&(b=0),m.map(w=>{const x=mVe(i,w,b,v),S=w;return x.columns=S.columns?p(S.columns,x,b+1):[],x})};return p(h)},Ct(e,"debugColumns")),getAllFlatColumns:St(()=>[i.getAllColumns()],h=>h.flatMap(p=>p.getFlatColumns()),Ct(e,"debugColumns")),_getAllFlatColumnsById:St(()=>[i.getAllFlatColumns()],h=>h.reduce((p,m)=>(p[m.id]=m,p),{}),Ct(e,"debugColumns")),getAllLeafColumns:St(()=>[i.getAllColumns(),i._getOrderColumnsFn()],(h,p)=>{let m=h.flatMap(v=>v.getLeafColumns());return p(m)},Ct(e,"debugColumns")),getColumn:h=>i._getAllFlatColumnsById()[h]};Object.assign(i,f);for(let h=0;hSt(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(i,o,a){o===void 0&&(o=0);const s=[];for(let l=0;le._autoResetPageIndex()))}function XVe(e){const t=[],n=r=>{var i;t.push(r),(i=r.subRows)!=null&&i.length&&r.getIsExpanded()&&r.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function LG(e,t,n){return n.options.filterFromLeafRows?QVe(e,t,n):JVe(e,t,n)}function QVe(e,t,n){var r;const i=[],o={},a=(r=n.options.maxLeafRowFilterDepth)!=null?r:100,s=function(u,l){l===void 0&&(l=0);const c=[];for(let h=0;hSt(()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter,e.getFilteredRowModel()],(n,r,i)=>{if(!n.rows.length||!(r!=null&&r.length)&&!i)return n;const o=[...r.map(s=>s.id).filter(s=>s!==t),i?"__global__":void 0].filter(Boolean),a=s=>{for(let u=0;uSt(()=>{var n;return[(n=e.getColumn(t))==null?void 0:n.getFacetedRowModel()]},n=>{if(!n)return new Map;let r=new Map;for(let o=0;oSt(()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter],(t,n,r)=>{if(!t.rows.length||!(n!=null&&n.length)&&!r){for(let h=0;h{var p;const m=e.getColumn(h.id);if(!m)return;const v=m.getFilterFn();v&&i.push({id:h.id,filterFn:v,resolvedValue:(p=v.resolveFilterValue==null?void 0:v.resolveFilterValue(h.value))!=null?p:h.value})});const a=(n??[]).map(h=>h.id),s=e.getGlobalFilterFn(),u=e.getAllLeafColumns().filter(h=>h.getCanGlobalFilter());r&&s&&u.length&&(a.push("__global__"),u.forEach(h=>{var p;o.push({id:h.id,filterFn:s,resolvedValue:(p=s.resolveFilterValue==null?void 0:s.resolveFilterValue(r))!=null?p:r})}));let l,c;for(let h=0;h{p.columnFiltersMeta[v]=b})}if(o.length){for(let m=0;m{p.columnFiltersMeta[v]=b})){p.columnFilters.__global__=!0;break}}p.columnFilters.__global__!==!0&&(p.columnFilters.__global__=!1)}}const f=h=>{for(let p=0;pe._autoResetPageIndex()))}function CQe(e){return t=>St(()=>[t.getState().pagination,t.getPrePaginationRowModel(),t.options.paginateExpandedRows?void 0:t.getState().expanded],(n,r)=>{if(!r.rows.length)return r;const{pageSize:i,pageIndex:o}=n;let{rows:a,flatRows:s,rowsById:u}=r;const l=i*o,c=l+i;a=a.slice(l,c);let f;t.options.paginateExpandedRows?f={rows:a,flatRows:s,rowsById:u}:f=XVe({rows:a,flatRows:s,rowsById:u}),f.flatRows=[];const h=p=>{f.flatRows.push(p),p.subRows.length&&p.subRows.forEach(h)};return f.rows.forEach(h),f},Ct(t.options,"debugTable"))}function EQe(){return e=>St(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,i=[],o=r.filter(u=>{var l;return(l=e.getColumn(u.id))==null?void 0:l.getCanSort()}),a={};o.forEach(u=>{const l=e.getColumn(u.id);l&&(a[u.id]={sortUndefined:l.columnDef.sortUndefined,invertSorting:l.columnDef.invertSorting,sortingFn:l.getSortingFn()})});const s=u=>{const l=u.map(c=>({...c}));return l.sort((c,f)=>{for(let p=0;p{var f;i.push(c),(f=c.subRows)!=null&&f.length&&(c.subRows=s(c.subRows))}),l};return{rows:s(n.rows),flatRows:i,rowsById:n.rowsById}},Ct(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}/** + * react-table + * + * Copyright (c) TanStack + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function OQe(e,t){return e?eWe(e)?y.createElement(e,t):e:null}function eWe(e){return tWe(e)||typeof e=="function"||nWe(e)}function tWe(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function nWe(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function AQe(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=y.useState(()=>({current:ZVe(t)})),[r,i]=y.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...r,...e.state},onStateChange:a=>{i(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const FG=Object.freeze({left:0,top:0,width:16,height:16}),bx=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),fP=Object.freeze({...FG,...bx}),f4=Object.freeze({...fP,body:"",hidden:!1});function rWe(e,t){const n={};!e.hFlip!=!t.hFlip&&(n.hFlip=!0),!e.vFlip!=!t.vFlip&&(n.vFlip=!0);const r=((e.rotate||0)+(t.rotate||0))%4;return r&&(n.rotate=r),n}function NI(e,t){const n=rWe(e,t);for(const r in f4)r in bx?r in e&&!(r in n)&&(n[r]=bx[r]):r in t?n[r]=t[r]:r in e&&(n[r]=e[r]);return n}function iWe(e,t){const n=e.icons,r=e.aliases||Object.create(null),i=Object.create(null);function o(a){if(n[a])return i[a]=[];if(!(a in i)){i[a]=null;const s=r[a]&&r[a].parent,u=s&&o(s);u&&(i[a]=[s].concat(u))}return i[a]}return Object.keys(n).concat(Object.keys(r)).forEach(o),i}function oWe(e,t,n){const r=e.icons,i=e.aliases||Object.create(null);let o={};function a(s){o=NI(r[s]||i[s],o)}return a(t),n.forEach(a),NI(e,o)}function jG(e,t){const n=[];if(typeof e!="object"||typeof e.icons!="object")return n;e.not_found instanceof Array&&e.not_found.forEach(i=>{t(i,null),n.push(i)});const r=iWe(e);for(const i in r){const o=r[i];o&&(t(i,oWe(e,i,o)),n.push(i))}return n}const aWe={provider:"",aliases:{},not_found:{},...FG};function S3(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function BG(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!S3(e,aWe))return null;const n=t.icons;for(const i in n){const o=n[i];if(!i||typeof o.body!="string"||!S3(o,f4))return null}const r=t.aliases||Object.create(null);for(const i in r){const o=r[i],a=o.parent;if(!i||typeof a!="string"||!n[a]&&!r[a]||!S3(o,f4))return null}return t}const zG=/^[a-z0-9]+(-[a-z0-9]+)*$/,mw=(e,t,n,r="")=>{const i=e.split(":");if(e.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;r=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){const s=i.pop(),u=i.pop(),l={provider:i.length>0?i[0]:r,prefix:u,name:s};return t&&!iy(l)?null:l}const o=i[0],a=o.split("-");if(a.length>1){const s={provider:r,prefix:a.shift(),name:a.join("-")};return t&&!iy(s)?null:s}if(n&&r===""){const s={provider:r,prefix:"",name:o};return t&&!iy(s,n)?null:s}return null},iy=(e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1,LI=Object.create(null);function sWe(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function lf(e,t){const n=LI[e]||(LI[e]=Object.create(null));return n[t]||(n[t]=sWe(e,t))}function dP(e,t){return BG(t)?jG(t,(n,r)=>{r?e.icons[n]=r:e.missing.add(n)}):[]}function uWe(e,t,n){try{if(typeof n.body=="string")return e.icons[t]={...n},!0}catch{}return!1}let rm=!1;function UG(e){return typeof e=="boolean"&&(rm=e),rm}function FI(e){const t=typeof e=="string"?mw(e,!0,rm):e;if(t){const n=lf(t.provider,t.prefix),r=t.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function lWe(e,t){const n=mw(e,!0,rm);if(!n)return!1;const r=lf(n.provider,n.prefix);return t?uWe(r,n.name,t):(r.missing.add(n.name),!0)}function cWe(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),rm&&!t&&!e.prefix){let i=!1;return BG(e)&&(e.prefix="",jG(e,(o,a)=>{lWe(o,a)&&(i=!0)})),i}const n=e.prefix;if(!iy({provider:t,prefix:n,name:"a"}))return!1;const r=lf(t,n);return!!dP(r,e)}const VG=Object.freeze({width:null,height:null}),WG=Object.freeze({...VG,...bx}),fWe=/(-?[0-9.]*[0-9]+[0-9.]*)/g,dWe=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function jI(e,t,n){if(t===1)return e;if(n=n||100,typeof e=="number")return Math.ceil(e*t*n)/n;if(typeof e!="string")return e;const r=e.split(fWe);if(r===null||!r.length)return e;const i=[];let o=r.shift(),a=dWe.test(o);for(;;){if(a){const s=parseFloat(o);isNaN(s)?i.push(o):i.push(Math.ceil(s*t*n)/n)}else i.push(o);if(o=r.shift(),o===void 0)return i.join("");a=!a}}function hWe(e,t="defs"){let n="";const r=e.indexOf("<"+t);for(;r>=0;){const i=e.indexOf(">",r),o=e.indexOf("",o);if(a===-1)break;n+=e.slice(i+1,o).trim(),e=e.slice(0,r).trim()+e.slice(a+1)}return{defs:n,content:e}}function pWe(e,t){return e?""+e+""+t:t}function gWe(e,t,n){const r=hWe(e);return pWe(r.defs,t+r.content+n)}const mWe=e=>e==="unset"||e==="undefined"||e==="none";function vWe(e,t){const n={...fP,...e},r={...WG,...t},i={left:n.left,top:n.top,width:n.width,height:n.height};let o=n.body;[n,r].forEach(v=>{const b=[],w=v.hFlip,x=v.vFlip;let S=v.rotate;w?x?S+=2:(b.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),b.push("scale(-1 1)"),i.top=i.left=0):x&&(b.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),b.push("scale(1 -1)"),i.top=i.left=0);let O;switch(S<0&&(S-=Math.floor(S/4)*4),S=S%4,S){case 1:O=i.height/2+i.top,b.unshift("rotate(90 "+O.toString()+" "+O.toString()+")");break;case 2:b.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:O=i.width/2+i.left,b.unshift("rotate(-90 "+O.toString()+" "+O.toString()+")");break}S%2===1&&(i.left!==i.top&&(O=i.left,i.left=i.top,i.top=O),i.width!==i.height&&(O=i.width,i.width=i.height,i.height=O)),b.length&&(o=gWe(o,'',""))});const a=r.width,s=r.height,u=i.width,l=i.height;let c,f;a===null?(f=s===null?"1em":s==="auto"?l:s,c=jI(f,u/l)):(c=a==="auto"?u:a,f=s===null?jI(c,l/u):s==="auto"?l:s);const h={},p=(v,b)=>{mWe(b)||(h[v]=b.toString())};p("width",c),p("height",f);const m=[i.left,i.top,u,l];return h.viewBox=m.join(" "),{attributes:h,viewBox:m,body:o}}const yWe=/\sid="(\S+)"/g,bWe="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let xWe=0;function wWe(e,t=bWe){const n=[];let r;for(;r=yWe.exec(e);)n.push(r[1]);if(!n.length)return e;const i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(o=>{const a=typeof t=="function"?t(o):t+(xWe++).toString(),s=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+s+')([")]|\\.[a-z])',"g"),"$1"+a+i+"$3")}),e=e.replace(new RegExp(i,"g"),""),e}const d4=Object.create(null);function _We(e,t){d4[e]=t}function h4(e){return d4[e]||d4[""]}function hP(e){let t;if(typeof e.resources=="string")t=[e.resources];else if(t=e.resources,!(t instanceof Array)||!t.length)return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const pP=Object.create(null),Xp=["https://api.simplesvg.com","https://api.unisvg.com"],oy=[];for(;Xp.length>0;)Xp.length===1||Math.random()>.5?oy.push(Xp.shift()):oy.push(Xp.pop());pP[""]=hP({resources:["https://api.iconify.design"].concat(oy)});function SWe(e,t){const n=hP(t);return n===null?!1:(pP[e]=n,!0)}function gP(e){return pP[e]}const CWe=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let BI=CWe();function EWe(e,t){const n=gP(e);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let i=0;n.resources.forEach(a=>{i=Math.max(i,a.length)});const o=t+".json?icons=";r=n.maxURL-i-n.path.length-o.length}return r}function OWe(e){return e===404}const AWe=(e,t,n)=>{const r=[],i=EWe(e,t),o="icons";let a={type:o,provider:e,prefix:t,icons:[]},s=0;return n.forEach((u,l)=>{s+=u.length+1,s>=i&&l>0&&(r.push(a),a={type:o,provider:e,prefix:t,icons:[]},s=u.length),a.icons.push(u)}),r.push(a),r};function PWe(e){if(typeof e=="string"){const t=gP(e);if(t)return t.path}return"/"}const kWe=(e,t,n)=>{if(!BI){n("abort",424);return}let r=PWe(t.provider);switch(t.type){case"icons":{const o=t.prefix,s=t.icons.join(","),u=new URLSearchParams({icons:s});r+=o+".json?"+u.toString();break}case"custom":{const o=t.uri;r+=o.slice(0,1)==="/"?o.slice(1):o;break}default:n("abort",400);return}let i=503;BI(e+r).then(o=>{const a=o.status;if(a!==200){setTimeout(()=>{n(OWe(a)?"abort":"next",a)});return}return i=501,o.json()}).then(o=>{if(typeof o!="object"||o===null){setTimeout(()=>{o===404?n("abort",o):n("next",i)});return}setTimeout(()=>{n("success",o)})}).catch(()=>{n("next",i)})},TWe={prepare:AWe,send:kWe};function MWe(e){const t={loaded:[],missing:[],pending:[]},n=Object.create(null);e.sort((i,o)=>i.provider!==o.provider?i.provider.localeCompare(o.provider):i.prefix!==o.prefix?i.prefix.localeCompare(o.prefix):i.name.localeCompare(o.name));let r={provider:"",prefix:"",name:""};return e.forEach(i=>{if(r.name===i.name&&r.prefix===i.prefix&&r.provider===i.provider)return;r=i;const o=i.provider,a=i.prefix,s=i.name,u=n[o]||(n[o]=Object.create(null)),l=u[a]||(u[a]=lf(o,a));let c;s in l.icons?c=t.loaded:a===""||l.missing.has(s)?c=t.missing:c=t.pending;const f={provider:o,prefix:a,name:s};c.push(f)}),t}function HG(e,t){e.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(i=>i.id!==t))})}function RWe(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let n=!1;const r=e.provider,i=e.prefix;t.forEach(o=>{const a=o.icons,s=a.pending.length;a.pending=a.pending.filter(u=>{if(u.prefix!==i)return!0;const l=u.name;if(e.icons[l])a.loaded.push({provider:r,prefix:i,name:l});else if(e.missing.has(l))a.missing.push({provider:r,prefix:i,name:l});else return n=!0,!0;return!1}),a.pending.length!==s&&(n||HG([e],o.id),o.callback(a.loaded.slice(0),a.missing.slice(0),a.pending.slice(0),o.abort))})}))}let DWe=0;function $We(e,t,n){const r=DWe++,i=HG.bind(null,n,r);if(!t.pending.length)return i;const o={id:r,icons:t,callback:e,abort:i};return n.forEach(a=>{(a.loaderCallbacks||(a.loaderCallbacks=[])).push(o)}),i}function IWe(e,t=!0,n=!1){const r=[];return e.forEach(i=>{const o=typeof i=="string"?mw(i,t,n):i;o&&r.push(o)}),r}var NWe={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function LWe(e,t,n,r){const i=e.resources.length,o=e.random?Math.floor(Math.random()*i):e.index;let a;if(e.random){let C=e.resources.slice(0);for(a=[];C.length>1;){const k=Math.floor(Math.random()*C.length);a.push(C[k]),C=C.slice(0,k).concat(C.slice(k+1))}a=a.concat(C)}else a=e.resources.slice(o).concat(e.resources.slice(0,o));const s=Date.now();let u="pending",l=0,c,f=null,h=[],p=[];typeof r=="function"&&p.push(r);function m(){f&&(clearTimeout(f),f=null)}function v(){u==="pending"&&(u="aborted"),m(),h.forEach(C=>{C.status==="pending"&&(C.status="aborted")}),h=[]}function b(C,k){k&&(p=[]),typeof C=="function"&&p.push(C)}function w(){return{startTime:s,payload:t,status:u,queriesSent:l,queriesPending:h.length,subscribe:b,abort:v}}function x(){u="failed",p.forEach(C=>{C(void 0,c)})}function S(){h.forEach(C=>{C.status==="pending"&&(C.status="aborted")}),h=[]}function O(C,k,M){const L=k!=="success";switch(h=h.filter(U=>U!==C),u){case"pending":break;case"failed":if(L||!e.dataAfterTimeout)return;break;default:return}if(k==="abort"){c=M,x();return}if(L){c=M,h.length||(a.length?E():x());return}if(m(),S(),!e.random){const U=e.resources.indexOf(C.resource);U!==-1&&U!==e.index&&(e.index=U)}u="completed",p.forEach(U=>{U(M)})}function E(){if(u!=="pending")return;m();const C=a.shift();if(C===void 0){if(h.length){f=setTimeout(()=>{m(),u==="pending"&&(S(),x())},e.timeout);return}x();return}const k={status:"pending",resource:C,callback:(M,L)=>{O(k,M,L)}};h.push(k),l++,f=setTimeout(E,e.rotate),n(C,t,k.callback)}return setTimeout(E),w}function KG(e){const t={...NWe,...e};let n=[];function r(){n=n.filter(s=>s().status==="pending")}function i(s,u,l){const c=LWe(t,s,u,(f,h)=>{r(),l&&l(f,h)});return n.push(c),c}function o(s){return n.find(u=>s(u))||null}return{query:i,find:o,setIndex:s=>{t.index=s},getIndex:()=>t.index,cleanup:r}}function zI(){}const C3=Object.create(null);function FWe(e){if(!C3[e]){const t=gP(e);if(!t)return;const n=KG(t),r={config:t,redundancy:n};C3[e]=r}return C3[e]}function jWe(e,t,n){let r,i;if(typeof e=="string"){const o=h4(e);if(!o)return n(void 0,424),zI;i=o.send;const a=FWe(e);a&&(r=a.redundancy)}else{const o=hP(e);if(o){r=KG(o);const a=e.resources?e.resources[0]:"",s=h4(a);s&&(i=s.send)}}return!r||!i?(n(void 0,424),zI):r.query(t,i,n)().abort}const UI="iconify2",im="iconify",qG=im+"-count",VI=im+"-version",GG=36e5,BWe=168,zWe=50;function p4(e,t){try{return e.getItem(t)}catch{}}function mP(e,t,n){try{return e.setItem(t,n),!0}catch{}}function WI(e,t){try{e.removeItem(t)}catch{}}function g4(e,t){return mP(e,qG,t.toString())}function m4(e){return parseInt(p4(e,qG))||0}const vw={local:!0,session:!0},YG={local:new Set,session:new Set};let vP=!1;function UWe(e){vP=e}let T1=typeof window>"u"?{}:window;function ZG(e){const t=e+"Storage";try{if(T1&&T1[t]&&typeof T1[t].length=="number")return T1[t]}catch{}vw[e]=!1}function XG(e,t){const n=ZG(e);if(!n)return;const r=p4(n,VI);if(r!==UI){if(r){const s=m4(n);for(let u=0;u{const u=im+s.toString(),l=p4(n,u);if(typeof l=="string"){try{const c=JSON.parse(l);if(typeof c=="object"&&typeof c.cached=="number"&&c.cached>i&&typeof c.provider=="string"&&typeof c.data=="object"&&typeof c.data.prefix=="string"&&t(c,s))return!0}catch{}WI(n,u)}};let a=m4(n);for(let s=a-1;s>=0;s--)o(s)||(s===a-1?(a--,g4(n,a)):YG[e].add(s))}function QG(){if(!vP){UWe(!0);for(const e in vw)XG(e,t=>{const n=t.data,r=t.provider,i=n.prefix,o=lf(r,i);if(!dP(o,n).length)return!1;const a=n.lastModified||-1;return o.lastModifiedCached=o.lastModifiedCached?Math.min(o.lastModifiedCached,a):a,!0})}}function VWe(e,t){const n=e.lastModifiedCached;if(n&&n>=t)return n===t;if(e.lastModifiedCached=t,n)for(const r in vw)XG(r,i=>{const o=i.data;return i.provider!==e.provider||o.prefix!==e.prefix||o.lastModified===t});return!0}function WWe(e,t){vP||QG();function n(r){let i;if(!vw[r]||!(i=ZG(r)))return;const o=YG[r];let a;if(o.size)o.delete(a=Array.from(o).shift());else if(a=m4(i),a>=zWe||!g4(i,a+1))return;const s={cached:Math.floor(Date.now()/GG),provider:e.provider,data:t};return mP(i,im+a.toString(),JSON.stringify(s))}t.lastModified&&!VWe(e,t.lastModified)||Object.keys(t.icons).length&&(t.not_found&&(t=Object.assign({},t),delete t.not_found),n("local")||n("session"))}function HWe(){}function KWe(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,RWe(e)}))}function qWe(e){const t=[],n=[];return e.forEach(r=>{(r.match(zG)?t:n).push(r)}),{valid:t,invalid:n}}function Qp(e,t,n,r){function i(){const o=e.pendingIcons;t.forEach(a=>{o&&o.delete(a),e.icons[a]||e.missing.add(a)})}if(n&&typeof n=="object")try{if(!dP(e,n).length){i();return}r&&WWe(e,n)}catch(o){console.error(o)}i(),KWe(e)}function HI(e,t){e instanceof Promise?e.then(n=>{t(n)}).catch(()=>{t(null)}):t(e)}function GWe(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:n,prefix:r}=e,i=e.iconsToLoad;if(delete e.iconsToLoad,!i||!i.length)return;const o=e.loadIcon;if(e.loadIcons&&(i.length>1||!o)){HI(e.loadIcons(i,r,n),c=>{Qp(e,i,c,!1)});return}if(o){i.forEach(c=>{const f=o(c,r,n);HI(f,h=>{const p=h?{prefix:r,icons:{[c]:h}}:null;Qp(e,[c],p,!1)})});return}const{valid:a,invalid:s}=qWe(i);if(s.length&&Qp(e,s,null,!1),!a.length)return;const u=r.match(zG)?h4(n):null;if(!u){Qp(e,a,null,!1);return}u.prepare(n,r,a).forEach(c=>{jWe(n,c,f=>{Qp(e,c.icons,f,!0)})})}))}const YWe=(e,t)=>{const n=IWe(e,!0,UG()),r=MWe(n);if(!r.pending.length){let u=!0;return setTimeout(()=>{u&&t(r.loaded,r.missing,r.pending,HWe)}),()=>{u=!1}}const i=Object.create(null),o=[];let a,s;return r.pending.forEach(u=>{const{provider:l,prefix:c}=u;if(c===s&&l===a)return;a=l,s=c,o.push(lf(l,c));const f=i[l]||(i[l]=Object.create(null));f[c]||(f[c]=[])}),r.pending.forEach(u=>{const{provider:l,prefix:c,name:f}=u,h=lf(l,c),p=h.pendingIcons||(h.pendingIcons=new Set);p.has(f)||(p.add(f),i[l][c].push(f))}),o.forEach(u=>{const l=i[u.provider][u.prefix];l.length&&GWe(u,l)}),$We(t,r,o)};function ZWe(e,t){const n={...e};for(const r in t){const i=t[r],o=typeof i;r in VG?(i===null||i&&(o==="string"||o==="number"))&&(n[r]=i):o===typeof n[r]&&(n[r]=r==="rotate"?i%4:i)}return n}const XWe=/[\s,]+/;function QWe(e,t){t.split(XWe).forEach(n=>{switch(n.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function JWe(e,t=0){const n=e.replace(/^-?[0-9.]*/,"");function r(i){for(;i<0;)i+=4;return i%4}if(n===""){const i=parseInt(e);return isNaN(i)?0:r(i)}else if(n!==e){let i=0;switch(n){case"%":i=25;break;case"deg":i=90}if(i){let o=parseFloat(e.slice(0,e.length-n.length));return isNaN(o)?0:(o=o/i,o%1===0?r(o):0)}}return t}function eHe(e,t){let n=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in t)n+=" "+r+'="'+t[r]+'"';return'"+e+""}function tHe(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function nHe(e){return"data:image/svg+xml,"+tHe(e)}function rHe(e){return'url("'+nHe(e)+'")'}let M0;function iHe(){try{M0=window.trustedTypes.createPolicy("iconify",{createHTML:e=>e})}catch{M0=null}}function oHe(e){return M0===void 0&&iHe(),M0?M0.createHTML(e):e}const JG={...WG,inline:!1},aHe={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},sHe={display:"inline-block"},v4={backgroundColor:"currentColor"},eY={backgroundColor:"transparent"},KI={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},qI={WebkitMask:v4,mask:v4,background:eY};for(const e in qI){const t=qI[e];for(const n in KI)t[e+n]=KI[n]}const uHe={...JG,inline:!0};function GI(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}const lHe=(e,t,n)=>{const r=t.inline?uHe:JG,i=ZWe(r,t),o=t.mode||"svg",a={},s=t.style||{},u={...o==="svg"?aHe:{}};if(n){const b=mw(n,!1,!0);if(b){const w=["iconify"],x=["provider","prefix"];for(const S of x)b[S]&&w.push("iconify--"+b[S]);u.className=w.join(" ")}}for(let b in t){const w=t[b];if(w!==void 0)switch(b){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":break;case"_ref":u.ref=w;break;case"className":u[b]=(u[b]?u[b]+" ":"")+w;break;case"inline":case"hFlip":case"vFlip":i[b]=w===!0||w==="true"||w===1;break;case"flip":typeof w=="string"&&QWe(i,w);break;case"color":a.color=w;break;case"rotate":typeof w=="string"?i[b]=JWe(w):typeof w=="number"&&(i[b]=w);break;case"ariaHidden":case"aria-hidden":w!==!0&&w!=="true"&&delete u["aria-hidden"];break;default:r[b]===void 0&&(u[b]=w)}}const l=vWe(e,i),c=l.attributes;if(i.inline&&(a.verticalAlign="-0.125em"),o==="svg"){u.style={...a,...s},Object.assign(u,c);let b=0,w=t.id;return typeof w=="string"&&(w=w.replace(/-/g,"_")),u.dangerouslySetInnerHTML={__html:oHe(wWe(l.body,w?()=>w+"ID"+b++:"iconifyReact"))},y.createElement("svg",u)}const{body:f,width:h,height:p}=e,m=o==="mask"||(o==="bg"?!1:f.indexOf("currentColor")!==-1),v=eHe(f,{...c,width:h+"",height:p+""});return u.style={...a,"--svg":rHe(v),width:GI(c.width),height:GI(c.height),...sHe,...m?v4:eY,...s},y.createElement("span",u)};UG(!0);_We("",TWe);if(typeof document<"u"&&typeof window<"u"){QG();const e=window;if(e.IconifyPreload!==void 0){const t=e.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof t=="object"&&t!==null&&(t instanceof Array?t:[t]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!cWe(r))&&console.error(n)}catch{console.error(n)}})}if(e.IconifyProviders!==void 0){const t=e.IconifyProviders;if(typeof t=="object"&&t!==null)for(let n in t){const r="IconifyProviders["+n+"] is invalid.";try{const i=t[n];if(typeof i!="object"||!i||i.resources===void 0)continue;SWe(n,i)||console.error(r)}catch{console.error(r)}}}}function tY(e){const[t,n]=y.useState(!!e.ssr),[r,i]=y.useState({});function o(p){if(p){const m=e.icon;if(typeof m=="object")return{name:"",data:m};const v=FI(m);if(v)return{name:m,data:v}}return{name:""}}const[a,s]=y.useState(o(!!e.ssr));function u(){const p=r.callback;p&&(p(),i({}))}function l(p){if(JSON.stringify(a)!==JSON.stringify(p))return u(),s(p),!0}function c(){var p;const m=e.icon;if(typeof m=="object"){l({name:"",data:m});return}const v=FI(m);if(l({name:m,data:v}))if(v===void 0){const b=YWe([m],c);i({callback:b})}else v&&((p=e.onLoad)===null||p===void 0||p.call(e,m))}y.useEffect(()=>(n(!0),u),[]),y.useEffect(()=>{t&&c()},[e.icon,t]);const{name:f,data:h}=a;return h?lHe({...fP,...h},e,f):e.children?e.children:y.createElement("span",{})}const PQe=y.forwardRef((e,t)=>tY({...e,_ref:t}));y.forwardRef((e,t)=>tY({inline:!0,...e,_ref:t}));var nY="AlertDialog",[cHe,kQe]=vi(nY,[ez]),Du=ez(),rY=e=>{const{__scopeAlertDialog:t,...n}=e,r=Du(t);return I.jsx(J0e,{...r,...n,modal:!0})};rY.displayName=nY;var fHe="AlertDialogTrigger",iY=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,i=Du(n);return I.jsx(ege,{...i,...r,ref:t})});iY.displayName=fHe;var dHe="AlertDialogPortal",oY=e=>{const{__scopeAlertDialog:t,...n}=e,r=Du(t);return I.jsx(tge,{...r,...n})};oY.displayName=dHe;var hHe="AlertDialogOverlay",aY=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,i=Du(n);return I.jsx(nge,{...i,...r,ref:t})});aY.displayName=hHe;var Ld="AlertDialogContent",[pHe,gHe]=cHe(Ld),sY=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...i}=e,o=Du(n),a=y.useRef(null),s=Yt(t,a),u=y.useRef(null);return I.jsx(Y0e,{contentName:Ld,titleName:uY,docsSlug:"alert-dialog",children:I.jsx(pHe,{scope:n,cancelRef:u,children:I.jsxs(rge,{role:"alertdialog",...o,...i,ref:s,onOpenAutoFocus:Ye(i.onOpenAutoFocus,l=>{l.preventDefault(),u.current?.focus({preventScroll:!0})}),onPointerDownOutside:l=>l.preventDefault(),onInteractOutside:l=>l.preventDefault(),children:[I.jsx(O5,{children:r}),I.jsx(vHe,{contentRef:a})]})})})});sY.displayName=Ld;var uY="AlertDialogTitle",lY=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,i=Du(n);return I.jsx(ige,{...i,...r,ref:t})});lY.displayName=uY;var cY="AlertDialogDescription",fY=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,i=Du(n);return I.jsx(oge,{...i,...r,ref:t})});fY.displayName=cY;var mHe="AlertDialogAction",dY=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,i=Du(n);return I.jsx(mz,{...i,...r,ref:t})});dY.displayName=mHe;var hY="AlertDialogCancel",pY=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:i}=gHe(hY,n),o=Du(n),a=Yt(t,i);return I.jsx(mz,{...o,...r,ref:a})});pY.displayName=hY;var vHe=({contentRef:e})=>{const t=`\`${Ld}\` requires a description for the component to be accessible for screen reader users. + +You can add a description to the \`${Ld}\` by passing a \`${cY}\` component as a child, which also benefits sighted users by adding visible context to the dialog. + +Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Ld}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. + +For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return y.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},TQe=rY,MQe=iY,RQe=oY,DQe=aY,$Qe=sY,IQe=dY,NQe=pY,LQe=lY,FQe=fY;function fs(){return fs=Object.assign?Object.assign.bind():function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:0,n=(ci[e[t+0]]+ci[e[t+1]]+ci[e[t+2]]+ci[e[t+3]]+"-"+ci[e[t+4]]+ci[e[t+5]]+"-"+ci[e[t+6]]+ci[e[t+7]]+"-"+ci[e[t+8]]+ci[e[t+9]]+"-"+ci[e[t+10]]+ci[e[t+11]]+ci[e[t+12]]+ci[e[t+13]]+ci[e[t+14]]+ci[e[t+15]]).toLowerCase();if(!wHe(n))throw TypeError("Stringified UUID is invalid");return n}function gY(e,t,n){e=e||{};var r=e.random||(e.rng||bHe)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,_He(r)}function Ar(e){return y.createElement("i",{className:"rmel-iconfont rmel-icon-"+e.type})}function SHe(e){return y.createElement("div",{className:"rc-md-navigation "+(e.visible?"visible":"in-visible")},y.createElement("div",{className:"navigation-nav left"},y.createElement("div",{className:"button-wrap"},e.left)),y.createElement("div",{className:"navigation-nav right"},y.createElement("div",{className:"button-wrap"},e.right)))}function CHe(e){return y.createElement("div",{className:"tool-bar",style:e.style},e.children)}var mY=function(e){Fn(t,e);function t(){for(var n,r=arguments.length,i=new Array(r),o=0;o"u")){var r="enUS";if(navigator.language){var i=navigator.language.split("-");r=i[0],i.length!==1&&(r+=i[i.length-1].toUpperCase())}if(navigator.browserLanguage){var o=navigator.browserLanguage.split("-");r=o[0],o[1]&&(r+=o[1].toUpperCase())}this.current!==r&&this.isAvailable(r)&&(this.current=r,dl.emit(dl.EVENT_LANG_CHANGE,this,r,this.langs[r]))}},t.isAvailable=function(r){return typeof this.langs[r]<"u"},t.add=function(r,i){this.langs[r]=i},t.setCurrent=function(r){if(!this.isAvailable(r))throw new Error("Language "+r+" is not exists");this.current!==r&&(this.current=r,dl.emit(dl.EVENT_LANG_CHANGE,this,r,this.langs[r]))},t.get=function(r,i){var o=this.langs[this.current][r]||"";return i&&Object.keys(i).forEach(function(a){o=o.replace(new RegExp("\\{"+a+"\\}","g"),i[a])}),o},t.getCurrent=function(){return this.current},e}(),Ln=new AHe;function om(e){"@babel/helpers - typeof";return om=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},om(e)}function PHe(e,t){if(om(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(om(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function kHe(e){var t=PHe(e,"string");return om(t)=="symbol"?t:t+""}function THe(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function DHe(e,t){if(e){if(typeof e=="string")return YI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return YI(e,t)}}function YI(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0)for(var s=RHe(n),u;!(u=s()).done;){var l=u.value;if(typeof a[l]<"u"&&!a[l])return!1}else if(a.metaKey||a.ctrlKey||a.shiftKey||a.altKey)return!1;return a.key?a.key===i:a.keyCode===r}function O3(e,t){var n=e.split(` +`),r=e.substr(0,t).split(` +`),i=r.length,o=r[r.length-1].length,a=n[r.length-1],s=r.length>1?r[r.length-2]:null,u=n.length>r.length?n[r.length]:null;return{line:i,col:o,beforeText:e.substr(0,t),afterText:e.substr(t),curLine:a,prevLine:s,nextLine:u}}var nd={bold:["**","**"],italic:["*","*"],underline:["++","++"],strikethrough:["~~","~~"],quote:[` +> `,` +`],inlinecode:["`","`"],code:["\n```\n","\n```\n"]};for(var R1=1;R1<=6;R1++)nd["h"+R1]=[` +`+$He("#",R1)+" ",` +`];function NHe(e){for(var t=e.row,n=t===void 0?2:t,r=e.col,i=r===void 0?2:r,o=["|"],a=["|"],s=["|"],u="",l=1;l<=i;l++)o.push(" Head |"),s.push(" --- |"),a.push(" Data |");for(var c=1;c<=n;c++)u+=` +`+a.join("");return o.join("")+` +`+s.join("")+u}function ZI(e,t){var n=t;if(n.substr(0,1)!==` +`&&(n=` +`+n),e==="unordered")return n.length>1?n.replace(/\n/g,` +* `).trim():"* ";var r=1;return n.length>1?n.replace(/\n/g,function(){return` +`+r+++". "}).trim():"1. "}function A3(e,t){return{text:e,newBlock:t,selection:{start:e.length,end:e.length}}}function x4(e,t,n){if(typeof nd[t]<"u")return{text:""+nd[t][0]+e+nd[t][1],selection:{start:nd[t][0].length,end:nd[t][0].length+e.length}};switch(t){case"tab":var r=n.tabMapValue===1?" ":" ".repeat(n.tabMapValue),i=r+e.replace(/\n/g,` +`+r),o=e.includes(` +`)?e.match(/\n/g).length:0;return{text:i,selection:{start:n.tabMapValue,end:n.tabMapValue*(o+1)+e.length}};case"unordered":return A3(ZI("unordered",e),!0);case"order":return A3(ZI("order",e),!0);case"hr":return A3("---",!0);case"table":return{text:NHe(n),newBlock:!0};case"image":return{text:"!["+(e||n.target)+"]("+(n.imageUrl||"")+")",selection:{start:2,end:e.length+2}};case"link":return{text:"["+e+"]("+(n.linkUrl||"")+")",selection:{start:1,end:e.length+1}}}return{text:e,selection:{start:0,end:e.length}}}function yY(e,t){var n={};return Object.keys(e).forEach(function(r){if(typeof t[r]>"u"){n[r]=e[r];return}if(typeof t[r]=="object"){Array.isArray(t[r])?n[r]=[].concat(t[r]):n[r]=yY(e[r],t[r]);return}n[r]=t[r]}),n}function LHe(e){for(var t=fs({},e),n=arguments.length,r=new Array(n>1?n-1:0),i=1;i=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function BHe(e,t){if(e){if(typeof e=="string")return QI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return QI(e,t)}}function QI(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"&&(c[f.comp.align]=[]);var h=f.comp.pluginName==="divider"?gY():f.comp.pluginName;c[f.comp.align].push(y.createElement(f.comp,{editor:i,editorConfig:i.config,config:fs({},f.comp.defaultConfig||{},f.config||{}),key:h}))}),c},n.handleSyncScroll=function(i,o){var a=this;if(i===this.shouldSyncScroll){this.props.onScroll&&this.props.onScroll(o,i),this.emitter.emit(this.emitter.EVENT_SCROLL,o,i);var s=this.config.syncScrollMode,u=s===void 0?[]:s;u.includes(i==="md"?"rightFollowLeft":"leftFollowRight")&&(this.hasContentChanged&&this.nodeMdText.current&&this.nodeMdPreviewWrapper.current&&(this.scrollScale=this.nodeMdText.current.scrollHeight/this.nodeMdPreviewWrapper.current.scrollHeight,this.hasContentChanged=!1),this.isSyncingScroll||(this.isSyncingScroll=!0,requestAnimationFrame(function(){a.nodeMdText.current&&a.nodeMdPreviewWrapper.current&&(i==="md"?a.nodeMdPreviewWrapper.current.scrollTop=a.nodeMdText.current.scrollTop/a.scrollScale:a.nodeMdText.current.scrollTop=a.nodeMdPreviewWrapper.current.scrollTop*a.scrollScale),a.isSyncingScroll=!1})))}},n.renderHTML=function(i){var o=this;if(!this.props.renderHTML)return console.error("renderHTML props is required!"),Promise.resolve();var a=this.props.renderHTML(i);return yP(a)?a.then(function(s){return o.setHtml(s)}):typeof a=="function"?this.setHtml(a()):this.setHtml(a)},n.setHtml=function(i){var o=this;return new Promise(function(a){o.setState({html:i},a)})},n.handleToggleMenu=function(){this.setView({menu:!this.state.view.menu})},n.handleFocus=function(i){var o=this.props.onFocus;o&&o(i),this.emitter.emit(this.emitter.EVENT_FOCUS,i)},n.handleBlur=function(i){var o=this.props.onBlur;o&&o(i),this.emitter.emit(this.emitter.EVENT_BLUR,i)},n.handleChange=function(i){i.persist();var o=i.target.value;this.setText(o,i)},n.handlePaste=function(i){if(!(!this.config.allowPasteImage||!this.config.onImageUpload)){var o=i.nativeEvent,a=(o.clipboardData||window.clipboardData).items;a&&(i.preventDefault(),this.uploadWithDataTransfer(a))}},n.handleDrop=function(i){if(this.config.onImageUpload){var o=i.nativeEvent;if(o.dataTransfer){var a=o.dataTransfer.items;a&&(i.preventDefault(),this.uploadWithDataTransfer(a))}}},n.handleEditorKeyDown=function(i){var o=this,a=i.keyCode,s=i.key,u=i.currentTarget;if((a===13||s==="Enter")&&this.composing===!1){var l=u.value,c=u.selectionStart,f=O3(l,c),h=function(){var x=u.value.substr(0,c-f.curLine.length)+u.value.substr(c);o.setText(x,void 0,{start:c-f.curLine.length,end:c-f.curLine.length}),i.preventDefault()},p=function(x){o.insertText(` +`+x,!1,{start:x.length+1,end:x.length+1}),i.preventDefault()},m=f.curLine.match(/^(\s*?)\* /);if(m){if(/^(\s*?)\* $/.test(f.curLine)){h();return}p(m[0]);return}var v=f.curLine.match(/^(\s*?)(\d+)\. /);if(v){if(/^(\s*?)(\d+)\. $/.test(f.curLine)){h();return}var b=""+v[1]+(parseInt(v[2],10)+1)+". ";p(b);return}}this.emitter.emit(this.emitter.EVENT_EDITOR_KEY_DOWN,i)},n.handleLocaleUpdate=function(){this.forceUpdate()},n.getMdElement=function(){return this.nodeMdText.current},n.getHtmlElement=function(){return this.nodeMdPreviewWrapper.current},n.clearSelection=function(){this.nodeMdText.current&&this.nodeMdText.current.setSelectionRange(0,0,"none")},n.getSelection=function(){var i=this.nodeMdText.current;if(!i)return fs({},MHe);var o=i.selectionStart,a=i.selectionEnd,s=(i.value||"").slice(o,a);return{start:o,end:a,text:s}},n.setSelection=function(i){this.nodeMdText.current&&(this.nodeMdText.current.setSelectionRange(i.start,i.end,"forward"),this.nodeMdText.current.focus())},n.insertMarkdown=function(i,o){o===void 0&&(o={});var a=this.getSelection(),s=o?fs({},o):{};if(i==="image"&&(s=fs({},s,{target:o.target||a.text||"",imageUrl:o.imageUrl||this.config.imageUrl})),i==="link"&&(s=fs({},s,{linkUrl:this.config.linkUrl})),i==="tab"&&a.start!==a.end){var u=this.getMdValue().slice(0,a.start).lastIndexOf(` +`)+1;this.setSelection({start:u,end:a.end})}var l=x4(a.text,i,s),c=l.text,f=l.selection;if(l.newBlock){var h=O3(this.getMdValue(),a.start),p=h.col,m=h.curLine;p>0&&m.length>0&&(c=` +`+c,f&&(f.start++,f.end++));var v=h.afterText;a.start!==a.end&&(v=O3(this.getMdValue(),a.end).afterText),v.trim()!==""&&v.substr(0,2)!==` + +`&&(v.substr(0,1)!==` +`&&(c+=` +`),c+=` +`)}this.insertText(c,!0,f)},n.insertPlaceholder=function(i,o){var a=this;this.insertText(i,!0),o.then(function(s){var u=a.getMdValue().replace(i,s);a.setText(u)})},n.insertText=function(i,o,a){i===void 0&&(i=""),o===void 0&&(o=!1);var s=this.state.text,u=this.getSelection(),l=s.slice(0,u.start),c=s.slice(o?u.end:u.start,s.length);this.setText(l+i+c,void 0,a?{start:a.start+l.length,end:a.end+l.length}:{start:u.start,end:u.start})},n.setText=function(i,o,a){var s=this;i===void 0&&(i="");var u=this.config.onChangeTrigger,l=u===void 0?"both":u,c=i.replace(/↵/g,` +`);if(this.state.text!==i){this.setState({text:c}),this.props.onChange&&(l==="both"||l==="beforeRender")&&this.props.onChange({text:c,html:this.getHtmlValue()},o),this.emitter.emit(this.emitter.EVENT_CHANGE,i,o,typeof o>"u"),a&&setTimeout(function(){return s.setSelection(a)}),this.hasContentChanged||(this.hasContentChanged=!0);var f=this.renderHTML(c);(l==="both"||l==="afterRender")&&f.then(function(){s.props.onChange&&s.props.onChange({text:s.state.text,html:s.getHtmlValue()},o)})}},n.getMdValue=function(){return this.state.text},n.getHtmlValue=function(){return typeof this.state.html=="string"?this.state.html:this.nodeMdPreview.current?this.nodeMdPreview.current.getHtml():""},n.onKeyboard=function(i){var o=this;if(Array.isArray(i)){i.forEach(function(a){return o.onKeyboard(a)});return}this.keyboardListeners.includes(i)||this.keyboardListeners.push(i)},n.offKeyboard=function(i){var o=this;if(Array.isArray(i)){i.forEach(function(s){return o.offKeyboard(s)});return}var a=this.keyboardListeners.indexOf(i);a>=0&&this.keyboardListeners.splice(a,1)},n.handleKeyDown=function(i){for(var o=P3(this.keyboardListeners),a;!(a=o()).done;){var s=a.value;if(IHe(i,s)){i.preventDefault(),s.callback(i);return}}this.emitter.emit(this.emitter.EVENT_KEY_DOWN,i)},n.getEventType=function(i){switch(i){case"change":return this.emitter.EVENT_CHANGE;case"fullscreen":return this.emitter.EVENT_FULL_SCREEN;case"viewchange":return this.emitter.EVENT_VIEW_CHANGE;case"keydown":return this.emitter.EVENT_KEY_DOWN;case"editor_keydown":return this.emitter.EVENT_EDITOR_KEY_DOWN;case"blur":return this.emitter.EVENT_BLUR;case"focus":return this.emitter.EVENT_FOCUS;case"scroll":return this.emitter.EVENT_SCROLL}},n.on=function(i,o){var a=this.getEventType(i);a&&this.emitter.on(a,o)},n.off=function(i,o){var a=this.getEventType(i);a&&this.emitter.off(a,o)},n.setView=function(i){var o=this,a=fs({},this.state.view,i);this.setState({view:a},function(){o.emitter.emit(o.emitter.EVENT_VIEW_CHANGE,a)})},n.getView=function(){return fs({},this.state.view)},n.fullScreen=function(i){var o=this;this.state.fullScreen!==i&&this.setState({fullScreen:i},function(){o.emitter.emit(o.emitter.EVENT_FULL_SCREEN,i)})},n.registerPluginApi=function(i,o){this.pluginApis.set(i,o)},n.unregisterPluginApi=function(i){this.pluginApis.delete(i)},n.callPluginApi=function(i){var o=this.pluginApis.get(i);if(!o)throw new Error("API "+i+" not found");for(var a=arguments.length,s=new Array(a>1?a-1:0),u=1;u0&&i.onImageChanged(s.target.files[0])}}))},t}(vr);MY.pluginName="image";var RY=function(e){Fn(t,e);function t(r){var i;return i=e.call(this,r)||this,i.handleKeyboard={key:"k",keyCode:75,aliasCommand:!0,withKey:["ctrlKey"],callback:function(){return i.editor.insertMarkdown("link")}},i}var n=t.prototype;return n.componentDidMount=function(){this.editorConfig.shortcuts&&this.editor.onKeyboard(this.handleKeyboard)},n.componentWillUnmount=function(){this.editor.offKeyboard(this.handleKeyboard)},n.render=function(){var i=this;return y.createElement("span",{className:"button button-type-link",title:Ln.get("btnLink"),onClick:function(){return i.editor.insertMarkdown("link")}},y.createElement(Ar,{type:"link"}))},t}(vr);RY.pluginName="link";var DY=function(e){Fn(t,e);function t(r){var i;return i=e.call(this,r)||this,i.handleKeyboard={key:"7",keyCode:55,withKey:["ctrlKey","shiftKey"],aliasCommand:!0,callback:function(){return i.editor.insertMarkdown("order")}},i}var n=t.prototype;return n.componentDidMount=function(){this.editorConfig.shortcuts&&this.editor.onKeyboard(this.handleKeyboard)},n.componentWillUnmount=function(){this.editor.offKeyboard(this.handleKeyboard)},n.render=function(){var i=this;return y.createElement("span",{className:"button button-type-ordered",title:Ln.get("btnOrdered"),onClick:function(){return i.editor.insertMarkdown("order")}},y.createElement(Ar,{type:"list-ordered"}))},t}(vr);DY.pluginName="list-ordered";var $Y=function(e){Fn(t,e);function t(r){var i;return i=e.call(this,r)||this,i.handleKeyboard={key:"8",keyCode:56,withKey:["ctrlKey","shiftKey"],aliasCommand:!0,callback:function(){return i.editor.insertMarkdown("unordered")}},i}var n=t.prototype;return n.componentDidMount=function(){this.editorConfig.shortcuts&&this.editor.onKeyboard(this.handleKeyboard)},n.componentWillUnmount=function(){this.editor.offKeyboard(this.handleKeyboard)},n.render=function(){var i=this;return y.createElement("span",{className:"button button-type-unordered",title:Ln.get("btnUnordered"),onClick:function(){return i.editor.insertMarkdown("unordered")}},y.createElement(Ar,{type:"list-unordered"}))},t}(vr);$Y.pluginName="list-unordered";var VHe=100,WHe=function(){function e(n){n===void 0&&(n={}),this.record=[],this.recycle=[],this.initValue="";var r=n,i=r.maxSize,o=i===void 0?VHe:i;this.maxSize=o}var t=e.prototype;return t.push=function(r){for(var i=this.record.push(r);this.record.length>this.maxSize;)this.record.shift();return i},t.get=function(){return this.record},t.getLast=function(){var r=this.record.length;return this.record[r-1]},t.undo=function(r){var i=this.record.pop();if(typeof i>"u")return this.initValue;if(i!==r)return this.recycle.push(i),i;var o=this.record.pop();return typeof o>"u"?(this.recycle.push(i),this.initValue):(this.recycle.push(i),o)},t.redo=function(){var r=this.recycle.pop();if(typeof r<"u")return this.push(r),r},t.cleanRedo=function(){this.recycle=[]},t.getUndoCount=function(){return this.undo.length},t.getRedoCount=function(){return this.recycle.length},e}(),IY=function(e){Fn(t,e);function t(r){var i;return i=e.call(this,r)||this,i.handleKeyboards=[],i.lastPop=null,i.handleChange=i.handleChange.bind(Bn(i)),i.handleRedo=i.handleRedo.bind(Bn(i)),i.handleUndo=i.handleUndo.bind(Bn(i)),i.handleKeyboards=[{key:"y",keyCode:89,withKey:["ctrlKey"],callback:i.handleRedo},{key:"z",keyCode:90,withKey:["metaKey","shiftKey"],callback:i.handleRedo},{key:"z",keyCode:90,aliasCommand:!0,withKey:["ctrlKey"],callback:i.handleUndo}],i.logger=new WHe({maxSize:i.editorConfig.loggerMaxSize}),i.editor.registerPluginApi("undo",i.handleUndo),i.editor.registerPluginApi("redo",i.handleRedo),i}var n=t.prototype;return n.handleUndo=function(){var i=this.logger.undo(this.editor.getMdValue());typeof i<"u"&&(this.pause(),this.lastPop=i,this.editor.setText(i),this.forceUpdate())},n.handleRedo=function(){var i=this.logger.redo();typeof i<"u"&&(this.lastPop=i,this.editor.setText(i),this.forceUpdate())},n.handleChange=function(i,o,a){var s=this;if(!(this.logger.getLast()===i||this.lastPop!==null&&this.lastPop===i)){if(this.logger.cleanRedo(),a){this.logger.push(i),this.lastPop=null,this.forceUpdate();return}this.timerId&&(window.clearTimeout(this.timerId),this.timerId=0),this.timerId=window.setTimeout(function(){s.logger.getLast()!==i&&(s.logger.push(i),s.lastPop=null,s.forceUpdate()),window.clearTimeout(s.timerId),s.timerId=0},this.editorConfig.loggerInterval)}},n.componentDidMount=function(){var i=this;this.editor.on("change",this.handleChange),this.handleKeyboards.forEach(function(o){return i.editor.onKeyboard(o)}),this.logger.initValue=this.editor.getMdValue(),this.forceUpdate()},n.componentWillUnmount=function(){var i=this;this.timerId&&window.clearTimeout(this.timerId),this.editor.off("change",this.handleChange),this.editor.unregisterPluginApi("undo"),this.editor.unregisterPluginApi("redo"),this.handleKeyboards.forEach(function(o){return i.editor.offKeyboard(o)})},n.pause=function(){this.timerId&&(window.clearTimeout(this.timerId),this.timerId=void 0)},n.render=function(){var i=this.logger.getUndoCount()>1||this.logger.initValue!==this.editor.getMdValue(),o=this.logger.getRedoCount()>0;return y.createElement(y.Fragment,null,y.createElement("span",{className:"button button-type-undo "+(i?"":"disabled"),title:Ln.get("btnUndo"),onClick:this.handleUndo},y.createElement(Ar,{type:"undo"})),y.createElement("span",{className:"button button-type-redo "+(o?"":"disabled"),title:Ln.get("btnRedo"),onClick:this.handleRedo},y.createElement(Ar,{type:"redo"})))},t}(vr);IY.pluginName="logger";var Oi;(function(e){e[e.SHOW_ALL=0]="SHOW_ALL",e[e.SHOW_MD=1]="SHOW_MD",e[e.SHOW_HTML=2]="SHOW_HTML"})(Oi||(Oi={}));var xP=function(e){Fn(t,e);function t(r){var i;return i=e.call(this,r)||this,i.handleClick=i.handleClick.bind(Bn(i)),i.handleChange=i.handleChange.bind(Bn(i)),i.state={view:i.editor.getView()},i}var n=t.prototype;return n.handleClick=function(){switch(this.next){case Oi.SHOW_ALL:this.editor.setView({html:!0,md:!0});break;case Oi.SHOW_HTML:this.editor.setView({html:!0,md:!1});break;case Oi.SHOW_MD:this.editor.setView({html:!1,md:!0});break}},n.handleChange=function(i){this.setState({view:i})},n.componentDidMount=function(){this.editor.on("viewchange",this.handleChange)},n.componentWillUnmount=function(){this.editor.off("viewchange",this.handleChange)},n.getDisplayInfo=function(){var i=this.next;switch(i){case Oi.SHOW_ALL:return{icon:"view-split",title:"All"};case Oi.SHOW_HTML:return{icon:"visibility",title:"Preview"};default:return{icon:"keyboard",title:"Editor"}}},n.render=function(){if(this.isDisplay){var i=this.getDisplayInfo();return y.createElement("span",{className:"button button-type-mode",title:Ln.get("btnMode"+i.title),onClick:this.handleClick},y.createElement(Ar,{type:i.icon}))}return null},vY(t,[{key:"isDisplay",get:function(){var i=this.editorConfig.canView;return i?[i.html,i.md,i.both].filter(function(o){return o}).length>=2:!1}},{key:"next",get:function(){var i=this.editorConfig.canView,o=this.state.view,a=[Oi.SHOW_ALL,Oi.SHOW_MD,Oi.SHOW_HTML];i&&(i.both||a.splice(a.indexOf(Oi.SHOW_ALL),1),i.md||a.splice(a.indexOf(Oi.SHOW_MD),1),i.html||a.splice(a.indexOf(Oi.SHOW_HTML),1));var s=Oi.SHOW_MD;if(o.html&&(s=Oi.SHOW_HTML),o.html&&o.md&&(s=Oi.SHOW_ALL),a.length===0)return s;if(a.length===1)return a[0];var u=a.indexOf(s);return u=55296&&c<=57343?i+="���":i+=String.fromCharCode(c),o+=6;continue}}if((s&248)===240&&o+91114111?i+="����":(f-=65536,i+=String.fromCharCode(55296+(f>>10),56320+(f&1023))),o+=9;continue}}i+="�"}return i})}Oh.defaultChars=";/?:@&=+$,#";Oh.componentChars="";const eN={};function GHe(e){let t=eN[e];if(t)return t;t=eN[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);/^[0-9a-z]$/i.test(r)?t.push(r):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2))}for(let n=0;n"u"&&(n=!0);const r=GHe(t);let i="";for(let o=0,a=e.length;o=55296&&s<=57343){if(s>=55296&&s<=56319&&o+1=56320&&u<=57343){i+=encodeURIComponent(e[o]+e[o+1]),o++;continue}}i+="%EF%BF%BD";continue}i+=encodeURIComponent(e[o])}return i}qm.defaultChars=";/?:@&=+$,-_.!~*'()#";qm.componentChars="-_.!~*'()";function _P(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function xx(){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 YHe=/^([a-z0-9.+-]+:)/i,ZHe=/:[0-9]*$/,XHe=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,QHe=["<",">",'"',"`"," ","\r",` +`," "],JHe=["{","}","|","\\","^","`"].concat(QHe),eKe=["'"].concat(JHe),tN=["%","/","?",";","#"].concat(eKe),nN=["/","?","#"],tKe=255,rN=/^[+a-z0-9A-Z_-]{0,63}$/,nKe=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,iN={javascript:!0,"javascript:":!0},oN={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function SP(e,t){if(e&&e instanceof xx)return e;const n=new xx;return n.parse(e,t),n}xx.prototype.parse=function(e,t){let n,r,i,o=e;if(o=o.trim(),!t&&e.split("#").length===1){const l=XHe.exec(o);if(l)return this.pathname=l[1],l[2]&&(this.search=l[2]),this}let a=YHe.exec(o);if(a&&(a=a[0],n=a.toLowerCase(),this.protocol=a,o=o.substr(a.length)),(t||a||o.match(/^\/\/[^@\/]+@[^@\/]+/))&&(i=o.substr(0,2)==="//",i&&!(a&&iN[a])&&(o=o.substr(2),this.slashes=!0)),!iN[a]&&(i||a&&!oN[a])){let l=-1;for(let m=0;m127?x+="x":x+=w[S];if(!x.match(rN)){const S=m.slice(0,v),O=m.slice(v+1),E=w.match(nKe);E&&(S.push(E[1]),O.unshift(E[2])),O.length&&(o=O.join(".")+o),this.hostname=S.join(".");break}}}}this.hostname.length>tKe&&(this.hostname=""),p&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const s=o.indexOf("#");s!==-1&&(this.hash=o.substr(s),o=o.slice(0,s));const u=o.indexOf("?");return u!==-1&&(this.search=o.substr(u),o=o.slice(0,u)),o&&(this.pathname=o),oN[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this};xx.prototype.parseHost=function(e){let t=ZHe.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const rKe=Object.freeze(Object.defineProperty({__proto__:null,decode:Oh,encode:qm,format:_P,parse:SP},Symbol.toStringTag,{value:"Module"})),NY=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,LY=/[\0-\x1F\x7F-\x9F]/,iKe=/[\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]/,CP=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\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]/,FY=/[\$\+<->\^`\|~\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]/,jY=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,oKe=Object.freeze(Object.defineProperty({__proto__:null,Any:NY,Cc:LY,Cf:iKe,P:CP,S:FY,Z:jY},Symbol.toStringTag,{value:"Module"})),aKe=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(e=>e.charCodeAt(0))),sKe=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)));var k3;const uKe=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]]),lKe=(k3=String.fromCodePoint)!==null&&k3!==void 0?k3:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function cKe(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=uKe.get(e))!==null&&t!==void 0?t:e}var ni;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(ni||(ni={}));const fKe=32;var hl;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(hl||(hl={}));function w4(e){return e>=ni.ZERO&&e<=ni.NINE}function dKe(e){return e>=ni.UPPER_A&&e<=ni.UPPER_F||e>=ni.LOWER_A&&e<=ni.LOWER_F}function hKe(e){return e>=ni.UPPER_A&&e<=ni.UPPER_Z||e>=ni.LOWER_A&&e<=ni.LOWER_Z||w4(e)}function pKe(e){return e===ni.EQUALS||hKe(e)}var Jr;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(Jr||(Jr={}));var il;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(il||(il={}));class gKe{constructor(t,n,r){this.decodeTree=t,this.emitCodePoint=n,this.errors=r,this.state=Jr.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=il.Strict}startEntity(t){this.decodeMode=t,this.state=Jr.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,n){switch(this.state){case Jr.EntityStart:return t.charCodeAt(n)===ni.NUM?(this.state=Jr.NumericStart,this.consumed+=1,this.stateNumericStart(t,n+1)):(this.state=Jr.NamedEntity,this.stateNamedEntity(t,n));case Jr.NumericStart:return this.stateNumericStart(t,n);case Jr.NumericDecimal:return this.stateNumericDecimal(t,n);case Jr.NumericHex:return this.stateNumericHex(t,n);case Jr.NamedEntity:return this.stateNamedEntity(t,n)}}stateNumericStart(t,n){return n>=t.length?-1:(t.charCodeAt(n)|fKe)===ni.LOWER_X?(this.state=Jr.NumericHex,this.consumed+=1,this.stateNumericHex(t,n+1)):(this.state=Jr.NumericDecimal,this.stateNumericDecimal(t,n))}addToNumericResult(t,n,r,i){if(n!==r){const o=r-n;this.result=this.result*Math.pow(i,o)+parseInt(t.substr(n,o),i),this.consumed+=o}}stateNumericHex(t,n){const r=n;for(;n>14;for(;n>14,o!==0){if(a===ni.SEMI)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);this.decodeMode!==il.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:n,decodeTree:r}=this,i=(r[n]&hl.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,i,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,n,r){const{decodeTree:i}=this;return this.emitCodePoint(n===1?i[t]&~hl.VALUE_LENGTH:i[t+1],r),n===3&&this.emitCodePoint(i[t+2],r),r}end(){var t;switch(this.state){case Jr.NamedEntity:return this.result!==0&&(this.decodeMode!==il.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case Jr.NumericDecimal:return this.emitNumericEntity(0,2);case Jr.NumericHex:return this.emitNumericEntity(0,3);case Jr.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case Jr.EntityStart:return 0}}}function BY(e){let t="";const n=new gKe(e,r=>t+=lKe(r));return function(i,o){let a=0,s=0;for(;(s=i.indexOf("&",s))>=0;){t+=i.slice(a,s),n.startEntity(o);const l=n.write(i,s+1);if(l<0){a=s+n.end();break}a=s+l,s=l===0?a+1:a}const u=t+i.slice(a);return t="",u}}function mKe(e,t,n,r){const i=(t&hl.BRANCH_LENGTH)>>7,o=t&hl.JUMP_TABLE;if(i===0)return o!==0&&r===o?n:-1;if(o){const u=r-o;return u<0||u>=i?-1:e[n+u]-1}let a=n,s=a+i-1;for(;a<=s;){const u=a+s>>>1,l=e[u];if(lr)s=u-1;else return e[u+i]}return-1}const vKe=BY(aKe);BY(sKe);function zY(e,t=il.Legacy){return vKe(e,t)}function yKe(e){return Object.prototype.toString.call(e)}function EP(e){return yKe(e)==="[object String]"}const bKe=Object.prototype.hasOwnProperty;function xKe(e,t){return bKe.call(e,t)}function yw(e){return Array.prototype.slice.call(arguments,1).forEach(function(n){if(n){if(typeof n!="object")throw new TypeError(n+"must be object");Object.keys(n).forEach(function(r){e[r]=n[r]})}}),e}function UY(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))}function OP(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function wx(e){if(e>65535){e-=65536;const t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}const VY=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,wKe=/&([a-z#][a-z0-9]{1,31});/gi,_Ke=new RegExp(VY.source+"|"+wKe.source,"gi"),SKe=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function CKe(e,t){if(t.charCodeAt(0)===35&&SKe.test(t)){const r=t[1].toLowerCase()==="x"?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return OP(r)?wx(r):e}const n=zY(e);return n!==e?n:e}function EKe(e){return e.indexOf("\\")<0?e:e.replace(VY,"$1")}function Ah(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(_Ke,function(t,n,r){return n||CKe(t,r)})}const OKe=/[&<>"]/,AKe=/[&<>"]/g,PKe={"&":"&","<":"<",">":">",'"':"""};function kKe(e){return PKe[e]}function Nl(e){return OKe.test(e)?e.replace(AKe,kKe):e}const TKe=/[.?*+^$[\]\\(){}|-]/g;function MKe(e){return e.replace(TKe,"\\$&")}function Hn(e){switch(e){case 9:case 32:return!0}return!1}function am(e){if(e>=8192&&e<=8202)return!0;switch(e){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 sm(e){return CP.test(e)||FY.test(e)}function um(e){switch(e){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 bw(e){return e=e.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const RKe={mdurl:rKe,ucmicro:oKe},DKe=Object.freeze(Object.defineProperty({__proto__:null,arrayReplaceAt:UY,assign:yw,escapeHtml:Nl,escapeRE:MKe,fromCodePoint:wx,has:xKe,isMdAsciiPunct:um,isPunctChar:sm,isSpace:Hn,isString:EP,isValidEntityCode:OP,isWhiteSpace:am,lib:RKe,normalizeReference:bw,unescapeAll:Ah,unescapeMd:EKe},Symbol.toStringTag,{value:"Module"}));function $Ke(e,t,n){let r,i,o,a;const s=e.posMax,u=e.pos;for(e.pos=t+1,r=1;e.pos32))return o;if(r===41){if(a===0)break;a--}i++}return t===i||a!==0||(o.str=Ah(e.slice(t,i)),o.pos=i,o.ok=!0),o}function NKe(e,t,n,r){let i,o=t;const a={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(r)a.str=r.str,a.marker=r.marker;else{if(o>=n)return a;let s=e.charCodeAt(o);if(s!==34&&s!==39&&s!==40)return a;t++,o++,s===40&&(s=41),a.marker=s}for(;o"+Nl(o.content)+""};Is.code_block=function(e,t,n,r,i){const o=e[t];return""+Nl(e[t].content)+` +`};Is.fence=function(e,t,n,r,i){const o=e[t],a=o.info?Ah(o.info).trim():"";let s="",u="";if(a){const c=a.split(/(\s+)/g);s=c[0],u=c.slice(2).join("")}let l;if(n.highlight?l=n.highlight(o.content,s,u)||Nl(o.content):l=Nl(o.content),l.indexOf("${l} +`}return`
${l}
+`};Is.image=function(e,t,n,r,i){const o=e[t];return o.attrs[o.attrIndex("alt")][1]=i.renderInlineAsText(o.children,n,r),i.renderToken(e,t,n)};Is.hardbreak=function(e,t,n){return n.xhtmlOut?`
+`:`
+`};Is.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?`
+`:`
+`:` +`};Is.text=function(e,t){return Nl(e[t].content)};Is.html_block=function(e,t){return e[t].content};Is.html_inline=function(e,t){return e[t].content};function ip(){this.rules=yw({},Is)}ip.prototype.renderAttrs=function(t){let n,r,i;if(!t.attrs)return"";for(i="",n=0,r=t.attrs.length;n +`:">",o};ip.prototype.renderInline=function(e,t,n){let r="";const i=this.rules;for(let o=0,a=e.length;o=0&&(r=this.attrs[n][1]),r};is.prototype.attrJoin=function(t,n){const r=this.attrIndex(t);r<0?this.attrPush([t,n]):this.attrs[r][1]=this.attrs[r][1]+" "+n};function WY(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}WY.prototype.Token=is;const FKe=/\r\n?|\n/g,jKe=/\0/g;function BKe(e){let t;t=e.src.replace(FKe,` +`),t=t.replace(jKe,"�"),e.src=t}function zKe(e){let t;e.inlineMode?(t=new e.Token("inline","",0),t.content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}function UKe(e){const t=e.tokens;for(let n=0,r=t.length;n\s]/i.test(e)}function WKe(e){return/^<\/a\s*>/i.test(e)}function HKe(e){const t=e.tokens;if(e.md.options.linkify)for(let n=0,r=t.length;n=0;a--){const s=i[a];if(s.type==="link_close"){for(a--;i[a].level!==s.level&&i[a].type!=="link_open";)a--;continue}if(s.type==="html_inline"&&(VKe(s.content)&&o>0&&o--,WKe(s.content)&&o++),!(o>0)&&s.type==="text"&&e.md.linkify.test(s.content)){const u=s.content;let l=e.md.linkify.match(u);const c=[];let f=s.level,h=0;l.length>0&&l[0].index===0&&a>0&&i[a-1].type==="text_special"&&(l=l.slice(1));for(let p=0;ph){const E=new e.Token("text","",0);E.content=u.slice(h,w),E.level=f,c.push(E)}const x=new e.Token("link_open","a",1);x.attrs=[["href",v]],x.level=f++,x.markup="linkify",x.info="auto",c.push(x);const S=new e.Token("text","",0);S.content=b,S.level=f,c.push(S);const O=new e.Token("link_close","a",-1);O.level=--f,O.markup="linkify",O.info="auto",c.push(O),h=l[p].lastIndex}if(h=0;n--){const r=e[n];r.type==="text"&&!t&&(r.content=r.content.replace(qKe,YKe)),r.type==="link_open"&&r.info==="auto"&&t--,r.type==="link_close"&&r.info==="auto"&&t++}}function XKe(e){let t=0;for(let n=e.length-1;n>=0;n--){const r=e[n];r.type==="text"&&!t&&HY.test(r.content)&&(r.content=r.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–")),r.type==="link_open"&&r.info==="auto"&&t--,r.type==="link_close"&&r.info==="auto"&&t++}}function QKe(e){let t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)e.tokens[t].type==="inline"&&(KKe.test(e.tokens[t].content)&&ZKe(e.tokens[t].children),HY.test(e.tokens[t].content)&&XKe(e.tokens[t].children))}const JKe=/['"]/,aN=/['"]/g,sN="’";function D1(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function eqe(e,t){let n;const r=[];for(let i=0;i=0&&!(r[n].level<=a);n--);if(r.length=n+1,o.type!=="text")continue;let s=o.content,u=0,l=s.length;e:for(;u=0)m=s.charCodeAt(c.index-1);else for(n=i-1;n>=0&&!(e[n].type==="softbreak"||e[n].type==="hardbreak");n--)if(e[n].content){m=e[n].content.charCodeAt(e[n].content.length-1);break}let v=32;if(u=48&&m<=57&&(h=f=!1),f&&h&&(f=b,h=w),!f&&!h){p&&(o.content=D1(o.content,c.index,sN));continue}if(h)for(n=r.length-1;n>=0;n--){let O=r[n];if(r[n].level=0;t--)e.tokens[t].type!=="inline"||!JKe.test(e.tokens[t].content)||eqe(e.tokens[t].children,e)}function nqe(e){let t,n;const r=e.tokens,i=r.length;for(let o=0;o0&&this.level++,this.tokens.push(r),r};Ns.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]};Ns.prototype.skipEmptyLines=function(t){for(let n=this.lineMax;tn;)if(!Hn(this.src.charCodeAt(--t)))return t+1;return t};Ns.prototype.skipChars=function(t,n){for(let r=this.src.length;tr;)if(n!==this.src.charCodeAt(--t))return t+1;return t};Ns.prototype.getLines=function(t,n,r,i){if(t>=n)return"";const o=new Array(n-t);for(let a=0,s=t;sr?o[a]=new Array(u-r+1).join(" ")+this.src.slice(c,f):o[a]=this.src.slice(c,f)}return o.join("")};Ns.prototype.Token=is;const rqe=65536;function M3(e,t){const n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.slice(n,r)}function uN(e){const t=[],n=e.length;let r=0,i=e.charCodeAt(r),o=!1,a=0,s="";for(;rn)return!1;let i=t+1;if(e.sCount[i]=4)return!1;let o=e.bMarks[i]+e.tShift[i];if(o>=e.eMarks[i])return!1;const a=e.src.charCodeAt(o++);if(a!==124&&a!==45&&a!==58||o>=e.eMarks[i])return!1;const s=e.src.charCodeAt(o++);if(s!==124&&s!==45&&s!==58&&!Hn(s)||a===45&&Hn(s))return!1;for(;o=4)return!1;l=uN(u),l.length&&l[0]===""&&l.shift(),l.length&&l[l.length-1]===""&&l.pop();const f=l.length;if(f===0||f!==c.length)return!1;if(r)return!0;const h=e.parentType;e.parentType="table";const p=e.md.block.ruler.getRules("blockquote"),m=e.push("table_open","table",1),v=[t,0];m.map=v;const b=e.push("thead_open","thead",1);b.map=[t,t+1];const w=e.push("tr_open","tr",1);w.map=[t,t+1];for(let O=0;O=4||(l=uN(u),l.length&&l[0]===""&&l.shift(),l.length&&l[l.length-1]===""&&l.pop(),S+=f-l.length,S>rqe))break;if(i===t+2){const C=e.push("tbody_open","tbody",1);C.map=x=[t+2,0]}const E=e.push("tr_open","tr",1);E.map=[i,i+1];for(let C=0;C=4){r++,i=r;continue}break}e.line=i;const o=e.push("code_block","code",0);return o.content=e.getLines(t,i,4+e.blkIndent,!1)+` +`,o.map=[t,e.line],!0}function aqe(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||i+3>o)return!1;const a=e.src.charCodeAt(i);if(a!==126&&a!==96)return!1;let s=i;i=e.skipChars(i,a);let u=i-s;if(u<3)return!1;const l=e.src.slice(s,i),c=e.src.slice(i,o);if(a===96&&c.indexOf(String.fromCharCode(a))>=0)return!1;if(r)return!0;let f=t,h=!1;for(;f++,!(f>=n||(i=s=e.bMarks[f]+e.tShift[f],o=e.eMarks[f],i=4)&&(i=e.skipChars(i,a),!(i-s=4||e.src.charCodeAt(i)!==62)return!1;if(r)return!0;const s=[],u=[],l=[],c=[],f=e.md.block.ruler.getRules("blockquote"),h=e.parentType;e.parentType="blockquote";let p=!1,m;for(m=t;m=o)break;if(e.src.charCodeAt(i++)===62&&!S){let E=e.sCount[m]+1,C,k;e.src.charCodeAt(i)===32?(i++,E++,k=!1,C=!0):e.src.charCodeAt(i)===9?(C=!0,(e.bsCount[m]+E)%4===3?(i++,E++,k=!1):k=!0):C=!1;let M=E;for(s.push(e.bMarks[m]),e.bMarks[m]=i;i=o,u.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+(C?1:0),l.push(e.sCount[m]),e.sCount[m]=M-E,c.push(e.tShift[m]),e.tShift[m]=i-e.bMarks[m];continue}if(p)break;let O=!1;for(let E=0,C=f.length;E";const w=[t,0];b.map=w,e.md.block.tokenize(e,t,m);const x=e.push("blockquote_close","blockquote",-1);x.markup=">",e.lineMax=a,e.parentType=h,w[1]=e.line;for(let S=0;S=4)return!1;let o=e.bMarks[t]+e.tShift[t];const a=e.src.charCodeAt(o++);if(a!==42&&a!==45&&a!==95)return!1;let s=1;for(;o=r)return-1;let o=e.src.charCodeAt(i++);if(o<48||o>57)return-1;for(;;){if(i>=r)return-1;if(o=e.src.charCodeAt(i++),o>=48&&o<=57){if(i-n>=10)return-1;continue}if(o===41||o===46)break;return-1}return i=4||e.listIndent>=0&&e.sCount[u]-e.listIndent>=4&&e.sCount[u]=e.blkIndent&&(c=!0);let f,h,p;if((p=cN(e,u))>=0){if(f=!0,a=e.bMarks[u]+e.tShift[u],h=Number(e.src.slice(a,p-1)),c&&h!==1)return!1}else if((p=lN(e,u))>=0)f=!1;else return!1;if(c&&e.skipSpaces(p)>=e.eMarks[u])return!1;if(r)return!0;const m=e.src.charCodeAt(p-1),v=e.tokens.length;f?(s=e.push("ordered_list_open","ol",1),h!==1&&(s.attrs=[["start",h]])):s=e.push("bullet_list_open","ul",1);const b=[u,0];s.map=b,s.markup=String.fromCharCode(m);let w=!1;const x=e.md.block.ruler.getRules("list"),S=e.parentType;for(e.parentType="list";u=i?k=1:k=E-O,k>4&&(k=1);const M=O+k;s=e.push("list_item_open","li",1),s.markup=String.fromCharCode(m);const L=[u,0];s.map=L,f&&(s.info=e.src.slice(a,p-1));const U=e.tight,H=e.tShift[u],V=e.sCount[u],ne=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=M,e.tight=!0,e.tShift[u]=C-e.bMarks[u],e.sCount[u]=E,C>=i&&e.isEmpty(u+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,u,n,!0),(!e.tight||w)&&(l=!1),w=e.line-u>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=ne,e.tShift[u]=H,e.sCount[u]=V,e.tight=U,s=e.push("list_item_close","li",-1),s.markup=String.fromCharCode(m),u=e.line,L[1]=u,u>=n||e.sCount[u]=4)break;let Z=!1;for(let G=0,q=x.length;G=4||e.src.charCodeAt(i)!==91)return!1;function s(x){const S=e.lineMax;if(x>=S||e.isEmpty(x))return null;let O=!1;if(e.sCount[x]-e.blkIndent>3&&(O=!0),e.sCount[x]<0&&(O=!0),!O){const k=e.md.block.ruler.getRules("reference"),M=e.parentType;e.parentType="reference";let L=!1;for(let U=0,H=k.length;U"u"&&(e.env.references={}),typeof e.env.references[w]>"u"&&(e.env.references[w]={title:b,href:f}),e.line=a),!0):!1}const dqe=["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"],hqe="[a-zA-Z_:][a-zA-Z0-9:._-]*",pqe="[^\"'=<>`\\x00-\\x20]+",gqe="'[^']*'",mqe='"[^"]*"',vqe="(?:"+pqe+"|"+gqe+"|"+mqe+")",yqe="(?:\\s+"+hqe+"(?:\\s*=\\s*"+vqe+")?)",KY="<[A-Za-z][A-Za-z0-9\\-]*"+yqe+"*\\s*\\/?>",qY="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",bqe="",xqe="<[?][\\s\\S]*?[?]>",wqe="]*>",_qe="",Sqe=new RegExp("^(?:"+KY+"|"+qY+"|"+bqe+"|"+xqe+"|"+wqe+"|"+_qe+")"),Cqe=new RegExp("^(?:"+KY+"|"+qY+")"),Jf=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(Cqe.source+"\\s*$"),/^$/,!1]];function Eqe(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(i)!==60)return!1;let a=e.src.slice(i,o),s=0;for(;s=4)return!1;let a=e.src.charCodeAt(i);if(a!==35||i>=o)return!1;let s=1;for(a=e.src.charCodeAt(++i);a===35&&i6||ii&&Hn(e.src.charCodeAt(u-1))&&(o=u),e.line=t+1;const l=e.push("heading_open","h"+String(s),1);l.markup="########".slice(0,s),l.map=[t,e.line];const c=e.push("inline","",0);c.content=e.src.slice(i,o).trim(),c.map=[t,e.line],c.children=[];const f=e.push("heading_close","h"+String(s),-1);return f.markup="########".slice(0,s),!0}function Aqe(e,t,n){const r=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const i=e.parentType;e.parentType="paragraph";let o=0,a,s=t+1;for(;s3)continue;if(e.sCount[s]>=e.blkIndent){let p=e.bMarks[s]+e.tShift[s];const m=e.eMarks[s];if(p=m))){o=a===61?1:2;break}}if(e.sCount[s]<0)continue;let h=!1;for(let p=0,m=r.length;p3||e.sCount[o]<0)continue;let l=!1;for(let c=0,f=r.length;c=n||e.sCount[a]=o){e.line=n;break}const u=e.line;let l=!1;for(let c=0;c=e.line)throw new Error("block rule didn't increment state.line");break}if(!l)throw new Error("none of the block rules matched");e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),a=e.line,a0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(i),r};Gm.prototype.scanDelims=function(e,t){const n=this.posMax,r=this.src.charCodeAt(e),i=e>0?this.src.charCodeAt(e-1):32;let o=e;for(;o0)return!1;const n=e.pos,r=e.posMax;if(n+3>r||e.src.charCodeAt(n)!==58||e.src.charCodeAt(n+1)!==47||e.src.charCodeAt(n+2)!==47)return!1;const i=e.pending.match(Mqe);if(!i)return!1;const o=i[1],a=e.md.linkify.matchAtStart(e.src.slice(n-o.length));if(!a)return!1;let s=a.url;if(s.length<=o.length)return!1;s=s.replace(/\*+$/,"");const u=e.md.normalizeLink(s);if(!e.md.validateLink(u))return!1;if(!t){e.pending=e.pending.slice(0,-o.length);const l=e.push("link_open","a",1);l.attrs=[["href",u]],l.markup="linkify",l.info="auto";const c=e.push("text","",0);c.content=e.md.normalizeLinkText(s);const f=e.push("link_close","a",-1);f.markup="linkify",f.info="auto"}return e.pos+=s.length-o.length,!0}function Dqe(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==10)return!1;const r=e.pending.length-1,i=e.posMax;if(!t)if(r>=0&&e.pending.charCodeAt(r)===32)if(r>=1&&e.pending.charCodeAt(r-1)===32){let o=r-1;for(;o>=1&&e.pending.charCodeAt(o-1)===32;)o--;e.pending=e.pending.slice(0,o),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(n++;n?@[]^_`{|}~-".split("").forEach(function(e){PP[e.charCodeAt(0)]=1});function $qe(e,t){let n=e.pos;const r=e.posMax;if(e.src.charCodeAt(n)!==92||(n++,n>=r))return!1;let i=e.src.charCodeAt(n);if(i===10){for(t||e.push("hardbreak","br",0),n++;n=55296&&i<=56319&&n+1=56320&&s<=57343&&(o+=e.src[n+1],n++)}const a="\\"+o;if(!t){const s=e.push("text_special","",0);i<256&&PP[i]!==0?s.content=o:s.content=a,s.markup=a,s.info="escape"}return e.pos=n+1,!0}function Iqe(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==96)return!1;const i=n;n++;const o=e.posMax;for(;n=0;r--){const i=t[r];if(i.marker!==95&&i.marker!==42||i.end===-1)continue;const o=t[i.end],a=r>0&&t[r-1].end===i.end+1&&t[r-1].marker===i.marker&&t[r-1].token===i.token-1&&t[i.end+1].token===o.token+1,s=String.fromCharCode(i.marker),u=e.tokens[i.token];u.type=a?"strong_open":"em_open",u.tag=a?"strong":"em",u.nesting=1,u.markup=a?s+s:s,u.content="";const l=e.tokens[o.token];l.type=a?"strong_close":"em_close",l.tag=a?"strong":"em",l.nesting=-1,l.markup=a?s+s:s,l.content="",a&&(e.tokens[t[r-1].token].content="",e.tokens[t[i.end+1].token].content="",r--)}}function jqe(e){const t=e.tokens_meta,n=e.tokens_meta.length;dN(e,e.delimiters);for(let r=0;r=f)return!1;if(u=m,i=e.md.helpers.parseLinkDestination(e.src,m,e.posMax),i.ok){for(a=e.md.normalizeLink(i.str),e.md.validateLink(a)?m=i.pos:a="",u=m;m=f||e.src.charCodeAt(m)!==41)&&(l=!0),m++}if(l){if(typeof e.env.references>"u")return!1;if(m=0?r=e.src.slice(u,m++):m=p+1):m=p+1,r||(r=e.src.slice(h,p)),o=e.env.references[bw(r)],!o)return e.pos=c,!1;a=o.href,s=o.title}if(!t){e.pos=h,e.posMax=p;const v=e.push("link_open","a",1),b=[["href",a]];v.attrs=b,s&&b.push(["title",s]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=m,e.posMax=f,!0}function zqe(e,t){let n,r,i,o,a,s,u,l,c="";const f=e.pos,h=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;const p=e.pos+2,m=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(m<0)return!1;if(o=m+1,o=h)return!1;for(l=o,s=e.md.helpers.parseLinkDestination(e.src,o,e.posMax),s.ok&&(c=e.md.normalizeLink(s.str),e.md.validateLink(c)?o=s.pos:c=""),l=o;o=h||e.src.charCodeAt(o)!==41)return e.pos=f,!1;o++}else{if(typeof e.env.references>"u")return!1;if(o=0?i=e.src.slice(l,o++):o=m+1):o=m+1,i||(i=e.src.slice(p,m)),a=e.env.references[bw(i)],!a)return e.pos=f,!1;c=a.href,u=a.title}if(!t){r=e.src.slice(p,m);const v=[];e.md.inline.parse(r,e.md,e.env,v);const b=e.push("image","img",0),w=[["src",c],["alt",""]];b.attrs=w,b.children=v,b.content=r,u&&w.push(["title",u])}return e.pos=o,e.posMax=h,!0}const Uqe=/^([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])?)*)$/,Vqe=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function Wqe(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==60)return!1;const r=e.pos,i=e.posMax;for(;;){if(++n>=i)return!1;const a=e.src.charCodeAt(n);if(a===60)return!1;if(a===62)break}const o=e.src.slice(r+1,n);if(Vqe.test(o)){const a=e.md.normalizeLink(o);if(!e.md.validateLink(a))return!1;if(!t){const s=e.push("link_open","a",1);s.attrs=[["href",a]],s.markup="autolink",s.info="auto";const u=e.push("text","",0);u.content=e.md.normalizeLinkText(o);const l=e.push("link_close","a",-1);l.markup="autolink",l.info="auto"}return e.pos+=o.length+2,!0}if(Uqe.test(o)){const a=e.md.normalizeLink("mailto:"+o);if(!e.md.validateLink(a))return!1;if(!t){const s=e.push("link_open","a",1);s.attrs=[["href",a]],s.markup="autolink",s.info="auto";const u=e.push("text","",0);u.content=e.md.normalizeLinkText(o);const l=e.push("link_close","a",-1);l.markup="autolink",l.info="auto"}return e.pos+=o.length+2,!0}return!1}function Hqe(e){return/^\s]/i.test(e)}function Kqe(e){return/^<\/a\s*>/i.test(e)}function qqe(e){const t=e|32;return t>=97&&t<=122}function Gqe(e,t){if(!e.md.options.html)return!1;const n=e.posMax,r=e.pos;if(e.src.charCodeAt(r)!==60||r+2>=n)return!1;const i=e.src.charCodeAt(r+1);if(i!==33&&i!==63&&i!==47&&!qqe(i))return!1;const o=e.src.slice(r).match(Sqe);if(!o)return!1;if(!t){const a=e.push("html_inline","",0);a.content=o[0],Hqe(a.content)&&e.linkLevel++,Kqe(a.content)&&e.linkLevel--}return e.pos+=o[0].length,!0}const Yqe=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,Zqe=/^&([a-z][a-z0-9]{1,31});/i;function Xqe(e,t){const n=e.pos,r=e.posMax;if(e.src.charCodeAt(n)!==38||n+1>=r)return!1;if(e.src.charCodeAt(n+1)===35){const o=e.src.slice(n).match(Yqe);if(o){if(!t){const a=o[1][0].toLowerCase()==="x"?parseInt(o[1].slice(1),16):parseInt(o[1],10),s=e.push("text_special","",0);s.content=OP(a)?wx(a):wx(65533),s.markup=o[0],s.info="entity"}return e.pos+=o[0].length,!0}}else{const o=e.src.slice(n).match(Zqe);if(o){const a=zY(o[0]);if(a!==o[0]){if(!t){const s=e.push("text_special","",0);s.content=a,s.markup=o[0],s.info="entity"}return e.pos+=o[0].length,!0}}}return!1}function hN(e){const t={},n=e.length;if(!n)return;let r=0,i=-2;const o=[];for(let a=0;au;l-=o[l]+1){const f=e[l];if(f.marker===s.marker&&f.open&&f.end<0){let h=!1;if((f.close||s.open)&&(f.length+s.length)%3===0&&(f.length%3!==0||s.length%3!==0)&&(h=!0),!h){const p=l>0&&!e[l-1].open?o[l-1]+1:0;o[a]=a-l+p,o[l]=p,s.open=!1,f.end=a,f.close=!1,c=-1,i=-2;break}}}c!==-1&&(t[s.marker][(s.open?3:0)+(s.length||0)%3]=c)}}function Qqe(e){const t=e.tokens_meta,n=e.tokens_meta.length;hN(e.delimiters);for(let r=0;r0&&r++,i[t].type==="text"&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;a||e.pos++,o[t]=e.pos};Ym.prototype.tokenize=function(e){const t=this.ruler.getRules(""),n=t.length,r=e.posMax,i=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}}if(a){if(e.pos>=r)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()};Ym.prototype.parse=function(e,t,n,r){const i=new this.State(e,t,n,r);this.tokenize(i);const o=this.ruler2.getRules(""),a=o.length;for(let s=0;s|$))",t.tpl_email_fuzzy="(^|"+n+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}function _4(e){return Array.prototype.slice.call(arguments,1).forEach(function(n){n&&Object.keys(n).forEach(function(r){e[r]=n[r]})}),e}function ww(e){return Object.prototype.toString.call(e)}function tGe(e){return ww(e)==="[object String]"}function nGe(e){return ww(e)==="[object Object]"}function rGe(e){return ww(e)==="[object RegExp]"}function pN(e){return ww(e)==="[object Function]"}function iGe(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}const ZY={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function oGe(e){return Object.keys(e||{}).reduce(function(t,n){return t||ZY.hasOwnProperty(n)},!1)}const aGe={"http:":{validate:function(e,t,n){const r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){const r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){const r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},sGe="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]",uGe="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function lGe(e){e.__index__=-1,e.__text_cache__=""}function cGe(e){return function(t,n){const r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}function gN(){return function(e,t){t.normalize(e)}}function _x(e){const t=e.re=eGe(e.__opts__),n=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||n.push(sGe),n.push(t.src_xn),t.src_tlds=n.join("|");function r(s){return s.replace("%TLDS%",t.src_tlds)}t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");const i=[];e.__compiled__={};function o(s,u){throw new Error('(LinkifyIt) Invalid schema "'+s+'": '+u)}Object.keys(e.__schemas__).forEach(function(s){const u=e.__schemas__[s];if(u===null)return;const l={validate:null,link:null};if(e.__compiled__[s]=l,nGe(u)){rGe(u.validate)?l.validate=cGe(u.validate):pN(u.validate)?l.validate=u.validate:o(s,u),pN(u.normalize)?l.normalize=u.normalize:u.normalize?o(s,u):l.normalize=gN();return}if(tGe(u)){i.push(s);return}o(s,u)}),i.forEach(function(s){e.__compiled__[e.__schemas__[s]]&&(e.__compiled__[s].validate=e.__compiled__[e.__schemas__[s]].validate,e.__compiled__[s].normalize=e.__compiled__[e.__schemas__[s]].normalize)}),e.__compiled__[""]={validate:null,normalize:gN()};const a=Object.keys(e.__compiled__).filter(function(s){return s.length>0&&e.__compiled__[s]}).map(iGe).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+a+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+a+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),lGe(e)}function fGe(e,t){const n=e.__index__,r=e.__last_index__,i=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=i,this.text=i,this.url=i}function S4(e,t){const n=new fGe(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function Wo(e,t){if(!(this instanceof Wo))return new Wo(e,t);t||oGe(e)&&(t=e,e={}),this.__opts__=_4({},ZY,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=_4({},aGe,e),this.__compiled__={},this.__tlds__=uGe,this.__tlds_replaced__=!1,this.re={},_x(this)}Wo.prototype.add=function(t,n){return this.__schemas__[t]=n,_x(this),this};Wo.prototype.set=function(t){return this.__opts__=_4(this.__opts__,t),this};Wo.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;let n,r,i,o,a,s,u,l,c;if(this.re.schema_test.test(t)){for(u=this.re.schema_search,u.lastIndex=0;(n=u.exec(t))!==null;)if(o=this.testSchemaAt(t,n[2],u.lastIndex),o){this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+o;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=t.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l=0&&(i=t.match(this.re.email_fuzzy))!==null&&(a=i.index+i[1].length,s=i.index+i[0].length,(this.__index__<0||athis.__last_index__)&&(this.__schema__="mailto:",this.__index__=a,this.__last_index__=s))),this.__index__>=0};Wo.prototype.pretest=function(t){return this.re.pretest.test(t)};Wo.prototype.testSchemaAt=function(t,n,r){return this.__compiled__[n.toLowerCase()]?this.__compiled__[n.toLowerCase()].validate(t,r,this):0};Wo.prototype.match=function(t){const n=[];let r=0;this.__index__>=0&&this.__text_cache__===t&&(n.push(S4(this,r)),r=this.__last_index__);let i=r?t.slice(r):t;for(;this.test(i);)n.push(S4(this,r)),i=i.slice(this.__last_index__),r+=this.__last_index__;return n.length?n:null};Wo.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;const n=this.re.schema_at_start.exec(t);if(!n)return null;const r=this.testSchemaAt(t,n[2],n[0].length);return r?(this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+r,S4(this,0)):null};Wo.prototype.tlds=function(t,n){return t=Array.isArray(t)?t:[t],n?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(r,i,o){return r!==o[i-1]}).reverse(),_x(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,_x(this),this)};Wo.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),t.schema==="mailto:"&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)};Wo.prototype.onCompile=function(){};const Fd=2147483647,ws=36,kP=1,lm=26,dGe=38,hGe=700,XY=72,QY=128,JY="-",pGe=/^xn--/,gGe=/[^\0-\x7F]/,mGe=/[\x2E\u3002\uFF0E\uFF61]/g,vGe={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},$3=ws-kP,_s=Math.floor,I3=String.fromCharCode;function Ju(e){throw new RangeError(vGe[e])}function yGe(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}function eZ(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(mGe,".");const i=e.split("."),o=yGe(i,t).join(".");return r+o}function tZ(e){const t=[];let n=0;const r=e.length;for(;n=55296&&i<=56319&&nString.fromCodePoint(...e),xGe=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:ws},mN=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},nZ=function(e,t,n){let r=0;for(e=n?_s(e/hGe):e>>1,e+=_s(e/t);e>$3*lm>>1;r+=ws)e=_s(e/$3);return _s(r+($3+1)*e/(e+dGe))},rZ=function(e){const t=[],n=e.length;let r=0,i=QY,o=XY,a=e.lastIndexOf(JY);a<0&&(a=0);for(let s=0;s=128&&Ju("not-basic"),t.push(e.charCodeAt(s));for(let s=a>0?a+1:0;s=n&&Ju("invalid-input");const h=xGe(e.charCodeAt(s++));h>=ws&&Ju("invalid-input"),h>_s((Fd-r)/c)&&Ju("overflow"),r+=h*c;const p=f<=o?kP:f>=o+lm?lm:f-o;if(h_s(Fd/m)&&Ju("overflow"),c*=m}const l=t.length+1;o=nZ(r-u,l,u==0),_s(r/l)>Fd-i&&Ju("overflow"),i+=_s(r/l),r%=l,t.splice(r++,0,i)}return String.fromCodePoint(...t)},iZ=function(e){const t=[];e=tZ(e);const n=e.length;let r=QY,i=0,o=XY;for(const u of e)u<128&&t.push(I3(u));const a=t.length;let s=a;for(a&&t.push(JY);s=r&&c_s((Fd-i)/l)&&Ju("overflow"),i+=(u-r)*l,r=u;for(const c of e)if(cFd&&Ju("overflow"),c===r){let f=i;for(let h=ws;;h+=ws){const p=h<=o?kP:h>=o+lm?lm:h-o;if(f=0))try{t.hostname=oZ.toASCII(t.hostname)}catch{}return qm(_P(t))}function MGe(e){const t=SP(e,!0);if(t.hostname&&(!t.protocol||aZ.indexOf(t.protocol)>=0))try{t.hostname=oZ.toUnicode(t.hostname)}catch{}return Oh(_P(t),Oh.defaultChars+"%")}function es(e,t){if(!(this instanceof es))return new es(e,t);t||EP(e)||(t=e||{},e="default"),this.inline=new Ym,this.block=new xw,this.core=new AP,this.renderer=new ip,this.linkify=new Wo,this.validateLink=kGe,this.normalizeLink=TGe,this.normalizeLinkText=MGe,this.utils=DKe,this.helpers=yw({},LKe),this.options={},this.configure(e),t&&this.set(t)}es.prototype.set=function(e){return yw(this.options,e),this};es.prototype.configure=function(e){const t=this;if(EP(e)){const n=e;if(e=OGe[n],!e)throw new Error('Wrong `markdown-it` preset "'+n+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2)}),this};es.prototype.enable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(i){n=n.concat(this[i].ruler.enable(e,!0))},this),n=n.concat(this.inline.ruler2.enable(e,!0));const r=e.filter(function(i){return n.indexOf(i)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this};es.prototype.disable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(i){n=n.concat(this[i].ruler.disable(e,!0))},this),n=n.concat(this.inline.ruler2.disable(e,!0));const r=e.filter(function(i){return n.indexOf(i)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this};es.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this};es.prototype.parse=function(e,t){if(typeof e!="string")throw new Error("Input data should be a String");const n=new this.core.State(e,this,t);return this.core.process(n),n.tokens};es.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)};es.prototype.parseInline=function(e,t){const n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens};es.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};var sZ={exports:{}};(function(e){(function(t){var n=function(T){var D,$=new Float64Array(16);if(T)for(D=0;D>24&255,T[D+1]=$>>16&255,T[D+2]=$>>8&255,T[D+3]=$&255,T[D+4]=A>>24&255,T[D+5]=A>>16&255,T[D+6]=A>>8&255,T[D+7]=A&255}function v(T,D,$,A,N){var Q,ee=0;for(Q=0;Q>>8)-1}function b(T,D,$,A){return v(T,D,$,A,16)}function w(T,D,$,A){return v(T,D,$,A,32)}function x(T,D,$,A){for(var N=A[0]&255|(A[1]&255)<<8|(A[2]&255)<<16|(A[3]&255)<<24,Q=$[0]&255|($[1]&255)<<8|($[2]&255)<<16|($[3]&255)<<24,ee=$[4]&255|($[5]&255)<<8|($[6]&255)<<16|($[7]&255)<<24,fe=$[8]&255|($[9]&255)<<8|($[10]&255)<<16|($[11]&255)<<24,_e=$[12]&255|($[13]&255)<<8|($[14]&255)<<16|($[15]&255)<<24,je=A[4]&255|(A[5]&255)<<8|(A[6]&255)<<16|(A[7]&255)<<24,We=D[0]&255|(D[1]&255)<<8|(D[2]&255)<<16|(D[3]&255)<<24,ct=D[4]&255|(D[5]&255)<<8|(D[6]&255)<<16|(D[7]&255)<<24,Ie=D[8]&255|(D[9]&255)<<8|(D[10]&255)<<16|(D[11]&255)<<24,nt=D[12]&255|(D[13]&255)<<8|(D[14]&255)<<16|(D[15]&255)<<24,bt=A[8]&255|(A[9]&255)<<8|(A[10]&255)<<16|(A[11]&255)<<24,Ot=$[16]&255|($[17]&255)<<8|($[18]&255)<<16|($[19]&255)<<24,gt=$[20]&255|($[21]&255)<<8|($[22]&255)<<16|($[23]&255)<<24,ht=$[24]&255|($[25]&255)<<8|($[26]&255)<<16|($[27]&255)<<24,xt=$[28]&255|($[29]&255)<<8|($[30]&255)<<16|($[31]&255)<<24,wt=A[12]&255|(A[13]&255)<<8|(A[14]&255)<<16|(A[15]&255)<<24,Qe=N,ut=Q,Xe=ee,Ne=fe,Ke=_e,Ge=je,pe=We,he=ct,Re=Ie,Oe=nt,Pe=bt,Be=Ot,vt=gt,Lt=ht,Ft=xt,$t=wt,J,Zt=0;Zt<20;Zt+=2)J=Qe+vt|0,Ke^=J<<7|J>>>25,J=Ke+Qe|0,Re^=J<<9|J>>>23,J=Re+Ke|0,vt^=J<<13|J>>>19,J=vt+Re|0,Qe^=J<<18|J>>>14,J=Ge+ut|0,Oe^=J<<7|J>>>25,J=Oe+Ge|0,Lt^=J<<9|J>>>23,J=Lt+Oe|0,ut^=J<<13|J>>>19,J=ut+Lt|0,Ge^=J<<18|J>>>14,J=Pe+pe|0,Ft^=J<<7|J>>>25,J=Ft+Pe|0,Xe^=J<<9|J>>>23,J=Xe+Ft|0,pe^=J<<13|J>>>19,J=pe+Xe|0,Pe^=J<<18|J>>>14,J=$t+Be|0,Ne^=J<<7|J>>>25,J=Ne+$t|0,he^=J<<9|J>>>23,J=he+Ne|0,Be^=J<<13|J>>>19,J=Be+he|0,$t^=J<<18|J>>>14,J=Qe+Ne|0,ut^=J<<7|J>>>25,J=ut+Qe|0,Xe^=J<<9|J>>>23,J=Xe+ut|0,Ne^=J<<13|J>>>19,J=Ne+Xe|0,Qe^=J<<18|J>>>14,J=Ge+Ke|0,pe^=J<<7|J>>>25,J=pe+Ge|0,he^=J<<9|J>>>23,J=he+pe|0,Ke^=J<<13|J>>>19,J=Ke+he|0,Ge^=J<<18|J>>>14,J=Pe+Oe|0,Be^=J<<7|J>>>25,J=Be+Pe|0,Re^=J<<9|J>>>23,J=Re+Be|0,Oe^=J<<13|J>>>19,J=Oe+Re|0,Pe^=J<<18|J>>>14,J=$t+Ft|0,vt^=J<<7|J>>>25,J=vt+$t|0,Lt^=J<<9|J>>>23,J=Lt+vt|0,Ft^=J<<13|J>>>19,J=Ft+Lt|0,$t^=J<<18|J>>>14;Qe=Qe+N|0,ut=ut+Q|0,Xe=Xe+ee|0,Ne=Ne+fe|0,Ke=Ke+_e|0,Ge=Ge+je|0,pe=pe+We|0,he=he+ct|0,Re=Re+Ie|0,Oe=Oe+nt|0,Pe=Pe+bt|0,Be=Be+Ot|0,vt=vt+gt|0,Lt=Lt+ht|0,Ft=Ft+xt|0,$t=$t+wt|0,T[0]=Qe>>>0&255,T[1]=Qe>>>8&255,T[2]=Qe>>>16&255,T[3]=Qe>>>24&255,T[4]=ut>>>0&255,T[5]=ut>>>8&255,T[6]=ut>>>16&255,T[7]=ut>>>24&255,T[8]=Xe>>>0&255,T[9]=Xe>>>8&255,T[10]=Xe>>>16&255,T[11]=Xe>>>24&255,T[12]=Ne>>>0&255,T[13]=Ne>>>8&255,T[14]=Ne>>>16&255,T[15]=Ne>>>24&255,T[16]=Ke>>>0&255,T[17]=Ke>>>8&255,T[18]=Ke>>>16&255,T[19]=Ke>>>24&255,T[20]=Ge>>>0&255,T[21]=Ge>>>8&255,T[22]=Ge>>>16&255,T[23]=Ge>>>24&255,T[24]=pe>>>0&255,T[25]=pe>>>8&255,T[26]=pe>>>16&255,T[27]=pe>>>24&255,T[28]=he>>>0&255,T[29]=he>>>8&255,T[30]=he>>>16&255,T[31]=he>>>24&255,T[32]=Re>>>0&255,T[33]=Re>>>8&255,T[34]=Re>>>16&255,T[35]=Re>>>24&255,T[36]=Oe>>>0&255,T[37]=Oe>>>8&255,T[38]=Oe>>>16&255,T[39]=Oe>>>24&255,T[40]=Pe>>>0&255,T[41]=Pe>>>8&255,T[42]=Pe>>>16&255,T[43]=Pe>>>24&255,T[44]=Be>>>0&255,T[45]=Be>>>8&255,T[46]=Be>>>16&255,T[47]=Be>>>24&255,T[48]=vt>>>0&255,T[49]=vt>>>8&255,T[50]=vt>>>16&255,T[51]=vt>>>24&255,T[52]=Lt>>>0&255,T[53]=Lt>>>8&255,T[54]=Lt>>>16&255,T[55]=Lt>>>24&255,T[56]=Ft>>>0&255,T[57]=Ft>>>8&255,T[58]=Ft>>>16&255,T[59]=Ft>>>24&255,T[60]=$t>>>0&255,T[61]=$t>>>8&255,T[62]=$t>>>16&255,T[63]=$t>>>24&255}function S(T,D,$,A){for(var N=A[0]&255|(A[1]&255)<<8|(A[2]&255)<<16|(A[3]&255)<<24,Q=$[0]&255|($[1]&255)<<8|($[2]&255)<<16|($[3]&255)<<24,ee=$[4]&255|($[5]&255)<<8|($[6]&255)<<16|($[7]&255)<<24,fe=$[8]&255|($[9]&255)<<8|($[10]&255)<<16|($[11]&255)<<24,_e=$[12]&255|($[13]&255)<<8|($[14]&255)<<16|($[15]&255)<<24,je=A[4]&255|(A[5]&255)<<8|(A[6]&255)<<16|(A[7]&255)<<24,We=D[0]&255|(D[1]&255)<<8|(D[2]&255)<<16|(D[3]&255)<<24,ct=D[4]&255|(D[5]&255)<<8|(D[6]&255)<<16|(D[7]&255)<<24,Ie=D[8]&255|(D[9]&255)<<8|(D[10]&255)<<16|(D[11]&255)<<24,nt=D[12]&255|(D[13]&255)<<8|(D[14]&255)<<16|(D[15]&255)<<24,bt=A[8]&255|(A[9]&255)<<8|(A[10]&255)<<16|(A[11]&255)<<24,Ot=$[16]&255|($[17]&255)<<8|($[18]&255)<<16|($[19]&255)<<24,gt=$[20]&255|($[21]&255)<<8|($[22]&255)<<16|($[23]&255)<<24,ht=$[24]&255|($[25]&255)<<8|($[26]&255)<<16|($[27]&255)<<24,xt=$[28]&255|($[29]&255)<<8|($[30]&255)<<16|($[31]&255)<<24,wt=A[12]&255|(A[13]&255)<<8|(A[14]&255)<<16|(A[15]&255)<<24,Qe=N,ut=Q,Xe=ee,Ne=fe,Ke=_e,Ge=je,pe=We,he=ct,Re=Ie,Oe=nt,Pe=bt,Be=Ot,vt=gt,Lt=ht,Ft=xt,$t=wt,J,Zt=0;Zt<20;Zt+=2)J=Qe+vt|0,Ke^=J<<7|J>>>25,J=Ke+Qe|0,Re^=J<<9|J>>>23,J=Re+Ke|0,vt^=J<<13|J>>>19,J=vt+Re|0,Qe^=J<<18|J>>>14,J=Ge+ut|0,Oe^=J<<7|J>>>25,J=Oe+Ge|0,Lt^=J<<9|J>>>23,J=Lt+Oe|0,ut^=J<<13|J>>>19,J=ut+Lt|0,Ge^=J<<18|J>>>14,J=Pe+pe|0,Ft^=J<<7|J>>>25,J=Ft+Pe|0,Xe^=J<<9|J>>>23,J=Xe+Ft|0,pe^=J<<13|J>>>19,J=pe+Xe|0,Pe^=J<<18|J>>>14,J=$t+Be|0,Ne^=J<<7|J>>>25,J=Ne+$t|0,he^=J<<9|J>>>23,J=he+Ne|0,Be^=J<<13|J>>>19,J=Be+he|0,$t^=J<<18|J>>>14,J=Qe+Ne|0,ut^=J<<7|J>>>25,J=ut+Qe|0,Xe^=J<<9|J>>>23,J=Xe+ut|0,Ne^=J<<13|J>>>19,J=Ne+Xe|0,Qe^=J<<18|J>>>14,J=Ge+Ke|0,pe^=J<<7|J>>>25,J=pe+Ge|0,he^=J<<9|J>>>23,J=he+pe|0,Ke^=J<<13|J>>>19,J=Ke+he|0,Ge^=J<<18|J>>>14,J=Pe+Oe|0,Be^=J<<7|J>>>25,J=Be+Pe|0,Re^=J<<9|J>>>23,J=Re+Be|0,Oe^=J<<13|J>>>19,J=Oe+Re|0,Pe^=J<<18|J>>>14,J=$t+Ft|0,vt^=J<<7|J>>>25,J=vt+$t|0,Lt^=J<<9|J>>>23,J=Lt+vt|0,Ft^=J<<13|J>>>19,J=Ft+Lt|0,$t^=J<<18|J>>>14;T[0]=Qe>>>0&255,T[1]=Qe>>>8&255,T[2]=Qe>>>16&255,T[3]=Qe>>>24&255,T[4]=Ge>>>0&255,T[5]=Ge>>>8&255,T[6]=Ge>>>16&255,T[7]=Ge>>>24&255,T[8]=Pe>>>0&255,T[9]=Pe>>>8&255,T[10]=Pe>>>16&255,T[11]=Pe>>>24&255,T[12]=$t>>>0&255,T[13]=$t>>>8&255,T[14]=$t>>>16&255,T[15]=$t>>>24&255,T[16]=pe>>>0&255,T[17]=pe>>>8&255,T[18]=pe>>>16&255,T[19]=pe>>>24&255,T[20]=he>>>0&255,T[21]=he>>>8&255,T[22]=he>>>16&255,T[23]=he>>>24&255,T[24]=Re>>>0&255,T[25]=Re>>>8&255,T[26]=Re>>>16&255,T[27]=Re>>>24&255,T[28]=Oe>>>0&255,T[29]=Oe>>>8&255,T[30]=Oe>>>16&255,T[31]=Oe>>>24&255}function O(T,D,$,A){x(T,D,$,A)}function E(T,D,$,A){S(T,D,$,A)}var C=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function k(T,D,$,A,N,Q,ee){var fe=new Uint8Array(16),_e=new Uint8Array(64),je,We;for(We=0;We<16;We++)fe[We]=0;for(We=0;We<8;We++)fe[We]=Q[We];for(;N>=64;){for(O(_e,fe,ee,C),We=0;We<64;We++)T[D+We]=$[A+We]^_e[We];for(je=1,We=8;We<16;We++)je=je+(fe[We]&255)|0,fe[We]=je&255,je>>>=8;N-=64,D+=64,A+=64}if(N>0)for(O(_e,fe,ee,C),We=0;We=64;){for(O(ee,Q,N,C),_e=0;_e<64;_e++)T[D+_e]=ee[_e];for(fe=1,_e=8;_e<16;_e++)fe=fe+(Q[_e]&255)|0,Q[_e]=fe&255,fe>>>=8;$-=64,D+=64}if($>0)for(O(ee,Q,N,C),_e=0;_e<$;_e++)T[D+_e]=ee[_e];return 0}function L(T,D,$,A,N){var Q=new Uint8Array(32);E(Q,A,N,C);for(var ee=new Uint8Array(8),fe=0;fe<8;fe++)ee[fe]=A[fe+16];return M(T,D,$,ee,Q)}function U(T,D,$,A,N,Q,ee){var fe=new Uint8Array(32);E(fe,Q,ee,C);for(var _e=new Uint8Array(8),je=0;je<8;je++)_e[je]=Q[je+16];return k(T,D,$,A,N,_e,fe)}var H=function(T){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var D,$,A,N,Q,ee,fe,_e;D=T[0]&255|(T[1]&255)<<8,this.r[0]=D&8191,$=T[2]&255|(T[3]&255)<<8,this.r[1]=(D>>>13|$<<3)&8191,A=T[4]&255|(T[5]&255)<<8,this.r[2]=($>>>10|A<<6)&7939,N=T[6]&255|(T[7]&255)<<8,this.r[3]=(A>>>7|N<<9)&8191,Q=T[8]&255|(T[9]&255)<<8,this.r[4]=(N>>>4|Q<<12)&255,this.r[5]=Q>>>1&8190,ee=T[10]&255|(T[11]&255)<<8,this.r[6]=(Q>>>14|ee<<2)&8191,fe=T[12]&255|(T[13]&255)<<8,this.r[7]=(ee>>>11|fe<<5)&8065,_e=T[14]&255|(T[15]&255)<<8,this.r[8]=(fe>>>8|_e<<8)&8191,this.r[9]=_e>>>5&127,this.pad[0]=T[16]&255|(T[17]&255)<<8,this.pad[1]=T[18]&255|(T[19]&255)<<8,this.pad[2]=T[20]&255|(T[21]&255)<<8,this.pad[3]=T[22]&255|(T[23]&255)<<8,this.pad[4]=T[24]&255|(T[25]&255)<<8,this.pad[5]=T[26]&255|(T[27]&255)<<8,this.pad[6]=T[28]&255|(T[29]&255)<<8,this.pad[7]=T[30]&255|(T[31]&255)<<8};H.prototype.blocks=function(T,D,$){for(var A=this.fin?0:2048,N,Q,ee,fe,_e,je,We,ct,Ie,nt,bt,Ot,gt,ht,xt,wt,Qe,ut,Xe,Ne=this.h[0],Ke=this.h[1],Ge=this.h[2],pe=this.h[3],he=this.h[4],Re=this.h[5],Oe=this.h[6],Pe=this.h[7],Be=this.h[8],vt=this.h[9],Lt=this.r[0],Ft=this.r[1],$t=this.r[2],J=this.r[3],Zt=this.r[4],sn=this.r[5],un=this.r[6],jt=this.r[7],ln=this.r[8],rn=this.r[9];$>=16;)N=T[D+0]&255|(T[D+1]&255)<<8,Ne+=N&8191,Q=T[D+2]&255|(T[D+3]&255)<<8,Ke+=(N>>>13|Q<<3)&8191,ee=T[D+4]&255|(T[D+5]&255)<<8,Ge+=(Q>>>10|ee<<6)&8191,fe=T[D+6]&255|(T[D+7]&255)<<8,pe+=(ee>>>7|fe<<9)&8191,_e=T[D+8]&255|(T[D+9]&255)<<8,he+=(fe>>>4|_e<<12)&8191,Re+=_e>>>1&8191,je=T[D+10]&255|(T[D+11]&255)<<8,Oe+=(_e>>>14|je<<2)&8191,We=T[D+12]&255|(T[D+13]&255)<<8,Pe+=(je>>>11|We<<5)&8191,ct=T[D+14]&255|(T[D+15]&255)<<8,Be+=(We>>>8|ct<<8)&8191,vt+=ct>>>5|A,Ie=0,nt=Ie,nt+=Ne*Lt,nt+=Ke*(5*rn),nt+=Ge*(5*ln),nt+=pe*(5*jt),nt+=he*(5*un),Ie=nt>>>13,nt&=8191,nt+=Re*(5*sn),nt+=Oe*(5*Zt),nt+=Pe*(5*J),nt+=Be*(5*$t),nt+=vt*(5*Ft),Ie+=nt>>>13,nt&=8191,bt=Ie,bt+=Ne*Ft,bt+=Ke*Lt,bt+=Ge*(5*rn),bt+=pe*(5*ln),bt+=he*(5*jt),Ie=bt>>>13,bt&=8191,bt+=Re*(5*un),bt+=Oe*(5*sn),bt+=Pe*(5*Zt),bt+=Be*(5*J),bt+=vt*(5*$t),Ie+=bt>>>13,bt&=8191,Ot=Ie,Ot+=Ne*$t,Ot+=Ke*Ft,Ot+=Ge*Lt,Ot+=pe*(5*rn),Ot+=he*(5*ln),Ie=Ot>>>13,Ot&=8191,Ot+=Re*(5*jt),Ot+=Oe*(5*un),Ot+=Pe*(5*sn),Ot+=Be*(5*Zt),Ot+=vt*(5*J),Ie+=Ot>>>13,Ot&=8191,gt=Ie,gt+=Ne*J,gt+=Ke*$t,gt+=Ge*Ft,gt+=pe*Lt,gt+=he*(5*rn),Ie=gt>>>13,gt&=8191,gt+=Re*(5*ln),gt+=Oe*(5*jt),gt+=Pe*(5*un),gt+=Be*(5*sn),gt+=vt*(5*Zt),Ie+=gt>>>13,gt&=8191,ht=Ie,ht+=Ne*Zt,ht+=Ke*J,ht+=Ge*$t,ht+=pe*Ft,ht+=he*Lt,Ie=ht>>>13,ht&=8191,ht+=Re*(5*rn),ht+=Oe*(5*ln),ht+=Pe*(5*jt),ht+=Be*(5*un),ht+=vt*(5*sn),Ie+=ht>>>13,ht&=8191,xt=Ie,xt+=Ne*sn,xt+=Ke*Zt,xt+=Ge*J,xt+=pe*$t,xt+=he*Ft,Ie=xt>>>13,xt&=8191,xt+=Re*Lt,xt+=Oe*(5*rn),xt+=Pe*(5*ln),xt+=Be*(5*jt),xt+=vt*(5*un),Ie+=xt>>>13,xt&=8191,wt=Ie,wt+=Ne*un,wt+=Ke*sn,wt+=Ge*Zt,wt+=pe*J,wt+=he*$t,Ie=wt>>>13,wt&=8191,wt+=Re*Ft,wt+=Oe*Lt,wt+=Pe*(5*rn),wt+=Be*(5*ln),wt+=vt*(5*jt),Ie+=wt>>>13,wt&=8191,Qe=Ie,Qe+=Ne*jt,Qe+=Ke*un,Qe+=Ge*sn,Qe+=pe*Zt,Qe+=he*J,Ie=Qe>>>13,Qe&=8191,Qe+=Re*$t,Qe+=Oe*Ft,Qe+=Pe*Lt,Qe+=Be*(5*rn),Qe+=vt*(5*ln),Ie+=Qe>>>13,Qe&=8191,ut=Ie,ut+=Ne*ln,ut+=Ke*jt,ut+=Ge*un,ut+=pe*sn,ut+=he*Zt,Ie=ut>>>13,ut&=8191,ut+=Re*J,ut+=Oe*$t,ut+=Pe*Ft,ut+=Be*Lt,ut+=vt*(5*rn),Ie+=ut>>>13,ut&=8191,Xe=Ie,Xe+=Ne*rn,Xe+=Ke*ln,Xe+=Ge*jt,Xe+=pe*un,Xe+=he*sn,Ie=Xe>>>13,Xe&=8191,Xe+=Re*Zt,Xe+=Oe*J,Xe+=Pe*$t,Xe+=Be*Ft,Xe+=vt*Lt,Ie+=Xe>>>13,Xe&=8191,Ie=(Ie<<2)+Ie|0,Ie=Ie+nt|0,nt=Ie&8191,Ie=Ie>>>13,bt+=Ie,Ne=nt,Ke=bt,Ge=Ot,pe=gt,he=ht,Re=xt,Oe=wt,Pe=Qe,Be=ut,vt=Xe,D+=16,$-=16;this.h[0]=Ne,this.h[1]=Ke,this.h[2]=Ge,this.h[3]=pe,this.h[4]=he,this.h[5]=Re,this.h[6]=Oe,this.h[7]=Pe,this.h[8]=Be,this.h[9]=vt},H.prototype.finish=function(T,D){var $=new Uint16Array(10),A,N,Q,ee;if(this.leftover){for(ee=this.leftover,this.buffer[ee++]=1;ee<16;ee++)this.buffer[ee]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(A=this.h[1]>>>13,this.h[1]&=8191,ee=2;ee<10;ee++)this.h[ee]+=A,A=this.h[ee]>>>13,this.h[ee]&=8191;for(this.h[0]+=A*5,A=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=A,A=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=A,$[0]=this.h[0]+5,A=$[0]>>>13,$[0]&=8191,ee=1;ee<10;ee++)$[ee]=this.h[ee]+A,A=$[ee]>>>13,$[ee]&=8191;for($[9]-=8192,N=(A^1)-1,ee=0;ee<10;ee++)$[ee]&=N;for(N=~N,ee=0;ee<10;ee++)this.h[ee]=this.h[ee]&N|$[ee];for(this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,Q=this.h[0]+this.pad[0],this.h[0]=Q&65535,ee=1;ee<8;ee++)Q=(this.h[ee]+this.pad[ee]|0)+(Q>>>16)|0,this.h[ee]=Q&65535;T[D+0]=this.h[0]>>>0&255,T[D+1]=this.h[0]>>>8&255,T[D+2]=this.h[1]>>>0&255,T[D+3]=this.h[1]>>>8&255,T[D+4]=this.h[2]>>>0&255,T[D+5]=this.h[2]>>>8&255,T[D+6]=this.h[3]>>>0&255,T[D+7]=this.h[3]>>>8&255,T[D+8]=this.h[4]>>>0&255,T[D+9]=this.h[4]>>>8&255,T[D+10]=this.h[5]>>>0&255,T[D+11]=this.h[5]>>>8&255,T[D+12]=this.h[6]>>>0&255,T[D+13]=this.h[6]>>>8&255,T[D+14]=this.h[7]>>>0&255,T[D+15]=this.h[7]>>>8&255},H.prototype.update=function(T,D,$){var A,N;if(this.leftover){for(N=16-this.leftover,N>$&&(N=$),A=0;A=16&&(N=$-$%16,this.blocks(T,D,N),D+=N,$-=N),$){for(A=0;A<$;A++)this.buffer[this.leftover+A]=T[D+A];this.leftover+=$}};function V(T,D,$,A,N,Q){var ee=new H(Q);return ee.update($,A,N),ee.finish(T,D),0}function ne(T,D,$,A,N,Q){var ee=new Uint8Array(16);return V(ee,0,$,A,N,Q),b(T,D,ee,0)}function Z(T,D,$,A,N){var Q;if($<32)return-1;for(U(T,0,D,0,$,A,N),V(T,16,T,32,$-32,T),Q=0;Q<16;Q++)T[Q]=0;return 0}function G(T,D,$,A,N){var Q,ee=new Uint8Array(32);if($<32||(L(ee,0,32,A,N),ne(D,16,D,32,$-32,ee)!==0))return-1;for(U(T,0,D,0,$,A,N),Q=0;Q<32;Q++)T[Q]=0;return 0}function q(T,D){var $;for($=0;$<16;$++)T[$]=D[$]|0}function W(T){var D,$,A=1;for(D=0;D<16;D++)$=T[D]+A+65535,A=Math.floor($/65536),T[D]=$-A*65536;T[0]+=A-1+37*(A-1)}function j(T,D,$){for(var A,N=~($-1),Q=0;Q<16;Q++)A=N&(T[Q]^D[Q]),T[Q]^=A,D[Q]^=A}function K(T,D){var $,A,N,Q=n(),ee=n();for($=0;$<16;$++)ee[$]=D[$];for(W(ee),W(ee),W(ee),A=0;A<2;A++){for(Q[0]=ee[0]-65517,$=1;$<15;$++)Q[$]=ee[$]-65535-(Q[$-1]>>16&1),Q[$-1]&=65535;Q[15]=ee[15]-32767-(Q[14]>>16&1),N=Q[15]>>16&1,Q[14]&=65535,j(ee,Q,1-N)}for($=0;$<16;$++)T[2*$]=ee[$]&255,T[2*$+1]=ee[$]>>8}function Y(T,D){var $=new Uint8Array(32),A=new Uint8Array(32);return K($,T),K(A,D),w($,0,A,0)}function oe(T){var D=new Uint8Array(32);return K(D,T),D[0]&1}function ae(T,D){var $;for($=0;$<16;$++)T[$]=D[2*$]+(D[2*$+1]<<8);T[15]&=32767}function ue(T,D,$){for(var A=0;A<16;A++)T[A]=D[A]+$[A]}function be(T,D,$){for(var A=0;A<16;A++)T[A]=D[A]-$[A]}function we(T,D,$){var A,N,Q=0,ee=0,fe=0,_e=0,je=0,We=0,ct=0,Ie=0,nt=0,bt=0,Ot=0,gt=0,ht=0,xt=0,wt=0,Qe=0,ut=0,Xe=0,Ne=0,Ke=0,Ge=0,pe=0,he=0,Re=0,Oe=0,Pe=0,Be=0,vt=0,Lt=0,Ft=0,$t=0,J=$[0],Zt=$[1],sn=$[2],un=$[3],jt=$[4],ln=$[5],rn=$[6],Gn=$[7],mn=$[8],Pn=$[9],Yn=$[10],Zn=$[11],xr=$[12],$r=$[13],Ir=$[14],Nr=$[15];A=D[0],Q+=A*J,ee+=A*Zt,fe+=A*sn,_e+=A*un,je+=A*jt,We+=A*ln,ct+=A*rn,Ie+=A*Gn,nt+=A*mn,bt+=A*Pn,Ot+=A*Yn,gt+=A*Zn,ht+=A*xr,xt+=A*$r,wt+=A*Ir,Qe+=A*Nr,A=D[1],ee+=A*J,fe+=A*Zt,_e+=A*sn,je+=A*un,We+=A*jt,ct+=A*ln,Ie+=A*rn,nt+=A*Gn,bt+=A*mn,Ot+=A*Pn,gt+=A*Yn,ht+=A*Zn,xt+=A*xr,wt+=A*$r,Qe+=A*Ir,ut+=A*Nr,A=D[2],fe+=A*J,_e+=A*Zt,je+=A*sn,We+=A*un,ct+=A*jt,Ie+=A*ln,nt+=A*rn,bt+=A*Gn,Ot+=A*mn,gt+=A*Pn,ht+=A*Yn,xt+=A*Zn,wt+=A*xr,Qe+=A*$r,ut+=A*Ir,Xe+=A*Nr,A=D[3],_e+=A*J,je+=A*Zt,We+=A*sn,ct+=A*un,Ie+=A*jt,nt+=A*ln,bt+=A*rn,Ot+=A*Gn,gt+=A*mn,ht+=A*Pn,xt+=A*Yn,wt+=A*Zn,Qe+=A*xr,ut+=A*$r,Xe+=A*Ir,Ne+=A*Nr,A=D[4],je+=A*J,We+=A*Zt,ct+=A*sn,Ie+=A*un,nt+=A*jt,bt+=A*ln,Ot+=A*rn,gt+=A*Gn,ht+=A*mn,xt+=A*Pn,wt+=A*Yn,Qe+=A*Zn,ut+=A*xr,Xe+=A*$r,Ne+=A*Ir,Ke+=A*Nr,A=D[5],We+=A*J,ct+=A*Zt,Ie+=A*sn,nt+=A*un,bt+=A*jt,Ot+=A*ln,gt+=A*rn,ht+=A*Gn,xt+=A*mn,wt+=A*Pn,Qe+=A*Yn,ut+=A*Zn,Xe+=A*xr,Ne+=A*$r,Ke+=A*Ir,Ge+=A*Nr,A=D[6],ct+=A*J,Ie+=A*Zt,nt+=A*sn,bt+=A*un,Ot+=A*jt,gt+=A*ln,ht+=A*rn,xt+=A*Gn,wt+=A*mn,Qe+=A*Pn,ut+=A*Yn,Xe+=A*Zn,Ne+=A*xr,Ke+=A*$r,Ge+=A*Ir,pe+=A*Nr,A=D[7],Ie+=A*J,nt+=A*Zt,bt+=A*sn,Ot+=A*un,gt+=A*jt,ht+=A*ln,xt+=A*rn,wt+=A*Gn,Qe+=A*mn,ut+=A*Pn,Xe+=A*Yn,Ne+=A*Zn,Ke+=A*xr,Ge+=A*$r,pe+=A*Ir,he+=A*Nr,A=D[8],nt+=A*J,bt+=A*Zt,Ot+=A*sn,gt+=A*un,ht+=A*jt,xt+=A*ln,wt+=A*rn,Qe+=A*Gn,ut+=A*mn,Xe+=A*Pn,Ne+=A*Yn,Ke+=A*Zn,Ge+=A*xr,pe+=A*$r,he+=A*Ir,Re+=A*Nr,A=D[9],bt+=A*J,Ot+=A*Zt,gt+=A*sn,ht+=A*un,xt+=A*jt,wt+=A*ln,Qe+=A*rn,ut+=A*Gn,Xe+=A*mn,Ne+=A*Pn,Ke+=A*Yn,Ge+=A*Zn,pe+=A*xr,he+=A*$r,Re+=A*Ir,Oe+=A*Nr,A=D[10],Ot+=A*J,gt+=A*Zt,ht+=A*sn,xt+=A*un,wt+=A*jt,Qe+=A*ln,ut+=A*rn,Xe+=A*Gn,Ne+=A*mn,Ke+=A*Pn,Ge+=A*Yn,pe+=A*Zn,he+=A*xr,Re+=A*$r,Oe+=A*Ir,Pe+=A*Nr,A=D[11],gt+=A*J,ht+=A*Zt,xt+=A*sn,wt+=A*un,Qe+=A*jt,ut+=A*ln,Xe+=A*rn,Ne+=A*Gn,Ke+=A*mn,Ge+=A*Pn,pe+=A*Yn,he+=A*Zn,Re+=A*xr,Oe+=A*$r,Pe+=A*Ir,Be+=A*Nr,A=D[12],ht+=A*J,xt+=A*Zt,wt+=A*sn,Qe+=A*un,ut+=A*jt,Xe+=A*ln,Ne+=A*rn,Ke+=A*Gn,Ge+=A*mn,pe+=A*Pn,he+=A*Yn,Re+=A*Zn,Oe+=A*xr,Pe+=A*$r,Be+=A*Ir,vt+=A*Nr,A=D[13],xt+=A*J,wt+=A*Zt,Qe+=A*sn,ut+=A*un,Xe+=A*jt,Ne+=A*ln,Ke+=A*rn,Ge+=A*Gn,pe+=A*mn,he+=A*Pn,Re+=A*Yn,Oe+=A*Zn,Pe+=A*xr,Be+=A*$r,vt+=A*Ir,Lt+=A*Nr,A=D[14],wt+=A*J,Qe+=A*Zt,ut+=A*sn,Xe+=A*un,Ne+=A*jt,Ke+=A*ln,Ge+=A*rn,pe+=A*Gn,he+=A*mn,Re+=A*Pn,Oe+=A*Yn,Pe+=A*Zn,Be+=A*xr,vt+=A*$r,Lt+=A*Ir,Ft+=A*Nr,A=D[15],Qe+=A*J,ut+=A*Zt,Xe+=A*sn,Ne+=A*un,Ke+=A*jt,Ge+=A*ln,pe+=A*rn,he+=A*Gn,Re+=A*mn,Oe+=A*Pn,Pe+=A*Yn,Be+=A*Zn,vt+=A*xr,Lt+=A*$r,Ft+=A*Ir,$t+=A*Nr,Q+=38*ut,ee+=38*Xe,fe+=38*Ne,_e+=38*Ke,je+=38*Ge,We+=38*pe,ct+=38*he,Ie+=38*Re,nt+=38*Oe,bt+=38*Pe,Ot+=38*Be,gt+=38*vt,ht+=38*Lt,xt+=38*Ft,wt+=38*$t,N=1,A=Q+N+65535,N=Math.floor(A/65536),Q=A-N*65536,A=ee+N+65535,N=Math.floor(A/65536),ee=A-N*65536,A=fe+N+65535,N=Math.floor(A/65536),fe=A-N*65536,A=_e+N+65535,N=Math.floor(A/65536),_e=A-N*65536,A=je+N+65535,N=Math.floor(A/65536),je=A-N*65536,A=We+N+65535,N=Math.floor(A/65536),We=A-N*65536,A=ct+N+65535,N=Math.floor(A/65536),ct=A-N*65536,A=Ie+N+65535,N=Math.floor(A/65536),Ie=A-N*65536,A=nt+N+65535,N=Math.floor(A/65536),nt=A-N*65536,A=bt+N+65535,N=Math.floor(A/65536),bt=A-N*65536,A=Ot+N+65535,N=Math.floor(A/65536),Ot=A-N*65536,A=gt+N+65535,N=Math.floor(A/65536),gt=A-N*65536,A=ht+N+65535,N=Math.floor(A/65536),ht=A-N*65536,A=xt+N+65535,N=Math.floor(A/65536),xt=A-N*65536,A=wt+N+65535,N=Math.floor(A/65536),wt=A-N*65536,A=Qe+N+65535,N=Math.floor(A/65536),Qe=A-N*65536,Q+=N-1+37*(N-1),N=1,A=Q+N+65535,N=Math.floor(A/65536),Q=A-N*65536,A=ee+N+65535,N=Math.floor(A/65536),ee=A-N*65536,A=fe+N+65535,N=Math.floor(A/65536),fe=A-N*65536,A=_e+N+65535,N=Math.floor(A/65536),_e=A-N*65536,A=je+N+65535,N=Math.floor(A/65536),je=A-N*65536,A=We+N+65535,N=Math.floor(A/65536),We=A-N*65536,A=ct+N+65535,N=Math.floor(A/65536),ct=A-N*65536,A=Ie+N+65535,N=Math.floor(A/65536),Ie=A-N*65536,A=nt+N+65535,N=Math.floor(A/65536),nt=A-N*65536,A=bt+N+65535,N=Math.floor(A/65536),bt=A-N*65536,A=Ot+N+65535,N=Math.floor(A/65536),Ot=A-N*65536,A=gt+N+65535,N=Math.floor(A/65536),gt=A-N*65536,A=ht+N+65535,N=Math.floor(A/65536),ht=A-N*65536,A=xt+N+65535,N=Math.floor(A/65536),xt=A-N*65536,A=wt+N+65535,N=Math.floor(A/65536),wt=A-N*65536,A=Qe+N+65535,N=Math.floor(A/65536),Qe=A-N*65536,Q+=N-1+37*(N-1),T[0]=Q,T[1]=ee,T[2]=fe,T[3]=_e,T[4]=je,T[5]=We,T[6]=ct,T[7]=Ie,T[8]=nt,T[9]=bt,T[10]=Ot,T[11]=gt,T[12]=ht,T[13]=xt,T[14]=wt,T[15]=Qe}function He(T,D){we(T,D,D)}function Ee(T,D){var $=n(),A;for(A=0;A<16;A++)$[A]=D[A];for(A=253;A>=0;A--)He($,$),A!==2&&A!==4&&we($,$,D);for(A=0;A<16;A++)T[A]=$[A]}function it(T,D){var $=n(),A;for(A=0;A<16;A++)$[A]=D[A];for(A=250;A>=0;A--)He($,$),A!==1&&we($,$,D);for(A=0;A<16;A++)T[A]=$[A]}function ke(T,D,$){var A=new Uint8Array(32),N=new Float64Array(80),Q,ee,fe=n(),_e=n(),je=n(),We=n(),ct=n(),Ie=n();for(ee=0;ee<31;ee++)A[ee]=D[ee];for(A[31]=D[31]&127|64,A[0]&=248,ae(N,$),ee=0;ee<16;ee++)_e[ee]=N[ee],We[ee]=fe[ee]=je[ee]=0;for(fe[0]=We[0]=1,ee=254;ee>=0;--ee)Q=A[ee>>>3]>>>(ee&7)&1,j(fe,_e,Q),j(je,We,Q),ue(ct,fe,je),be(fe,fe,je),ue(je,_e,We),be(_e,_e,We),He(We,ct),He(Ie,fe),we(fe,je,fe),we(je,_e,ct),ue(ct,fe,je),be(fe,fe,je),He(_e,fe),be(je,We,Ie),we(fe,je,u),ue(fe,fe,We),we(je,je,fe),we(fe,We,Ie),we(We,_e,N),He(_e,ct),j(fe,_e,Q),j(je,We,Q);for(ee=0;ee<16;ee++)N[ee+16]=fe[ee],N[ee+32]=je[ee],N[ee+48]=_e[ee],N[ee+64]=We[ee];var nt=N.subarray(32),bt=N.subarray(16);return Ee(nt,nt),we(bt,bt,nt),K(T,bt),0}function Le(T,D){return ke(T,D,o)}function De(T,D){return r(D,32),Le(T,D)}function me(T,D,$){var A=new Uint8Array(32);return ke(A,$,D),E(T,i,A,C)}var yt=Z,lt=G;function Nt(T,D,$,A,N,Q){var ee=new Uint8Array(32);return me(ee,N,Q),yt(T,D,$,A,ee)}function yn(T,D,$,A,N,Q){var ee=new Uint8Array(32);return me(ee,N,Q),lt(T,D,$,A,ee)}var nn=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function te(T,D,$,A){for(var N=new Int32Array(16),Q=new Int32Array(16),ee,fe,_e,je,We,ct,Ie,nt,bt,Ot,gt,ht,xt,wt,Qe,ut,Xe,Ne,Ke,Ge,pe,he,Re,Oe,Pe,Be,vt=T[0],Lt=T[1],Ft=T[2],$t=T[3],J=T[4],Zt=T[5],sn=T[6],un=T[7],jt=D[0],ln=D[1],rn=D[2],Gn=D[3],mn=D[4],Pn=D[5],Yn=D[6],Zn=D[7],xr=0;A>=128;){for(Ke=0;Ke<16;Ke++)Ge=8*Ke+xr,N[Ke]=$[Ge+0]<<24|$[Ge+1]<<16|$[Ge+2]<<8|$[Ge+3],Q[Ke]=$[Ge+4]<<24|$[Ge+5]<<16|$[Ge+6]<<8|$[Ge+7];for(Ke=0;Ke<80;Ke++)if(ee=vt,fe=Lt,_e=Ft,je=$t,We=J,ct=Zt,Ie=sn,nt=un,bt=jt,Ot=ln,gt=rn,ht=Gn,xt=mn,wt=Pn,Qe=Yn,ut=Zn,pe=un,he=Zn,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=(J>>>14|mn<<18)^(J>>>18|mn<<14)^(mn>>>9|J<<23),he=(mn>>>14|J<<18)^(mn>>>18|J<<14)^(J>>>9|mn<<23),Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,pe=J&Zt^~J&sn,he=mn&Pn^~mn&Yn,Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,pe=nn[Ke*2],he=nn[Ke*2+1],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,pe=N[Ke%16],he=Q[Ke%16],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,Xe=Pe&65535|Be<<16,Ne=Re&65535|Oe<<16,pe=Xe,he=Ne,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=(vt>>>28|jt<<4)^(jt>>>2|vt<<30)^(jt>>>7|vt<<25),he=(jt>>>28|vt<<4)^(vt>>>2|jt<<30)^(vt>>>7|jt<<25),Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,pe=vt&Lt^vt&Ft^Lt&Ft,he=jt&ln^jt&rn^ln&rn,Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,nt=Pe&65535|Be<<16,ut=Re&65535|Oe<<16,pe=je,he=ht,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=Xe,he=Ne,Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,je=Pe&65535|Be<<16,ht=Re&65535|Oe<<16,Lt=ee,Ft=fe,$t=_e,J=je,Zt=We,sn=ct,un=Ie,vt=nt,ln=bt,rn=Ot,Gn=gt,mn=ht,Pn=xt,Yn=wt,Zn=Qe,jt=ut,Ke%16===15)for(Ge=0;Ge<16;Ge++)pe=N[Ge],he=Q[Ge],Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=N[(Ge+9)%16],he=Q[(Ge+9)%16],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Xe=N[(Ge+1)%16],Ne=Q[(Ge+1)%16],pe=(Xe>>>1|Ne<<31)^(Xe>>>8|Ne<<24)^Xe>>>7,he=(Ne>>>1|Xe<<31)^(Ne>>>8|Xe<<24)^(Ne>>>7|Xe<<25),Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Xe=N[(Ge+14)%16],Ne=Q[(Ge+14)%16],pe=(Xe>>>19|Ne<<13)^(Ne>>>29|Xe<<3)^Xe>>>6,he=(Ne>>>19|Xe<<13)^(Xe>>>29|Ne<<3)^(Ne>>>6|Xe<<26),Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,N[Ge]=Pe&65535|Be<<16,Q[Ge]=Re&65535|Oe<<16;pe=vt,he=jt,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=T[0],he=D[0],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,T[0]=vt=Pe&65535|Be<<16,D[0]=jt=Re&65535|Oe<<16,pe=Lt,he=ln,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=T[1],he=D[1],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,T[1]=Lt=Pe&65535|Be<<16,D[1]=ln=Re&65535|Oe<<16,pe=Ft,he=rn,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=T[2],he=D[2],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,T[2]=Ft=Pe&65535|Be<<16,D[2]=rn=Re&65535|Oe<<16,pe=$t,he=Gn,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=T[3],he=D[3],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,T[3]=$t=Pe&65535|Be<<16,D[3]=Gn=Re&65535|Oe<<16,pe=J,he=mn,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=T[4],he=D[4],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,T[4]=J=Pe&65535|Be<<16,D[4]=mn=Re&65535|Oe<<16,pe=Zt,he=Pn,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=T[5],he=D[5],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,T[5]=Zt=Pe&65535|Be<<16,D[5]=Pn=Re&65535|Oe<<16,pe=sn,he=Yn,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=T[6],he=D[6],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,T[6]=sn=Pe&65535|Be<<16,D[6]=Yn=Re&65535|Oe<<16,pe=un,he=Zn,Re=he&65535,Oe=he>>>16,Pe=pe&65535,Be=pe>>>16,pe=T[7],he=D[7],Re+=he&65535,Oe+=he>>>16,Pe+=pe&65535,Be+=pe>>>16,Oe+=Re>>>16,Pe+=Oe>>>16,Be+=Pe>>>16,T[7]=un=Pe&65535|Be<<16,D[7]=Zn=Re&65535|Oe<<16,xr+=128,A-=128}return A}function de(T,D,$){var A=new Int32Array(8),N=new Int32Array(8),Q=new Uint8Array(256),ee,fe=$;for(A[0]=1779033703,A[1]=3144134277,A[2]=1013904242,A[3]=2773480762,A[4]=1359893119,A[5]=2600822924,A[6]=528734635,A[7]=1541459225,N[0]=4089235720,N[1]=2227873595,N[2]=4271175723,N[3]=1595750129,N[4]=2917565137,N[5]=725511199,N[6]=4215389547,N[7]=327033209,te(A,N,D,$),$%=128,ee=0;ee<$;ee++)Q[ee]=D[fe-$+ee];for(Q[$]=128,$=256-128*($<112?1:0),Q[$-9]=0,m(Q,$-8,fe/536870912|0,fe<<3),te(A,N,Q,$),ee=0;ee<8;ee++)m(T,8*ee,A[ee],N[ee]);return 0}function ge(T,D){var $=n(),A=n(),N=n(),Q=n(),ee=n(),fe=n(),_e=n(),je=n(),We=n();be($,T[1],T[0]),be(We,D[1],D[0]),we($,$,We),ue(A,T[0],T[1]),ue(We,D[0],D[1]),we(A,A,We),we(N,T[3],D[3]),we(N,N,c),we(Q,T[2],D[2]),ue(Q,Q,Q),be(ee,A,$),be(fe,Q,N),ue(_e,Q,N),ue(je,A,$),we(T[0],ee,fe),we(T[1],je,_e),we(T[2],_e,fe),we(T[3],ee,je)}function ze(T,D,$){var A;for(A=0;A<4;A++)j(T[A],D[A],$)}function Fe(T,D){var $=n(),A=n(),N=n();Ee(N,D[2]),we($,D[0],N),we(A,D[1],N),K(T,A),T[31]^=oe($)<<7}function Ae(T,D,$){var A,N;for(q(T[0],a),q(T[1],s),q(T[2],s),q(T[3],a),N=255;N>=0;--N)A=$[N/8|0]>>(N&7)&1,ze(T,D,A),ge(D,T),ge(T,T),ze(T,D,A)}function tt(T,D){var $=[n(),n(),n(),n()];q($[0],f),q($[1],h),q($[2],s),we($[3],f,h),Ae(T,$,D)}function mt(T,D,$){var A=new Uint8Array(64),N=[n(),n(),n(),n()],Q;for($||r(D,32),de(A,D,32),A[0]&=248,A[31]&=127,A[31]|=64,tt(N,A),Fe(T,N),Q=0;Q<32;Q++)D[Q+32]=T[Q];return 0}var xn=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function Kt(T,D){var $,A,N,Q;for(A=63;A>=32;--A){for($=0,N=A-32,Q=A-12;N>4)*xn[N],$=D[N]>>8,D[N]&=255;for(N=0;N<32;N++)D[N]-=$*xn[N];for(A=0;A<32;A++)D[A+1]+=D[A]>>8,T[A]=D[A]&255}function wn(T){var D=new Float64Array(64),$;for($=0;$<64;$++)D[$]=T[$];for($=0;$<64;$++)T[$]=0;Kt(T,D)}function Ii(T,D,$,A){var N=new Uint8Array(64),Q=new Uint8Array(64),ee=new Uint8Array(64),fe,_e,je=new Float64Array(64),We=[n(),n(),n(),n()];de(N,A,32),N[0]&=248,N[31]&=127,N[31]|=64;var ct=$+64;for(fe=0;fe<$;fe++)T[64+fe]=D[fe];for(fe=0;fe<32;fe++)T[32+fe]=N[32+fe];for(de(ee,T.subarray(32),$+32),wn(ee),tt(We,ee),Fe(T,We),fe=32;fe<64;fe++)T[fe]=A[fe];for(de(Q,T,$+64),wn(Q),fe=0;fe<64;fe++)je[fe]=0;for(fe=0;fe<32;fe++)je[fe]=ee[fe];for(fe=0;fe<32;fe++)for(_e=0;_e<32;_e++)je[fe+_e]+=Q[fe]*N[_e];return Kt(T.subarray(32),je),ct}function br(T,D){var $=n(),A=n(),N=n(),Q=n(),ee=n(),fe=n(),_e=n();return q(T[2],s),ae(T[1],D),He(N,T[1]),we(Q,N,l),be(N,N,T[2]),ue(Q,T[2],Q),He(ee,Q),He(fe,ee),we(_e,fe,ee),we($,_e,N),we($,$,Q),it($,$),we($,$,N),we($,$,Q),we($,$,Q),we(T[0],$,Q),He(A,T[0]),we(A,A,Q),Y(A,N)&&we(T[0],T[0],p),He(A,T[0]),we(A,A,Q),Y(A,N)?-1:(oe(T[0])===D[31]>>7&&be(T[0],a,T[0]),we(T[3],T[0],T[1]),0)}function yi(T,D,$,A){var N,Q=new Uint8Array(32),ee=new Uint8Array(64),fe=[n(),n(),n(),n()],_e=[n(),n(),n(),n()];if($<64||br(_e,A))return-1;for(N=0;N<$;N++)T[N]=D[N];for(N=0;N<32;N++)T[N+32]=A[N];if(de(ee,T,$),wn(ee),Ae(fe,_e,ee),tt(_e,D.subarray(32)),ge(fe,_e),Fe(Q,fe),$-=64,w(D,0,Q,0)){for(N=0;N<$;N++)T[N]=0;return-1}for(N=0;N<$;N++)T[N]=D[N+64];return $}var sr=32,si=24,bi=32,Rr=16,Xi=32,yo=32,xi=32,Dr=32,_a=32,_t=si,hn=bi,_n=Rr,qn=64,ur=32,Xr=64,bo=32,Zl=64;t.lowlevel={crypto_core_hsalsa20:E,crypto_stream_xor:U,crypto_stream:L,crypto_stream_salsa20_xor:k,crypto_stream_salsa20:M,crypto_onetimeauth:V,crypto_onetimeauth_verify:ne,crypto_verify_16:b,crypto_verify_32:w,crypto_secretbox:Z,crypto_secretbox_open:G,crypto_scalarmult:ke,crypto_scalarmult_base:Le,crypto_box_beforenm:me,crypto_box_afternm:yt,crypto_box:Nt,crypto_box_open:yn,crypto_box_keypair:De,crypto_hash:de,crypto_sign:Ii,crypto_sign_keypair:mt,crypto_sign_open:yi,crypto_secretbox_KEYBYTES:sr,crypto_secretbox_NONCEBYTES:si,crypto_secretbox_ZEROBYTES:bi,crypto_secretbox_BOXZEROBYTES:Rr,crypto_scalarmult_BYTES:Xi,crypto_scalarmult_SCALARBYTES:yo,crypto_box_PUBLICKEYBYTES:xi,crypto_box_SECRETKEYBYTES:Dr,crypto_box_BEFORENMBYTES:_a,crypto_box_NONCEBYTES:_t,crypto_box_ZEROBYTES:hn,crypto_box_BOXZEROBYTES:_n,crypto_sign_BYTES:qn,crypto_sign_PUBLICKEYBYTES:ur,crypto_sign_SECRETKEYBYTES:Xr,crypto_sign_SEEDBYTES:bo,crypto_hash_BYTES:Zl,gf:n,D:l,L:xn,pack25519:K,unpack25519:ae,M:we,A:ue,S:He,Z:be,pow2523:it,add:ge,set25519:q,modL:Kt,scalarmult:Ae,scalarbase:tt};function Sf(T,D){if(T.length!==sr)throw new Error("bad key size");if(D.length!==si)throw new Error("bad nonce size")}function re(T,D){if(T.length!==xi)throw new Error("bad public key size");if(D.length!==Dr)throw new Error("bad secret key size")}function se(){for(var T=0;T=0},t.sign.keyPair=function(){var T=new Uint8Array(ur),D=new Uint8Array(Xr);return mt(T,D),{publicKey:T,secretKey:D}},t.sign.keyPair.fromSecretKey=function(T){if(se(T),T.length!==Xr)throw new Error("bad secret key size");for(var D=new Uint8Array(ur),$=0;$"u"?typeof Buffer.from<"u"?(t.encodeBase64=function(r){return Buffer.from(r).toString("base64")},t.decodeBase64=function(r){return n(r),new Uint8Array(Array.prototype.slice.call(Buffer.from(r,"base64"),0))}):(t.encodeBase64=function(r){return new Buffer(r).toString("base64")},t.decodeBase64=function(r){return n(r),new Uint8Array(Array.prototype.slice.call(new Buffer(r,"base64"),0))}):(t.encodeBase64=function(r){var i,o=[],a=r.length;for(i=0;i{const{__scopeCheckbox:n,name:r,checked:i,defaultChecked:o,required:a,disabled:s,value:u="on",onCheckedChange:l,form:c,...f}=e,[h,p]=y.useState(null),m=Yt(t,O=>p(O)),v=y.useRef(!1),b=h?c||!!h.closest("form"):!0,[w=!1,x]=Za({prop:i,defaultProp:o,onChange:l}),S=y.useRef(w);return y.useEffect(()=>{const O=h?.form;if(O){const E=()=>x(S.current);return O.addEventListener("reset",E),()=>O.removeEventListener("reset",E)}},[h,x]),I.jsxs(DGe,{scope:n,state:w,disabled:s,children:[I.jsx(pt.button,{type:"button",role:"checkbox","aria-checked":Sl(w)?"mixed":w,"aria-required":a,"data-state":dZ(w),"data-disabled":s?"":void 0,disabled:s,value:u,...f,ref:m,onKeyDown:Ye(e.onKeyDown,O=>{O.key==="Enter"&&O.preventDefault()}),onClick:Ye(e.onClick,O=>{x(E=>Sl(E)?!0:!E),b&&(v.current=O.isPropagationStopped(),v.current||O.stopPropagation())})}),b&&I.jsx(IGe,{control:h,bubbles:!v.current,name:r,value:u,checked:w,required:a,disabled:s,form:c,style:{transform:"translateX(-100%)"},defaultChecked:Sl(o)?!1:o})]})});lZ.displayName=TP;var cZ="CheckboxIndicator",fZ=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...i}=e,o=$Ge(cZ,n);return I.jsx(Gr,{present:r||Sl(o.state)||o.state===!0,children:I.jsx(pt.span,{"data-state":dZ(o.state),"data-disabled":o.disabled?"":void 0,...i,ref:t,style:{pointerEvents:"none",...e.style}})})});fZ.displayName=cZ;var IGe=e=>{const{control:t,checked:n,bubbles:r=!0,defaultChecked:i,...o}=e,a=y.useRef(null),s=jA(n),u=aO(t);y.useEffect(()=>{const c=a.current,f=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(f,"checked").set;if(s!==n&&p){const m=new Event("click",{bubbles:r});c.indeterminate=Sl(n),p.call(c,Sl(n)?!1:n),c.dispatchEvent(m)}},[s,n,r]);const l=y.useRef(Sl(n)?!1:n);return I.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:i??l.current,...o,tabIndex:-1,ref:a,style:{...e.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Sl(e){return e==="indeterminate"}function dZ(e){return Sl(e)?"indeterminate":e?"checked":"unchecked"}var UQe=lZ,VQe=fZ;export{wZe as $,BYe as A,ehe as B,FYe as C,jYe as D,zYe as E,LYe as F,J0e as G,nge as H,uYe as I,rge as J,mz as K,XYe as L,oge as M,ege as N,LGe as O,UGe as P,kYe as Q,F as R,Al as S,ige as T,tge as U,EZe as V,GYe as W,OZe as X,mZe as Y,vZe as Z,xZe as _,HGe as a,QXe as a$,SZe as a0,WYe as a1,_Ze as a2,JYe as a3,bZe as a4,CZe as a5,pZe as a6,gZe as a7,yZe as a8,cZe as a9,iYe as aA,_Ye as aB,wYe as aC,bYe as aD,SYe as aE,fYe as aF,JGe as aG,OXe as aH,rZe as aI,gXe as aJ,dYe as aK,yYe as aL,PXe as aM,kXe as aN,TXe as aO,WGe as aP,$Xe as aQ,IXe as aR,NXe as aS,LXe as aT,jXe as aU,zXe as aV,BXe as aW,UXe as aX,KYe as aY,XXe as aZ,YYe as a_,lZe as aa,fZe as ab,eYe as ac,PZe as ad,Wve as ae,Hve as af,TZe as ag,$Ze as ah,MZe as ai,RZe as aj,BGe as ak,QGe as al,nYe as am,vYe as an,qGe as ao,lXe as ap,rYe as aq,hYe as ar,tYe as as,sYe as at,mYe as au,gYe as av,lYe as aw,pYe as ax,XGe as ay,YGe as az,mm as b,DYe as b$,VXe as b0,WXe as b1,HXe as b2,qXe as b3,GXe as b4,ZXe as b5,YXe as b6,JXe as b7,KXe as b8,nQe as b9,cQe as bA,fQe as bB,dQe as bC,VUe as bD,YUe as bE,uQe as bF,uXe as bG,IZe as bH,jZe as bI,LZe as bJ,eQe as bK,Ui as bL,pQe as bM,gQe as bN,aXe as bO,bXe as bP,pXe as bQ,JZe as bR,GZe as bS,qZe as bT,mQe as bU,ZGe as bV,xYe as bW,cYe as bX,GGe as bY,yQe as bZ,bQe as b_,qYe as ba,aQe as bb,sQe as bc,iQe as bd,oQe as be,c3 as bf,RYe as bg,_f as bh,UZe as bi,MXe as bj,RXe as bk,IA as bl,NA as bm,QNe as bn,Js as bo,xf as bp,tp as bq,tQe as br,NZe as bs,BZe as bt,sXe as bu,zZe as bv,SXe as bw,_Xe as bx,eXe as by,wXe as bz,dn as c,ZZe as c$,hXe as c0,eZe as c1,tZe as c2,OQe as c3,PQe as c4,YZe as c5,FZe as c6,DQe as c7,$Qe as c8,LQe as c9,iXe as cA,wQe as cB,_Qe as cC,aZe as cD,Jc as cE,DZe as cF,jQe as cG,BQe as cH,mXe as cI,XZe as cJ,tXe as cK,cXe as cL,QZe as cM,yXe as cN,rXe as cO,UQe as cP,VQe as cQ,ZYe as cR,uZe as cS,HYe as cT,QYe as cU,sZe as cV,nXe as cW,zGe as cX,WZe as cY,FUe as cZ,iZe as c_,FQe as ca,IQe as cb,NQe as cc,TQe as cd,MQe as ce,RQe as cf,nZe as cg,oZe as ch,xXe as ci,AQe as cj,xQe as ck,SQe as cl,CQe as cm,EQe as cn,tpe as co,spe as cp,Zhe as cq,fXe as cr,vXe as cs,dXe as ct,oXe as cu,HZe as cv,KZe as cw,CXe as cx,es as cy,yr as cz,FGe as d,VZe as d0,qr as e,AYe as f,EYe as g,OYe as h,CYe as i,I as j,Yi as k,IYe as l,Vk as m,MYe as n,jGe as o,PYe as p,UYe as q,y as r,z5 as s,KGe as t,UF as u,aYe as v,oYe as w,VYe as x,VGe as y,NYe as z}; diff --git a/public/assets/admin/components.async.js b/public/assets/admin/components.async.js deleted file mode 100644 index 0c53b44..0000000 --- a/public/assets/admin/components.async.js +++ /dev/null @@ -1 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[0],{"+BJd":function(e,t,c){"use strict";c("cIOH"),c("6MrE")},"+Gva":function(e,t,c){"use strict";var n=c("N2Kk"),r=c("L9pr"),o={placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4"},a=o;function l(){return l=Object.assign||function(e){for(var t=1;t0?c:null}}]),n}(o["Component"]);return t.defaultProps={allowClear:!0,showToday:!0},Object(l["polyfill"])(t),t}var P=c("wgp+"),T=c("61s2"),j=c("YMnH"),N=c("5lmr"),R=c("RlXo");function _(e){"@babel/helpers - typeof";return _="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_(e)}function A(e,t,c){return t in e?Object.defineProperty(e,t,{value:c,enumerable:!0,configurable:!0,writable:!0}):e[t]=c,e}function F(){return F=Object.assign||function(e){for(var t=1;t-1||e.indexOf("h")>-1||e.indexOf("k")>-1,showMinute:e.indexOf("m")>-1,showSecond:e.indexOf("s")>-1}}var J=function(e){U(c,e);var t=q(c);function c(e){var n;I(this,c),n=t.call(this,e),n.getDefaultLocale=function(){var e=F(F({},R["a"]),n.props.locale);return e},n.handleOpenClose=function(e){var t=e.open,c=n.props.onOpenChange;c&&c(t)},n.saveTimePicker=function(e){n.timePickerRef=e},n.handleChange=function(e){"value"in n.props||n.setState({value:e});var t=n.props,c=t.onChange,r=t.format,o=void 0===r?"HH:mm:ss":r;c&&c(e,e&&e.format(o)||"")},n.renderTimePicker=function(e){return o["createElement"](p["a"],null,function(t){var c=t.getPopupContainer,r=t.getPrefixCls,a=n.props,l=a.getPopupContainer,i=a.prefixCls,u=a.className,f=a.addon,p=a.placeholder,v=X(a,["getPopupContainer","prefixCls","className","addon","placeholder"]),m=v.size,d=Object(h["a"])(v,["defaultValue","suffixIcon","allowEmpty","allowClear"]),y=n.getDefaultFormat(),b=r("time-picker",i),z=s()(u,A({},"".concat(b,"-").concat(m),!!m)),g=function(e){return f?o["createElement"]("div",{className:"".concat(b,"-panel-addon")},f(e)):null};return o["createElement"](N["a"],F({},Z(y),d,{allowEmpty:n.getAllowClear(),prefixCls:b,getPopupContainer:l||c,ref:n.saveTimePicker,format:y,className:z,value:n.state.value,placeholder:void 0===p?e.placeholder:p,onChange:n.handleChange,onOpen:n.handleOpenClose,onClose:n.handleOpenClose,addon:g,inputIcon:n.renderInputIcon(b),clearIcon:n.renderClearIcon(b)}))})};var r=e.value||e.defaultValue;if(r&&!Object(m["a"])(a).isMoment(r))throw new Error("The value/defaultValue of TimePicker must be a moment object after `antd@2.0`, see: https://u.ant.design/time-picker-value");return n.state={value:r},Object(v["a"])(!("allowEmpty"in e),"TimePicker","`allowEmpty` is deprecated. Please use `allowClear` instead."),n}return K(c,[{key:"getDefaultFormat",value:function(){var e=this.props,t=e.format,c=e.use12Hours;return t||(c?"h:mm:ss a":"HH:mm:ss")}},{key:"getAllowClear",value:function(){var e=this.props,t=e.allowClear,c=e.allowEmpty;return"allowClear"in this.props?t:c}},{key:"focus",value:function(){this.timePickerRef.focus()}},{key:"blur",value:function(){this.timePickerRef.blur()}},{key:"renderInputIcon",value:function(e){var t=this.props.suffixIcon,c=t&&o["isValidElement"](t)&&o["cloneElement"](t,{className:s()(t.props.className,"".concat(e,"-clock-icon"))})||o["createElement"](f["a"],{type:"clock-circle",className:"".concat(e,"-clock-icon")});return o["createElement"]("span",{className:"".concat(e,"-icon")},c)}},{key:"renderClearIcon",value:function(e){var t=this.props.clearIcon,c="".concat(e,"-clear");return t&&o["isValidElement"](t)?o["cloneElement"](t,{className:s()(t.props.className,c)}):o["createElement"](f["a"],{type:"close-circle",className:c,theme:"filled"})}},{key:"render",value:function(){return o["createElement"](j["a"],{componentName:"TimePicker",defaultLocale:this.getDefaultLocale()},this.renderTimePicker)}}],[{key:"getDerivedStateFromProps",value:function(e){return"value"in e?{value:e.value}:null}}]),c}(o["Component"]);J.defaultProps={align:{offset:[0,-2]},disabledHours:void 0,disabledMinutes:void 0,disabledSeconds:void 0,hideDisabledOptions:!1,placement:"bottomLeft",transitionName:"slide-up",focusOnOpen:!0},Object(l["polyfill"])(J);function $(e){"@babel/helpers - typeof";return $="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$(e)}function ee(e,t,c){return t in e?Object.defineProperty(e,t,{value:c,enumerable:!0,configurable:!0,writable:!0}):e[t]=c,e}function te(){return te=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var c=0,n=new Array(t);c0&&(e[1]=void 0);var r=Re(e,2),o=r[0],a=r[1];"function"===typeof c.onChange&&c.onChange(e,[y(o,c.format),y(a,c.format)])},n.handleOpenChange=function(e){"open"in n.props||n.setState({open:e}),!1===e&&n.clearHoverValue();var t=n.props.onOpenChange;t&&t(e)},n.handleShowDateChange=function(e){return n.setState({showDate:e})},n.handleHoverChange=function(e){return n.setState({hoverValue:e})},n.handleRangeMouseLeave=function(){n.state.open&&n.clearHoverValue()},n.handleCalendarInputSelect=function(e){var t=Re(e,1),c=t[0];c&&n.setState(function(t){var c=t.showDate;return{value:e,showDate:Ke(e)||c}})},n.handleRangeClick=function(e){"function"===typeof e&&(e=e()),n.setValue(e,!0);var t=n.props,c=t.onOk,r=t.onOpenChange;c&&c(e),r&&r(!1)},n.renderFooter=function(){var e=n.props,t=e.ranges,c=e.renderExtraFooter,r=Te(n),a=r.prefixCls,l=r.tagPrefixCls;if(!t&&!c)return null;var i=c?o["createElement"]("div",{className:"".concat(a,"-footer-extra"),key:"extra"},c()):null,u=t&&Object.keys(t).map(function(e){var c=t[e],r="function"===typeof c?c.call(Te(n)):c;return o["createElement"](ge["a"],{key:e,prefixCls:l,color:"blue",onClick:function(){return n.handleRangeClick(c)},onMouseEnter:function(){return n.setState({hoverValue:r})},onMouseLeave:n.handleRangeMouseLeave},e)}),s=u&&u.length>0?o["createElement"]("div",{className:"".concat(a,"-footer-extra ").concat(a,"-range-quick-selector"),key:"range"},u):null;return[s,i]},n.renderRangePicker=function(e){var t,c=e.getPrefixCls,r=Te(n),a=r.state,l=r.props,u=a.value,h=a.showDate,p=a.hoverValue,m=a.open,d=l.prefixCls,b=l.tagPrefixCls,z=l.popupStyle,g=l.style,M=l.disabledDate,C=l.disabledTime,H=l.showTime,O=l.showToday,V=l.ranges,w=l.onOk,S=l.locale,L=l.localeCode,k=l.format,x=l.dateRender,E=l.onCalendarChange,P=l.suffixIcon,T=l.separator,j=c("calendar",d),N=c("tag",b);n.prefixCls=j,n.tagPrefixCls=N,qe(u,L),qe(h,L),Object(v["a"])(!("onOK"in l),"RangePicker","It should be `RangePicker[onOk]`, instead of `onOK`!");var R=s()((t={},Ve(t,"".concat(j,"-time"),H),Ve(t,"".concat(j,"-range-with-ranges"),V),t)),_={onChange:n.handleChange},A={onOk:n.handleChange};l.timePicker?_.onChange=function(e){return n.handleChange(e)}:A={},"mode"in l&&(A.mode=l.mode);var F=Array.isArray(l.placeholder)?l.placeholder[0]:S.lang.rangePlaceholder[0],I=Array.isArray(l.placeholder)?l.placeholder[1]:S.lang.rangePlaceholder[1],D=o["createElement"](ye["a"],Oe({},A,{seperator:T,onChange:E,format:k,prefixCls:j,className:R,renderFooter:n.renderFooter,timePicker:l.timePicker,disabledDate:M,disabledTime:C,dateInputPlaceholder:[F,I],locale:S.lang,onOk:w,dateRender:x,value:h,onValueChange:n.handleShowDateChange,hoverValue:p,onHoverChange:n.handleHoverChange,onPanelChange:l.onPanelChange,showToday:O,onInputSelect:n.handleCalendarInputSelect})),K={};l.showTime&&(K.width=g&&g.width||350);var U=Re(u,2),B=U[0],q=U[1],W=!l.disabled&&l.allowClear&&u&&(B||q)?o["createElement"](f["a"],{type:"close-circle",className:"".concat(j,"-picker-clear"),onClick:n.clearSelection,theme:"filled"}):null,G=o["createElement"](Ce,{suffixIcon:P,prefixCls:j}),Y=function(e){var t=e.value,c=Re(t,2),n=c[0],r=c[1];return o["createElement"]("span",{className:l.pickerInputClass},o["createElement"]("input",{disabled:l.disabled,readOnly:!0,value:y(n,l.format),placeholder:F,className:"".concat(j,"-range-picker-input"),tabIndex:-1}),o["createElement"]("span",{className:"".concat(j,"-range-picker-separator")}," ",T," "),o["createElement"]("input",{disabled:l.disabled,readOnly:!0,value:y(r,l.format),placeholder:I,className:"".concat(j,"-range-picker-input"),tabIndex:-1}),W,G)};return o["createElement"]("span",{ref:n.savePicker,id:"number"===typeof l.id?l.id.toString():l.id,className:s()(l.className,l.pickerClass),style:Oe(Oe({},g),K),tabIndex:l.disabled?-1:0,onFocus:l.onFocus,onBlur:l.onBlur,onMouseEnter:l.onMouseEnter,onMouseLeave:l.onMouseLeave},o["createElement"](i["a"],Oe({},l,_,{calendar:D,value:u,open:m,onOpenChange:n.handleOpenChange,prefixCls:"".concat(j,"-picker-container"),style:z}),Y))};var r=e.value||e.defaultValue||[],l=Re(r,2),u=l[0],h=l[1];if(u&&!Object(m["a"])(a).isMoment(u)||h&&!Object(m["a"])(a).isMoment(h))throw new Error("The value/defaultValue of RangePicker must be a moment object array after `antd@2.0`, see: https://u.ant.design/date-picker-value");var p=!r||Be(r)?e.defaultPickerValue:r;return n.state={value:r,showDate:Ue(p||Object(m["a"])(a)()),open:e.open,hoverValue:[]},n}return Le(c,[{key:"componentDidUpdate",value:function(e,t){"open"in this.props||!t.open||this.state.open||this.focus()}},{key:"setValue",value:function(e,t){this.handleChange(e),!t&&this.props.showTime||"open"in this.props||this.setState({open:!1})}},{key:"focus",value:function(){this.picker.focus()}},{key:"blur",value:function(){this.picker.blur()}},{key:"render",value:function(){return o["createElement"](p["a"],null,this.renderRangePicker)}}],[{key:"getDerivedStateFromProps",value:function(e,t){var c=null;if("value"in e){var n=e.value||[];c={value:n},ze()(e.value,t.value)||(c=Oe(Oe({},c),{showDate:Ke(n,e.mode)||t.showDate}))}return"open"in e&&t.open!==e.open&&(c=Oe(Oe({},c),{open:e.open})),c}}]),c}(o["Component"]);We.defaultProps={allowClear:!0,showToday:!1,separator:"~"},Object(l["polyfill"])(We);var Ge=We;function Ye(e){"@babel/helpers - typeof";return Ye="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ye(e)}function Qe(){return Qe=Object.assign||function(e){for(var t=1;t0?{paddingLeft:t[0]/2,paddingRight:t[0]/2}:{}),t[1]>0?{paddingTop:t[1]/2,paddingBottom:t[1]/2}:{}),c)),n["createElement"]("div",s({},M,{style:c,className:V}),g)})},e}return v(c,[{key:"render",value:function(){return n["createElement"](i["a"],null,this.renderCol)}}]),c}(n["Component"]);O.propTypes={span:r["number"],order:r["number"],offset:r["number"],push:r["number"],pull:r["number"],className:r["string"],children:r["node"],xs:H,sm:H,md:H,lg:H,xl:H,xxl:H}},"/wGt":function(e,t,c){"use strict";var n=c("q1tI"),r=c("fcSX"),o=c("foW8"),a=c.n(o),l=c("TSYQ"),i=c.n(l),u=c("BGR+"),s=c("6CfX"),h=c("CtXQ"),f=c("H84U"),p=c("CWQg");function v(e){"@babel/helpers - typeof";return v="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v(e)}function m(){return m=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.arrowWidth,c=void 0===t?5:t,n=e.horizontalArrowShift,r=void 0===n?16:n,o=e.verticalArrowShift,a=void 0===o?12:o,l=e.autoAdjustOverflow,s=void 0===l||l,h={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(r+c),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(a+c)]},topRight:{points:["br","tc"],offset:[r+c,-4]},rightTop:{points:["tl","cr"],offset:[4,-(a+c)]},bottomRight:{points:["tr","bc"],offset:[r+c,4]},rightBottom:{points:["bl","cr"],offset:[4,a+c]},bottomLeft:{points:["tl","bc"],offset:[-(r+c),4]},leftBottom:{points:["br","cl"],offset:[-4,a+c]}};return Object.keys(h).forEach(function(t){h[t]=e.arrowPointAtCenter?u(u({},h[t]),{overflow:p(s),targetOffset:f}):u(u({},i["a"][t]),{overflow:p(s)}),h[t].ignoreShake=!0}),h}var m=c("H84U");function d(e){"@babel/helpers - typeof";return d="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}function y(e,t,c){return t in e?Object.defineProperty(e,t,{value:c,enumerable:!0,configurable:!0,writable:!0}):e[t]=c,e}function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function z(e,t){for(var c=0;c=0||n.indexOf("Bottom")>=0?a.top="".concat(o.height-t.offset[1],"px"):(n.indexOf("Top")>=0||n.indexOf("bottom")>=0)&&(a.top="".concat(-t.offset[1],"px")),n.indexOf("left")>=0||n.indexOf("Right")>=0?a.left="".concat(o.width-t.offset[0],"px"):(n.indexOf("right")>=0||n.indexOf("Left")>=0)&&(a.left="".concat(-t.offset[0],"px")),e.style.transformOrigin="".concat(a.left," ").concat(a.top)}},r.renderTooltip=function(e){var t=e.getPopupContainer,c=e.getPrefixCls,a=V(r),i=a.props,u=a.state,s=i.prefixCls,h=i.openClassName,f=i.getPopupContainer,p=i.getTooltipContainer,v=i.children,m=c("tooltip",s),d=u.visible;"visible"in i||!r.isNoTitle()||(d=!1);var b=x(n["isValidElement"](v)?v:n["createElement"]("span",null,v)),z=b.props,g=l()(z.className,y({},h||"".concat(m,"-open"),!0));return n["createElement"](o["a"],L({},r.props,{prefixCls:m,getTooltipContainer:f||p||t,ref:r.saveTooltip,builtinPlacements:r.getPlacements(),overlay:r.getOverlay(),visible:d,onVisibleChange:r.onVisibleChange,onPopupAlign:r.onPopupAlign}),d?n["cloneElement"](b,{className:g}):b)},r.state={visible:!!e.visible||!!e.defaultVisible},r}return g(c,[{key:"getPopupDomNode",value:function(){return this.tooltip.getPopupDomNode()}},{key:"getPlacements",value:function(){var e=this.props,t=e.builtinPlacements,c=e.arrowPointAtCenter,n=e.autoAdjustOverflow;return t||v({arrowPointAtCenter:c,verticalArrowShift:8,autoAdjustOverflow:n})}},{key:"isNoTitle",value:function(){var e=this.props,t=e.title,c=e.overlay;return!t&&!c&&0!==t}},{key:"getOverlay",value:function(){var e=this.props,t=e.title,c=e.overlay;return 0===t?t:c||t||""}},{key:"render",value:function(){return n["createElement"](m["a"],null,this.renderTooltip)}}],[{key:"getDerivedStateFromProps",value:function(e){return"visible"in e?{visible:e.visible}:null}}]),c}(n["Component"]);E.defaultProps={placement:"top",transitionName:"zoom-big-fast",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0},Object(r["polyfill"])(E);t["a"]=E},"3wW7":function(e,t,c){},"5Dmo":function(e,t,c){"use strict";c("cIOH"),c("5YgA")},"5NDa":function(e,t,c){"use strict";c("cIOH"),c("OnYD"),c("+L6B")},"5YgA":function(e,t,c){},"5rEg":function(e,t,c){"use strict";var n=c("q1tI"),r=c("17x9"),o=c("VCL8"),a=c("TSYQ"),l=c.n(a),i=c("BGR+"),u=c("CWQg"),s=c("CtXQ");function h(e){"@babel/helpers - typeof";return h="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function f(e,t,c){return t in e?Object.defineProperty(e,t,{value:c,enumerable:!0,configurable:!0,writable:!0}):e[t]=c,e}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var c=0;c1&&void 0!==arguments[1]&&arguments[1],c=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(t&&ze[c])return ze[c];var n=window.getComputedStyle(e),r=n.getPropertyValue("box-sizing")||n.getPropertyValue("-moz-box-sizing")||n.getPropertyValue("-webkit-box-sizing"),o=parseFloat(n.getPropertyValue("padding-bottom"))+parseFloat(n.getPropertyValue("padding-top")),a=parseFloat(n.getPropertyValue("border-bottom-width"))+parseFloat(n.getPropertyValue("border-top-width")),l=be.map(function(e){return"".concat(e,":").concat(n.getPropertyValue(e))}).join(";"),i={sizingStyle:l,paddingSize:o,borderSize:a,boxSizing:r};return t&&c&&(ze[c]=i),i}function Me(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;ve||(ve=document.createElement("textarea"),document.body.appendChild(ve)),e.getAttribute("wrap")?ve.setAttribute("wrap",e.getAttribute("wrap")):ve.removeAttribute("wrap");var r=ge(e,t),o=r.paddingSize,a=r.borderSize,l=r.boxSizing,i=r.sizingStyle;ve.setAttribute("style","".concat(i,";").concat(ye)),ve.value=e.value||e.placeholder||"";var u,s=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,f=ve.scrollHeight;if("border-box"===l?f+=a:"content-box"===l&&(f-=o),null!==c||null!==n){ve.value=" ";var p=ve.scrollHeight-o;null!==c&&(s=p*c,"border-box"===l&&(s=s+o+a),f=Math.max(s,f)),null!==n&&(h=p*n,"border-box"===l&&(h=h+o+a),u=f>h?"":"hidden",f=Math.min(h,f))}return{height:f,minHeight:s,maxHeight:h,overflowY:u}}var Ce=c("oHiP");function He(e){"@babel/helpers - typeof";return He="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(e)}function Oe(){return Oe=Object.assign||function(e){for(var t=1;t0&&(m=s.map(function(e){return"string"===typeof e?n["createElement"](V,{key:e,prefixCls:f,disabled:r.props.disabled,value:e,checked:r.state.value===e},e):n["createElement"](V,{key:"radio-group-value-options-".concat(e.value),prefixCls:f,disabled:e.disabled||r.props.disabled,value:e.value,checked:r.state.value===e.value},e.label)})),n["createElement"]("div",{className:v,style:o.style,onMouseEnter:o.onMouseEnter,onMouseLeave:o.onMouseLeave,id:o.id},m)},"value"in e)o=e.value;else if("defaultValue"in e)o=e.defaultValue;else{var a=F(e.children);o=a&&a.value}return r.state={value:o},r}return E(c,[{key:"getChildContext",value:function(){return{radioGroup:{onChange:this.onRadioChange,value:this.state.value,disabled:this.props.disabled,name:this.props.name}}}},{key:"shouldComponentUpdate",value:function(e,t){return!u()(this.props,e)||!u()(this.state,t)}},{key:"render",value:function(){return n["createElement"](s["a"],null,this.renderGroup)}}],[{key:"getDerivedStateFromProps",value:function(e){if("value"in e)return{value:e.value};var t=F(e.children);return t?{value:t.value}:null}}]),c}(n["Component"]);I.defaultProps={buttonStyle:"outline"},I.childContextTypes={radioGroup:r["any"]},Object(w["polyfill"])(I);var D=I;function K(e){"@babel/helpers - typeof";return K="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},K(e)}function U(){return U=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var c=0,n=new Array(t);c0));return n["createElement"](X.Provider,{value:{siderHook:this.getSiderHook()}},n["createElement"](l,A({className:u},i),r))}}]),c}(n["Component"]),ee=Z({suffixCls:"layout",tagName:"section",displayName:"Layout"})($),te=Z({suffixCls:"layout-header",tagName:"header",displayName:"Header"})(J),ce=Z({suffixCls:"layout-footer",tagName:"footer",displayName:"Footer"})(J),ne=Z({suffixCls:"layout-content",tagName:"main",displayName:"Content"})(J);ee.Header=te,ee.Footer=ce,ee.Content=ne;var re=c("CtXQ"),oe=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},ae=oe;function le(e){"@babel/helpers - typeof";return le="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},le(e)}function ie(e,t,c){return t in e?Object.defineProperty(e,t,{value:c,enumerable:!0,configurable:!0,writable:!0}):e[t]=c,e}function ue(){return ue=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"";return e+=1,"".concat(t).concat(e)}}(),Ve=function(e){pe(c,e);var t=me(c);function c(e){var r,o,i;return se(this,c),r=t.call(this,e),r.responsiveHandler=function(e){r.setState({below:e.matches});var t=r.props.onBreakpoint;t&&t(e.matches),r.state.collapsed!==e.matches&&r.setCollapsed(e.matches,"responsive")},r.setCollapsed=function(e,t){"collapsed"in r.props||r.setState({collapsed:e});var c=r.props.onCollapse;c&&c(e,t)},r.toggle=function(){var e=!r.state.collapsed;r.setCollapsed(e,"clickTrigger")},r.belowShowChange=function(){r.setState(function(e){var t=e.belowShow;return{belowShow:!t}})},r.renderSider=function(e){var t,c=e.getPrefixCls,o=r.props,i=o.prefixCls,u=o.className,s=o.theme,h=o.collapsible,f=o.reverseArrow,p=o.trigger,v=o.style,m=o.width,d=o.collapsedWidth,y=o.zeroWidthTriggerStyle,b=ge(o,["prefixCls","className","theme","collapsible","reverseArrow","trigger","style","width","collapsedWidth","zeroWidthTriggerStyle"]),z=c("layout-sider",i),g=Object(l["a"])(b,["collapsed","defaultCollapsed","onCollapse","breakpoint","onBreakpoint","siderHook","zeroWidthTriggerStyle"]),M=r.state.collapsed?d:m,C=ae(M)?"".concat(M,"px"):String(M),H=0===parseFloat(String(d||0))?n["createElement"]("span",{onClick:r.toggle,className:"".concat(z,"-zero-width-trigger ").concat(z,"-zero-width-trigger-").concat(f?"right":"left"),style:y},n["createElement"](re["a"],{type:"bars"})):null,O={expanded:f?n["createElement"](re["a"],{type:"right"}):n["createElement"](re["a"],{type:"left"}),collapsed:f?n["createElement"](re["a"],{type:"left"}):n["createElement"](re["a"],{type:"right"})},V=r.state.collapsed?"collapsed":"expanded",w=O[V],S=null!==p?H||n["createElement"]("div",{className:"".concat(z,"-trigger"),onClick:r.toggle,style:{width:C}},p||w):null,L=ue(ue({},v),{flex:"0 0 ".concat(C),maxWidth:C,minWidth:C,width:C}),k=a()(u,z,"".concat(z,"-").concat(s),(t={},ie(t,"".concat(z,"-collapsed"),!!r.state.collapsed),ie(t,"".concat(z,"-has-trigger"),h&&null!==p&&!H),ie(t,"".concat(z,"-below"),!!r.state.below),ie(t,"".concat(z,"-zero-width"),0===parseFloat(C)),t));return n["createElement"]("aside",ue({className:k},g,{style:L}),n["createElement"]("div",{className:"".concat(z,"-children")},r.props.children),h||r.state.below&&H?S:null)},r.uniqueId=Oe("ant-sider-"),"undefined"!==typeof window&&(o=window.matchMedia),o&&e.breakpoint&&e.breakpoint in Ce&&(r.mql=o("(max-width: ".concat(Ce[e.breakpoint],")"))),i="collapsed"in e?e.collapsed:e.defaultCollapsed,r.state={collapsed:i,below:!1},r}return fe(c,[{key:"componentDidMount",value:function(){this.mql&&(this.mql.addListener(this.responsiveHandler),this.responsiveHandler(this.mql)),this.props.siderHook&&this.props.siderHook.addSider(this.uniqueId)}},{key:"componentWillUnmount",value:function(){this.mql&&this.mql.removeListener(this.responsiveHandler),this.props.siderHook&&this.props.siderHook.removeSider(this.uniqueId)}},{key:"render",value:function(){var e=this.state.collapsed,t=this.props.collapsedWidth;return n["createElement"](He.Provider,{value:{siderCollapsed:e,collapsedWidth:t}},n["createElement"](k["a"],null,this.renderSider))}}],[{key:"getDerivedStateFromProps",value:function(e){return"collapsed"in e?{collapsed:e.collapsed}:null}}]),c}(n["Component"]);Ve.defaultProps={collapsible:!1,defaultCollapsed:!1,reverseArrow:!1,width:200,collapsedWidth:80,style:{},theme:"dark"},Object(i["polyfill"])(Ve);n["Component"];function we(e){"@babel/helpers - typeof";return we="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},we(e)}function Se(){return Se=Object.assign||function(e){for(var t=1;t=0;(t||r)&&o.restoreModeVerticalFromInline()},o.handleClick=function(e){o.handleOpenChange([]);var t=o.props.onClick;t&&t(e)},o.handleOpenChange=function(e){o.setOpenKeys(e);var t=o.props.onOpenChange;t&&t(e)},o.renderMenu=function(e){var t=e.getPopupContainer,c=e.getPrefixCls,i=o.props,u=i.prefixCls,s=i.className,h=i.theme,f=i.collapsedWidth,p=Object(l["a"])(o.props,["collapsedWidth","siderCollapsed"]),v=o.getRealMenuMode(),m=o.getOpenMotionProps(v),d=c("menu",u),y=a()(s,"".concat(d,"-").concat(h),Qe({},"".concat(d,"-inline-collapsed"),o.getInlineCollapsed())),b=Ye({openKeys:o.state.openKeys,onOpenChange:o.handleOpenChange,className:y,mode:v},m);"inline"!==v&&(b.onClick=o.handleClick);var z=o.getInlineCollapsed()&&(0===f||"0"===f||"0px"===f);return z&&(b.openKeys=[]),n["createElement"](r["e"],Ye({getPopupContainer:t},p,b,{prefixCls:d,onTransitionEnd:o.handleTransitionEnd,onMouseEnter:o.handleMouseEnter}))},Object(Ie["a"])(!("onOpen"in e||"onClose"in e),"Menu","`onOpen` and `onClose` are removed, please use `onOpenChange` instead, see: https://u.ant.design/menu-on-open-change."),Object(Ie["a"])(!("inlineCollapsed"in e&&"inline"!==e.mode),"Menu","`inlineCollapsed` should only be used when `mode` is inline."),Object(Ie["a"])(!(void 0!==e.siderCollapsed&&"inlineCollapsed"in e),"Menu","`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead."),"openKeys"in e?i=e.openKeys:"defaultOpenKeys"in e&&(i=e.defaultOpenKeys),o.state={openKeys:i||[],switchingModeFromInline:!1,inlineOpenKeys:[],prevProps:e},o}return Je(c,[{key:"componentWillUnmount",value:function(){De["a"].cancel(this.mountRafId)}},{key:"setOpenKeys",value:function(e){"openKeys"in this.props||this.setState({openKeys:e})}},{key:"getRealMenuMode",value:function(){var e=this.getInlineCollapsed();if(this.state.switchingModeFromInline&&e)return"inline";var t=this.props.mode;return e?"vertical":t}},{key:"getInlineCollapsed",value:function(){var e=this.props.inlineCollapsed;return void 0!==this.props.siderCollapsed?this.props.siderCollapsed:e}},{key:"getOpenMotionProps",value:function(e){var t=this.props,c=t.openTransitionName,n=t.openAnimation,r=t.motion;return r?{motion:r}:n?(Object(Ie["a"])("string"===typeof n,"Menu","`openAnimation` do not support object. Please use `motion` instead."),{openAnimation:n}):c?{openTransitionName:c}:"horizontal"===e?{motion:{motionName:"slide-up"}}:"inline"===e?{motion:We}:{motion:{motionName:this.state.switchingModeFromInline?"":"zoom-big"}}}},{key:"restoreModeVerticalFromInline",value:function(){var e=this.state.switchingModeFromInline;e&&this.setState({switchingModeFromInline:!1})}},{key:"render",value:function(){return n["createElement"](p.Provider,{value:{inlineCollapsed:this.getInlineCollapsed()||!1,antdMenuTheme:this.props.theme}},n["createElement"](k["a"],null,this.renderMenu))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var c=t.prevProps,n={prevProps:e};return"inline"===c.mode&&"inline"!==e.mode&&(n.switchingModeFromInline=!0),"openKeys"in e?n.openKeys=e.openKeys:((e.inlineCollapsed&&!c.inlineCollapsed||e.siderCollapsed&&!c.siderCollapsed)&&(n.switchingModeFromInline=!0,n.inlineOpenKeys=t.openKeys,n.openKeys=[]),(!e.inlineCollapsed&&c.inlineCollapsed||!e.siderCollapsed&&c.siderCollapsed)&&(n.openKeys=t.inlineOpenKeys,n.inlineOpenKeys=[])),n}}]),c}(n["Component"]);at.defaultProps={className:"",theme:"light",focusable:!1},Object(i["polyfill"])(at);var lt=function(e){$e(c,e);var t=tt(c);function c(){return Xe(this,c),t.apply(this,arguments)}return Je(c,[{key:"render",value:function(){var e=this;return n["createElement"](He.Consumer,null,function(t){return n["createElement"](at,Ye({},e.props,t))})}}]),c}(n["Component"]);lt.Divider=r["a"],lt.Item=Fe,lt.SubMenu=S,lt.ItemGroup=r["c"]},"CWI+":function(e,t,c){},CWQg:function(e,t,c){"use strict";c.d(t,"a",function(){return n});var n=function(){for(var e=arguments.length,t=new Array(e),c=0;c1&&void 0!==arguments[1]?arguments[1]:C;if(e){var c=this.definitions.get(e);return c&&"function"===typeof c.icon&&(c=s()({},c,{icon:c.icon(t.primaryColor,t.secondaryColor)})),c}}},{key:"setTwoToneColors",value:function(e){var t=e.primaryColor,c=e.secondaryColor;C.primaryColor=t,C.secondaryColor=c||Object(M["c"])(t)}},{key:"getTwoToneColors",value:function(){return s()({},C)}}]),t}(n["Component"]);H.displayName="IconReact",H.definitions=new M["a"];var O=H;function V(){return V=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.scriptUrl,c=e.extraCommonProps,r=void 0===c?{}:c;if("undefined"!==typeof document&&"undefined"!==typeof window&&"function"===typeof document.createElement&&"string"===typeof t&&t.length&&!S.has(t)){var o=document.createElement("script");o.setAttribute("src",t),o.setAttribute("data-namespace",t),S.add(t),document.body.appendChild(o)}var a=function(e){var t=e.type,c=e.children,o=w(e,["type","children"]),a=null;return e.type&&(a=n["createElement"]("use",{xlinkHref:"#".concat(t)})),c&&(a=c),n["createElement"]($,V({},r,o),a)};return a.displayName="Iconfont",a}var k=c("6CfX"),x={width:"1em",height:"1em",fill:"currentColor","aria-hidden":!0,focusable:"false"},E=/-fill$/,P=/-o$/,T=/-twotone$/;function j(e){var t=null;return E.test(e)?t="filled":P.test(e)?t="outlined":T.test(e)&&(t="twoTone"),t}function N(e){return e.replace(E,"").replace(P,"").replace(T,"")}function R(e,t){var c=e;return"filled"===t?c+="-fill":"outlined"===t?c+="-o":"twoTone"===t?c+="-twotone":Object(k["a"])(!1,"Icon","This icon '".concat(e,"' has unknown theme '").concat(t,"'")),c}function _(e){var t=e;switch(e){case"cross":t="close";break;case"interation":t="interaction";break;case"canlendar":t="calendar";break;case"colum-height":t="column-height";break;default:}return Object(k["a"])(t===e,"Icon","Icon '".concat(e,"' was a typo and is now deprecated, please use '").concat(t,"' instead.")),t}var A=c("YMnH");function F(e){return O.setTwoToneColors({primaryColor:e})}function I(){var e=O.getTwoToneColors();return e.primaryColor}function D(){return D=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var c=0,n=new Array(t);cr?o>=a?10+e:20+e:o<=a?10+e:e}},{key:"renderCurrentNumber",value:function(e,t,c){if("number"===typeof t){var r=this.getPositionByNum(t,c),o=this.state.animateStarted||void 0===H(this.lastCount)[c];return n["createElement"]("span",{className:"".concat(e,"-only"),style:{transition:o?"none":void 0,msTransform:"translateY(".concat(100*-r,"%)"),WebkitTransform:"translateY(".concat(100*-r,"%)"),transform:"translateY(".concat(100*-r,"%)")},key:c},O(r,"".concat(e,"-only-unit")))}return n["createElement"]("span",{key:"symbol",className:"".concat(e,"-symbol")},t)}},{key:"renderNumberElement",value:function(e){var t=this,c=this.state.count;return c&&Number(c)%1===0?H(c).map(function(c,n){return t.renderCurrentNumber(e,c,n)}).reverse():c}},{key:"render",value:function(){return n["createElement"](s["a"],null,this.renderScrollNumber)}},{key:"clearTimeout",value:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(){this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)})}],[{key:"getDerivedStateFromProps",value:function(e,t){return"count"in e?t.count===e.count?null:{animateStarted:!0}:null}}]),c}(n["Component"]);V.defaultProps={count:null,onAnimated:function(){}},Object(u["polyfill"])(V);var w=V,S=c("09Wf");function L(e){"@babel/helpers - typeof";return L="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},L(e)}function k(){return k=Object.assign||function(e){for(var t=1;tc?"".concat(c,"+"):t;return n}},{key:"getDispayCount",value:function(){var e=this.isDot();return e?"":this.getNumberedDispayCount()}},{key:"getScrollNumberTitle",value:function(){var e=this.props,t=e.title,c=e.count;return t||("string"===typeof c||"number"===typeof c?c:void 0)}},{key:"getStyleWithOffset",value:function(){var e=this.props,t=e.offset,c=e.style;return t?k({right:-parseInt(t[0],10),marginTop:t[1]},c):c}},{key:"getBadgeClassName",value:function(e){var t,c=this.props,n=c.className,r=c.children;return i()(n,e,(t={},x(t,"".concat(e,"-status"),this.hasStatus()),x(t,"".concat(e,"-not-a-wrapper"),!r),t))}},{key:"hasStatus",value:function(){var e=this.props,t=e.status,c=e.color;return!!t||!!c}},{key:"isZero",value:function(){var e=this.getNumberedDispayCount();return"0"===e||0===e}},{key:"isDot",value:function(){var e=this.props.dot,t=this.isZero();return e&&!t||this.hasStatus()}},{key:"isHidden",value:function(){var e=this.props.showZero,t=this.getDispayCount(),c=this.isZero(),n=this.isDot(),r=null===t||void 0===t||""===t;return(r||c&&!e)&&!n}},{key:"renderStatusText",value:function(e){var t=this.props.text,c=this.isHidden();return c||!t?null:n["createElement"]("span",{className:"".concat(e,"-status-text")},t)}},{key:"renderDispayComponent",value:function(){var e=this.props.count,t=e;if(t&&"object"===L(t))return n["cloneElement"](t,{style:k(k({},this.getStyleWithOffset()),t.props&&t.props.style)})}},{key:"renderBadgeNumber",value:function(e,t){var c,r=this.props,o=r.status,a=r.count,l=r.color,u=this.getDispayCount(),s=this.isDot(),h=this.isHidden(),f=i()((c={},x(c,"".concat(e,"-dot"),s),x(c,"".concat(e,"-count"),!s),x(c,"".concat(e,"-multiple-words"),!s&&a&&a.toString&&a.toString().length>1),x(c,"".concat(e,"-status-").concat(o),!!o),x(c,"".concat(e,"-status-").concat(l),K(l)),c)),p=this.getStyleWithOffset();return l&&!K(l)&&(p=p||{},p.background=l),h?null:n["createElement"](w,{prefixCls:t,"data-show":!h,className:f,count:u,displayComponent:this.renderDispayComponent(),title:this.getScrollNumberTitle(),style:p,key:"scrollNumber"})}},{key:"render",value:function(){return n["createElement"](s["a"],null,this.renderBadge)}}]),c}(n["Component"]);U.defaultProps={count:null,showZero:!1,dot:!1,overflowCount:99},U.propTypes={count:r["node"],showZero:r["bool"],dot:r["bool"],overflowCount:r["number"]}},Mwp2:function(e,t,c){"use strict";c("cIOH"),c("3wW7"),c("R9oj"),c("T2oS"),c("DjyN"),c("1GLa")},NUBc:function(e,t,c){"use strict";var n=c("q1tI"),r=c("6+eU"),o=c("H4fg"),a=c("TSYQ"),l=c.n(a),i=c("2fM7");function u(e){"@babel/helpers - typeof";return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function s(){return s=Object.assign||function(e){for(var t=1;t0?"-".concat(p):p,g=o()(v,b,"".concat(b,"-").concat(h),(c={},i(c,"".concat(b,"-with-text").concat(z),m),i(c,"".concat(b,"-dashed"),!!d),c));return n["createElement"]("div",l({className:g},y,{role:"separator"}),m&&n["createElement"]("span",{className:"".concat(b,"-inner-text")},m))})};t["a"]=s},PQMj:function(e,t,c){},Pwec:function(e,t,c){"use strict";c("cIOH"),c("WtSK")},R9oj:function(e,t,c){"use strict";c("cIOH"),c("pwpV")},RlXo:function(e,t,c){"use strict";var n={placeholder:"Select time"};t["a"]=n},Sdc0:function(e,t,c){"use strict";c.d(t,"a",function(){return S});var n=c("q1tI"),r=c("17x9"),o=c("XIdC"),a=c.n(o),l=c("TSYQ"),i=c.n(l),u=c("BGR+"),s=c("g0mS"),h=c("CtXQ"),f=c("H84U"),p=c("6CfX");function v(e){"@babel/helpers - typeof";return v="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v(e)}function m(){return m=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:h,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f;switch(e){case"topLeft":t={left:0,top:c,bottom:"auto"};break;case"topRight":t={right:0,top:c,bottom:"auto"};break;case"bottomLeft":t={left:0,top:"auto",bottom:n};break;default:t={right:0,top:"auto",bottom:n};break}return t}function d(e,t){var c=e.prefixCls,a=e.placement,s=void 0===a?p:a,h=e.getContainer,f=void 0===h?l:h,v=e.top,d=e.bottom,y=e.closeIcon,b=void 0===y?i:y,z="".concat(c,"-").concat(s);if(u[z])t(u[z]);else{var g=n["createElement"]("span",{className:"".concat(c,"-close-x")},b||n["createElement"](o["a"],{className:"".concat(c,"-close-icon"),type:"close"}));r["a"].newInstance({prefixCls:c,className:"".concat(c,"-").concat(s),style:m(s,v,d),getContainer:f,closeIcon:g},function(e){u[z]=e,t(e)})}}var y={success:"check-circle-o",info:"info-circle-o",error:"close-circle-o",warning:"exclamation-circle-o"};function b(e){var t=e.prefixCls||"ant-notification",c="".concat(t,"-notice"),r=void 0===e.duration?s:e.duration,a=null;if(e.icon)a=n["createElement"]("span",{className:"".concat(c,"-icon")},e.icon);else if(e.type){var l=y[e.type];a=n["createElement"](o["a"],{className:"".concat(c,"-icon ").concat(c,"-icon-").concat(e.type),type:l})}var i=!e.description&&a?n["createElement"]("span",{className:"".concat(c,"-message-single-line-auto-margin")}):null,u=e.placement,h=e.top,f=e.bottom,p=e.getContainer,v=e.closeIcon;d({prefixCls:t,placement:u,top:h,bottom:f,getContainer:p,closeIcon:v},function(t){t.notice({content:n["createElement"]("div",{className:a?"".concat(c,"-with-icon"):""},a,n["createElement"]("div",{className:"".concat(c,"-message")},i,e.message),n["createElement"]("div",{className:"".concat(c,"-description")},e.description),e.btn?n["createElement"]("span",{className:"".concat(c,"-btn")},e.btn):null),duration:r,closable:!0,onClose:e.onClose,onClick:e.onClick,key:e.key,style:e.style||{},className:e.className})})}var z={open:b,close:function(e){Object.keys(u).forEach(function(t){return u[t].removeNotice(e)})},config:v,destroy:function(){Object.keys(u).forEach(function(e){u[e].destroy(),delete u[e]})}};["success","info","warning","error"].forEach(function(e){z[e]=function(t){return z.open(a(a({},t),{type:e}))}}),z.warn=z.warning,t["a"]=z},Urep:function(e,t,c){},VXEj:function(e,t,c){"use strict";var n=c("q1tI"),r=c("17x9"),o=c("TSYQ"),a=c.n(o),l=c("BGR+"),i=c("W9HT"),u=c("H84U"),s=c("NUBc"),h=c("qrJ5"),f=c("/kpp");function p(e){if(!n["isValidElement"](e))return e;for(var t=arguments.length,c=new Array(t>1?t-1:0),r=1;r0&&n["createElement"]("ul",{className:"".concat(b,"-item-action"),key:"actions"},h.map(function(e,t){return n["createElement"]("li",{key:"".concat(b,"-item-action-").concat(t)},e,t!==h.length-1&&n["createElement"]("em",{className:"".concat(b,"-item-action-split")}))})),g=o?"div":"li",M=n["createElement"](g,w({},y,{className:a()("".concat(b,"-item"),d,m({},"".concat(b,"-item-no-flex"),!e.isFlexMode()))}),"vertical"===l&&v?[n["createElement"]("div",{className:"".concat(b,"-item-main"),key:"content"},s,z),n["createElement"]("div",{className:"".concat(b,"-item-extra"),key:"extra"},v)]:[s,z,p(v,{key:"extra"})]);return o?n["createElement"](f["a"],{span:k(o,"column"),xs:k(o,"xs"),sm:k(o,"sm"),md:k(o,"md"),lg:k(o,"lg"),xl:k(o,"xl"),xxl:k(o,"xxl")},M):M},e}return b(c,[{key:"isItemContainsTextNodeAndNotSingular",value:function(){var e,t=this.props.children;return n["Children"].forEach(t,function(t){"string"===typeof t&&(e=!0)}),e&&n["Children"].count(t)>1}},{key:"isFlexMode",value:function(){var e=this.props.extra,t=this.context.itemLayout;return"vertical"===t?!!e:!this.isItemContainsTextNodeAndNotSingular()}},{key:"render",value:function(){return n["createElement"](u["a"],null,this.renderItem)}}]),c}(n["Component"]);function E(e){"@babel/helpers - typeof";return E="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function P(e){return R(e)||N(e)||j(e)||T()}function T(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function j(e,t){if(e){if("string"===typeof e)return _(e,t);var c=Object.prototype.toString.call(e).slice(8,-1);return"Object"===c&&e.constructor&&(c=e.constructor.name),"Map"===c||"Set"===c?Array.from(e):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_(e,t):void 0}}function N(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}function R(e){if(Array.isArray(e))return _(e)}function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var c=0,n=new Array(t);cI&&(_.current=I);var D,K=C?n["createElement"]("div",{className:"".concat(E,"-pagination")},n["createElement"](s["a"],A({},_,{onChange:r.onPaginationChange,onShowSizeChange:r.onPaginationShowSizeChange}))):null,U=P(V);if(C&&V.length>(_.current-1)*_.pageSize&&(U=P(V).splice((_.current-1)*_.pageSize,_.pageSize)),D=j&&n["createElement"]("div",{style:{minHeight:53}}),U.length>0){var B=U.map(function(e,t){return r.renderItem(e,t)}),q=[];n["Children"].forEach(B,function(e,t){q.push(n["cloneElement"](e,{key:r.keys[t]}))}),D=H?n["createElement"](h["a"],{gutter:H.gutter},q):n["createElement"]("ul",{className:"".concat(E,"-items")},q)}else z||j||(D=r.renderEmpty(E,o));var W=_.position||"bottom";return n["createElement"]("div",A({className:R},Object(l["a"])(x,["rowKey","renderItem","locale"])),("top"===W||"both"===W)&&K,S&&n["createElement"]("div",{className:"".concat(E,"-header")},S),n["createElement"](i["a"],T,D,z),L&&n["createElement"]("div",{className:"".concat(E,"-footer")},L),M||("bottom"===W||"both"===W)&&K)};var o=e.pagination,u=o&&"object"===E(o)?o:{};return r.state={paginationCurrent:u.defaultCurrent||1,paginationSize:u.defaultPageSize||10},r}return K(c,[{key:"getChildContext",value:function(){return{grid:this.props.grid,itemLayout:this.props.itemLayout}}},{key:"triggerPaginationEvent",value:function(e){var t=this;return function(c,n){var r=t.props.pagination;t.setState({paginationCurrent:c,paginationSize:n}),r&&r[e]&&r[e](c,n)}}},{key:"isSomethingAfterLastItem",value:function(){var e=this.props,t=e.loadMore,c=e.pagination,n=e.footer;return!!(t||c||n)}},{key:"render",value:function(){return n["createElement"](u["a"],null,this.renderList)}}]),c}(n["Component"]);Z.Item=x,Z.childContextTypes={grid:r["any"],itemLayout:r["string"]},Z.defaultProps={dataSource:[],bordered:!1,split:!0,loading:!1,pagination:!1}},W9HT:function(e,t,c){"use strict";var n=c("q1tI"),r=c("17x9"),o=c("TSYQ"),a=c.n(o),l=c("BGR+"),i=c("sEfC"),u=c.n(i),s=c("H84U"),h=c("CWQg");function f(e){"@babel/helpers - typeof";return f="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function p(){return p=Object.assign||function(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function k(e,t){if(e){if("string"===typeof e)return x(e,t);var c=Object.prototype.toString.call(e).slice(8,-1);return"Object"===c&&e.constructor&&(c=e.constructor.name),"Map"===c||"Set"===c?Array.from(e):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?x(e,t):void 0}}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var c=0,n=new Array(t);c0)for(var l,i=L(c);!(l=i()).done;){var u=l.value;if("undefined"!==typeof a[u]&&!a[u])return!1}else if(a.metaKey||a.ctrlKey||a.shiftKey||a.altKey)return!1;return a.key?a.key===r:a.keyCode===n}function j(e,t){var c=e.split("\n"),n=e.substr(0,t).split("\n"),r=n.length,o=n[n.length-1].length,a=c[n.length-1],l=n.length>1?n[n.length-2]:null,i=c.length>n.length?c[n.length]:null;return{line:r,col:o,beforeText:e.substr(0,t),afterText:e.substr(t),curLine:a,prevLine:l,nextLine:i}}for(var N={bold:["**","**"],italic:["*","*"],underline:["++","++"],strikethrough:["~~","~~"],quote:["\n> ","\n"],inlinecode:["`","`"],code:["\n```\n","\n```\n"]},R=1;R<=6;R++)N["h"+R]=["\n"+P("#",R)+" ","\n"];function _(e){for(var t=e.row,c=void 0===t?2:t,n=e.col,r=void 0===n?2:n,o=["|"],a=["|"],l=["|"],i="",u=1;u<=r;u++)o.push(" Head |"),l.push(" --- |"),a.push(" Data |");for(var s=1;s<=c;s++)i+="\n"+a.join("");return o.join("")+"\n"+l.join("")+i}function A(e,t){var c=t;if("\n"!==c.substr(0,1)&&(c="\n"+c),"unordered"===e)return c.length>1?c.replace(/\n/g,"\n* ").trim():"* ";var n=1;return c.length>1?c.replace(/\n/g,function(){return"\n"+n+++". "}).trim():"1. "}function F(e,t){return{text:e,newBlock:t,selection:{start:e.length,end:e.length}}}function I(e,t,c){if("undefined"!==typeof N[t])return{text:""+N[t][0]+e+N[t][1],selection:{start:N[t][0].length,end:N[t][0].length+e.length}};switch(t){case"tab":var n=1===c.tabMapValue?"\t":" ".repeat(c.tabMapValue),r=n+e.replace(/\n/g,"\n"+n),o=e.includes("\n")?e.match(/\n/g).length:0;return{text:r,selection:{start:c.tabMapValue,end:c.tabMapValue*(o+1)+e.length}};case"unordered":return F(A("unordered",e),!0);case"order":return F(A("order",e),!0);case"hr":return F("---",!0);case"table":return{text:_(c),newBlock:!0};case"image":return{text:"!["+(e||c.target)+"]("+(c.imageUrl||"")+")",selection:{start:2,end:e.length+2}};case"link":return{text:"["+e+"]("+(c.linkUrl||"")+")",selection:{start:1,end:e.length+1}}}return{text:e,selection:{start:0,end:e.length}}}var D=I;function K(e,t){var c={};return Object.keys(e).forEach(function(n){"undefined"!==typeof t[n]?"object"!==typeof t[n]?c[n]=t[n]:Array.isArray(t[n])?c[n]=[].concat(t[n]):c[n]=K(e[n],t[n]):c[n]=e[n]}),c}var U=function(e){for(var t=r()({},e),c=arguments.length,n=new Array(c>1?c-1:0),o=1;o=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Z(e,t){if(e){if("string"===typeof e)return J(e,t);var c=Object.prototype.toString.call(e).slice(8,-1);return"Object"===c&&e.constructor&&(c=e.constructor.name),"Map"===c||"Set"===c?Array.from(e):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?J(e,t):void 0}}function J(e,t){(null==t||t>e.length)&&(t=e.length);for(var c=0,n=new Array(t);c0&&h.length>0&&(l="\n"+l,i&&(i.start++,i.end++));var f=u.afterText;c.start!==c.end&&(f=j(this.getMdValue(),c.end).afterText),""!==f.trim()&&"\n\n"!==f.substr(0,2)&&("\n"!==f.substr(0,1)&&(l+="\n"),l+="\n")}this.insertText(l,!0,i)},c.insertPlaceholder=function(e,t){var c=this;this.insertText(e,!0),t.then(function(t){var n=c.getMdValue().replace(e,t);c.setText(n)})},c.insertText=function(e,t,c){void 0===e&&(e=""),void 0===t&&(t=!1);var n=this.state.text,r=this.getSelection(),o=n.slice(0,r.start),a=n.slice(t?r.end:r.start,n.length);this.setText(o+e+a,void 0,c?{start:c.start+o.length,end:c.end+o.length}:{start:r.start,end:r.start})},c.setText=function(e,t,c){var n=this;void 0===e&&(e="");var r=this.config.onChangeTrigger,o=void 0===r?"both":r,a=e.replace(/\u21b5/g,"\n");if(this.state.text!==e){this.setState({text:a}),!this.props.onChange||"both"!==o&&"beforeRender"!==o||this.props.onChange({text:a,html:this.getHtmlValue()},t),this.emitter.emit(this.emitter.EVENT_CHANGE,e,t,"undefined"===typeof t),c&&setTimeout(function(){return n.setSelection(c)}),this.hasContentChanged||(this.hasContentChanged=!0);var l=this.renderHTML(a);"both"!==o&&"afterRender"!==o||l.then(function(){n.props.onChange&&n.props.onChange({text:n.state.text,html:n.getHtmlValue()},t)})}},c.getMdValue=function(){return this.state.text},c.getHtmlValue=function(){return"string"===typeof this.state.html?this.state.html:this.nodeMdPreview.current?this.nodeMdPreview.current.getHtml():""},c.onKeyboard=function(e){var t=this;Array.isArray(e)?e.forEach(function(e){return t.onKeyboard(e)}):this.keyboardListeners.includes(e)||this.keyboardListeners.push(e)},c.offKeyboard=function(e){var t=this;if(Array.isArray(e))e.forEach(function(e){return t.offKeyboard(e)});else{var c=this.keyboardListeners.indexOf(e);c>=0&&this.keyboardListeners.splice(c,1)}},c.handleKeyDown=function(e){for(var t,c=X(this.keyboardListeners);!(t=c()).done;){var n=t.value;if(T(e,n))return e.preventDefault(),void n.callback(e)}this.emitter.emit(this.emitter.EVENT_KEY_DOWN,e)},c.getEventType=function(e){switch(e){case"change":return this.emitter.EVENT_CHANGE;case"fullscreen":return this.emitter.EVENT_FULL_SCREEN;case"viewchange":return this.emitter.EVENT_VIEW_CHANGE;case"keydown":return this.emitter.EVENT_KEY_DOWN;case"editor_keydown":return this.emitter.EVENT_EDITOR_KEY_DOWN;case"blur":return this.emitter.EVENT_BLUR;case"focus":return this.emitter.EVENT_FOCUS;case"scroll":return this.emitter.EVENT_SCROLL}},c.on=function(e,t){var c=this.getEventType(e);c&&this.emitter.on(c,t)},c.off=function(e,t){var c=this.getEventType(e);c&&this.emitter.off(c,t)},c.setView=function(e){var t=this,c=r()({},this.state.view,e);this.setState({view:c},function(){t.emitter.emit(t.emitter.EVENT_VIEW_CHANGE,c)})},c.getView=function(){return r()({},this.state.view)},c.fullScreen=function(e){var t=this;this.state.fullScreen!==e&&this.setState({fullScreen:e},function(){t.emitter.emit(t.emitter.EVENT_FULL_SCREEN,e)})},c.registerPluginApi=function(e,t){this.pluginApis.set(e,t)},c.unregisterPluginApi=function(e){this.pluginApis.delete(e)},c.callPluginApi=function(e){var t=this.pluginApis.get(e);if(!t)throw new Error("API "+e+" not found");for(var c=arguments.length,n=new Array(c>1?c-1:0),r=1;r0&&e.onImageChanged(t.target.files[0])}}))},t}(V);ze.pluginName="image";var ge=function(e){function t(t){var c;return c=e.call(this,t)||this,c.handleKeyboard={key:"k",keyCode:75,aliasCommand:!0,withKey:["ctrlKey"],callback:function(){return c.editor.insertMarkdown("link")}},c}i()(t,e);var c=t.prototype;return c.componentDidMount=function(){this.editorConfig.shortcuts&&this.editor.onKeyboard(this.handleKeyboard)},c.componentWillUnmount=function(){this.editor.offKeyboard(this.handleKeyboard)},c.render=function(){var e=this;return u["createElement"]("span",{className:"button button-type-link",title:C.get("btnLink"),onClick:function(){return e.editor.insertMarkdown("link")}},u["createElement"](h,{type:"link"}))},t}(V);ge.pluginName="link";var Me=function(e){function t(t){var c;return c=e.call(this,t)||this,c.handleKeyboard={key:"7",keyCode:55,withKey:["ctrlKey","shiftKey"],aliasCommand:!0,callback:function(){return c.editor.insertMarkdown("order")}},c}i()(t,e);var c=t.prototype;return c.componentDidMount=function(){this.editorConfig.shortcuts&&this.editor.onKeyboard(this.handleKeyboard)},c.componentWillUnmount=function(){this.editor.offKeyboard(this.handleKeyboard)},c.render=function(){var e=this;return u["createElement"]("span",{className:"button button-type-ordered",title:C.get("btnOrdered"),onClick:function(){return e.editor.insertMarkdown("order")}},u["createElement"](h,{type:"list-ordered"}))},t}(V);Me.pluginName="list-ordered";var Ce=function(e){function t(t){var c;return c=e.call(this,t)||this,c.handleKeyboard={key:"8",keyCode:56,withKey:["ctrlKey","shiftKey"],aliasCommand:!0,callback:function(){return c.editor.insertMarkdown("unordered")}},c}i()(t,e);var c=t.prototype;return c.componentDidMount=function(){this.editorConfig.shortcuts&&this.editor.onKeyboard(this.handleKeyboard)},c.componentWillUnmount=function(){this.editor.offKeyboard(this.handleKeyboard)},c.render=function(){var e=this;return u["createElement"]("span",{className:"button button-type-unordered",title:C.get("btnUnordered"),onClick:function(){return e.editor.insertMarkdown("unordered")}},u["createElement"](h,{type:"list-unordered"}))},t}(V);Ce.pluginName="list-unordered";var He,Oe=100,Ve=function(){function e(e){void 0===e&&(e={}),this.record=[],this.recycle=[],this.initValue="";var t=e,c=t.maxSize,n=void 0===c?Oe:c;this.maxSize=n}var t=e.prototype;return t.push=function(e){var t=this.record.push(e);while(this.record.length>this.maxSize)this.record.shift();return t},t.get=function(){return this.record},t.getLast=function(){var e=this.record.length;return this.record[e-1]},t.undo=function(e){var t=this.record.pop();if("undefined"===typeof t)return this.initValue;if(t!==e)return this.recycle.push(t),t;var c=this.record.pop();return"undefined"===typeof c?(this.recycle.push(t),this.initValue):(this.recycle.push(t),c)},t.redo=function(){var e=this.recycle.pop();if("undefined"!==typeof e)return this.push(e),e},t.cleanRedo=function(){this.recycle=[]},t.getUndoCount=function(){return this.undo.length},t.getRedoCount=function(){return this.recycle.length},e}(),we=Ve,Se=function(e){function t(t){var c;return c=e.call(this,t)||this,c.handleKeyboards=[],c.lastPop=null,c.handleChange=c.handleChange.bind(a()(c)),c.handleRedo=c.handleRedo.bind(a()(c)),c.handleUndo=c.handleUndo.bind(a()(c)),c.handleKeyboards=[{key:"y",keyCode:89,withKey:["ctrlKey"],callback:c.handleRedo},{key:"z",keyCode:90,withKey:["metaKey","shiftKey"],callback:c.handleRedo},{key:"z",keyCode:90,aliasCommand:!0,withKey:["ctrlKey"],callback:c.handleUndo}],c.logger=new we({maxSize:c.editorConfig.loggerMaxSize}),c.editor.registerPluginApi("undo",c.handleUndo),c.editor.registerPluginApi("redo",c.handleRedo),c}i()(t,e);var c=t.prototype;return c.handleUndo=function(){var e=this.logger.undo(this.editor.getMdValue());"undefined"!==typeof e&&(this.pause(),this.lastPop=e,this.editor.setText(e),this.forceUpdate())},c.handleRedo=function(){var e=this.logger.redo();"undefined"!==typeof e&&(this.lastPop=e,this.editor.setText(e),this.forceUpdate())},c.handleChange=function(e,t,c){var n=this;if(this.logger.getLast()!==e&&(null===this.lastPop||this.lastPop!==e)){if(this.logger.cleanRedo(),c)return this.logger.push(e),this.lastPop=null,void this.forceUpdate();this.timerId&&(window.clearTimeout(this.timerId),this.timerId=0),this.timerId=window.setTimeout(function(){n.logger.getLast()!==e&&(n.logger.push(e),n.lastPop=null,n.forceUpdate()),window.clearTimeout(n.timerId),n.timerId=0},this.editorConfig.loggerInterval)}},c.componentDidMount=function(){var e=this;this.editor.on("change",this.handleChange),this.handleKeyboards.forEach(function(t){return e.editor.onKeyboard(t)}),this.logger.initValue=this.editor.getMdValue(),this.forceUpdate()},c.componentWillUnmount=function(){var e=this;this.timerId&&window.clearTimeout(this.timerId),this.editor.off("change",this.handleChange),this.editor.unregisterPluginApi("undo"),this.editor.unregisterPluginApi("redo"),this.handleKeyboards.forEach(function(t){return e.editor.offKeyboard(t)})},c.pause=function(){this.timerId&&(window.clearTimeout(this.timerId),this.timerId=void 0)},c.render=function(){var e=this.logger.getUndoCount()>1||this.logger.initValue!==this.editor.getMdValue(),t=this.logger.getRedoCount()>0;return u["createElement"](u["Fragment"],null,u["createElement"]("span",{className:"button button-type-undo "+(e?"":"disabled"),title:C.get("btnUndo"),onClick:this.handleUndo},u["createElement"](h,{type:"undo"})),u["createElement"]("span",{className:"button button-type-redo "+(t?"":"disabled"),title:C.get("btnRedo"),onClick:this.handleRedo},u["createElement"](h,{type:"redo"})))},t}(V);Se.pluginName="logger",function(e){e[e["SHOW_ALL"]=0]="SHOW_ALL",e[e["SHOW_MD"]=1]="SHOW_MD",e[e["SHOW_HTML"]=2]="SHOW_HTML"}(He||(He={}));var Le=function(e){function t(t){var c;return c=e.call(this,t)||this,c.handleClick=c.handleClick.bind(a()(c)),c.handleChange=c.handleChange.bind(a()(c)),c.state={view:c.editor.getView()},c}i()(t,e);var c=t.prototype;return c.handleClick=function(){switch(this.next){case He.SHOW_ALL:this.editor.setView({html:!0,md:!0});break;case He.SHOW_HTML:this.editor.setView({html:!0,md:!1});break;case He.SHOW_MD:this.editor.setView({html:!1,md:!0});break}},c.handleChange=function(e){this.setState({view:e})},c.componentDidMount=function(){this.editor.on("viewchange",this.handleChange)},c.componentWillUnmount=function(){this.editor.off("viewchange",this.handleChange)},c.getDisplayInfo=function(){var e=this.next;switch(e){case He.SHOW_ALL:return{icon:"view-split",title:"All"};case He.SHOW_HTML:return{icon:"visibility",title:"Preview"};default:return{icon:"keyboard",title:"Editor"}}},c.render=function(){if(this.isDisplay){var e=this.getDisplayInfo();return u["createElement"]("span",{className:"button button-type-mode",title:C.get("btnMode"+e.title),onClick:this.handleClick},u["createElement"](h,{type:e.icon}))}return null},O()(t,[{key:"isDisplay",get:function(){var e=this.editorConfig.canView;return!!e&&[e.html,e.md,e.both].filter(function(e){return e}).length>=2}},{key:"next",get:function(){var e=this.editorConfig.canView,t=this.state.view,c=[He.SHOW_ALL,He.SHOW_MD,He.SHOW_HTML];e&&(e.both||c.splice(c.indexOf(He.SHOW_ALL),1),e.md||c.splice(c.indexOf(He.SHOW_MD),1),e.html||c.splice(c.indexOf(He.SHOW_HTML),1));var n=He.SHOW_MD;if(t.html&&(n=He.SHOW_HTML),t.html&&t.md&&(n=He.SHOW_ALL),0===c.length)return n;if(1===c.length)return c[0];var r=c.indexOf(n);return r=0),e),d),w=f(f({},this.props),{children:null,inkBarAnimated:z,extraContent:l,style:r,prevIcon:H,nextIcon:O,className:V});return t=a?a(w,s["a"]):n["createElement"](s["a"],w),n["cloneElement"](t)}}]),c}(n["Component"]);V.defaultProps={animated:!0,type:"line"};var w=c("H84U"),S=c("6CfX"),L=function(e){if("undefined"!==typeof window&&window.document&&window.document.documentElement){var t=Array.isArray(e)?e:[e],c=window.document.documentElement;return t.some(function(e){return e in c.style})}return!1},k=L(["flex","webkitFlex","Flex","msFlex"]);function x(){return x=Object.assign||function(e){for(var t=1;t=0&&("small"===v||"large"===v)),"Tabs","`type=card|editable-card` doesn't have small or large size, it's by design.");var O=r("tabs",s),w=i()(p,(c={},E(c,"".concat(O,"-vertical"),"left"===y||"right"===y),E(c,"".concat(O,"-").concat(v),!!v),E(c,"".concat(O,"-card"),d.indexOf("card")>=0),E(c,"".concat(O,"-").concat(d),!0),E(c,"".concat(O,"-no-animation"),!H),c)),L=[];"editable-card"===d&&(L=[],n["Children"].forEach(b,function(t,c){if(!n["isValidElement"](t))return t;var r=t.props.closable;r="undefined"===typeof r||r;var o=r?n["createElement"](h["a"],{type:"close",className:"".concat(O,"-close-x"),onClick:function(c){return e.removeTab(t.key,c)}}):null;L.push(n["cloneElement"](t,{tab:n["createElement"]("div",{className:r?void 0:"".concat(O,"-tab-unclosable")},t.props.tab,o),key:t.key||c}))}),M||(C=n["createElement"]("span",null,n["createElement"](h["a"],{type:"plus",className:"".concat(O,"-new-tab"),onClick:e.createNewTab}),C))),C=C?n["createElement"]("div",{className:"".concat(O,"-extra-content")},C):null;var k=U(e.props,[]),T=i()("".concat(O,"-").concat(y,"-content"),d.indexOf("card")>=0&&"".concat(O,"-card-content"));return n["createElement"](o["b"],x({},e.props,{prefixCls:O,className:w,tabBarPosition:y,renderTabBar:function(){return n["createElement"](V,x({},Object(u["a"])(k,["className"]),{tabBarExtraContent:C}))},renderTabContent:function(){return n["createElement"](a["a"],{className:T,animated:H,animatedWithMargin:!0})},onChange:e.handleChange}),L.length>0?L:b)},e}return N(c,[{key:"componentDidMount",value:function(){var e=" no-flex",t=r["findDOMNode"](this);t&&!k&&-1===t.className.indexOf(e)&&(t.className+=e)}},{key:"render",value:function(){return n["createElement"](w["a"],null,this.renderTabs)}}]),c}(n["Component"]);B.TabPane=o["a"],B.defaultProps={hideAdd:!1,tabPosition:"top"}},ZTW2:function(e,t,c){},"Znn+":function(e,t,c){"use strict";c("cIOH"),c("9ama")},ZvpZ:function(e,t,c){"use strict";var n=c("H4fg"),r=c("61s2"),o=c("RlXo"),a=r["a"];t["a"]={locale:"en",Pagination:n["a"],DatePicker:r["a"],TimePicker:o["a"],Calendar:a,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",selectAll:"Select current page",selectInvert:"Invert current page",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No Data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"}}},bE4E:function(e,t,c){},bKJz:function(e,t,c){},bXwC:function(e,t,c){},bac3:function(e,t,c){"use strict";(function(e){c.d(t,"e",function(){return h}),c.d(t,"d",function(){return f}),c.d(t,"a",function(){return v}),c.d(t,"b",function(){return m}),c.d(t,"c",function(){return d}),c.d(t,"f",function(){return y});var n=c("QbLZ"),r=c.n(n),o=c("iCc5"),a=c.n(o),l=c("V7oC"),i=c.n(l),u=c("HXN9"),s=c("q1tI");function h(t){e&&Object({NODE_ENV:"production"})||console.error("[@ant-design/icons-react]: "+t+".")}function f(e){return"object"===typeof e&&"string"===typeof e.name&&"string"===typeof e.theme&&("object"===typeof e.icon||"function"===typeof e.icon)}function p(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce(function(t,c){var n=e[c];switch(c){case"class":t.className=n,delete t["class"];break;default:t[c]=n}return t},{})}var v=function(){function e(){a()(this,e),this.collection={}}return i()(e,[{key:"clear",value:function(){this.collection={}}},{key:"delete",value:function(e){return delete this.collection[e]}},{key:"get",value:function(e){return this.collection[e]}},{key:"has",value:function(e){return Boolean(this.collection[e])}},{key:"set",value:function(e,t){return this.collection[e]=t,this}},{key:"size",get:function(){return Object.keys(this.collection).length}}]),e}();function m(e,t,c){return c?s["createElement"](e.tag,r()({key:t},p(e.attrs),c),(e.children||[]).map(function(c,n){return m(c,t+"-"+e.tag+"-"+n)})):s["createElement"](e.tag,r()({key:t},p(e.attrs)),(e.children||[]).map(function(c,n){return m(c,t+"-"+e.tag+"-"+n)}))}function d(e){return Object(u["generate"])(e)[0]}function y(e,t){switch(t){case"fill":return e+"-fill";case"outline":return e+"-o";case"twotone":return e+"-twotone";default:throw new TypeError("Unknown theme type: "+t+", name: "+e)}}}).call(this,c("Q2Ig"))},bbsP:function(e,t,c){"use strict";c("cIOH"),c("CWI+")},cIOH:function(e,t,c){},czTT:function(e,t,c){},d0bx:function(e,t,c){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var r=n(c("Zss7")),o=2,a=16,l=5,i=5,u=15,s=5,h=4;function f(e,t,c){var n;return n=Math.round(e.h)>=60&&Math.round(e.h)<=240?c?Math.round(e.h)-o*t:Math.round(e.h)+o*t:c?Math.round(e.h)+o*t:Math.round(e.h)-o*t,n<0?n+=360:n>=360&&(n-=360),n}function p(e,t,c){return 0===e.h&&0===e.s?e.s:(n=c?Math.round(100*e.s)-a*t:t===h?Math.round(100*e.s)+a:Math.round(100*e.s)+l*t,n>100&&(n=100),c&&t===s&&n>10&&(n=10),n<6&&(n=6),n);var n}function v(e,t,c){return c?Math.round(100*e.v)+i*t:Math.round(100*e.v)-u*t}function m(e){for(var t=[],c=r.default(e),n=s;n>0;n-=1){var o=c.toHsv(),a=r.default({h:f(o,n,!0),s:p(o,n,!0),v:v(o,n,!0)}).toHexString();t.push(a)}t.push(c.toHexString());for(n=1;n<=h;n+=1){o=c.toHsv(),a=r.default({h:f(o,n),s:p(o,n),v:v(o,n)}).toHexString();t.push(a)}return t}t.default=m},foW8:function(e,t,c){"use strict";t.__esModule=!0;var n=c("q1tI"),r=l(n),o=c("mdmE"),a=l(o);function l(e){return e&&e.__esModule?e:{default:e}}t.default=r.default.createContext||a.default,e.exports=t["default"]},g0mS:function(e,t,c){"use strict";c.d(t,"a",function(){return C});var n,r=c("q1tI"),o=c("i8i4"),a=c("/dDc"),l=c("oHiP"),i=c("H84U");function u(e){"@babel/helpers - typeof";return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var c=0;c=0)){var r=e.props.insertExtraNode;e.extraNode=document.createElement("div");var o=y(e),l=o.extraNode;l.className="ant-click-animating-node";var i=e.getAttributeName();t.setAttribute(i,"true"),n=n||document.createElement("style"),c&&"#ffffff"!==c&&"rgb(255, 255, 255)"!==c&&M(c)&&!/rgba\(\d*, \d*, \d*, 0\)/.test(c)&&"transparent"!==c&&(e.csp&&e.csp.nonce&&(n.nonce=e.csp.nonce),l.style.borderColor=c,n.innerHTML="\n [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {\n --antd-wave-shadow-color: ".concat(c,";\n }"),document.body.contains(n)||document.body.appendChild(n)),r&&t.appendChild(l),a["a"].addStartEventListener(t,e.onTransitionStart),a["a"].addEndEventListener(t,e.onTransitionEnd)}},e.onTransitionStart=function(t){if(!e.destroy){var c=Object(o["findDOMNode"])(y(e));t&&t.target===c&&(e.animationStart||e.resetEffect(c))}},e.onTransitionEnd=function(t){t&&"fadeEffect"===t.animationName&&e.resetEffect(t.target)},e.bindAnimationEvent=function(t){if(t&&t.getAttribute&&!t.getAttribute("disabled")&&!(t.className.indexOf("disabled")>=0)){var c=function(c){if("INPUT"!==c.target.tagName&&!g(c.target)){e.resetEffect(t);var n=getComputedStyle(t).getPropertyValue("border-top-color")||getComputedStyle(t).getPropertyValue("border-color")||getComputedStyle(t).getPropertyValue("background-color");e.clickWaveTimeoutId=window.setTimeout(function(){return e.onClick(t,n)},0),l["a"].cancel(e.animationStartId),e.animationStart=!0,e.animationStartId=Object(l["a"])(function(){e.animationStart=!1},10)}};return t.addEventListener("click",c,!0),{cancel:function(){t.removeEventListener("click",c,!0)}}}},e.renderWave=function(t){var c=t.csp,n=e.props.children;return e.csp=c,n},e}return f(c,[{key:"componentDidMount",value:function(){var e=Object(o["findDOMNode"])(this);e&&1===e.nodeType&&(this.instance=this.bindAnimationEvent(e))}},{key:"componentWillUnmount",value:function(){this.instance&&this.instance.cancel(),this.clickWaveTimeoutId&&clearTimeout(this.clickWaveTimeoutId),this.destroy=!0}},{key:"getAttributeName",value:function(){var e=this.props.insertExtraNode;return e?"ant-click-animating":"ant-click-animating-without-extra-node"}},{key:"resetEffect",value:function(e){if(e&&e!==this.extraNode&&e instanceof Element){var t=this.props.insertExtraNode,c=this.getAttributeName();e.setAttribute(c,"false"),n&&(n.innerHTML=""),t&&this.extraNode&&e.contains(this.extraNode)&&e.removeChild(this.extraNode),a["a"].removeStartEventListener(e,this.onTransitionStart),a["a"].removeEndEventListener(e,this.onTransitionEnd)}}},{key:"render",value:function(){return r["createElement"](i["a"],null,this.renderWave)}}]),c}(r["Component"])},g9YV:function(e,t,c){"use strict";c("cIOH"),c("pED+"),c("R9oj"),c("7Kak"),c("sRBo"),c("qVdP"),c("T2oS"),c("DjyN")},i8oR:function(e,t,c){},iQDF:function(e,t,c){"use strict";c("cIOH"),c("ZTW2"),c("5NDa"),c("pL63"),c("+BJd")},jCWc:function(e,t,c){"use strict";c("cIOH"),c("1GLa")},"jsC+":function(e,t,c){"use strict";var n=c("q1tI"),r=c("eDIo"),o=c("TSYQ"),a=c.n(o),l=c("H84U"),i=c("6CfX"),u=c("CtXQ"),s=c("CWQg");function h(e){"@babel/helpers - typeof";return h="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function f(){return f=Object.assign||function(e){for(var t=1;t=0?"slide-down":"slide-up"}},{key:"render",value:function(){return n["createElement"](l["a"],null,this.renderDropDown)}}]),c}(n["Component"]);H.defaultProps={mouseEnterDelay:.15,mouseLeaveDelay:.1,placement:"bottomLeft"};var O=c("2/Rp");function V(e){"@babel/helpers - typeof";return V="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},V(e)}function w(){return w=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var c=0,n=new Array(t);c0&&(d=r.getOptions().map(function(e){return n["createElement"](L,{prefixCls:p,key:e.value.toString(),disabled:"disabled"in e?e.disabled:o.disabled,value:e.value,checked:-1!==a.value.indexOf(e.value),onChange:e.onChange,className:"".concat(v,"-item")},e.label)}));var y=l()(v,u);return n["createElement"]("div",E({className:y,style:s},m),d)},r.state={value:e.value||e.defaultValue||[],registeredValues:[]},r}return I(c,[{key:"getChildContext",value:function(){return{checkboxGroup:{toggleOption:this.toggleOption,value:this.state.value,disabled:this.props.disabled,name:this.props.name,registerValue:this.registerValue,cancelValue:this.cancelValue}}}},{key:"shouldComponentUpdate",value:function(e,t){return!s()(this.props,e)||!s()(this.state,t)}},{key:"getOptions",value:function(){var e=this.props.options;return e.map(function(e){return"string"===typeof e?{label:e,value:e}:e})}},{key:"render",value:function(){return n["createElement"](h["a"],null,this.renderGroup)}}],[{key:"getDerivedStateFromProps",value:function(e){return"value"in e?{value:e.value||[]}:null}}]),c}(n["Component"]);Q.defaultProps={options:[]},Q.propTypes={defaultValue:r["array"],value:r["array"],options:r["array"].isRequired,onChange:r["func"]},Q.childContextTypes={checkboxGroup:r["any"]},Object(o["polyfill"])(Q);var X=Q;L.Group=X;t["a"]=L},lUTK:function(e,t,c){"use strict";c("cIOH"),c("x54q"),c("5Dmo")},mdmE:function(e,t,c){"use strict";t.__esModule=!0;var n=c("q1tI"),r=(u(n),c("17x9")),o=u(r),a=c("fZtv"),l=u(a),i=c("2W6z");u(i);function u(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function f(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var p=1073741823;function v(e,t){return e===t?0!==e||1/e===1/t:e!==e&&t!==t}function m(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter(function(t){return t!==e})},get:function(){return e},set:function(c,n){e=c,t.forEach(function(t){return t(e,n)})}}}function d(e){return Array.isArray(e)?e[0]:e}function y(e,t){var c,r,a="__create-react-context-"+(0,l.default)()+"__",i=function(e){function c(){var t,n,r;s(this,c);for(var o=arguments.length,a=Array(o),l=0;l1&&void 0!==arguments[1]?arguments[1]:1,c=o++,n=t;function l(){n-=1,n<=0?(e(),delete a[c]):a[c]=r()(l)}return a[c]=r()(l),c}l.cancel=function(e){void 0!==e&&(r.a.cancel(a[e]),delete a[e])},l.ids=a},"pED+":function(e,t,c){},pL63:function(e,t,c){},pwpV:function(e,t,c){},qCM6:function(e,t,c){},qVdP:function(e,t,c){"use strict";c("cIOH"),c("KAsB"),c("+L6B")},qrJ5:function(e,t,c){"use strict";var n,r=c("q1tI"),o=c("TSYQ"),a=c.n(o),l=c("17x9"),i=c("H84U"),u=c("o/2+"),s=c("CWQg");function h(e,t,c){return t in e?Object.defineProperty(e,t,{value:c,enumerable:!0,configurable:!0,writable:!0}):e[t]=c,e}function f(){return f=Object.assign||function(e){for(var t=1;t0?{marginLeft:y[0]/-2,marginRight:y[0]/-2}:{}),y[1]>0?{marginTop:y[1]/-2,marginBottom:y[1]/-2}:{}),p),g=C({},m);return delete g.gutter,r["createElement"](u["a"].Provider,{value:{gutter:y}},r["createElement"]("div",C({},g,{className:b,style:z}),v))},e}return w(c,[{key:"componentDidMount",value:function(){var e=this;this.token=g.subscribe(function(t){var c=e.props.gutter;("object"===M(c)||Array.isArray(c)&&("object"===M(c[0])||"object"===M(c[1])))&&e.setState({screens:t})})}},{key:"componentWillUnmount",value:function(){g.unsubscribe(this.token)}},{key:"getGutter",value:function(){var e=[0,0],t=this.props.gutter,c=this.state.screens,n=Array.isArray(t)?t:[t,0];return n.forEach(function(t,n){if("object"===M(t))for(var r=0;re.length)&&(t=e.length);for(var c=0,n=new Array(t);c0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"children",c=[],n=function e(n){n.forEach(function(n){if(n[t]){var r=k({},n);delete r[t],c.push(r),n[t].length>0&&e(n[t])}else c.push(n)})};return n(e),c}function E(e,t){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"children";return e.map(function(e,n){var r={};return e[c]&&(r[c]=E(e[c],t,c)),k(k({},t(e,n)),r)})}function P(e,t){return e.reduce(function(e,c){if(t(c)&&e.push(c),c.children){var n=P(c.children,t);e.push.apply(e,H(n))}return e},[])}function T(e){var t=[];return n["Children"].forEach(e,function(e){if(n["isValidElement"](e)){var c=k({},e.props);e.key&&(c.key=e.key),e.type&&e.type.__ANT_TABLE_COLUMN_GROUP&&(c.children=T(c.children)),t.push(c)}}),t}function j(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(e||[]).forEach(function(e){var c=e.value,n=e.children;t[c.toString()]=c,j(n,t)}),t}function N(e){"@babel/helpers - typeof";return N="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},N(e)}function R(e,t,c){return t in e?Object.defineProperty(e,t,{value:c,enumerable:!0,configurable:!0,writable:!0}):e[t]=c,e}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function A(e,t){for(var c=0;c=0?delete c[e.key]:c[e.key]=e.keyPath,r.setState({keyPathOfSelectedItem:c})}},r.renderFilterIcon=function(){var e,t=r.props,c=t.column,o=t.locale,a=t.prefixCls,l=t.selectedKeys,i=l&&l.length>0,s=c.filterIcon;"function"===typeof s&&(s=s(i));var h=u()((e={},R(e,"".concat(a,"-selected"),"filtered"in c?c.filtered:i),R(e,"".concat(a,"-open"),r.getDropdownVisible()),e));return s?n["isValidElement"](s)?n["cloneElement"](s,{title:s.props.title||o.filterTitle,className:u()("".concat(a,"-icon"),h,s.props.className),onClick:G}):n["createElement"]("span",{className:u()("".concat(a,"-icon"),h)},s):n["createElement"](b["a"],{title:o.filterTitle,type:"filter",theme:"filled",className:h,onClick:G})};var o="filterDropdownVisible"in e.column&&e.column.filterDropdownVisible;return r.state={selectedKeys:e.selectedKeys,valueKeys:j(e.column.filters),keyPathOfSelectedItem:{},visible:o,prevProps:e},r}return F(c,[{key:"componentDidMount",value:function(){var e=this.props.column;this.setNeverShown(e)}},{key:"componentDidUpdate",value:function(){var e=this.props.column;this.setNeverShown(e)}},{key:"getDropdownVisible",value:function(){return!this.neverShown&&this.state.visible}},{key:"setVisible",value:function(e){var t=this.props.column;"filterDropdownVisible"in t||this.setState({visible:e}),t.onFilterDropdownVisibleChange&&t.onFilterDropdownVisibleChange(e)}},{key:"hasSubMenu",value:function(){var e=this.props.column.filters,t=void 0===e?[]:e;return t.some(function(e){return!!(e.children&&e.children.length>0)})}},{key:"confirmFilter",value:function(){var e=this.props,t=e.column,c=e.selectedKeys,n=e.confirmFilter,r=this.state,o=r.selectedKeys,a=r.valueKeys,l=t.filterDropdown;h()(o,c)||n(t,l?o:o.map(function(e){return a[e]}).filter(function(e){return void 0!==e}))}},{key:"renderMenus",value:function(e){var t=this,c=this.props,r=c.dropdownPrefixCls,o=c.prefixCls;return e.map(function(e){if(e.children&&e.children.length>0){var c=t.state.keyPathOfSelectedItem,a=Object.keys(c).some(function(t){return c[t].indexOf(e.value)>=0}),l=u()("".concat(o,"-dropdown-submenu"),R({},"".concat(r,"-submenu-contain-selected"),a));return n["createElement"](v["d"],{title:e.text,popupClassName:l,key:e.value.toString()},t.renderMenus(e.children))}return t.renderMenuItem(e)})}},{key:"renderMenuItem",value:function(e){var t=this.props.column,c=this.state.selectedKeys,r=!("filterMultiple"in t)||t.filterMultiple,o=(c||[]).map(function(e){return e.toString()}),a=r?n["createElement"](z["a"],{checked:o.indexOf(e.value.toString())>=0}):n["createElement"](g["a"],{checked:o.indexOf(e.value.toString())>=0});return n["createElement"](v["b"],{key:e.value},a,n["createElement"]("span",null,e.text))}},{key:"render",value:function(){var e=this,t=this.state.selectedKeys,c=this.props,r=c.column,o=c.locale,a=c.prefixCls,l=c.dropdownPrefixCls,i=c.getPopupContainer,s=!("filterMultiple"in r)||r.filterMultiple,h=u()(R({},"".concat(l,"-menu-without-submenu"),!this.hasSubMenu())),f=r.filterDropdown;f instanceof Function&&(f=f({prefixCls:"".concat(l,"-custom"),setSelectedKeys:function(t){return e.setSelectedKeys({selectedKeys:t})},selectedKeys:t,confirm:this.handleConfirm,clearFilters:this.handleClearFilters,filters:r.filters,visible:this.getDropdownVisible()}));var p=f?n["createElement"](C,{className:"".concat(a,"-dropdown")},f):n["createElement"](C,{className:"".concat(a,"-dropdown")},n["createElement"](v["e"],{multiple:s,onClick:this.handleMenuItemClick,prefixCls:"".concat(l,"-menu"),className:h,onSelect:this.setSelectedKeys,onDeselect:this.setSelectedKeys,selectedKeys:t&&t.map(function(e){return e.toString()}),getPopupContainer:i},this.renderMenus(r.filters)),n["createElement"]("div",{className:"".concat(a,"-dropdown-btns")},n["createElement"]("a",{className:"".concat(a,"-dropdown-link confirm"),onClick:this.handleConfirm},o.filterConfirm),n["createElement"]("a",{className:"".concat(a,"-dropdown-link clear"),onClick:this.handleClearFilters},o.filterReset)));return n["createElement"](y["a"],{trigger:["click"],placement:"bottomRight",overlay:p,visible:this.getDropdownVisible(),onVisibleChange:this.onVisibleChange,getPopupContainer:i,forceRender:!0},this.renderFilterIcon())}}],[{key:"getDerivedStateFromProps",value:function(e,t){var c=e.column,n=t.prevProps,r={prevProps:e};return"selectedKeys"in e&&!h()(n.selectedKeys,e.selectedKeys)&&(r.selectedKeys=e.selectedKeys),h()((n.column||{}).filters,(e.column||{}).filters)||(r.valueKeys=j(e.column.filters)),"filterDropdownVisible"in c&&(r.visible=c.filterDropdownVisible),r}}]),c}(n["Component"]);Y.defaultProps={column:{}},Object(f["polyfill"])(Y);var Q=Y;function X(){return X=Object.assign||function(e){for(var t=1;t=0:t.getState().selectedRowKeys.indexOf(n)>=0||c.indexOf(n)>=0,r}},{key:"subscribe",value:function(){var e=this,t=this.props.store;this.unsubscribe=t.subscribe(function(){var t=e.getCheckState(e.props);e.setState({checked:t})})}},{key:"render",value:function(){var e=this.props,t=e.type,c=e.rowIndex,r=se(e,["type","rowIndex"]),o=this.state.checked;return"radio"===t?n["createElement"](g["a"],$({checked:o,value:c},r)):n["createElement"](z["a"],$({checked:o},r))}}]),c}(n["Component"]),fe=c("BvKs");function pe(e){"@babel/helpers - typeof";return pe="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pe(e)}function ve(e,t,c){return t in e?Object.defineProperty(e,t,{value:c,enumerable:!0,configurable:!0,writable:!0}):e[t]=c,e}function me(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function de(e,t){for(var c=0;c=0})}function Se(e){var t=e.store,c=e.data;if(!c.length)return!1;var n=we(Ve(Ve({},e),{data:c,type:"some",byDefaultChecked:!1}))&&!we(Ve(Ve({},e),{data:c,type:"every",byDefaultChecked:!1})),r=we(Ve(Ve({},e),{data:c,type:"some",byDefaultChecked:!0}))&&!we(Ve(Ve({},e),{data:c,type:"every",byDefaultChecked:!0}));return t.getState().selectionDirty?n:n||r}function Le(e){var t=e.store,c=e.data;return!!c.length&&(t.getState().selectionDirty?we(Ve(Ve({},e),{data:c,type:"every",byDefaultChecked:!1})):we(Ve(Ve({},e),{data:c,type:"every",byDefaultChecked:!1}))||we(Ve(Ve({},e),{data:c,type:"every",byDefaultChecked:!0})))}var ke=function(e){be(c,e);var t=ge(c);function c(e){var n;return me(this,c),n=t.call(this,e),n.state={checked:!1,indeterminate:!1},n.handleSelectAllChange=function(e){var t=e.target.checked;n.props.onSelect(t?"all":"removeAll",0,null)},n.defaultSelections=e.hideDefaultSelections?[]:[{key:"all",text:e.locale.selectAll},{key:"invert",text:e.locale.selectInvert}],n}return ye(c,[{key:"componentDidMount",value:function(){this.subscribe()}},{key:"componentWillUnmount",value:function(){this.unsubscribe&&this.unsubscribe()}},{key:"setCheckState",value:function(e){var t=Le(e),c=Se(e);this.setState(function(e){var n={};return c!==e.indeterminate&&(n.indeterminate=c),t!==e.checked&&(n.checked=t),n})}},{key:"subscribe",value:function(){var e=this,t=this.props.store;this.unsubscribe=t.subscribe(function(){e.setCheckState(e.props)})}},{key:"renderMenus",value:function(e){var t=this;return e.map(function(e,c){return n["createElement"](fe["a"].Item,{key:e.key||c},n["createElement"]("div",{onClick:function(){t.props.onSelect(e.key,c,e.onSelect)}},e.text))})}},{key:"render",value:function(){var e=this.props,t=e.disabled,c=e.prefixCls,r=e.selections,o=e.getPopupContainer,a=this.state,l=a.checked,i=a.indeterminate,s="".concat(c,"-selection"),h=null;if(r){var f=Array.isArray(r)?this.defaultSelections.concat(r):this.defaultSelections,p=n["createElement"](fe["a"],{className:"".concat(s,"-menu"),selectedKeys:[]},this.renderMenus(f));h=f.length>0?n["createElement"](y["a"],{overlay:p,getPopupContainer:o},n["createElement"]("div",{className:"".concat(s,"-down")},n["createElement"](b["a"],{type:"down"}))):null}return n["createElement"]("div",{className:s},n["createElement"](z["a"],{className:u()(ve({},"".concat(s,"-select-all-custom"),h)),checked:l,indeterminate:i,disabled:t,onChange:this.handleSelectAllChange}),h)}}],[{key:"getDerivedStateFromProps",value:function(e,t){var c=Le(e),n=Se(e),r={};return n!==t.indeterminate&&(r.indeterminate=n),c!==t.checked&&(r.checked=c),r}}]),c}(n["Component"]);Object(f["polyfill"])(ke);var xe=ke;function Ee(e){"@babel/helpers - typeof";return Ee="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ee(e)}function Pe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Te(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&je(e,t)}function je(e,t){return je=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},je(e,t)}function Ne(e){var t=Ae();return function(){var c,n=Fe(e);if(t){var r=Fe(this).constructor;c=Reflect.construct(n,arguments,r)}else c=n.apply(this,arguments);return Re(this,c)}}function Re(e,t){return!t||"object"!==Ee(t)&&"function"!==typeof t?_e(e):t}function _e(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ae(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function Fe(e){return Fe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Fe(e)}var Ie=function(e){Te(c,e);var t=Ne(c);function c(){return Pe(this,c),t.apply(this,arguments)}return c}(n["Component"]);function De(e){"@babel/helpers - typeof";return De="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(e)}function Ke(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ue(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Be(e,t)}function Be(e,t){return Be=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Be(e,t)}function qe(e){var t=Ye();return function(){var c,n=Qe(e);if(t){var r=Qe(this).constructor;c=Reflect.construct(n,arguments,r)}else c=n.apply(this,arguments);return We(this,c)}}function We(e,t){return!t||"object"!==De(t)&&"function"!==typeof t?Ge(e):t}function Ge(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ye(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function Qe(e){return Qe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Qe(e)}var Xe=function(e){Ue(c,e);var t=qe(c);function c(){return Ke(this,c),t.apply(this,arguments)}return c}(n["Component"]);function Ze(e){"@babel/helpers - typeof";return Ze="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ze(e)}function Je(){return Je=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"tr",t=function(t){nt(o,t);var c=ot(o);function o(e){var t;et(this,o),t=c.call(this,e),t.store=e.store;var n=t.store.getState(),r=n.selectedRowKeys;return t.state={selected:r.indexOf(e.rowKey)>=0},t}return ct(o,[{key:"componentDidMount",value:function(){this.subscribe()}},{key:"componentWillUnmount",value:function(){this.unsubscribe&&this.unsubscribe()}},{key:"subscribe",value:function(){var e=this,t=this.props,c=t.store,n=t.rowKey;this.unsubscribe=c.subscribe(function(){var t=e.store.getState(),c=t.selectedRowKeys,r=c.indexOf(n)>=0;r!==e.state.selected&&e.setState({selected:r})})}},{key:"render",value:function(){var t=Object(r["a"])(this.props,["prefixCls","rowKey","store"]),c=u()(this.props.className,$e({},"".concat(this.props.prefixCls,"-row-selected"),this.state.selected));return n["createElement"](e,Je(Je({},t),{className:c}),this.props.children)}}]),o}(n["Component"]);return t}Xe.__ANT_TABLE_COLUMN_GROUP=!0;var ht=c("xEkU"),ft=c.n(ht);function pt(e,t){if("undefined"===typeof window)return 0;var c=t?"pageYOffset":"pageXOffset",n=t?"scrollTop":"scrollLeft",r=e===window,o=r?e[c]:e[n];return r&&"number"!==typeof o&&(o=document.documentElement[n]),o}function vt(e,t,c,n){var r=c-t;return e/=n/2,e<1?r/2*e*e*e+t:r/2*((e-=2)*e*e+2)+t}function mt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=t.getContainer,n=void 0===c?function(){return window}:c,r=t.callback,o=t.duration,a=void 0===o?450:o,l=n(),i=pt(l,!0),u=Date.now(),s=function t(){var c=Date.now(),n=c-u,o=vt(n>a?a:n,i,e,a);l===window?window.scrollTo(window.pageXOffset,o):l.scrollTop=o,n0&&void 0!==arguments[0]?arguments[0]:{},t=e&&e.body&&e.body.row;return Zt(Zt({},e),{body:Zt(Zt({},e.body),{row:st(t)})})};function lc(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e===t||["table","header","body"].every(function(c){return h()(e[c],t[c])})}function ic(e,t){return P(t||(e||{}).columns||[],function(e){return"undefined"!==typeof e.filteredValue})}function uc(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,c={};return ic(e,t).forEach(function(e){var t=cc(e);c[t]=e.filteredValue}),c}function sc(e,t){return Object.keys(t).length!==Object.keys(e.filters).length||Object.keys(t).some(function(c){return t[c]!==e.filters[c]})}var hc=function(e){Bt(c,e);var t=Wt(c);function c(e){var o;Dt(this,c),o=t.call(this,e),o.setTableRef=function(e){o.rcTable=e},o.getCheckboxPropsByItem=function(e,t){var c=tc(o.props);if(!c.getCheckboxProps)return{};var n=o.getRecordKey(e,t);if(!o.props.checkboxPropsCache[n]){o.props.checkboxPropsCache[n]=c.getCheckboxProps(e)||{};var r=o.props.checkboxPropsCache[n];Object(At["a"])(!("checked"in r)&&!("defaultChecked"in r),"Table","Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.")}return o.props.checkboxPropsCache[n]},o.getRecordKey=function(e,t){var c=o.props.rowKey,n="function"===typeof c?c(e,t):e[c];return Object(At["a"])(void 0!==n,"Table","Each record in dataSource of table should have a unique `key` prop, or set `rowKey` of Table to an unique primary key, see https://u.ant.design/table-row-key"),void 0===n?t:n},o.onRow=function(e,t,c){var n=o.props.onRow,r=n?n(t,c):{};return Zt(Zt({},r),{prefixCls:e,store:o.props.store,rowKey:o.getRecordKey(t,c)})},o.generatePopupContainerFunc=function(e){var t=o.props.scroll,c=o.rcTable;return e||(t&&c?function(){return c.tableNode}:void 0)},o.scrollToFirstRow=function(){var e=o.props.scroll;e&&!1!==e.scrollToFirstRowOnChange&&mt(0,{getContainer:function(){return o.rcTable.bodyTable}})},o.handleFilter=function(e,t){var c=o.props,n=Zt({},o.state.pagination),r=Zt(Zt({},o.state.filters),It({},cc(e),t)),a=[];E(o.state.columns,function(e){e.children||a.push(cc(e))}),Object.keys(r).forEach(function(e){a.indexOf(e)<0&&delete r[e]}),c.pagination&&(n.current=1,n.onChange(n.current));var l={pagination:n,filters:{}},i=Zt({},r);ic(o.state).forEach(function(e){var t=cc(e);t&&delete i[t]}),Object.keys(i).length>0&&(l.filters=i),"object"===Ft(c.pagination)&&"current"in c.pagination&&(l.pagination=Zt(Zt({},n),{current:o.state.pagination.current})),o.setState(l,function(){o.scrollToFirstRow(),o.props.store.setState({selectionDirty:!1});var e=o.props.onChange;e&&e.apply(null,o.prepareParamsArguments(Zt(Zt({},o.state),{selectionDirty:!1,filters:r,pagination:n})))})},o.handleSelect=function(e,t,c){var n=c.target.checked,r=c.nativeEvent,a=o.props.store.getState().selectionDirty?[]:o.getDefaultSelection(),l=o.props.store.getState().selectedRowKeys.concat(a),i=o.getRecordKey(e,t),u=o.state.pivot,s=o.getFlatCurrentPageData(),h=t;if(o.props.expandedRowRender&&(h=s.findIndex(function(e){return o.getRecordKey(e,t)===i})),r.shiftKey&&void 0!==u&&h!==u){var f=[],p=Math.sign(u-h),v=Math.abs(u-h),m=0,d=function(){var e=h+m*p;m+=1;var t=s[e],c=o.getRecordKey(t,e),r=o.getCheckboxPropsByItem(t,e);r.disabled||(l.includes(c)?n||(l=l.filter(function(e){return c!==e}),f.push(c)):n&&(l.push(c),f.push(c)))};while(m<=v)d();o.setState({pivot:h}),o.props.store.setState({selectionDirty:!0}),o.setSelectedRowKeys(l,{selectWay:"onSelectMultiple",record:e,checked:n,changeRowKeys:f,nativeEvent:r})}else n?l.push(o.getRecordKey(e,h)):l=l.filter(function(e){return i!==e}),o.setState({pivot:h}),o.props.store.setState({selectionDirty:!0}),o.setSelectedRowKeys(l,{selectWay:"onSelect",record:e,checked:n,changeRowKeys:void 0,nativeEvent:r})},o.handleRadioSelect=function(e,t,c){var n=c.target.checked,r=c.nativeEvent,a=o.getRecordKey(e,t),l=[a];o.props.store.setState({selectionDirty:!0}),o.setSelectedRowKeys(l,{selectWay:"onSelect",record:e,checked:n,changeRowKeys:void 0,nativeEvent:r})},o.handleSelectRow=function(e,t,c){var n,r=o.getFlatCurrentPageData(),a=o.props.store.getState().selectionDirty?[]:o.getDefaultSelection(),l=o.props.store.getState().selectedRowKeys.concat(a),i=r.filter(function(e,t){return!o.getCheckboxPropsByItem(e,t).disabled}).map(function(e,t){return o.getRecordKey(e,t)}),u=[],s="onSelectAll";switch(e){case"all":i.forEach(function(e){l.indexOf(e)<0&&(l.push(e),u.push(e))}),s="onSelectAll",n=!0;break;case"removeAll":i.forEach(function(e){l.indexOf(e)>=0&&(l.splice(l.indexOf(e),1),u.push(e))}),s="onSelectAll",n=!1;break;case"invert":i.forEach(function(e){l.indexOf(e)<0?l.push(e):l.splice(l.indexOf(e),1),u.push(e),s="onSelectInvert"});break;default:break}o.props.store.setState({selectionDirty:!0});var h=o.props.rowSelection,f=2;if(h&&h.hideDefaultSelections&&(f=0),t>=f&&"function"===typeof c)return c(i);o.setSelectedRowKeys(l,{selectWay:s,checked:n,changeRowKeys:u})},o.handlePageChange=function(e){var t=o.props,c=Zt({},o.state.pagination);c.current=e||(c.current||1);for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a0){var r=this.getSortStateFromColumns(t);nc(r.sortColumn,c)&&r.sortOrder===n||this.setState(r)}}},{key:"getDefaultSelection",value:function(){var e=this,t=tc(this.props);return t.getCheckboxProps?this.getFlatData().filter(function(t,c){return e.getCheckboxPropsByItem(t,c).defaultChecked}).map(function(t,c){return e.getRecordKey(t,c)}):[]}},{key:"getDefaultPagination",value:function(e){var t,c,n="object"===Ft(e.pagination)?e.pagination:{};return"current"in n?t=n.current:"defaultCurrent"in n&&(t=n.defaultCurrent),"pageSize"in n?c=n.pageSize:"defaultPageSize"in n&&(c=n.defaultPageSize),this.hasPagination(e)?Zt(Zt(Zt({},rc),n),{current:t||1,pageSize:c||10}):{}}},{key:"getSortOrderColumns",value:function(e){return P(e||(this.state||{}).columns||[],function(e){return"sortOrder"in e})}},{key:"getDefaultFilters",value:function(e){var t=uc(this.state,e),c=P(e||[],function(e){return"undefined"!==typeof e.defaultFilteredValue}),n=c.reduce(function(e,t){var c=cc(t);return e[c]=t.defaultFilteredValue,e},{});return Zt(Zt({},n),t)}},{key:"getDefaultSortOrder",value:function(e){var t=this.getSortStateFromColumns(e),c=P(e||[],function(e){return null!=e.defaultSortOrder})[0];return c&&!t.sortColumn?{sortColumn:c,sortOrder:c.defaultSortOrder}:t}},{key:"getSortStateFromColumns",value:function(e){var t=this.getSortOrderColumns(e).filter(function(e){return e.sortOrder})[0];return t?{sortColumn:t,sortOrder:t.sortOrder}:{sortColumn:null,sortOrder:null}}},{key:"getMaxCurrent",value:function(e){var t=this.state.pagination,c=t.current,n=t.pageSize;return(c-1)*n>=e?Math.floor((e-1)/n)+1:c}},{key:"getSorterFn",value:function(e){var t=e||this.state,c=t.sortOrder,n=t.sortColumn;if(c&&n&&"function"===typeof n.sorter)return function(e,t){var r=n.sorter(e,t,c);return 0!==r?"descend"===c?-r:r:0}}},{key:"getCurrentPageData",value:function(){var e,t,c=this.getLocalData(),n=this.state;return this.hasPagination()?(t=n.pagination.pageSize,e=this.getMaxCurrent(n.pagination.total||c.length)):(t=Number.MAX_VALUE,e=1),(c.length>t||t===Number.MAX_VALUE)&&(c=c.slice((e-1)*t,e*t)),c}},{key:"getFlatData",value:function(){var e=this.props.childrenColumnName;return x(this.getLocalData(null,!1),e)}},{key:"getFlatCurrentPageData",value:function(){var e=this.props.childrenColumnName;return x(this.getCurrentPageData(),e)}},{key:"getLocalData",value:function(e){var t=this,c=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=e||this.state,r=this.props.dataSource,o=r||[];o=o.slice(0);var a=this.getSorterFn(n);return a&&(o=this.recursiveSort(o,a)),c&&n.filters&&Object.keys(n.filters).forEach(function(e){var c=t.findColumn(e);if(c){var r=n.filters[e]||[];if(0!==r.length){var a=c.onFilter;o=a?o.filter(function(e){return r.some(function(t){return a(t,e)})}):o}}}),o}},{key:"setSelectedRowKeys",value:function(e,t){var c=this,n=t.selectWay,r=t.record,o=t.checked,a=t.changeRowKeys,l=t.nativeEvent,i=tc(this.props);!i||"selectedRowKeys"in i||this.props.store.setState({selectedRowKeys:e});var u=this.getFlatData();if(i.onChange||i[n]){var s=u.filter(function(t,n){return e.indexOf(c.getRecordKey(t,n))>=0});if(i.onChange&&i.onChange(e,s),"onSelect"===n&&i.onSelect)i.onSelect(r,o,s,l);else if("onSelectMultiple"===n&&i.onSelectMultiple){var h=u.filter(function(e,t){return a.indexOf(c.getRecordKey(e,t))>=0});i.onSelectMultiple(o,s,h)}else if("onSelectAll"===n&&i.onSelectAll){var f=u.filter(function(e,t){return a.indexOf(c.getRecordKey(e,t))>=0});i.onSelectAll(o,s,f)}else"onSelectInvert"===n&&i.onSelectInvert&&i.onSelectInvert(e)}}},{key:"toggleSortOrder",value:function(e){var t,c=e.sortDirections||this.props.sortDirections,n=this.state,r=n.sortOrder,o=n.sortColumn;if(nc(o,e)&&void 0!==r){var a=c.indexOf(r)+1;t=a===c.length?void 0:c[a]}else t=c[0];var l={sortOrder:t,sortColumn:t?e:null};0===this.getSortOrderColumns().length&&this.setState(l,this.scrollToFirstRow);var i=this.props.onChange;i&&i.apply(null,this.prepareParamsArguments(Zt(Zt({},this.state),l),e))}},{key:"hasPagination",value:function(e){return!1!==(e||this.props).pagination}},{key:"isSortColumn",value:function(e){var t=this.state.sortColumn;return!(!e||!t)&&cc(t)===cc(e)}},{key:"prepareParamsArguments",value:function(e,t){var c=Zt({},e.pagination);delete c.onChange,delete c.onShowSizeChange;var n=e.filters,r={},o=t;e.sortColumn&&e.sortOrder&&(o=e.sortColumn,r.column=e.sortColumn,r.order=e.sortOrder),o&&(r.field=o.dataIndex,r.columnKey=cc(o));var a={currentDataSource:this.getLocalData(e)};return[c,n,r,a]}},{key:"findColumn",value:function(e){var t;return E(this.state.columns,function(c){cc(c)===e&&(t=c)}),t}},{key:"recursiveSort",value:function(e,t){var c=this,n=this.props.childrenColumnName,r=void 0===n?"children":n;return e.sort(t).map(function(e){return e[r]?Zt(Zt({},e),It({},r,c.recursiveSort(e[r],t))):e})}},{key:"renderPagination",value:function(e,t){if(!this.hasPagination())return null;var c="default",r=this.state.pagination;r.size?c=r.size:"middle"!==this.props.size&&"small"!==this.props.size||(c="small");var o=r.position||"bottom",a=r.total||this.getLocalData().length;return a>0&&(o===t||"both"===o)?n["createElement"](dt["a"],Zt({key:"pagination-".concat(t)},r,{className:u()(r.className,"".concat(e,"-pagination")),onChange:this.handlePageChange,total:a,size:c,current:this.getMaxCurrent(a),onShowSizeChange:this.handleShowSizeChange})):null}},{key:"renderRowSelection",value:function(e){var t=this,c=e.prefixCls,r=e.locale,a=e.getPopupContainer,l=this.props.rowSelection,i=this.state.columns.concat();if(l){var s=this.getFlatCurrentPageData().filter(function(e,c){return!l.getCheckboxProps||!t.getCheckboxPropsByItem(e,c).disabled}),h=u()("".concat(c,"-selection-column"),It({},"".concat(c,"-selection-column-custom"),l.selections)),f=It({key:"selection-column",render:this.renderSelectionBox(l.type),className:h,fixed:l.fixed,width:l.columnWidth,title:l.columnTitle},o["INTERNAL_COL_DEFINE"],{className:"".concat(c,"-selection-col")});if("radio"!==l.type){var p=s.every(function(e,c){return t.getCheckboxPropsByItem(e,c).disabled});f.title=f.title||n["createElement"](xe,{store:this.props.store,locale:r,data:s,getCheckboxPropsByItem:this.getCheckboxPropsByItem,getRecordKey:this.getRecordKey,disabled:p,prefixCls:c,onSelect:this.handleSelectRow,selections:l.selections,hideDefaultSelections:l.hideDefaultSelections,getPopupContainer:this.generatePopupContainerFunc(a)})}"fixed"in l?f.fixed=l.fixed:i.some(function(e){return"left"===e.fixed||!0===e.fixed})&&(f.fixed="left"),i[0]&&"selection-column"===i[0].key?i[0]=f:i.unshift(f)}return i}},{key:"renderColumnsDropdown",value:function(e){var t=this,c=e.prefixCls,r=e.dropdownPrefixCls,o=e.columns,a=e.locale,l=e.getPopupContainer,i=this.state,s=i.sortOrder,h=i.filters;return E(o,function(e,o){var i,f,p,v=cc(e,o),m=e.onHeaderCell,d=t.isSortColumn(e);if(e.filters&&e.filters.length>0||e.filterDropdown){var y=v in h?h[v]:[];f=n["createElement"](Q,{locale:a,column:e,selectedKeys:y,confirmFilter:t.handleFilter,prefixCls:"".concat(c,"-filter"),dropdownPrefixCls:r||"ant-dropdown",getPopupContainer:t.generatePopupContainerFunc(l),key:"filter-dropdown"})}if(e.sorter){var z=e.sortDirections||t.props.sortDirections,g=d&&"ascend"===s,M=d&&"descend"===s,C=-1!==z.indexOf("ascend")&&n["createElement"](b["a"],{className:"".concat(c,"-column-sorter-up ").concat(g?"on":"off"),type:"caret-up",theme:"filled"}),H=-1!==z.indexOf("descend")&&n["createElement"](b["a"],{className:"".concat(c,"-column-sorter-down ").concat(M?"on":"off"),type:"caret-down",theme:"filled"});p=n["createElement"]("div",{title:a.sortTitle,className:u()("".concat(c,"-column-sorter-inner"),C&&H&&"".concat(c,"-column-sorter-inner-full")),key:"sorter"},C,H),m=function(c){var n={};e.onHeaderCell&&(n=Zt({},e.onHeaderCell(c)));var r=n.onClick;return n.onClick=function(){t.toggleSortOrder(e),r&&r.apply(void 0,arguments)},n}}return Zt(Zt({},e),{className:u()(e.className,(i={},It(i,"".concat(c,"-column-has-actions"),p||f),It(i,"".concat(c,"-column-has-filters"),f),It(i,"".concat(c,"-column-has-sorters"),p),It(i,"".concat(c,"-column-sort"),d&&s),i)),title:[n["createElement"]("span",{key:"title",className:"".concat(c,"-header-column")},n["createElement"]("div",{className:p?"".concat(c,"-column-sorters"):void 0},n["createElement"]("span",{className:"".concat(c,"-column-title")},t.renderColumnTitle(e.title)),n["createElement"]("span",{className:"".concat(c,"-column-sorter")},p))),f],onHeaderCell:m})})}},{key:"renderColumnTitle",value:function(e){var t=this.state,c=t.filters,n=t.sortOrder,r=t.sortColumn;return e instanceof Function?e({filters:c,sortOrder:n,sortColumn:r}):e}},{key:"render",value:function(){return n["createElement"](_t["a"],null,this.renderComponent)}}],[{key:"getDerivedStateFromProps",value:function(e,t){var c=t.prevProps,n=e.columns||T(e.children),r=Zt(Zt({},t),{prevProps:e,columns:n});if("pagination"in e||"pagination"in c){var o=Zt(Zt(Zt({},rc),t.pagination),e.pagination);o.current=o.current||1,o.pageSize=o.pageSize||10,r=Zt(Zt({},r),{pagination:!1!==e.pagination?o:oc})}e.rowSelection&&"selectedRowKeys"in e.rowSelection?e.store.setState({selectedRowKeys:e.rowSelection.selectedRowKeys||[]}):c.rowSelection&&!e.rowSelection&&e.store.setState({selectedRowKeys:[]}),"dataSource"in e&&e.dataSource!==c.dataSource&&e.store.setState({selectionDirty:!1}),e.setCheckboxPropsCache({});var a=ic(r,r.columns);if(a.length>0){var l=uc(r,r.columns),i=Zt({},r.filters);Object.keys(l).forEach(function(e){i[e]=l[e]}),sc(r,i)&&(r=Zt(Zt({},r),{filters:i}))}if(!lc(e.components,c.components)){var u=ac(e.components);r=Zt(Zt({},r),{components:u})}return r}}]),c}(n["Component"]);hc.propTypes={dataSource:l["array"],columns:l["array"],prefixCls:l["string"],useFixedHeader:l["bool"],rowSelection:l["object"],className:l["string"],size:l["string"],loading:l["oneOfType"]([l["bool"],l["object"]]),bordered:l["bool"],onChange:l["func"],locale:l["object"],dropdownPrefixCls:l["string"],sortDirections:l["array"],getPopupContainer:l["func"]},hc.defaultProps={dataSource:[],useFixedHeader:!1,className:"",size:"default",loading:!1,bordered:!1,indentSize:20,locale:{},rowKey:"key",showHeader:!0,sortDirections:["ascend","descend"],childrenColumnName:"children"},Object(f["polyfill"])(hc);var fc=function(e){Bt(c,e);var t=Wt(c);function c(e){var n;return Dt(this,c),n=t.call(this,e),n.setCheckboxPropsCache=function(e){return n.CheckboxPropsCache=e},n.CheckboxPropsCache={},n.store=Z({selectedRowKeys:tc(e).selectedRowKeys||[],selectionDirty:!1}),n}return Ut(c,[{key:"render",value:function(){return n["createElement"](hc,Zt({},this.props,{store:this.store,checkboxPropsCache:this.CheckboxPropsCache,setCheckboxPropsCache:this.setCheckboxPropsCache}))}}]),c}(n["Component"]);fc.displayName="withStore(Table)",fc.Column=Ie,fc.ColumnGroup=Xe;var pc=fc;t["a"]=pc},"wEI+":function(e,t,c){"use strict";var n=c("q1tI"),r=c("17x9"),o=c("wd/R"),a=c("veqR"),l=c("ul5b"),i=c("6CfX");function u(e){"@babel/helpers - typeof";return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function s(){return s=Object.assign||function(e){for(var t=1;t*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon[tabindex]{cursor:pointer}.anticon-spin:before{display:inline-block;animation:loadingCircle 1s linear infinite}.anticon-spin{display:inline-block;animation:loadingCircle 1s linear infinite}.fade-appear,.fade-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.fade-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.fade-appear.fade-appear-active,.fade-enter.fade-enter-active{animation-name:antFadeIn;animation-play-state:running}.fade-leave.fade-leave-active{animation-name:antFadeOut;animation-play-state:running;pointer-events:none}.fade-appear,.fade-enter{opacity:0;animation-timing-function:linear}.fade-leave{animation-timing-function:linear}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.move-up-appear,.move-up-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.move-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.move-up-appear.move-up-appear-active,.move-up-enter.move-up-enter-active{animation-name:antMoveUpIn;animation-play-state:running}.move-up-leave.move-up-leave-active{animation-name:antMoveUpOut;animation-play-state:running;pointer-events:none}.move-up-appear,.move-up-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear,.move-down-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.move-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.move-down-appear.move-down-appear-active,.move-down-enter.move-down-enter-active{animation-name:antMoveDownIn;animation-play-state:running}.move-down-leave.move-down-leave-active{animation-name:antMoveDownOut;animation-play-state:running;pointer-events:none}.move-down-appear,.move-down-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear,.move-left-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.move-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.move-left-appear.move-left-appear-active,.move-left-enter.move-left-enter-active{animation-name:antMoveLeftIn;animation-play-state:running}.move-left-leave.move-left-leave-active{animation-name:antMoveLeftOut;animation-play-state:running;pointer-events:none}.move-left-appear,.move-left-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear,.move-right-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.move-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.move-right-appear.move-right-appear-active,.move-right-enter.move-right-enter-active{animation-name:antMoveRightIn;animation-play-state:running}.move-right-leave.move-right-leave-active{animation-name:antMoveRightOut;animation-play-state:running;pointer-events:none}.move-right-appear,.move-right-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@keyframes antMoveDownIn{0%{transform:translateY(100%);transform-origin:0 0;opacity:0}to{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes antMoveDownOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}to{transform:translateY(100%);transform-origin:0 0;opacity:0}}@keyframes antMoveLeftIn{0%{transform:translateX(-100%);transform-origin:0 0;opacity:0}to{transform:translateX(0);transform-origin:0 0;opacity:1}}@keyframes antMoveLeftOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}to{transform:translateX(-100%);transform-origin:0 0;opacity:0}}@keyframes antMoveRightIn{0%{transform:translateX(100%);transform-origin:0 0;opacity:0}to{transform:translateX(0);transform-origin:0 0;opacity:1}}@keyframes antMoveRightOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}to{transform:translateX(100%);transform-origin:0 0;opacity:0}}@keyframes antMoveUpIn{0%{transform:translateY(-100%);transform-origin:0 0;opacity:0}to{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes antMoveUpOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}to{transform:translateY(-100%);transform-origin:0 0;opacity:0}}@keyframes loadingCircle{to{transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#1890ff}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation-fill-mode:forwards;content:"";pointer-events:none}@keyframes waveEffect{to{box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes fadeEffect{to{opacity:0}}.slide-up-appear,.slide-up-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.slide-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.slide-up-appear.slide-up-appear-active,.slide-up-enter.slide-up-enter-active{animation-name:antSlideUpIn;animation-play-state:running}.slide-up-leave.slide-up-leave-active{animation-name:antSlideUpOut;animation-play-state:running;pointer-events:none}.slide-up-appear,.slide-up-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear,.slide-down-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.slide-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.slide-down-appear.slide-down-appear-active,.slide-down-enter.slide-down-enter-active{animation-name:antSlideDownIn;animation-play-state:running}.slide-down-leave.slide-down-leave-active{animation-name:antSlideDownOut;animation-play-state:running;pointer-events:none}.slide-down-appear,.slide-down-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear,.slide-left-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.slide-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.slide-left-appear.slide-left-appear-active,.slide-left-enter.slide-left-enter-active{animation-name:antSlideLeftIn;animation-play-state:running}.slide-left-leave.slide-left-leave-active{animation-name:antSlideLeftOut;animation-play-state:running;pointer-events:none}.slide-left-appear,.slide-left-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear,.slide-right-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.slide-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.slide-right-appear.slide-right-appear-active,.slide-right-enter.slide-right-enter-active{animation-name:antSlideRightIn;animation-play-state:running}.slide-right-leave.slide-right-leave-active{animation-name:antSlideRightOut;animation-play-state:running;pointer-events:none}.slide-right-appear,.slide-right-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes antSlideUpIn{0%{transform:scaleY(.8);transform-origin:0 0;opacity:0}to{transform:scaleY(1);transform-origin:0 0;opacity:1}}@keyframes antSlideUpOut{0%{transform:scaleY(1);transform-origin:0 0;opacity:1}to{transform:scaleY(.8);transform-origin:0 0;opacity:0}}@keyframes antSlideDownIn{0%{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}to{transform:scaleY(1);transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownOut{0%{transform:scaleY(1);transform-origin:100% 100%;opacity:1}to{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}}@keyframes antSlideLeftIn{0%{transform:scaleX(.8);transform-origin:0 0;opacity:0}to{transform:scaleX(1);transform-origin:0 0;opacity:1}}@keyframes antSlideLeftOut{0%{transform:scaleX(1);transform-origin:0 0;opacity:1}to{transform:scaleX(.8);transform-origin:0 0;opacity:0}}@keyframes antSlideRightIn{0%{transform:scaleX(.8);transform-origin:100% 0;opacity:0}to{transform:scaleX(1);transform-origin:100% 0;opacity:1}}@keyframes antSlideRightOut{0%{transform:scaleX(1);transform-origin:100% 0;opacity:1}to{transform:scaleX(.8);transform-origin:100% 0;opacity:0}}.swing-appear,.swing-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.swing-appear.swing-appear-active,.swing-enter.swing-enter-active{animation-name:antSwingIn;animation-play-state:running}@keyframes antSwingIn{0%,to{transform:translateX(0)}20%{transform:translateX(-10px)}40%{transform:translateX(10px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}.zoom-appear,.zoom-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-appear.zoom-appear-active,.zoom-enter.zoom-enter-active{animation-name:antZoomIn;animation-play-state:running}.zoom-leave.zoom-leave-active{animation-name:antZoomOut;animation-play-state:running;pointer-events:none}.zoom-appear,.zoom-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear,.zoom-big-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-big-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active,.zoom-big-enter.zoom-big-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.zoom-big-appear,.zoom-big-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear,.zoom-big-fast-enter{animation-duration:.1s;animation-fill-mode:both;animation-play-state:paused}.zoom-big-fast-leave{animation-duration:.1s;animation-fill-mode:both;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active,.zoom-big-fast-enter.zoom-big-fast-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear,.zoom-big-fast-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear,.zoom-up-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active,.zoom-up-enter.zoom-up-enter-active{animation-name:antZoomUpIn;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active{animation-name:antZoomUpOut;animation-play-state:running;pointer-events:none}.zoom-up-appear,.zoom-up-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear,.zoom-down-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active,.zoom-down-enter.zoom-down-enter-active{animation-name:antZoomDownIn;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active{animation-name:antZoomDownOut;animation-play-state:running;pointer-events:none}.zoom-down-appear,.zoom-down-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear,.zoom-left-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active,.zoom-left-enter.zoom-left-enter-active{animation-name:antZoomLeftIn;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active{animation-name:antZoomLeftOut;animation-play-state:running;pointer-events:none}.zoom-left-appear,.zoom-left-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear,.zoom-right-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active,.zoom-right-enter.zoom-right-enter-active{animation-name:antZoomRightIn;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active{animation-name:antZoomRightOut;animation-play-state:running;pointer-events:none}.zoom-right-appear,.zoom-right-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@keyframes antZoomIn{0%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}@keyframes antZoomOut{0%{transform:scale(1)}to{transform:scale(.2);opacity:0}}@keyframes antZoomBigIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes antZoomBigOut{0%{transform:scale(1)}to{transform:scale(.8);opacity:0}}@keyframes antZoomUpIn{0%{transform:scale(.8);transform-origin:50% 0;opacity:0}to{transform:scale(1);transform-origin:50% 0}}@keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}to{transform:scale(.8);transform-origin:50% 0;opacity:0}}@keyframes antZoomLeftIn{0%{transform:scale(.8);transform-origin:0 50%;opacity:0}to{transform:scale(1);transform-origin:0 50%}}@keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}to{transform:scale(.8);transform-origin:0 50%;opacity:0}}@keyframes antZoomRightIn{0%{transform:scale(.8);transform-origin:100% 50%;opacity:0}to{transform:scale(1);transform-origin:100% 50%}}@keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}to{transform:scale(.8);transform-origin:100% 50%;opacity:0}}@keyframes antZoomDownIn{0%{transform:scale(.8);transform-origin:50% 100%;opacity:0}to{transform:scale(1);transform-origin:50% 100%}}@keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}to{transform:scale(.8);transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse-legacy-active{transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important} -.ant-notification{box-sizing:border-box;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:fixed;z-index:1010;width:384px;max-width:calc(100vw - 32px);margin:0 24px 0 0}.ant-notification-bottomLeft,.ant-notification-topLeft{margin-right:0;margin-left:24px}.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationLeftFadeIn}.ant-notification-close-icon{font-size:14px;cursor:pointer}.ant-notification-notice{position:relative;margin-bottom:16px;padding:16px 24px;overflow:hidden;line-height:1.5;background:#fff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15)}.ant-notification-notice-message{display:inline-block;margin-bottom:8px;color:rgba(0,0,0,.85);font-size:16px;line-height:24px}.ant-notification-notice-message-single-line-auto-margin{display:block;width:calc(264px - 100%);max-width:4px;background-color:transparent;pointer-events:none}.ant-notification-notice-message-single-line-auto-margin:before{display:block;content:""}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-closable .ant-notification-notice-message{padding-right:24px}.ant-notification-notice-with-icon .ant-notification-notice-message{margin-bottom:4px;margin-left:48px;font-size:16px}.ant-notification-notice-with-icon .ant-notification-notice-description{margin-left:48px;font-size:14px}.ant-notification-notice-icon{position:absolute;margin-left:4px;font-size:24px;line-height:24px}.anticon.ant-notification-notice-icon-success{color:#52c41a}.anticon.ant-notification-notice-icon-info{color:#1890ff}.anticon.ant-notification-notice-icon-warning{color:#faad14}.anticon.ant-notification-notice-icon-error{color:#f5222d}.ant-notification-notice-close{position:absolute;top:16px;right:22px;color:rgba(0,0,0,.45);outline:none}.ant-notification-notice-close:hover{color:rgba(0,0,0,.67)}.ant-notification-notice-btn{float:right;margin-top:16px}.ant-notification .notification-fade-effect{animation-duration:.24s;animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-fill-mode:both}.ant-notification-fade-appear,.ant-notification-fade-enter{opacity:0;animation-duration:.24s;animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-fill-mode:both;animation-play-state:paused}.ant-notification-fade-leave{animation-duration:.24s;animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-fill-mode:both;animation-duration:.2s;animation-play-state:paused}.ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationFadeIn;animation-play-state:running}.ant-notification-fade-leave.ant-notification-fade-leave-active{animation-name:NotificationFadeOut;animation-play-state:running}@keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@keyframes NotificationLeftFadeIn{0%{right:384px;opacity:0}to{right:0;opacity:1}}@keyframes NotificationFadeOut{0%{max-height:150px;margin-bottom:16px;padding-top:16px 24px;padding-bottom:16px 24px;opacity:1}to{max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;opacity:0}} -.ant-message{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:fixed;top:16px;left:0;z-index:1010;width:100%;pointer-events:none}.ant-message-notice{padding:8px;text-align:center}.ant-message-notice:first-child{margin-top:-8px}.ant-message-notice-content{display:inline-block;padding:10px 16px;background:#fff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15);pointer-events:all}.ant-message-success .anticon{color:#52c41a}.ant-message-error .anticon{color:#f5222d}.ant-message-warning .anticon{color:#faad14}.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}.ant-message .anticon{position:relative;top:1px;margin-right:8px;font-size:16px}.ant-message-notice.move-up-leave.move-up-leave-active{overflow:hidden;animation-name:MessageMoveOut;animation-duration:.3s}@keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}to{max-height:0;padding:0;opacity:0}} -.ant-modal{box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;top:100px;width:auto;margin:0 auto;padding:0 0 24px;pointer-events:none}.ant-modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;overflow:auto;outline:0;-webkit-overflow-scrolling:touch}.ant-modal-title{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:22px;word-wrap:break-word}.ant-modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:0;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15);pointer-events:auto}.ant-modal-close{position:absolute;top:0;right:0;z-index:10;padding:0;color:rgba(0,0,0,.45);font-weight:700;line-height:1;text-decoration:none;background:transparent;border:0;outline:0;cursor:pointer;transition:color .3s}.ant-modal-close-x{display:block;width:56px;height:56px;font-size:16px;font-style:normal;line-height:56px;text-align:center;text-transform:none;text-rendering:auto}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-modal-header{padding:16px 24px;color:rgba(0,0,0,.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-modal-body{padding:24px;font-size:14px;line-height:1.5;word-wrap:break-word}.ant-modal-footer{padding:10px 16px;text-align:right;background:transparent;border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-modal-footer button+button{margin-bottom:0;margin-left:8px}.ant-modal.zoom-appear,.ant-modal.zoom-enter{transform:none;opacity:0;animation-duration:.3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100%;background-color:rgba(0,0,0,.45);filter:alpha(opacity=50)}.ant-modal-mask-hidden{display:none}.ant-modal-open{overflow:hidden}.ant-modal-centered{text-align:center}.ant-modal-centered:before{display:inline-block;width:0;height:100%;vertical-align:middle;content:""}.ant-modal-centered .ant-modal{top:0;display:inline-block;text-align:left;vertical-align:middle}@media (max-width:767px){.ant-modal{max-width:calc(100vw - 16px);margin:8px auto}.ant-modal-centered .ant-modal{flex:1 1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm .ant-modal-close{display:none}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper{zoom:1}.ant-modal-confirm-body-wrapper:after,.ant-modal-confirm-body-wrapper:before{display:table;content:""}.ant-modal-confirm-body-wrapper:after{clear:both}.ant-modal-confirm-body .ant-modal-confirm-title{display:block;overflow:hidden;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:1.4}.ant-modal-confirm-body .ant-modal-confirm-content{margin-top:8px;color:rgba(0,0,0,.65);font-size:14px}.ant-modal-confirm-body>.anticon{float:left;margin-right:16px;font-size:22px}.ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:38px}.ant-modal-confirm .ant-modal-confirm-btns{float:right;margin-top:24px}.ant-modal-confirm .ant-modal-confirm-btns button+button{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#f5222d}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a} -.ant-btn{line-height:1.499;position:relative;display:inline-block;font-weight:400;white-space:nowrap;text-align:center;background-image:none;box-shadow:0 2px 0 rgba(0,0,0,.015);cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:manipulation;height:32px;padding:0 15px;font-size:14px;border-radius:4px;color:rgba(0,0,0,.65);background-color:#fff;border:1px solid #d9d9d9}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn:not([disabled]):hover{text-decoration:none}.ant-btn:not([disabled]):active{outline:0;box-shadow:none}.ant-btn.disabled,.ant-btn[disabled]{cursor:not-allowed}.ant-btn.disabled>*,.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{height:40px;padding:0 15px;font-size:16px;border-radius:4px}.ant-btn-sm{height:24px;padding:0 7px;font-size:14px;border-radius:4px}.ant-btn>a:only-child{color:currentColor}.ant-btn>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn:focus,.ant-btn:hover{color:#40a9ff;background-color:#fff;border-color:#40a9ff}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentColor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn.active,.ant-btn:active{color:#096dd9;background-color:#fff;border-color:#096dd9}.ant-btn.active>a:only-child,.ant-btn:active>a:only-child{color:currentColor}.ant-btn.active>a:only-child:after,.ant-btn:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-disabled,.ant-btn-disabled.active,.ant-btn-disabled:active,.ant-btn-disabled:focus,.ant-btn-disabled:hover,.ant-btn.disabled,.ant-btn.disabled.active,.ant-btn.disabled:active,.ant-btn.disabled:focus,.ant-btn.disabled:hover,.ant-btn[disabled],.ant-btn[disabled].active,.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-disabled.active>a:only-child,.ant-btn-disabled:active>a:only-child,.ant-btn-disabled:focus>a:only-child,.ant-btn-disabled:hover>a:only-child,.ant-btn-disabled>a:only-child,.ant-btn.disabled.active>a:only-child,.ant-btn.disabled:active>a:only-child,.ant-btn.disabled:focus>a:only-child,.ant-btn.disabled:hover>a:only-child,.ant-btn.disabled>a:only-child,.ant-btn[disabled].active>a:only-child,.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentColor}.ant-btn-disabled.active>a:only-child:after,.ant-btn-disabled:active>a:only-child:after,.ant-btn-disabled:focus>a:only-child:after,.ant-btn-disabled:hover>a:only-child:after,.ant-btn-disabled>a:only-child:after,.ant-btn.disabled.active>a:only-child:after,.ant-btn.disabled:active>a:only-child:after,.ant-btn.disabled:focus>a:only-child:after,.ant-btn.disabled:hover>a:only-child:after,.ant-btn.disabled>a:only-child:after,.ant-btn[disabled].active>a:only-child:after,.ant-btn[disabled]:active>a:only-child:after,.ant-btn[disabled]:focus>a:only-child:after,.ant-btn[disabled]:hover>a:only-child:after,.ant-btn[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn.active,.ant-btn:active,.ant-btn:focus,.ant-btn:hover{text-decoration:none;background:#fff}.ant-btn>i,.ant-btn>span{display:inline-block;transition:margin-left .3s cubic-bezier(.645,.045,.355,1);pointer-events:none}.ant-btn-primary{color:#fff;background-color:#1890ff;border-color:#1890ff;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary:focus,.ant-btn-primary:hover{color:#fff;background-color:#40a9ff;border-color:#40a9ff}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-primary:focus>a:only-child:after,.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary.active,.ant-btn-primary:active{color:#fff;background-color:#096dd9;border-color:#096dd9}.ant-btn-primary.active>a:only-child,.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-primary.active>a:only-child:after,.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary-disabled,.ant-btn-primary-disabled.active,.ant-btn-primary-disabled:active,.ant-btn-primary-disabled:focus,.ant-btn-primary-disabled:hover,.ant-btn-primary.disabled,.ant-btn-primary.disabled.active,.ant-btn-primary.disabled:active,.ant-btn-primary.disabled:focus,.ant-btn-primary.disabled:hover,.ant-btn-primary[disabled],.ant-btn-primary[disabled].active,.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-primary-disabled.active>a:only-child,.ant-btn-primary-disabled:active>a:only-child,.ant-btn-primary-disabled:focus>a:only-child,.ant-btn-primary-disabled:hover>a:only-child,.ant-btn-primary-disabled>a:only-child,.ant-btn-primary.disabled.active>a:only-child,.ant-btn-primary.disabled:active>a:only-child,.ant-btn-primary.disabled:focus>a:only-child,.ant-btn-primary.disabled:hover>a:only-child,.ant-btn-primary.disabled>a:only-child,.ant-btn-primary[disabled].active>a:only-child,.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-primary-disabled.active>a:only-child:after,.ant-btn-primary-disabled:active>a:only-child:after,.ant-btn-primary-disabled:focus>a:only-child:after,.ant-btn-primary-disabled:hover>a:only-child:after,.ant-btn-primary-disabled>a:only-child:after,.ant-btn-primary.disabled.active>a:only-child:after,.ant-btn-primary.disabled:active>a:only-child:after,.ant-btn-primary.disabled:focus>a:only-child:after,.ant-btn-primary.disabled:hover>a:only-child:after,.ant-btn-primary.disabled>a:only-child:after,.ant-btn-primary[disabled].active>a:only-child:after,.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:rgba(0,0,0,.65);background-color:transparent;border-color:#d9d9d9}.ant-btn-ghost>a:only-child{color:currentColor}.ant-btn-ghost>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;background-color:transparent;border-color:#40a9ff}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentColor}.ant-btn-ghost:focus>a:only-child:after,.ant-btn-ghost:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost.active,.ant-btn-ghost:active{color:#096dd9;background-color:transparent;border-color:#096dd9}.ant-btn-ghost.active>a:only-child,.ant-btn-ghost:active>a:only-child{color:currentColor}.ant-btn-ghost.active>a:only-child:after,.ant-btn-ghost:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost-disabled,.ant-btn-ghost-disabled.active,.ant-btn-ghost-disabled:active,.ant-btn-ghost-disabled:focus,.ant-btn-ghost-disabled:hover,.ant-btn-ghost.disabled,.ant-btn-ghost.disabled.active,.ant-btn-ghost.disabled:active,.ant-btn-ghost.disabled:focus,.ant-btn-ghost.disabled:hover,.ant-btn-ghost[disabled],.ant-btn-ghost[disabled].active,.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-ghost-disabled.active>a:only-child,.ant-btn-ghost-disabled:active>a:only-child,.ant-btn-ghost-disabled:focus>a:only-child,.ant-btn-ghost-disabled:hover>a:only-child,.ant-btn-ghost-disabled>a:only-child,.ant-btn-ghost.disabled.active>a:only-child,.ant-btn-ghost.disabled:active>a:only-child,.ant-btn-ghost.disabled:focus>a:only-child,.ant-btn-ghost.disabled:hover>a:only-child,.ant-btn-ghost.disabled>a:only-child,.ant-btn-ghost[disabled].active>a:only-child,.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentColor}.ant-btn-ghost-disabled.active>a:only-child:after,.ant-btn-ghost-disabled:active>a:only-child:after,.ant-btn-ghost-disabled:focus>a:only-child:after,.ant-btn-ghost-disabled:hover>a:only-child:after,.ant-btn-ghost-disabled>a:only-child:after,.ant-btn-ghost.disabled.active>a:only-child:after,.ant-btn-ghost.disabled:active>a:only-child:after,.ant-btn-ghost.disabled:focus>a:only-child:after,.ant-btn-ghost.disabled:hover>a:only-child:after,.ant-btn-ghost.disabled>a:only-child:after,.ant-btn-ghost[disabled].active>a:only-child:after,.ant-btn-ghost[disabled]:active>a:only-child:after,.ant-btn-ghost[disabled]:focus>a:only-child:after,.ant-btn-ghost[disabled]:hover>a:only-child:after,.ant-btn-ghost[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed{color:rgba(0,0,0,.65);background-color:#fff;border-color:#d9d9d9;border-style:dashed}.ant-btn-dashed>a:only-child{color:currentColor}.ant-btn-dashed>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;background-color:#fff;border-color:#40a9ff}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentColor}.ant-btn-dashed:focus>a:only-child:after,.ant-btn-dashed:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed.active,.ant-btn-dashed:active{color:#096dd9;background-color:#fff;border-color:#096dd9}.ant-btn-dashed.active>a:only-child,.ant-btn-dashed:active>a:only-child{color:currentColor}.ant-btn-dashed.active>a:only-child:after,.ant-btn-dashed:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed-disabled,.ant-btn-dashed-disabled.active,.ant-btn-dashed-disabled:active,.ant-btn-dashed-disabled:focus,.ant-btn-dashed-disabled:hover,.ant-btn-dashed.disabled,.ant-btn-dashed.disabled.active,.ant-btn-dashed.disabled:active,.ant-btn-dashed.disabled:focus,.ant-btn-dashed.disabled:hover,.ant-btn-dashed[disabled],.ant-btn-dashed[disabled].active,.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-dashed-disabled.active>a:only-child,.ant-btn-dashed-disabled:active>a:only-child,.ant-btn-dashed-disabled:focus>a:only-child,.ant-btn-dashed-disabled:hover>a:only-child,.ant-btn-dashed-disabled>a:only-child,.ant-btn-dashed.disabled.active>a:only-child,.ant-btn-dashed.disabled:active>a:only-child,.ant-btn-dashed.disabled:focus>a:only-child,.ant-btn-dashed.disabled:hover>a:only-child,.ant-btn-dashed.disabled>a:only-child,.ant-btn-dashed[disabled].active>a:only-child,.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentColor}.ant-btn-dashed-disabled.active>a:only-child:after,.ant-btn-dashed-disabled:active>a:only-child:after,.ant-btn-dashed-disabled:focus>a:only-child:after,.ant-btn-dashed-disabled:hover>a:only-child:after,.ant-btn-dashed-disabled>a:only-child:after,.ant-btn-dashed.disabled.active>a:only-child:after,.ant-btn-dashed.disabled:active>a:only-child:after,.ant-btn-dashed.disabled:focus>a:only-child:after,.ant-btn-dashed.disabled:hover>a:only-child:after,.ant-btn-dashed.disabled>a:only-child:after,.ant-btn-dashed[disabled].active>a:only-child:after,.ant-btn-dashed[disabled]:active>a:only-child:after,.ant-btn-dashed[disabled]:focus>a:only-child:after,.ant-btn-dashed[disabled]:hover>a:only-child:after,.ant-btn-dashed[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger{color:#fff;background-color:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-danger>a:only-child{color:currentColor}.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger:focus,.ant-btn-danger:hover{color:#fff;background-color:#ff7875;border-color:#ff7875}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-danger:focus>a:only-child:after,.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger.active,.ant-btn-danger:active{color:#fff;background-color:#d9363e;border-color:#d9363e}.ant-btn-danger.active>a:only-child,.ant-btn-danger:active>a:only-child{color:currentColor}.ant-btn-danger.active>a:only-child:after,.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger-disabled,.ant-btn-danger-disabled.active,.ant-btn-danger-disabled:active,.ant-btn-danger-disabled:focus,.ant-btn-danger-disabled:hover,.ant-btn-danger.disabled,.ant-btn-danger.disabled.active,.ant-btn-danger.disabled:active,.ant-btn-danger.disabled:focus,.ant-btn-danger.disabled:hover,.ant-btn-danger[disabled],.ant-btn-danger[disabled].active,.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-danger-disabled.active>a:only-child,.ant-btn-danger-disabled:active>a:only-child,.ant-btn-danger-disabled:focus>a:only-child,.ant-btn-danger-disabled:hover>a:only-child,.ant-btn-danger-disabled>a:only-child,.ant-btn-danger.disabled.active>a:only-child,.ant-btn-danger.disabled:active>a:only-child,.ant-btn-danger.disabled:focus>a:only-child,.ant-btn-danger.disabled:hover>a:only-child,.ant-btn-danger.disabled>a:only-child,.ant-btn-danger[disabled].active>a:only-child,.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-danger-disabled.active>a:only-child:after,.ant-btn-danger-disabled:active>a:only-child:after,.ant-btn-danger-disabled:focus>a:only-child:after,.ant-btn-danger-disabled:hover>a:only-child:after,.ant-btn-danger-disabled>a:only-child:after,.ant-btn-danger.disabled.active>a:only-child:after,.ant-btn-danger.disabled:active>a:only-child:after,.ant-btn-danger.disabled:focus>a:only-child:after,.ant-btn-danger.disabled:hover>a:only-child:after,.ant-btn-danger.disabled>a:only-child:after,.ant-btn-danger[disabled].active>a:only-child:after,.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link{color:#1890ff;background-color:transparent;border-color:transparent;box-shadow:none}.ant-btn-link>a:only-child{color:currentColor}.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;background-color:transparent;border-color:#40a9ff}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-link:focus>a:only-child:after,.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link.active,.ant-btn-link:active{color:#096dd9;background-color:transparent;border-color:#096dd9}.ant-btn-link.active>a:only-child,.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-link.active>a:only-child:after,.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link-disabled,.ant-btn-link-disabled.active,.ant-btn-link-disabled:active,.ant-btn-link-disabled:focus,.ant-btn-link-disabled:hover,.ant-btn-link.disabled,.ant-btn-link.disabled.active,.ant-btn-link.disabled:active,.ant-btn-link.disabled:focus,.ant-btn-link.disabled:hover,.ant-btn-link[disabled],.ant-btn-link[disabled].active,.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link-disabled,.ant-btn-link-disabled.active,.ant-btn-link-disabled:active,.ant-btn-link-disabled:focus,.ant-btn-link-disabled:hover,.ant-btn-link.disabled,.ant-btn-link.disabled.active,.ant-btn-link.disabled:active,.ant-btn-link.disabled:focus,.ant-btn-link.disabled:hover,.ant-btn-link[disabled],.ant-btn-link[disabled].active,.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background-color:transparent;border-color:transparent;text-shadow:none;box-shadow:none}.ant-btn-link-disabled.active>a:only-child,.ant-btn-link-disabled:active>a:only-child,.ant-btn-link-disabled:focus>a:only-child,.ant-btn-link-disabled:hover>a:only-child,.ant-btn-link-disabled>a:only-child,.ant-btn-link.disabled.active>a:only-child,.ant-btn-link.disabled:active>a:only-child,.ant-btn-link.disabled:focus>a:only-child,.ant-btn-link.disabled:hover>a:only-child,.ant-btn-link.disabled>a:only-child,.ant-btn-link[disabled].active>a:only-child,.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-link-disabled.active>a:only-child:after,.ant-btn-link-disabled:active>a:only-child:after,.ant-btn-link-disabled:focus>a:only-child:after,.ant-btn-link-disabled:hover>a:only-child:after,.ant-btn-link-disabled>a:only-child:after,.ant-btn-link.disabled.active>a:only-child:after,.ant-btn-link.disabled:active>a:only-child:after,.ant-btn-link.disabled:focus>a:only-child:after,.ant-btn-link.disabled:hover>a:only-child:after,.ant-btn-link.disabled>a:only-child:after,.ant-btn-link[disabled].active>a:only-child:after,.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-icon-only{width:32px;height:32px;padding:0;font-size:16px;border-radius:4px}.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px;padding:0;font-size:18px;border-radius:4px}.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px;padding:0;font-size:14px;border-radius:4px}.ant-btn-icon-only>i{vertical-align:middle}.ant-btn-round{height:32px;padding:0 16px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-lg{height:40px;padding:0 20px;font-size:16px;border-radius:40px}.ant-btn-round.ant-btn-sm{height:24px;padding:0 12px;font-size:14px;border-radius:24px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle,.ant-btn-circle-outline{min-width:32px;padding-right:0;padding-left:0;text-align:center;border-radius:50%}.ant-btn-circle-outline.ant-btn-lg,.ant-btn-circle.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle-outline.ant-btn-sm,.ant-btn-circle.ant-btn-sm{min-width:24px;border-radius:50%}.ant-btn:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:1;display:none;background:#fff;border-radius:inherit;opacity:.35;transition:opacity .2s;content:"";pointer-events:none}.ant-btn .anticon{transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizeSpeed}.ant-btn.ant-btn-loading{position:relative}.ant-btn.ant-btn-loading:not([disabled]){pointer-events:none}.ant-btn.ant-btn-loading:before{display:block}.ant-btn.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only){padding-left:29px}.ant-btn.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only) .anticon:not(:last-child){margin-left:-14px}.ant-btn-sm.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only){padding-left:24px}.ant-btn-sm.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only) .anticon{margin-left:-17px}.ant-btn-group{position:relative;display:inline-block}.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn{position:relative}.ant-btn-group>.ant-btn.active,.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn.active,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{z-index:2}.ant-btn-group>.ant-btn:disabled,.ant-btn-group>span>.ant-btn:disabled{z-index:0}.ant-btn-group>.ant-btn-icon-only{font-size:14px}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{height:40px;padding:0 15px;font-size:16px;border-radius:0;line-height:38px}.ant-btn-group-lg>.ant-btn.ant-btn-icon-only{width:40px;height:40px;padding-right:0;padding-left:0}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{height:24px;padding:0 7px;font-size:14px;border-radius:0;line-height:22px}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group-sm>.ant-btn.ant-btn-icon-only{width:24px;height:24px;padding-right:0;padding-left:0}.ant-btn+.ant-btn-group,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group>span+span,.ant-btn-group span+.ant-btn{margin-left:-1px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.ant-btn-group>.ant-btn:only-child{border-radius:4px}.ant-btn-group>span:only-child>.ant-btn{border-radius:4px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-btn-group-sm>.ant-btn:only-child{border-radius:4px}.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:4px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-btn-group>.ant-btn-group{float:left}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{padding-right:8px;border-top-right-radius:0;border-bottom-right-radius:0}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{padding-left:8px;border-top-left-radius:0;border-bottom-left-radius:0}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn-background-ghost{color:#fff;background:transparent!important;border-color:#fff}.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;background-color:transparent;border-color:#1890ff;text-shadow:none}.ant-btn-background-ghost.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;background-color:transparent;border-color:#40a9ff}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary.active,.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;background-color:transparent;border-color:#096dd9}.ant-btn-background-ghost.ant-btn-primary.active>a:only-child,.ant-btn-background-ghost.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary-disabled,.ant-btn-background-ghost.ant-btn-primary-disabled.active,.ant-btn-background-ghost.ant-btn-primary-disabled:active,.ant-btn-background-ghost.ant-btn-primary-disabled:focus,.ant-btn-background-ghost.ant-btn-primary-disabled:hover,.ant-btn-background-ghost.ant-btn-primary.disabled,.ant-btn-background-ghost.ant-btn-primary.disabled.active,.ant-btn-background-ghost.ant-btn-primary.disabled:active,.ant-btn-background-ghost.ant-btn-primary.disabled:focus,.ant-btn-background-ghost.ant-btn-primary.disabled:hover,.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled].active,.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-primary-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;background-color:transparent;border-color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-danger>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{color:#ff7875;background-color:transparent;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger.active,.ant-btn-background-ghost.ant-btn-danger:active{color:#d9363e;background-color:transparent;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-danger.active>a:only-child,.ant-btn-background-ghost.ant-btn-danger:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger-disabled,.ant-btn-background-ghost.ant-btn-danger-disabled.active,.ant-btn-background-ghost.ant-btn-danger-disabled:active,.ant-btn-background-ghost.ant-btn-danger-disabled:focus,.ant-btn-background-ghost.ant-btn-danger-disabled:hover,.ant-btn-background-ghost.ant-btn-danger.disabled,.ant-btn-background-ghost.ant-btn-danger.disabled.active,.ant-btn-background-ghost.ant-btn-danger.disabled:active,.ant-btn-background-ghost.ant-btn-danger.disabled:focus,.ant-btn-background-ghost.ant-btn-danger.disabled:hover,.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled].active,.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-danger-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link{color:#1890ff;background-color:transparent;border-color:transparent;text-shadow:none;color:#fff}.ant-btn-background-ghost.ant-btn-link>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-link:hover{color:#40a9ff;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-link:active{color:#096dd9;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link.active>a:only-child,.ant-btn-background-ghost.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link-disabled,.ant-btn-background-ghost.ant-btn-link-disabled.active,.ant-btn-background-ghost.ant-btn-link-disabled:active,.ant-btn-background-ghost.ant-btn-link-disabled:focus,.ant-btn-background-ghost.ant-btn-link-disabled:hover,.ant-btn-background-ghost.ant-btn-link.disabled,.ant-btn-background-ghost.ant-btn-link.disabled.active,.ant-btn-background-ghost.ant-btn-link.disabled:active,.ant-btn-background-ghost.ant-btn-link.disabled:focus,.ant-btn-background-ghost.ant-btn-link.disabled:hover,.ant-btn-background-ghost.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-link[disabled].active,.ant-btn-background-ghost.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-link-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-two-chinese-chars:first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){margin-right:-.34em;letter-spacing:.34em}.ant-btn-block{width:100%}.ant-btn:empty{vertical-align:top}a.ant-btn{padding-top:.1px;line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px} -.ant-table-wrapper{zoom:1}.ant-table-wrapper:after,.ant-table-wrapper:before{display:table;content:""}.ant-table-wrapper:after{clear:both}.ant-table{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;clear:both}.ant-table-body{transition:opacity .3s}.ant-table-empty .ant-table-body{overflow-x:auto!important;overflow-y:hidden!important}.ant-table table{width:100%;text-align:left;border-radius:4px 4px 0 0;border-collapse:separate;border-spacing:0}.ant-table-layout-fixed table{table-layout:fixed}.ant-table-thead>tr>th{color:rgba(0,0,0,.85);font-weight:500;text-align:left;background:#fafafa;border-bottom:1px solid #e8e8e8;transition:background .3s ease}.ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-thead>tr>th .ant-table-filter-icon,.ant-table-thead>tr>th .anticon-filter{position:absolute;top:0;right:0;width:28px;height:100%;color:#bfbfbf;font-size:12px;text-align:center;cursor:pointer;transition:all .3s}.ant-table-thead>tr>th .ant-table-filter-icon>svg,.ant-table-thead>tr>th .anticon-filter>svg{position:absolute;top:50%;left:50%;margin-top:-5px;margin-left:-6px}.ant-table-thead>tr>th .ant-table-filter-selected.anticon{color:#1890ff}.ant-table-thead>tr>th .ant-table-column-sorter{display:table-cell;vertical-align:middle}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner{height:1em;margin-top:.35em;margin-left:.57142857em;color:#bfbfbf;line-height:1em;text-align:center;transition:all .3s}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up{display:inline-block;font-size:12px;font-size:11px\9;transform:scale(.91666667) rotate(0deg);display:block;height:1em;line-height:1em;transition:all .3s}:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down,:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up{font-size:12px}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on{color:#1890ff}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner-full{margin-top:-.15em}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner-full .ant-table-column-sorter-down,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner-full .ant-table-column-sorter-up{height:.5em;line-height:.5em}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner-full .ant-table-column-sorter-down{margin-top:.125em}.ant-table-thead>tr>th.ant-table-column-has-actions{position:relative;background-clip:padding-box;-webkit-background-clip:border-box}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters{padding-right:30px!important}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .ant-table-filter-icon.ant-table-filter-open,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .anticon-filter.ant-table-filter-open{color:rgba(0,0,0,.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:hover,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:hover{color:rgba(0,0,0,.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:active,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:active{color:rgba(0,0,0,.65)}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters{cursor:pointer}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .ant-table-filter-icon,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .anticon-filter{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-down:not(.on),.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-up:not(.on){color:rgba(0,0,0,.45)}.ant-table-thead>tr>th .ant-table-header-column{display:inline-block;max-width:100%;vertical-align:top}.ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters{display:table}.ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>.ant-table-column-title{display:table-cell;vertical-align:middle}.ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:relative}.ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters:before{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;transition:all .3s;content:""}.ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters:hover:before{background:rgba(0,0,0,.04)}.ant-table-thead>tr>th.ant-table-column-has-sorters{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-table-thead>tr:first-child>th:first-child{border-top-left-radius:4px}.ant-table-thead>tr:first-child>th:last-child{border-top-right-radius:4px}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #e8e8e8;transition:all .3s,border 0s}.ant-table-tbody>tr,.ant-table-thead>tr{transition:all .3s,height 0s}.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#e6f7ff}.ant-table-tbody>tr.ant-table-row-selected>td.ant-table-column-sort,.ant-table-thead>tr.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-tbody>tr:hover.ant-table-row-selected>td,.ant-table-thead>tr:hover.ant-table-row-selected>td{background:#fafafa}.ant-table-tbody>tr:hover.ant-table-row-selected>td.ant-table-column-sort,.ant-table-thead>tr:hover.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-thead>tr:hover{background:none}.ant-table-footer{position:relative;padding:16px;color:rgba(0,0,0,.85);background:#fafafa;border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-table-footer:before{position:absolute;top:-1px;left:0;width:100%;height:1px;background:#fafafa;content:""}.ant-table.ant-table-bordered .ant-table-footer{border:1px solid #e8e8e8}.ant-table-title{position:relative;top:1px;padding:16px 0;border-radius:4px 4px 0 0}.ant-table.ant-table-bordered .ant-table-title{padding-right:16px;padding-left:16px;border:1px solid #e8e8e8}.ant-table-title+.ant-table-content{position:relative;border-radius:4px 4px 0 0}.ant-table-bordered .ant-table-title+.ant-table-content,.ant-table-bordered .ant-table-title+.ant-table-content .ant-table-thead>tr:first-child>th,.ant-table-bordered .ant-table-title+.ant-table-content table{border-radius:0}.ant-table-without-column-header .ant-table-title+.ant-table-content,.ant-table-without-column-header table{border-radius:0}.ant-table-without-column-header.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-top:1px solid #e8e8e8;border-radius:4px}.ant-table-tbody>tr.ant-table-row-selected td{color:inherit;background:#fafafa}.ant-table-thead>tr>th.ant-table-column-sort{background:#f5f5f5}.ant-table-tbody>tr>td.ant-table-column-sort{background:rgba(0,0,0,.01)}.ant-table-tbody>tr>td,.ant-table-thead>tr>th{padding:16px;overflow-wrap:break-word}.ant-table-expand-icon-th,.ant-table-row-expand-icon-cell{width:50px;min-width:50px;text-align:center}.ant-table-header{overflow:hidden;background:#fafafa}.ant-table-header table{border-radius:4px 4px 0 0}.ant-table-loading{position:relative}.ant-table-loading .ant-table-body{background:#fff;opacity:.5}.ant-table-loading .ant-table-spin-holder{position:absolute;top:50%;left:50%;height:20px;margin-left:-30px;line-height:20px}.ant-table-loading .ant-table-with-pagination{margin-top:-20px}.ant-table-loading .ant-table-without-pagination{margin-top:10px}.ant-table-bordered .ant-table-body>table,.ant-table-bordered .ant-table-fixed-left table,.ant-table-bordered .ant-table-fixed-right table,.ant-table-bordered .ant-table-header>table{border:1px solid #e8e8e8;border-right:0;border-bottom:0}.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-table-bordered.ant-table-fixed-header .ant-table-header>table{border-bottom:0}.ant-table-bordered.ant-table-fixed-header .ant-table-body>table{border-top-left-radius:0;border-top-right-radius:0}.ant-table-bordered.ant-table-fixed-header .ant-table-body-inner>table,.ant-table-bordered.ant-table-fixed-header .ant-table-header+.ant-table-body>table{border-top:0}.ant-table-bordered .ant-table-thead>tr:not(:last-child)>th{border-bottom:1px solid #e8e8e8}.ant-table-bordered .ant-table-tbody>tr>td,.ant-table-bordered .ant-table-thead>tr>th{border-right:1px solid #e8e8e8}.ant-table-placeholder{position:relative;z-index:1;margin-top:-1px;padding:16px;color:rgba(0,0,0,.25);font-size:14px;text-align:center;background:#fff;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-table-pagination.ant-pagination{float:right;margin:16px 0}.ant-table-filter-dropdown{position:relative;min-width:96px;margin-left:-8px;background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-table-filter-dropdown .ant-dropdown-menu{max-height:calc(100vh - 130px);overflow-x:hidden;border:0;border-radius:4px 4px 0 0;box-shadow:none}.ant-table-filter-dropdown .ant-dropdown-menu-item>label+span{padding-right:0}.ant-table-filter-dropdown .ant-dropdown-menu-sub{border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after{color:#1890ff;font-weight:700;text-shadow:0 0 2px #bae7ff}.ant-table-filter-dropdown .ant-dropdown-menu-item{overflow:hidden}.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-item:last-child,.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-submenu:last-child .ant-dropdown-menu-submenu-title{border-radius:0}.ant-table-filter-dropdown-btns{padding:7px 8px;overflow:hidden;border-top:1px solid #e8e8e8}.ant-table-filter-dropdown-link{color:#1890ff}.ant-table-filter-dropdown-link:hover{color:#40a9ff}.ant-table-filter-dropdown-link:active{color:#096dd9}.ant-table-filter-dropdown-link.confirm{float:left}.ant-table-filter-dropdown-link.clear{float:right}.ant-table-selection{white-space:nowrap}.ant-table-selection-select-all-custom{margin-right:4px!important}.ant-table-selection .anticon-down{color:#bfbfbf;transition:all .3s}.ant-table-selection-menu{min-width:96px;margin-top:5px;margin-left:-30px;background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-table-selection-menu .ant-action-down{color:#bfbfbf}.ant-table-selection-down{display:inline-block;padding:0;line-height:1;cursor:pointer}.ant-table-selection-down:hover .anticon-down{color:rgba(0,0,0,.6)}.ant-table-row-expand-icon{color:#1890ff;text-decoration:none;cursor:pointer;transition:color .3s;display:inline-block;width:17px;height:17px;color:inherit;line-height:13px;text-align:center;background:#fff;border:1px solid #e8e8e8;border-radius:2px;outline:none;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}.ant-table-row-expand-icon:active{color:#096dd9}.ant-table-row-expand-icon:active,.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{border-color:currentColor}.ant-table-row-expanded:after{content:"-"}.ant-table-row-collapsed:after{content:"+"}.ant-table-row-spaced{visibility:hidden}.ant-table-row-spaced:after{content:"."}.ant-table-row-cell-ellipsis,.ant-table-row-cell-ellipsis .ant-table-column-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-table-row-cell-ellipsis .ant-table-column-title{display:block}.ant-table-row-cell-break-word{word-wrap:break-word;word-break:break-word}tr.ant-table-expanded-row,tr.ant-table-expanded-row:hover{background:#fbfbfb}tr.ant-table-expanded-row td>.ant-table-wrapper{margin:-16px -16px -17px}.ant-table .ant-table-row-indent+.ant-table-row-expand-icon{margin-right:8px}.ant-table-scroll{overflow:auto;overflow-x:hidden}.ant-table-scroll table{min-width:100%}.ant-table-scroll table .ant-table-fixed-columns-in-body:not([colspan]){color:transparent}.ant-table-scroll table .ant-table-fixed-columns-in-body:not([colspan])>*{visibility:hidden}.ant-table-body-inner{height:100%}.ant-table-fixed-header>.ant-table-content>.ant-table-scroll>.ant-table-body{position:relative;background:#fff}.ant-table-fixed-header .ant-table-body-inner{overflow:scroll}.ant-table-fixed-header .ant-table-scroll .ant-table-header{margin-bottom:-20px;padding-bottom:20px;overflow:scroll;opacity:.9999}.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:solid #e8e8e8;border-width:0 0 1px}.ant-table-hide-scrollbar{scrollbar-color:transparent transparent;min-width:unset}.ant-table-hide-scrollbar::-webkit-scrollbar{min-width:inherit;background-color:transparent}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-left-width:0}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header.ant-table-hide-scrollbar .ant-table-thead>tr:only-child>th:last-child{border-right-color:transparent}.ant-table-fixed-left,.ant-table-fixed-right{position:absolute;top:0;z-index:1;overflow:hidden;border-radius:0;transition:box-shadow .3s ease}.ant-table-fixed-left table,.ant-table-fixed-right table{width:auto;background:#fff}.ant-table-fixed-header .ant-table-fixed-left .ant-table-body-outer .ant-table-fixed,.ant-table-fixed-header .ant-table-fixed-right .ant-table-body-outer .ant-table-fixed{border-radius:0}.ant-table-fixed-left{left:0;box-shadow:6px 0 6px -4px rgba(0,0,0,.15)}.ant-table-fixed-left .ant-table-header{overflow-y:hidden}.ant-table-fixed-left .ant-table-body-inner{margin-right:-20px;padding-right:20px}.ant-table-fixed-header .ant-table-fixed-left .ant-table-body-inner{padding-right:0}.ant-table-fixed-left,.ant-table-fixed-left table{border-radius:4px 0 0 0}.ant-table-fixed-left .ant-table-thead>tr>th:last-child{border-top-right-radius:0}.ant-table-fixed-right{right:0;box-shadow:-6px 0 6px -4px rgba(0,0,0,.15)}.ant-table-fixed-right,.ant-table-fixed-right table{border-radius:0 4px 0 0}.ant-table-fixed-right .ant-table-expanded-row{color:transparent;pointer-events:none}.ant-table-fixed-right .ant-table-thead>tr>th:first-child{border-top-left-radius:0}.ant-table.ant-table-scroll-position-left .ant-table-fixed-left{box-shadow:none}.ant-table.ant-table-scroll-position-right .ant-table-fixed-right{box-shadow:none}.ant-table colgroup>col.ant-table-selection-col{width:60px}.ant-table-thead>tr>th.ant-table-selection-column-custom .ant-table-selection{margin-right:-15px}.ant-table-tbody>tr>td.ant-table-selection-column,.ant-table-thead>tr>th.ant-table-selection-column{text-align:center}.ant-table-tbody>tr>td.ant-table-selection-column .ant-radio-wrapper,.ant-table-thead>tr>th.ant-table-selection-column .ant-radio-wrapper{margin-right:0}.ant-table-row[class*=ant-table-row-level-0] .ant-table-selection-column>span{display:inline-block}.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-table-filter-dropdown .ant-checkbox-wrapper+span{padding-left:8px}@supports (-moz-appearance:meterbar){.ant-table-thead>tr>th.ant-table-column-has-actions{background-clip:padding-box}}.ant-table-middle>.ant-table-content>.ant-table-footer,.ant-table-middle>.ant-table-title{padding:12px 8px}.ant-table-middle>.ant-table-content>.ant-table-body>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-middle>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-middle>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th{padding:12px 8px}.ant-table-middle tr.ant-table-expanded-row td>.ant-table-wrapper{margin:-12px -8px -13px}.ant-table-small{border:1px solid #e8e8e8;border-radius:4px}.ant-table-small>.ant-table-content>.ant-table-footer,.ant-table-small>.ant-table-title{padding:8px}.ant-table-small>.ant-table-title{top:0;border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-footer{background-color:transparent;border-top:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-footer:before{background-color:transparent}.ant-table-small>.ant-table-content>.ant-table-body{margin:0 8px}.ant-table-small>.ant-table-content>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table{border:0}.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-tbody>tr>td,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th{padding:8px}.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th{background-color:transparent}.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr{border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort{background-color:rgba(0,0,0,.01)}.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table{padding:0}.ant-table-small>.ant-table-content .ant-table-header{background-color:transparent;border-radius:4px 4px 0 0}.ant-table-small>.ant-table-content .ant-table-placeholder,.ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:0}.ant-table-small.ant-table-bordered{border-right:0}.ant-table-small.ant-table-bordered .ant-table-title{border:0;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-content{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-footer{border:0;border-top:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-footer:before{display:none}.ant-table-small.ant-table-bordered .ant-table-placeholder{border-right:0;border-bottom:0;border-left:0}.ant-table-small.ant-table-bordered .ant-table-tbody>tr>td:last-child,.ant-table-small.ant-table-bordered .ant-table-thead>tr>th.ant-table-row-cell-last{border-right:none}.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-tbody>tr>td:last-child,.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-thead>tr>th:last-child{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-fixed-right{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-table-small tr.ant-table-expanded-row td>.ant-table-wrapper{margin:-8px -8px -9px}.ant-table-small.ant-table-fixed-header>.ant-table-content>.ant-table-scroll>.ant-table-body{border-radius:0 0 4px 4px} -.ant-empty{margin:0 8px;font-size:14px;line-height:22px;text-align:center}.ant-empty-image{height:100px;margin-bottom:8px}.ant-empty-image img{height:100%}.ant-empty-image svg{height:100%;margin:auto}.ant-empty-description{margin:0}.ant-empty-footer{margin-top:16px}.ant-empty-normal{margin:32px 0;color:rgba(0,0,0,.25)}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{margin:8px 0;color:rgba(0,0,0,.25)}.ant-empty-small .ant-empty-image{height:35px} -.ant-radio-group{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";display:inline-block}.ant-radio-wrapper{box-sizing:border-box;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;margin:0 8px 0 0;white-space:nowrap;cursor:pointer}.ant-radio{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;line-height:1;white-space:nowrap;vertical-align:sub;outline:none;cursor:pointer}.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px rgba(24,144,255,.08)}.ant-radio-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:50%;visibility:hidden;animation:antRadioEffect .36s ease-in-out;animation-fill-mode:both;content:""}.ant-radio-wrapper:hover .ant-radio:after,.ant-radio:hover:after{visibility:visible}.ant-radio-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:100px;transition:all .3s}.ant-radio-inner:after{position:absolute;top:3px;left:3px;display:table;width:8px;height:8px;background-color:#1890ff;border-top:0;border-left:0;border-radius:8px;transform:scale(0);opacity:0;transition:all .3s cubic-bezier(.78,.14,.15,.86);content:" "}.ant-radio-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer;opacity:0}.ant-radio-checked .ant-radio-inner{border-color:#1890ff}.ant-radio-checked .ant-radio-inner:after{transform:scale(1);opacity:1;transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9!important;cursor:not-allowed}.ant-radio-disabled .ant-radio-inner:after{background-color:rgba(0,0,0,.2)}.ant-radio-disabled .ant-radio-input{cursor:not-allowed}.ant-radio-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}span.ant-radio+*{padding-right:8px;padding-left:8px}.ant-radio-button-wrapper{position:relative;display:inline-block;height:32px;margin:0;padding:0 15px;color:rgba(0,0,0,.65);line-height:30px;background:#fff;border:1px solid #d9d9d9;border-top:1.02px solid #d9d9d9;border-left:0;cursor:pointer;transition:color .3s,background .3s,border-color .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,.65)}.ant-radio-button-wrapper>.ant-radio-button{display:block;width:0;height:0;margin-left:0}.ant-radio-group-large .ant-radio-button-wrapper{height:40px;font-size:16px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;padding:0 7px;line-height:22px}.ant-radio-button-wrapper:not(:first-child):before{position:absolute;top:0;left:-1px;display:block;width:1px;height:100%;background-color:#d9d9d9;content:""}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:4px 0 0 4px}.ant-radio-button-wrapper:last-child{border-radius:0 4px 4px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:4px}.ant-radio-button-wrapper:hover{position:relative;color:#1890ff}.ant-radio-button-wrapper:focus-within{outline:3px solid rgba(24,144,255,.06)}.ant-radio-button-wrapper .ant-radio-inner,.ant-radio-button-wrapper input[type=checkbox],.ant-radio-button-wrapper input[type=radio]{width:0;height:0;opacity:0;pointer-events:none}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){z-index:1;color:#1890ff;background:#fff;border-color:#1890ff;box-shadow:-1px 0 0 0 #1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff!important;opacity:.1}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff;box-shadow:none!important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff;box-shadow:-1px 0 0 0 #40a9ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9;box-shadow:-1px 0 0 0 #096dd9}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(24,144,255,.06)}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff;background:#1890ff;border-color:#1890ff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#fff;background:#40a9ff;border-color:#40a9ff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#fff;background:#096dd9;border-color:#096dd9}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(24,144,255,.06)}.ant-radio-button-wrapper-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:#fff;background-color:#e6e6e6;border-color:#d9d9d9;box-shadow:none}@keyframes antRadioEffect{0%{transform:scale(1);opacity:.5}to{transform:scale(1.6);opacity:0}}@supports (-moz-appearance:meterbar) and (background-blend-mode:difference,normal){.ant-radio{vertical-align:text-bottom}} -@keyframes antCheckboxEffect{0%{transform:scale(1);opacity:.5}to{transform:scale(1.6);opacity:0}}.ant-checkbox{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;top:-.09em;display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;outline:none;cursor:pointer}.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}.ant-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:2px;visibility:hidden;animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;content:""}.ant-checkbox-wrapper:hover .ant-checkbox:after,.ant-checkbox:hover:after{visibility:visible}.ant-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;transition:all .3s}.ant-checkbox-inner:after{position:absolute;top:50%;left:22%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-checkbox-checked .ant-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-checkbox-disabled{cursor:not-allowed}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:rgba(0,0,0,.25);animation-name:none}.ant-checkbox-disabled .ant-checkbox-input{cursor:not-allowed}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-checkbox-disabled .ant-checkbox-inner:after{border-color:#f5f5f5;border-collapse:separate;animation-name:none}.ant-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-checkbox-disabled:hover:after,.ant-checkbox-wrapper:hover .ant-checkbox-disabled:after{visibility:hidden}.ant-checkbox-wrapper{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";display:inline-block;line-height:unset;cursor:pointer}.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled{cursor:not-allowed}.ant-checkbox-wrapper+.ant-checkbox-wrapper{margin-left:8px}.ant-checkbox+span{padding-right:8px;padding-left:8px}.ant-checkbox-group{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";display:inline-block}.ant-checkbox-group-item{display:inline-block;margin-right:8px}.ant-checkbox-group-item:last-child{margin-right:0}.ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:0}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#1890ff;border:0;transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)} -.ant-dropdown{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;display:block}.ant-dropdown:before{position:absolute;top:-7px;right:0;bottom:-7px;left:-7px;z-index:-9999;opacity:.0001;content:" "}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{display:inline-block;font-size:12px;font-size:10px\9;transform:scale(.83333333) rotate(0deg)}:root .ant-dropdown-wrap .ant-btn>.anticon-down{font-size:12px}.ant-dropdown-wrap .anticon-down:before{transition:transform .2s}.ant-dropdown-wrap-open .anticon-down:before{transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden{display:none}.ant-dropdown-menu{position:relative;margin:0;padding:4px 0;text-align:left;list-style-type:none;background-color:#fff;background-clip:padding-box;border-radius:4px;outline:none;box-shadow:0 2px 8px rgba(0,0,0,.15);-webkit-transform:translateZ(0)}.ant-dropdown-menu-item-group-title{padding:5px 12px;color:rgba(0,0,0,.45);transition:all .3s}.ant-dropdown-menu-submenu-popup{position:absolute;z-index:1050}.ant-dropdown-menu-submenu-popup>.ant-dropdown-menu{transform-origin:0 0}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-right:.3em;margin-left:.3em;padding:0}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;margin:0;padding:5px 12px;color:rgba(0,0,0,.65);font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;cursor:pointer;transition:all .3s}.ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-menu-submenu-title>span>.anticon:first-child{min-width:12px;margin-right:8px;font-size:12px}.ant-dropdown-menu-item>a,.ant-dropdown-menu-submenu-title>a{display:block;margin:-5px -12px;padding:5px 12px;color:rgba(0,0,0,.65);transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu-title-selected>a{color:#1890ff;background-color:#e6f7ff}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#e6f7ff}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{height:1px;margin:4px 0;overflow:hidden;line-height:0;background-color:#e8e8e8}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,.45);font-style:normal;display:inline-block;font-size:12px;font-size:10px\9;transform:scale(.83333333) rotate(0deg)}:root .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,:root .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{font-size:12px}.ant-dropdown-menu-item-group-list{margin:0 8px;padding:0;list-style:none}.ant-dropdown-menu-submenu-title{padding-right:26px}.ant-dropdown-menu-submenu-vertical{position:relative}.ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{position:absolute;top:0;left:100%;min-width:100%;margin-left:4px;transform-origin:0 0}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpIn}.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topCenter,.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topCenter,.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topCenter,.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{display:inline-block;font-size:12px;font-size:10px\9;transform:scale(.83333333) rotate(0deg)}:root .ant-dropdown-link>.anticon.anticon-down,:root .ant-dropdown-trigger>.anticon.anticon-down{font-size:12px}.ant-dropdown-button{white-space:nowrap}.ant-dropdown-button.ant-btn-group>.ant-btn:last-child:not(:first-child){padding-right:8px;padding-left:8px}.ant-dropdown-button .anticon.anticon-down{display:inline-block;font-size:12px;font-size:10px\9;transform:scale(.83333333) rotate(0deg)}:root .ant-dropdown-button .anticon.anticon-down{font-size:12px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title{color:hsla(0,0%,100%,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after{color:hsla(0,0%,100%,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{color:#fff;background:transparent}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{color:#fff;background:#1890ff} -.ant-spin{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:absolute;display:none;color:#1890ff;text-align:center;vertical-align:middle;opacity:0;transition:transform .3s cubic-bezier(.78,.14,.15,.86)}.ant-spin-spinning{position:static;display:inline-block;opacity:1}.ant-spin-nested-loading{position:relative}.ant-spin-nested-loading>div>.ant-spin{position:absolute;top:0;left:0;z-index:4;display:block;width:100%;height:100%;max-height:400px}.ant-spin-nested-loading>div>.ant-spin .ant-spin-dot{position:absolute;top:50%;left:50%;margin:-10px}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{position:absolute;top:50%;width:100%;padding-top:5px;text-shadow:0 1px 2px #fff}.ant-spin-nested-loading>div>.ant-spin.ant-spin-show-text .ant-spin-dot{margin-top:-20px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-dot{margin:-7px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-text{padding-top:2px}.ant-spin-nested-loading>div>.ant-spin-sm.ant-spin-show-text .ant-spin-dot{margin-top:-17px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-dot{margin:-16px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-text{padding-top:11px}.ant-spin-nested-loading>div>.ant-spin-lg.ant-spin-show-text .ant-spin-dot{margin-top:-26px}.ant-spin-container{position:relative;transition:opacity .3s}.ant-spin-container:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:none\9;width:100%;height:100%;background:#fff;opacity:0;transition:all .3s;content:"";pointer-events:none}.ant-spin-blur{clear:both;overflow:hidden;opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.ant-spin-blur:after{opacity:.4;pointer-events:auto}.ant-spin-tip{color:rgba(0,0,0,.45)}.ant-spin-dot{position:relative;display:inline-block;font-size:20px;width:1em;height:1em}.ant-spin-dot-item{position:absolute;display:block;width:9px;height:9px;background-color:#1890ff;border-radius:100%;transform:scale(.75);transform-origin:50% 50%;opacity:.3;animation:antSpinMove 1s linear infinite alternate}.ant-spin-dot-item:first-child{top:0;left:0}.ant-spin-dot-item:nth-child(2){top:0;right:0;animation-delay:.4s}.ant-spin-dot-item:nth-child(3){right:0;bottom:0;animation-delay:.8s}.ant-spin-dot-item:nth-child(4){bottom:0;left:0;animation-delay:1.2s}.ant-spin-dot-spin{transform:rotate(45deg);animation:antRotate 1.2s linear infinite}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-sm .ant-spin-dot i{width:6px;height:6px}.ant-spin-lg .ant-spin-dot{font-size:32px}.ant-spin-lg .ant-spin-dot i{width:14px;height:14px}.ant-spin.ant-spin-show-text .ant-spin-text{display:block}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-spin-blur{background:#fff;opacity:.5}}@keyframes antSpinMove{to{opacity:1}}@keyframes antRotate{to{transform:rotate(405deg)}} -.ant-pagination{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum"}.ant-pagination ol,.ant-pagination ul{margin:0;padding:0;list-style:none}.ant-pagination:after{display:block;clear:both;height:0;overflow:hidden;visibility:hidden;content:" "}.ant-pagination-total-text{display:inline-block;height:32px;margin-right:8px;line-height:30px;vertical-align:middle}.ant-pagination-item{display:inline-block;min-width:32px;height:32px;margin-right:8px;font-family:Arial;line-height:30px;text-align:center;vertical-align:middle;list-style:none;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;outline:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-item a{display:block;padding:0 6px;color:rgba(0,0,0,.65);transition:none}.ant-pagination-item a:hover{text-decoration:none}.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#1890ff;transition:all .3s}.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#1890ff}.ant-pagination-item-active{font-weight:500;background:#fff;border-color:#1890ff}.ant-pagination-item-active a{color:#1890ff}.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#40a9ff}.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#40a9ff}.ant-pagination-jump-next,.ant-pagination-jump-prev{outline:0}.ant-pagination-jump-next .ant-pagination-item-container,.ant-pagination-jump-prev .ant-pagination-item-container{position:relative}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{display:inline-block;font-size:12px;font-size:12px\9;transform:scale(1) rotate(0deg);color:#1890ff;letter-spacing:-1px;opacity:0;transition:all .2s}:root .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,:root .ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{font-size:12px}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg{top:0;right:0;bottom:0;left:0;margin:auto}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis{position:absolute;top:0;right:0;bottom:0;left:0;display:block;margin:auto;color:rgba(0,0,0,.25);letter-spacing:2px;text-align:center;text-indent:.13em;opacity:1;transition:all .2s}.ant-pagination-jump-next:focus .ant-pagination-item-link-icon,.ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination-jump-prev:focus .ant-pagination-item-link-icon,.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:focus .ant-pagination-item-ellipsis,.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:focus .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-prev{margin-right:8px}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev{display:inline-block;min-width:32px;height:32px;color:rgba(0,0,0,.65);font-family:Arial;line-height:32px;text-align:center;vertical-align:middle;list-style:none;border-radius:4px;cursor:pointer;transition:all .3s}.ant-pagination-next,.ant-pagination-prev{outline:0}.ant-pagination-next a,.ant-pagination-prev a{color:rgba(0,0,0,.65);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-next:hover a,.ant-pagination-prev:hover a{border-color:#40a9ff}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{display:block;height:100%;font-size:12px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;outline:none;transition:all .3s}.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}.ant-pagination-disabled,.ant-pagination-disabled:focus,.ant-pagination-disabled:hover{cursor:not-allowed}.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:focus .ant-pagination-item-link,.ant-pagination-disabled:focus a,.ant-pagination-disabled:hover .ant-pagination-item-link,.ant-pagination-disabled:hover a,.ant-pagination-disabled a{color:rgba(0,0,0,.25);border-color:#d9d9d9;cursor:not-allowed}.ant-pagination-slash{margin:0 10px 0 5px}.ant-pagination-options{display:inline-block;margin-left:16px;vertical-align:middle}.ant-pagination-options-size-changer.ant-select{display:inline-block;width:auto;margin-right:8px}.ant-pagination-options-quick-jumper{display:inline-block;height:32px;line-height:32px;vertical-align:top}.ant-pagination-options-quick-jumper input{position:relative;display:inline-block;width:100%;height:32px;padding:4px 11px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:4px;transition:all .3s;width:50px;margin:0 8px}.ant-pagination-options-quick-jumper input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input::-webkit-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-pagination-options-quick-jumper input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-pagination-options-quick-jumper input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-pagination-options-quick-jumper input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-pagination-options-quick-jumper input{max-width:100%;height:auto;min-height:32px;line-height:1.5;vertical-align:bottom;transition:all .3s,height 0s}.ant-pagination-options-quick-jumper input-lg{height:40px;padding:6px 11px;font-size:16px}.ant-pagination-options-quick-jumper input-sm{height:24px;padding:1px 7px}.ant-pagination-simple .ant-pagination-next,.ant-pagination-simple .ant-pagination-prev{height:24px;line-height:24px;vertical-align:top}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link{height:24px;border:0}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{display:inline-block;height:24px;margin-right:8px}.ant-pagination-simple .ant-pagination-simple-pager input{box-sizing:border-box;height:100%;margin-right:8px;padding:0 6px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;outline:none;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}.ant-pagination.mini .ant-pagination-simple-pager,.ant-pagination.mini .ant-pagination-total-text{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{min-width:24px;height:24px;margin:0;line-height:22px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next,.ant-pagination.mini .ant-pagination-prev{min-width:24px;height:24px;margin:0;line-height:24px}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link{background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-next,.ant-pagination.mini .ant-pagination-jump-prev{height:24px;margin-right:0;line-height:24px}.ant-pagination.mini .ant-pagination-options{margin-left:2px}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{height:24px;padding:1px 7px;width:44px}.ant-pagination.ant-pagination-disabled{cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{color:rgba(0,0,0,.25);background:transparent;border:none;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#dbdbdb;border-color:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a{color:#fff}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:focus,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:hover{color:rgba(0,0,0,.45);background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:focus .ant-pagination-item-link-icon,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:focus .ant-pagination-item-link-icon,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:0}.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:focus .ant-pagination-item-ellipsis,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:focus .ant-pagination-item-ellipsis,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:1}@media only screen and (max-width:992px){.ant-pagination-item-after-jump-prev,.ant-pagination-item-before-jump-next{display:none}}@media only screen and (max-width:576px){.ant-pagination-options{display:none}} -.ant-select{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;outline:0}.ant-select ol,.ant-select ul{margin:0;padding:0;list-style:none}.ant-select>ul>li>a{padding:0;background-color:#fff}.ant-select-arrow{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:50%;right:11px;margin-top:-6px;color:rgba(0,0,0,.25);font-size:12px;line-height:1;transform-origin:50% 50%}.ant-select-arrow>*{line-height:1}.ant-select-arrow svg{display:inline-block}.ant-select-arrow:before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .ant-select-arrow-icon svg{transition:transform .3s}.ant-select-selection{display:block;box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9;border-top:1.02px solid #d9d9d9;border-radius:4px;outline:none;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-selection:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-select-focused .ant-select-selection,.ant-select-selection:active,.ant-select-selection:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-select-selection__clear{position:absolute;top:50%;right:11px;z-index:1;display:inline-block;width:12px;height:12px;margin-top:-6px;color:rgba(0,0,0,.25);font-size:12px;font-style:normal;line-height:12px;text-align:center;text-transform:none;background:#fff;cursor:pointer;opacity:0;transition:color .3s ease,opacity .15s ease;text-rendering:auto}.ant-select-selection__clear:before{display:block}.ant-select-selection__clear:hover{color:rgba(0,0,0,.45)}.ant-select-selection:hover .ant-select-selection__clear{opacity:1}.ant-select-selection-selected-value{float:left;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-select-no-arrow .ant-select-selection-selected-value{padding-right:0}.ant-select-disabled{color:rgba(0,0,0,.25)}.ant-select-disabled .ant-select-selection{background:#f5f5f5;cursor:not-allowed}.ant-select-disabled .ant-select-selection:active,.ant-select-disabled .ant-select-selection:focus,.ant-select-disabled .ant-select-selection:hover{border-color:#d9d9d9;box-shadow:none}.ant-select-disabled .ant-select-selection__clear{display:none;visibility:hidden;pointer-events:none}.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice{padding-right:10px;color:rgba(0,0,0,.33);background:#f5f5f5}.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice__remove{display:none}.ant-select-selection--single{position:relative;height:32px;cursor:pointer}.ant-select-selection--single .ant-select-selection__rendered{margin-right:24px}.ant-select-no-arrow .ant-select-selection__rendered{margin-right:11px}.ant-select-selection__rendered{position:relative;display:block;margin-right:11px;margin-left:11px;line-height:30px}.ant-select-selection__rendered:after{display:inline-block;width:0;visibility:hidden;content:".";pointer-events:none}.ant-select-lg{font-size:16px}.ant-select-lg .ant-select-selection--single{height:40px}.ant-select-lg .ant-select-selection__rendered{line-height:38px}.ant-select-lg .ant-select-selection--multiple{min-height:40px}.ant-select-lg .ant-select-selection--multiple .ant-select-selection__rendered li{height:32px;line-height:32px}.ant-select-lg .ant-select-selection--multiple .ant-select-arrow,.ant-select-lg .ant-select-selection--multiple .ant-select-selection__clear{top:20px}.ant-select-sm .ant-select-selection--single{height:24px}.ant-select-sm .ant-select-selection__rendered{margin-left:7px;line-height:22px}.ant-select-sm .ant-select-selection--multiple{min-height:24px}.ant-select-sm .ant-select-selection--multiple .ant-select-selection__rendered li{height:16px;line-height:14px}.ant-select-sm .ant-select-selection--multiple .ant-select-arrow,.ant-select-sm .ant-select-selection--multiple .ant-select-selection__clear{top:12px}.ant-select-sm .ant-select-arrow,.ant-select-sm .ant-select-selection__clear{right:8px}.ant-select-disabled .ant-select-selection__choice__remove{color:rgba(0,0,0,.25);cursor:default}.ant-select-disabled .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,.25)}.ant-select-search__field__wrap{position:relative;display:inline-block}.ant-select-search__field__placeholder,.ant-select-selection__placeholder{position:absolute;top:50%;right:9px;left:0;max-width:100%;height:20px;margin-top:-10px;overflow:hidden;color:#bfbfbf;line-height:20px;white-space:nowrap;text-align:left;text-overflow:ellipsis}.ant-select-search__field__placeholder{left:12px}.ant-select-search__field__mirror{position:absolute;top:0;left:0;white-space:pre;opacity:0;pointer-events:none}.ant-select-search--inline{position:absolute;width:100%;height:100%}.ant-select-search--inline .ant-select-search__field__wrap{width:100%;height:100%}.ant-select-search--inline .ant-select-search__field{width:100%;height:100%;font-size:100%;line-height:1;background:transparent;border-width:0;border-radius:4px;outline:0}.ant-select-search--inline>i{float:right}.ant-select-selection--multiple{min-height:32px;padding-bottom:3px;cursor:text;zoom:1}.ant-select-selection--multiple:after,.ant-select-selection--multiple:before{display:table;content:""}.ant-select-selection--multiple:after{clear:both}.ant-select-selection--multiple .ant-select-search--inline{position:static;float:left;width:auto;max-width:100%;padding:0}.ant-select-selection--multiple .ant-select-search--inline .ant-select-search__field{width:.75em;max-width:100%;padding:1px}.ant-select-selection--multiple .ant-select-selection__rendered{height:auto;margin-bottom:-3px;margin-left:5px}.ant-select-selection--multiple .ant-select-selection__placeholder{margin-left:6px}.ant-select-selection--multiple .ant-select-selection__rendered>ul>li,.ant-select-selection--multiple>ul>li{height:24px;margin-top:3px;line-height:22px}.ant-select-selection--multiple .ant-select-selection__choice{position:relative;float:left;max-width:99%;margin-right:4px;padding:0 20px 0 10px;overflow:hidden;color:rgba(0,0,0,.65);background-color:#fafafa;border:1px solid #e8e8e8;border-radius:2px;cursor:default;transition:padding .3s cubic-bezier(.645,.045,.355,1)}.ant-select-selection--multiple .ant-select-selection__choice__disabled{padding:0 10px}.ant-select-selection--multiple .ant-select-selection__choice__content{display:inline-block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:margin .3s cubic-bezier(.645,.045,.355,1)}.ant-select-selection--multiple .ant-select-selection__choice__remove{color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;right:4px;color:rgba(0,0,0,.45);font-weight:700;line-height:inherit;cursor:pointer;transition:all .3s;display:inline-block;font-size:12px;font-size:10px\9;transform:scale(.83333333) rotate(0deg)}.ant-select-selection--multiple .ant-select-selection__choice__remove>*{line-height:1}.ant-select-selection--multiple .ant-select-selection__choice__remove svg{display:inline-block}.ant-select-selection--multiple .ant-select-selection__choice__remove:before{display:none}.ant-select-selection--multiple .ant-select-selection__choice__remove .ant-select-selection--multiple .ant-select-selection__choice__remove-icon{display:block}:root .ant-select-selection--multiple .ant-select-selection__choice__remove{font-size:12px}.ant-select-selection--multiple .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,.75)}.ant-select-selection--multiple .ant-select-arrow,.ant-select-selection--multiple .ant-select-selection__clear{top:16px}.ant-select-allow-clear .ant-select-selection--multiple .ant-select-selection__rendered,.ant-select-show-arrow .ant-select-selection--multiple .ant-select-selection__rendered{margin-right:20px}.ant-select-open .ant-select-arrow-icon svg{transform:rotate(180deg)}.ant-select-open .ant-select-selection{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-select-combobox .ant-select-arrow{display:none}.ant-select-combobox .ant-select-search--inline{float:none;width:100%;height:100%}.ant-select-combobox .ant-select-search__field__wrap{width:100%;height:100%}.ant-select-combobox .ant-select-search__field{position:relative;z-index:1;width:100%;height:100%;box-shadow:none;transition:all .3s cubic-bezier(.645,.045,.355,1),height 0s}.ant-select-combobox.ant-select-allow-clear .ant-select-selection:hover .ant-select-selection__rendered,.ant-select-combobox.ant-select-show-arrow .ant-select-selection:hover .ant-select-selection__rendered{margin-right:20px}.ant-select-dropdown{margin:0;padding:0;color:rgba(0,0,0,.65);font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;box-sizing:border-box;font-size:14px;font-variant:normal;background-color:#fff;border-radius:4px;outline:none;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpIn}.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownIn}.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpOut}.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownOut}.ant-select-dropdown-hidden{display:none}.ant-select-dropdown-menu{max-height:250px;margin-bottom:0;padding:4px 0;overflow:auto;list-style:none;outline:none}.ant-select-dropdown-menu-item-group-list{margin:0;padding:0}.ant-select-dropdown-menu-item-group-list>.ant-select-dropdown-menu-item{padding-left:20px}.ant-select-dropdown-menu-item-group-title{height:32px;padding:0 12px;color:rgba(0,0,0,.45);font-size:12px;line-height:32px}.ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:first-child:not(:last-child),.ant-select-dropdown-menu-item-group:not(:last-child) .ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:last-child{border-radius:0}.ant-select-dropdown-menu-item{position:relative;display:block;padding:5px 12px;overflow:hidden;color:rgba(0,0,0,.65);font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:background .3s ease}.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}.ant-select-dropdown-menu-item-selected{color:rgba(0,0,0,.65);font-weight:600;background-color:#fafafa}.ant-select-dropdown-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f7ff}.ant-select-dropdown-menu-item-divider{height:1px;margin:1px 0;overflow:hidden;line-height:0;background-color:#e8e8e8}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item{padding-right:32px}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item .ant-select-selected-icon{position:absolute;top:50%;right:12px;color:transparent;font-weight:700;font-size:12px;text-shadow:0 .1px 0,.1px 0 0,0 -.1px 0,-.1px 0;transform:translateY(-50%);transition:all .2s}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item:hover .ant-select-selected-icon{color:rgba(0,0,0,.87)}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-disabled .ant-select-selected-icon{display:none}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{display:inline-block;color:#1890ff}.ant-select-dropdown--empty.ant-select-dropdown--multiple .ant-select-dropdown-menu-item{padding-right:12px}.ant-select-dropdown-container-open .ant-select-dropdown,.ant-select-dropdown-open .ant-select-dropdown{display:block} -.ant-divider{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";background:#e8e8e8}.ant-divider,.ant-divider-vertical{position:relative;top:-.06em;display:inline-block;width:1px;height:.9em;margin:0 8px;vertical-align:middle}.ant-divider-horizontal{display:block;clear:both;width:100%;min-width:100%;height:1px;margin:24px 0}.ant-divider-horizontal.ant-divider-with-text-center,.ant-divider-horizontal.ant-divider-with-text-left,.ant-divider-horizontal.ant-divider-with-text-right{display:table;margin:16px 0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;white-space:nowrap;text-align:center;background:transparent}.ant-divider-horizontal.ant-divider-with-text-center:after,.ant-divider-horizontal.ant-divider-with-text-center:before,.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-horizontal.ant-divider-with-text-left:before,.ant-divider-horizontal.ant-divider-with-text-right:after,.ant-divider-horizontal.ant-divider-with-text-right:before{position:relative;top:50%;display:table-cell;width:50%;border-top:1px solid #e8e8e8;transform:translateY(50%);content:""}.ant-divider-horizontal.ant-divider-with-text-left .ant-divider-inner-text,.ant-divider-horizontal.ant-divider-with-text-right .ant-divider-inner-text{display:inline-block;padding:0 10px}.ant-divider-horizontal.ant-divider-with-text-left:before{top:50%;width:5%}.ant-divider-horizontal.ant-divider-with-text-left:after{top:50%;width:95%}.ant-divider-horizontal.ant-divider-with-text-right:before{top:50%;width:95%}.ant-divider-horizontal.ant-divider-with-text-right:after{top:50%;width:5%}.ant-divider-inner-text{display:inline-block;padding:0 24px}.ant-divider-dashed{background:none;border:dashed #e8e8e8;border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed{border-top:0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed:before,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed:before,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed:before{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px} -.ant-tooltip{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:absolute;z-index:1060;display:block;max-width:250px;visibility:visible}.ant-tooltip-hidden{display:none}.ant-tooltip-placement-top,.ant-tooltip-placement-topLeft,.ant-tooltip-placement-topRight{padding-bottom:8px}.ant-tooltip-placement-right,.ant-tooltip-placement-rightBottom,.ant-tooltip-placement-rightTop{padding-left:8px}.ant-tooltip-placement-bottom,.ant-tooltip-placement-bottomLeft,.ant-tooltip-placement-bottomRight{padding-top:8px}.ant-tooltip-placement-left,.ant-tooltip-placement-leftBottom,.ant-tooltip-placement-leftTop{padding-right:8px}.ant-tooltip-inner{min-width:30px;min-height:32px;padding:6px 8px;color:#fff;text-align:left;text-decoration:none;word-wrap:break-word;background-color:rgba(0,0,0,.75);border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-tooltip-arrow{position:absolute;display:block;width:13.07106781px;height:13.07106781px;overflow:hidden;background:transparent;pointer-events:none}.ant-tooltip-arrow:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:5px;height:5px;margin:auto;background-color:rgba(0,0,0,.75);content:"";pointer-events:auto}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow:before,.ant-tooltip-placement-topLeft .ant-tooltip-arrow:before,.ant-tooltip-placement-topRight .ant-tooltip-arrow:before{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left:50%;transform:translateX(-50%)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow:before,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow:before,.ant-tooltip-placement-rightTop .ant-tooltip-arrow:before{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow:before,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow:before,.ant-tooltip-placement-leftTop .ant-tooltip-arrow:before{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow:before,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow:before,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow:before{box-shadow:-3px -3px 7px rgba(0,0,0,.07);transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;transform:translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px} -.ant-switch{margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;box-sizing:border-box;min-width:44px;height:22px;line-height:20px;vertical-align:middle;background-color:rgba(0,0,0,.25);border:1px solid transparent;border-radius:100px;cursor:pointer;transition:all .36s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-switch-inner{display:block;margin-right:6px;margin-left:24px;color:#fff;font-size:12px}.ant-switch-loading-icon,.ant-switch:after{position:absolute;top:1px;left:1px;width:18px;height:18px;background-color:#fff;border-radius:18px;cursor:pointer;transition:all .36s cubic-bezier(.78,.14,.15,.86);content:" "}.ant-switch:after{box-shadow:0 2px 4px 0 rgba(0,35,11,.2)}.ant-switch:not(.ant-switch-disabled):active:after,.ant-switch:not(.ant-switch-disabled):active:before{width:24px}.ant-switch-loading-icon{z-index:1;display:none;font-size:12px;background:transparent}.ant-switch-loading-icon svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.ant-switch-loading .ant-switch-loading-icon{display:inline-block;color:rgba(0,0,0,.65)}.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#1890ff}.ant-switch:focus{outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-switch:focus:hover{box-shadow:none}.ant-switch-small{min-width:28px;height:16px;line-height:14px}.ant-switch-small .ant-switch-inner{margin-right:3px;margin-left:18px;font-size:12px}.ant-switch-small:after{width:12px;height:12px}.ant-switch-small:active:after,.ant-switch-small:active:before{width:16px}.ant-switch-small .ant-switch-loading-icon{width:12px;height:12px}.ant-switch-small.ant-switch-checked .ant-switch-inner{margin-right:18px;margin-left:3px}.ant-switch-small.ant-switch-checked .ant-switch-loading-icon{left:100%;margin-left:-13px}.ant-switch-small.ant-switch-loading .ant-switch-loading-icon{font-weight:700;transform:scale(.66667)}.ant-switch-checked{background-color:#1890ff}.ant-switch-checked .ant-switch-inner{margin-right:24px;margin-left:6px}.ant-switch-checked:after{left:100%;margin-left:-1px;transform:translateX(-100%)}.ant-switch-checked .ant-switch-loading-icon{left:100%;margin-left:-19px}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-loading *{cursor:not-allowed}.ant-switch-disabled:after,.ant-switch-disabled:before,.ant-switch-loading:after,.ant-switch-loading:before{cursor:not-allowed}@keyframes AntSwitchSmallLoadingCircle{0%{transform:rotate(0deg) scale(.66667);transform-origin:50% 50%}to{transform:rotate(1turn) scale(.66667);transform-origin:50% 50%}} - - -.ant-input{box-sizing:border-box;margin:0;font-variant:tabular-nums;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;width:100%;height:32px;padding:4px 11px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:4px;transition:all .3s}.ant-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-input:-ms-input-placeholder{color:#bfbfbf}.ant-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-input{max-width:100%;height:auto;min-height:32px;line-height:1.5;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-lg{height:40px;padding:6px 11px;font-size:16px}.ant-input-sm{height:24px;padding:1px 7px}.ant-input-group{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;display:table;width:100%;border-collapse:separate;border-spacing:0}.ant-input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.ant-input-group>[class*=col-]{padding-right:8px}.ant-input-group>[class*=col-]:last-child{padding-right:0}.ant-input-group-addon,.ant-input-group-wrap,.ant-input-group>.ant-input{display:table-cell}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group-addon,.ant-input-group-wrap{width:1px;white-space:nowrap;vertical-align:middle}.ant-input-group-wrap>*{display:block!important}.ant-input-group .ant-input{float:left;width:100%;margin-bottom:0;text-align:inherit}.ant-input-group .ant-input:focus{z-index:1;border-right-width:1px}.ant-input-group .ant-input:hover{z-index:1;border-right-width:1px}.ant-input-group-addon{position:relative;padding:0 11px;color:rgba(0,0,0,.65);font-weight:400;font-size:14px;text-align:center;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:4px;transition:all .3s}.ant-input-group-addon .ant-select{margin:-5px -11px}.ant-input-group-addon .ant-select .ant-select-selection{margin:-1px;background-color:inherit;border:1px solid transparent;box-shadow:none}.ant-input-group-addon .ant-select-focused .ant-select-selection,.ant-input-group-addon .ant-select-open .ant-select-selection{color:#1890ff}.ant-input-group-addon>i:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.ant-input-group-addon:first-child,.ant-input-group>.ant-input:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child .ant-select .ant-select-selection,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selection{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-addon:last-child,.ant-input-group>.ant-input:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-addon:last-child .ant-select .ant-select-selection,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selection{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{height:40px;padding:6px 11px;font-size:16px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{height:24px;padding:1px 7px}.ant-input-group-lg .ant-select-selection--single{height:40px}.ant-input-group-sm .ant-select-selection--single{height:24px}.ant-input-group .ant-input-affix-wrapper{display:table-cell;float:left;width:100%}.ant-input-group.ant-input-group-compact{display:block;zoom:1}.ant-input-group.ant-input-group-compact:after,.ant-input-group.ant-input-group-compact:before{display:table;content:""}.ant-input-group.ant-input-group-compact:after{clear:both}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):focus{z-index:1}.ant-input-group.ant-input-group-compact>*{display:inline-block;float:none;vertical-align:top;border-radius:0}.ant-input-group.ant-input-group-compact>:not(:last-child){margin-right:-1px;border-right-width:1px}.ant-input-group.ant-input-group-compact .ant-input{float:none}.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selection:hover,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selection:focus,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input:focus{z-index:1}.ant-input-group.ant-input-group-compact>.ant-calendar-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:first-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-time-picker:first-child .ant-time-picker-input,.ant-input-group.ant-input-group-compact>:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-input-group.ant-input-group-compact>.ant-calendar-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:last-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-time-picker:last-child .ant-time-picker-input,.ant-input-group.ant-input-group-compact>:last-child{border-right-width:1px;border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-group-wrapper{display:inline-block;width:100%;text-align:start;vertical-align:top}.ant-input-affix-wrapper{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;width:100%;text-align:start}.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#40a9ff;border-right-width:1px!important}.ant-input-affix-wrapper .ant-input{position:relative;text-align:inherit}.ant-input-affix-wrapper .ant-input-prefix,.ant-input-affix-wrapper .ant-input-suffix{position:absolute;top:50%;z-index:2;display:flex;align-items:center;color:rgba(0,0,0,.65);line-height:0;transform:translateY(-50%)}.ant-input-affix-wrapper .ant-input-prefix :not(.anticon),.ant-input-affix-wrapper .ant-input-suffix :not(.anticon){line-height:1.5}.ant-input-affix-wrapper .ant-input-disabled~.ant-input-suffix .anticon{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-input-affix-wrapper .ant-input-prefix{left:12px}.ant-input-affix-wrapper .ant-input-suffix{right:12px}.ant-input-affix-wrapper .ant-input:not(:first-child){padding-left:30px}.ant-input-affix-wrapper .ant-input:not(:last-child){padding-right:30px}.ant-input-affix-wrapper.ant-input-affix-wrapper-input-with-clear-btn .ant-input:not(:last-child){padding-right:49px}.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input{padding-right:22px}.ant-input-affix-wrapper .ant-input{min-height:100%}.ant-input-password-icon{color:rgba(0,0,0,.45);cursor:pointer;transition:all .3s}.ant-input-password-icon:hover{color:#333}.ant-input-clear-icon{color:rgba(0,0,0,.25);font-size:12px;cursor:pointer;transition:color .3s;vertical-align:0}.ant-input-clear-icon:hover{color:rgba(0,0,0,.45)}.ant-input-clear-icon:active{color:rgba(0,0,0,.65)}.ant-input-clear-icon+i{margin-left:6px}.ant-input-textarea-clear-icon{color:rgba(0,0,0,.25);font-size:12px;cursor:pointer;transition:color .3s;position:absolute;top:0;right:0;margin:8px 8px 0 0}.ant-input-textarea-clear-icon:hover{color:rgba(0,0,0,.45)}.ant-input-textarea-clear-icon:active{color:rgba(0,0,0,.65)}.ant-input-textarea-clear-icon+i{margin-left:6px}.ant-input-search-icon{color:rgba(0,0,0,.45);cursor:pointer;transition:all .3s}.ant-input-search-icon:hover{color:rgba(0,0,0,.8)}.ant-input-search-enter-button input{border-right:0}.ant-input-search-enter-button+.ant-input-group-addon,.ant-input-search-enter-button input+.ant-input-group-addon{padding:0;border:0}.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button,.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button{border-top-left-radius:0;border-bottom-left-radius:0} -.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-container{height:40px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-ink-bar{visibility:hidden}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab{height:40px;margin:0 2px 0 0;padding:0 16px;line-height:38px;background:#fafafa;border:1px solid #e8e8e8;border-radius:4px 4px 0 0;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{height:40px;color:#1890ff;background:#fff;border-color:#e8e8e8;border-bottom:1px solid #fff}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active:before{border-top:2px solid transparent}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#1890ff;color:rgba(0,0,0,.25)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-inactive{padding:0}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-wrap{margin-bottom:0}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x{width:16px;height:16px;height:14px;margin-right:-5px;margin-left:3px;overflow:hidden;color:rgba(0,0,0,.45);font-size:12px;vertical-align:middle;transition:all .3s}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x:hover{color:rgba(0,0,0,.85)}.ant-tabs.ant-tabs-card .ant-tabs-card-content>.ant-tabs-tabpane,.ant-tabs.ant-tabs-editable-card .ant-tabs-card-content>.ant-tabs-tabpane{transition:none!important}.ant-tabs.ant-tabs-card .ant-tabs-card-content>.ant-tabs-tabpane-inactive,.ant-tabs.ant-tabs-editable-card .ant-tabs-card-content>.ant-tabs-tabpane-inactive{overflow:hidden}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab:hover .anticon-close{opacity:1}.ant-tabs-extra-content{line-height:45px}.ant-tabs-extra-content .ant-tabs-new-tab{position:relative;width:20px;height:20px;color:rgba(0,0,0,.65);font-size:12px;line-height:20px;text-align:center;border:1px solid #e8e8e8;border-radius:2px;cursor:pointer;transition:all .3s}.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#1890ff;border-color:#1890ff}.ant-tabs-extra-content .ant-tabs-new-tab svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.ant-tabs.ant-tabs-large .ant-tabs-extra-content{line-height:56px}.ant-tabs.ant-tabs-small .ant-tabs-extra-content{line-height:37px}.ant-tabs.ant-tabs-card .ant-tabs-extra-content{line-height:40px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-nav-container{height:100%}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{margin-bottom:8px;border-bottom:1px solid #e8e8e8}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab-active,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab-active{padding-bottom:4px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab:last-child,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab:last-child{margin-bottom:8px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-new-tab,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-new-tab{width:90%}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-nav-wrap{margin-right:0}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab{margin-right:1px;border-right:0;border-radius:4px 0 0 4px}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab-active{margin-right:-1px;padding-right:18px}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-nav-wrap{margin-left:0}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{margin-left:1px;border-left:0;border-radius:0 4px 4px 0}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab-active{margin-left:-1px;padding-left:18px}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab{height:auto;border-top:0;border-bottom:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{padding-top:1px;padding-bottom:0;color:#1890ff}.ant-tabs{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;overflow:hidden;zoom:1}.ant-tabs:after,.ant-tabs:before{display:table;content:""}.ant-tabs:after{clear:both}.ant-tabs-ink-bar{position:absolute;bottom:1px;left:0;z-index:1;box-sizing:border-box;width:0;height:2px;background-color:#1890ff;transform-origin:0 0}.ant-tabs-bar{margin:0 0 16px;border-bottom:1px solid #e8e8e8;outline:none;transition:padding .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-nav-container{position:relative;box-sizing:border-box;margin-bottom:-1px;overflow:hidden;font-size:14px;line-height:1.5;white-space:nowrap;transition:padding .3s cubic-bezier(.645,.045,.355,1);zoom:1}.ant-tabs-nav-container:after,.ant-tabs-nav-container:before{display:table;content:""}.ant-tabs-nav-container:after{clear:both}.ant-tabs-nav-container-scrolling{padding-right:32px;padding-left:32px}.ant-tabs-bottom .ant-tabs-bottom-bar{margin-top:16px;margin-bottom:0;border-top:1px solid #e8e8e8;border-bottom:none}.ant-tabs-bottom .ant-tabs-bottom-bar .ant-tabs-ink-bar{top:1px;bottom:auto}.ant-tabs-bottom .ant-tabs-bottom-bar .ant-tabs-nav-container{margin-top:-1px;margin-bottom:0}.ant-tabs-tab-next,.ant-tabs-tab-prev{position:absolute;z-index:2;width:0;height:100%;color:rgba(0,0,0,.45);text-align:center;background-color:transparent;border:0;cursor:pointer;opacity:0;transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.ant-tabs-tab-next.ant-tabs-tab-arrow-show,.ant-tabs-tab-prev.ant-tabs-tab-arrow-show{width:32px;height:100%;opacity:1;pointer-events:auto}.ant-tabs-tab-next:hover,.ant-tabs-tab-prev:hover{color:rgba(0,0,0,.65)}.ant-tabs-tab-next-icon,.ant-tabs-tab-prev-icon{position:absolute;top:50%;left:50%;font-weight:700;font-style:normal;font-variant:normal;line-height:inherit;text-align:center;text-transform:none;transform:translate(-50%,-50%)}.ant-tabs-tab-next-icon-target,.ant-tabs-tab-prev-icon-target{display:block;display:inline-block;font-size:12px;font-size:10px\9;transform:scale(.83333333) rotate(0deg)}:root .ant-tabs-tab-next-icon-target,:root .ant-tabs-tab-prev-icon-target{font-size:12px}.ant-tabs-tab-btn-disabled{cursor:not-allowed}.ant-tabs-tab-btn-disabled,.ant-tabs-tab-btn-disabled:hover{color:rgba(0,0,0,.25)}.ant-tabs-tab-next{right:2px}.ant-tabs-tab-prev{left:0}:root .ant-tabs-tab-prev{-webkit-filter:none;filter:none}.ant-tabs-nav-wrap{margin-bottom:-1px;overflow:hidden}.ant-tabs-nav-scroll{overflow:hidden;white-space:nowrap}.ant-tabs-nav{position:relative;display:inline-block;box-sizing:border-box;margin:0;padding-left:0;list-style:none;transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-nav:after,.ant-tabs-nav:before{display:table;content:" "}.ant-tabs-nav:after{clear:both}.ant-tabs-nav .ant-tabs-tab{position:relative;display:inline-block;box-sizing:border-box;height:100%;margin:0 32px 0 0;padding:12px 16px;text-decoration:none;cursor:pointer;transition:color .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-nav .ant-tabs-tab:before{position:absolute;top:-1px;left:0;width:100%;border-top:2px solid transparent;border-radius:4px 4px 0 0;transition:all .3s;content:"";pointer-events:none}.ant-tabs-nav .ant-tabs-tab:last-child{margin-right:0}.ant-tabs-nav .ant-tabs-tab:hover{color:#40a9ff}.ant-tabs-nav .ant-tabs-tab:active{color:#096dd9}.ant-tabs-nav .ant-tabs-tab .anticon{margin-right:8px}.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff;font-weight:500}.ant-tabs-nav .ant-tabs-tab-disabled,.ant-tabs-nav .ant-tabs-tab-disabled:hover{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tabs .ant-tabs-large-bar .ant-tabs-nav-container{font-size:16px}.ant-tabs .ant-tabs-large-bar .ant-tabs-tab{padding:16px}.ant-tabs .ant-tabs-small-bar .ant-tabs-nav-container{font-size:14px}.ant-tabs .ant-tabs-small-bar .ant-tabs-tab{padding:8px 16px}.ant-tabs-content:before{display:block;overflow:hidden;content:""}.ant-tabs .ant-tabs-bottom-content,.ant-tabs .ant-tabs-top-content{width:100%}.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane,.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane{flex-shrink:0;width:100%;-webkit-backface-visibility:hidden;opacity:1;transition:opacity .45s}.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane-inactive,.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane-inactive{height:0;padding:0!important;overflow:hidden;opacity:0;pointer-events:none}.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane-inactive input,.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane-inactive input{visibility:hidden}.ant-tabs .ant-tabs-bottom-content.ant-tabs-content-animated,.ant-tabs .ant-tabs-top-content.ant-tabs-content-animated{display:flex;flex-direction:row;transition:margin-left .3s cubic-bezier(.645,.045,.355,1);will-change:margin-left}.ant-tabs .ant-tabs-left-bar,.ant-tabs .ant-tabs-right-bar{height:100%;border-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show{width:100%;height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab{display:block;float:none;margin:0 0 16px;padding:8px 24px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab:last-child,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab:last-child{margin-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-extra-content,.ant-tabs .ant-tabs-right-bar .ant-tabs-extra-content{text-align:center}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-scroll,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-scroll{width:auto}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap{height:100%}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container{margin-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container.ant-tabs-nav-container-scrolling,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container.ant-tabs-nav-container-scrolling{padding:32px 0}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap{margin-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav{width:100%}.ant-tabs .ant-tabs-left-bar .ant-tabs-ink-bar,.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar{top:0;bottom:auto;left:auto;width:2px;height:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-next,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-next{right:0;bottom:0;width:100%;height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-prev,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-prev{top:0;width:100%;height:32px}.ant-tabs .ant-tabs-left-content,.ant-tabs .ant-tabs-right-content{width:auto;margin-top:0!important;overflow:hidden}.ant-tabs .ant-tabs-left-bar{float:left;margin-right:-1px;margin-bottom:0;border-right:1px solid #e8e8e8}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab{text-align:right}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container{margin-right:-1px}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap{margin-right:-1px}.ant-tabs .ant-tabs-left-bar .ant-tabs-ink-bar{right:1px}.ant-tabs .ant-tabs-left-content{padding-left:24px;border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-bar{float:right;margin-bottom:0;margin-left:-1px;border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container{margin-left:-1px}.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap{margin-left:-1px}.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar{left:1px}.ant-tabs .ant-tabs-right-content{padding-right:24px;border-right:1px solid #e8e8e8}.ant-tabs-bottom .ant-tabs-ink-bar-animated,.ant-tabs-top .ant-tabs-ink-bar-animated{transition:transform .3s cubic-bezier(.645,.045,.355,1),width .2s cubic-bezier(.645,.045,.355,1),left .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-left .ant-tabs-ink-bar-animated,.ant-tabs-right .ant-tabs-ink-bar-animated{transition:transform .3s cubic-bezier(.645,.045,.355,1),height .2s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-no-animation>.ant-tabs-content>.ant-tabs-content-animated,.no-flex>.ant-tabs-content>.ant-tabs-content-animated{margin-left:0!important;transform:none!important}.ant-tabs-no-animation>.ant-tabs-content>.ant-tabs-tabpane-inactive,.no-flex>.ant-tabs-content>.ant-tabs-tabpane-inactive{height:0;padding:0!important;overflow:hidden;opacity:0;pointer-events:none}.ant-tabs-no-animation>.ant-tabs-content>.ant-tabs-tabpane-inactive input,.no-flex>.ant-tabs-content>.ant-tabs-tabpane-inactive input{visibility:hidden}.ant-tabs-left-content>.ant-tabs-content-animated,.ant-tabs-right-content>.ant-tabs-content-animated{margin-left:0!important;transform:none!important}.ant-tabs-left-content>.ant-tabs-tabpane-inactive,.ant-tabs-right-content>.ant-tabs-tabpane-inactive{height:0;padding:0!important;overflow:hidden;opacity:0;pointer-events:none}.ant-tabs-left-content>.ant-tabs-tabpane-inactive input,.ant-tabs-right-content>.ant-tabs-tabpane-inactive input{visibility:hidden} -.ant-calendar-picker-container{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:absolute;z-index:1050;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-topLeft,.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-topRight,.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-topLeft,.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-topRight{animation-name:antSlideDownIn}.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-bottomLeft,.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-bottomRight,.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-bottomLeft,.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-bottomRight{animation-name:antSlideUpIn}.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-topLeft,.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-topRight{animation-name:antSlideDownOut}.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-bottomLeft,.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-bottomRight{animation-name:antSlideUpOut}.ant-calendar-picker{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;outline:none;cursor:text;transition:opacity .3s}.ant-calendar-picker-input{outline:none}.ant-calendar-picker-input.ant-input{line-height:1.5}.ant-calendar-picker-input.ant-input-sm{padding-top:0;padding-bottom:0}.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff}.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-calendar-picker-clear,.ant-calendar-picker-icon{position:absolute;top:50%;right:12px;z-index:1;width:14px;height:14px;margin-top:-7px;font-size:12px;line-height:14px;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-calendar-picker-clear{z-index:2;color:rgba(0,0,0,.25);font-size:14px;background:#fff;cursor:pointer;opacity:0;pointer-events:none}.ant-calendar-picker-clear:hover{color:rgba(0,0,0,.45)}.ant-calendar-picker:hover .ant-calendar-picker-clear{opacity:1;pointer-events:auto}.ant-calendar-picker-icon{display:inline-block;color:rgba(0,0,0,.25);font-size:14px;line-height:1}.ant-input-disabled+.ant-calendar-picker-icon{cursor:not-allowed}.ant-calendar-picker-small .ant-calendar-picker-clear,.ant-calendar-picker-small .ant-calendar-picker-icon{right:8px}.ant-calendar{position:relative;width:280px;font-size:14px;line-height:1.5;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #fff;border-radius:4px;outline:none;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-calendar-input-wrap{height:34px;padding:6px 10px;border-bottom:1px solid #e8e8e8}.ant-calendar-input{width:100%;height:22px;color:rgba(0,0,0,.65);background:#fff;border:0;outline:0;cursor:auto}.ant-calendar-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-calendar-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-input:placeholder-shown{text-overflow:ellipsis}.ant-calendar-week-number{width:286px}.ant-calendar-week-number-cell{text-align:center}.ant-calendar-header{height:40px;line-height:40px;text-align:center;border-bottom:1px solid #e8e8e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-calendar-header a:hover{color:#40a9ff}.ant-calendar-header .ant-calendar-century-select,.ant-calendar-header .ant-calendar-decade-select,.ant-calendar-header .ant-calendar-month-select,.ant-calendar-header .ant-calendar-year-select{display:inline-block;padding:0 2px;color:rgba(0,0,0,.85);font-weight:500;line-height:40px}.ant-calendar-header .ant-calendar-century-select-arrow,.ant-calendar-header .ant-calendar-decade-select-arrow,.ant-calendar-header .ant-calendar-month-select-arrow,.ant-calendar-header .ant-calendar-year-select-arrow{display:none}.ant-calendar-header .ant-calendar-next-century-btn,.ant-calendar-header .ant-calendar-next-decade-btn,.ant-calendar-header .ant-calendar-next-month-btn,.ant-calendar-header .ant-calendar-next-year-btn,.ant-calendar-header .ant-calendar-prev-century-btn,.ant-calendar-header .ant-calendar-prev-decade-btn,.ant-calendar-header .ant-calendar-prev-month-btn,.ant-calendar-header .ant-calendar-prev-year-btn{position:absolute;top:0;display:inline-block;padding:0 5px;color:rgba(0,0,0,.45);font-size:16px;font-family:Arial,Hiragino Sans GB,Microsoft Yahei,"Microsoft Sans Serif",sans-serif;line-height:40px}.ant-calendar-header .ant-calendar-prev-century-btn,.ant-calendar-header .ant-calendar-prev-decade-btn,.ant-calendar-header .ant-calendar-prev-year-btn{left:7px;height:100%}.ant-calendar-header .ant-calendar-prev-century-btn:after,.ant-calendar-header .ant-calendar-prev-century-btn:before,.ant-calendar-header .ant-calendar-prev-decade-btn:after,.ant-calendar-header .ant-calendar-prev-decade-btn:before,.ant-calendar-header .ant-calendar-prev-year-btn:after,.ant-calendar-header .ant-calendar-prev-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-header .ant-calendar-prev-century-btn:hover:after,.ant-calendar-header .ant-calendar-prev-century-btn:hover:before,.ant-calendar-header .ant-calendar-prev-decade-btn:hover:after,.ant-calendar-header .ant-calendar-prev-decade-btn:hover:before,.ant-calendar-header .ant-calendar-prev-year-btn:hover:after,.ant-calendar-header .ant-calendar-prev-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-header .ant-calendar-prev-century-btn:after,.ant-calendar-header .ant-calendar-prev-decade-btn:after,.ant-calendar-header .ant-calendar-prev-year-btn:after{display:none}.ant-calendar-header .ant-calendar-prev-century-btn:after,.ant-calendar-header .ant-calendar-prev-decade-btn:after,.ant-calendar-header .ant-calendar-prev-year-btn:after{position:relative;left:-3px;display:inline-block}.ant-calendar-header .ant-calendar-next-century-btn,.ant-calendar-header .ant-calendar-next-decade-btn,.ant-calendar-header .ant-calendar-next-year-btn{right:7px;height:100%}.ant-calendar-header .ant-calendar-next-century-btn:after,.ant-calendar-header .ant-calendar-next-century-btn:before,.ant-calendar-header .ant-calendar-next-decade-btn:after,.ant-calendar-header .ant-calendar-next-decade-btn:before,.ant-calendar-header .ant-calendar-next-year-btn:after,.ant-calendar-header .ant-calendar-next-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-header .ant-calendar-next-century-btn:hover:after,.ant-calendar-header .ant-calendar-next-century-btn:hover:before,.ant-calendar-header .ant-calendar-next-decade-btn:hover:after,.ant-calendar-header .ant-calendar-next-decade-btn:hover:before,.ant-calendar-header .ant-calendar-next-year-btn:hover:after,.ant-calendar-header .ant-calendar-next-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-header .ant-calendar-next-century-btn:after,.ant-calendar-header .ant-calendar-next-decade-btn:after,.ant-calendar-header .ant-calendar-next-year-btn:after{display:none}.ant-calendar-header .ant-calendar-next-century-btn:after,.ant-calendar-header .ant-calendar-next-century-btn:before,.ant-calendar-header .ant-calendar-next-decade-btn:after,.ant-calendar-header .ant-calendar-next-decade-btn:before,.ant-calendar-header .ant-calendar-next-year-btn:after,.ant-calendar-header .ant-calendar-next-year-btn:before{transform:rotate(135deg) scale(.8)}.ant-calendar-header .ant-calendar-next-century-btn:before,.ant-calendar-header .ant-calendar-next-decade-btn:before,.ant-calendar-header .ant-calendar-next-year-btn:before{position:relative;left:3px}.ant-calendar-header .ant-calendar-next-century-btn:after,.ant-calendar-header .ant-calendar-next-decade-btn:after,.ant-calendar-header .ant-calendar-next-year-btn:after{display:inline-block}.ant-calendar-header .ant-calendar-prev-month-btn{left:29px;height:100%}.ant-calendar-header .ant-calendar-prev-month-btn:after,.ant-calendar-header .ant-calendar-prev-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-header .ant-calendar-prev-month-btn:hover:after,.ant-calendar-header .ant-calendar-prev-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-header .ant-calendar-prev-month-btn:after{display:none}.ant-calendar-header .ant-calendar-next-month-btn{right:29px;height:100%}.ant-calendar-header .ant-calendar-next-month-btn:after,.ant-calendar-header .ant-calendar-next-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-header .ant-calendar-next-month-btn:hover:after,.ant-calendar-header .ant-calendar-next-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-header .ant-calendar-next-month-btn:after{display:none}.ant-calendar-header .ant-calendar-next-month-btn:after,.ant-calendar-header .ant-calendar-next-month-btn:before{transform:rotate(135deg) scale(.8)}.ant-calendar-body{padding:8px 12px}.ant-calendar table{width:100%;max-width:100%;background-color:transparent;border-collapse:collapse}.ant-calendar table,.ant-calendar td,.ant-calendar th{text-align:center;border:0}.ant-calendar-calendar-table{margin-bottom:0;border-spacing:0}.ant-calendar-column-header{width:33px;padding:6px 0;line-height:18px;text-align:center}.ant-calendar-column-header .ant-calendar-column-header-inner{display:block;font-weight:400}.ant-calendar-week-number-header .ant-calendar-column-header-inner{display:none}.ant-calendar-cell{height:30px;padding:3px 0}.ant-calendar-date{display:block;width:24px;height:24px;margin:0 auto;padding:0;color:rgba(0,0,0,.65);line-height:22px;text-align:center;background:transparent;border:1px solid transparent;border-radius:2px;transition:background .3s ease}.ant-calendar-date-panel{position:relative;outline:none}.ant-calendar-date:hover{background:#e6f7ff;cursor:pointer}.ant-calendar-date:active{color:#fff;background:#40a9ff}.ant-calendar-today .ant-calendar-date{color:#1890ff;font-weight:700;border-color:#1890ff}.ant-calendar-selected-day .ant-calendar-date{background:#bae7ff}.ant-calendar-last-month-cell .ant-calendar-date,.ant-calendar-last-month-cell .ant-calendar-date:hover,.ant-calendar-next-month-btn-day .ant-calendar-date,.ant-calendar-next-month-btn-day .ant-calendar-date:hover{color:rgba(0,0,0,.25);background:transparent;border-color:transparent}.ant-calendar-disabled-cell .ant-calendar-date{position:relative;width:auto;color:rgba(0,0,0,.25);background:#f5f5f5;border:1px solid transparent;border-radius:0;cursor:not-allowed}.ant-calendar-disabled-cell .ant-calendar-date:hover{background:#f5f5f5}.ant-calendar-disabled-cell.ant-calendar-selected-day .ant-calendar-date:before{position:absolute;top:-1px;left:5px;width:24px;height:24px;background:rgba(0,0,0,.1);border-radius:2px;content:""}.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date{position:relative;padding-right:5px;padding-left:5px}.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date:before{position:absolute;top:-1px;left:5px;width:24px;height:24px;border:1px solid rgba(0,0,0,.25);border-radius:2px;content:" "}.ant-calendar-disabled-cell-first-of-row .ant-calendar-date{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-calendar-disabled-cell-last-of-row .ant-calendar-date{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-calendar-footer{padding:0 12px;line-height:38px;border-top:1px solid #e8e8e8}.ant-calendar-footer:empty{border-top:0}.ant-calendar-footer-btn{display:block;text-align:center}.ant-calendar-footer-extra{text-align:left}.ant-calendar .ant-calendar-clear-btn,.ant-calendar .ant-calendar-today-btn{display:inline-block;margin:0 0 0 8px;text-align:center}.ant-calendar .ant-calendar-clear-btn-disabled,.ant-calendar .ant-calendar-today-btn-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-calendar .ant-calendar-clear-btn:only-child,.ant-calendar .ant-calendar-today-btn:only-child{margin:0}.ant-calendar .ant-calendar-clear-btn{position:absolute;top:7px;right:5px;display:none;width:20px;height:20px;margin:0;overflow:hidden;line-height:20px;text-align:center;text-indent:-76px}.ant-calendar .ant-calendar-clear-btn:after{display:inline-block;width:20px;color:rgba(0,0,0,.25);font-size:14px;line-height:1;text-indent:43px;transition:color .3s ease}.ant-calendar .ant-calendar-clear-btn:hover:after{color:rgba(0,0,0,.45)}.ant-calendar .ant-calendar-ok-btn{position:relative;display:inline-block;font-weight:400;white-space:nowrap;text-align:center;background-image:none;box-shadow:0 2px 0 rgba(0,0,0,.015);cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:manipulation;height:32px;color:#fff;background-color:#1890ff;border:1px solid #1890ff;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(0,0,0,.045);height:24px;padding:0 7px;font-size:14px;border-radius:4px;line-height:22px}.ant-calendar .ant-calendar-ok-btn>.anticon{line-height:1}.ant-calendar .ant-calendar-ok-btn,.ant-calendar .ant-calendar-ok-btn:active,.ant-calendar .ant-calendar-ok-btn:focus{outline:0}.ant-calendar .ant-calendar-ok-btn:not([disabled]):hover{text-decoration:none}.ant-calendar .ant-calendar-ok-btn:not([disabled]):active{outline:0;box-shadow:none}.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn[disabled]{cursor:not-allowed}.ant-calendar .ant-calendar-ok-btn.disabled>*,.ant-calendar .ant-calendar-ok-btn[disabled]>*{pointer-events:none}.ant-calendar .ant-calendar-ok-btn-lg{height:40px;padding:0 15px;font-size:16px;border-radius:4px}.ant-calendar .ant-calendar-ok-btn-sm{height:24px;padding:0 7px;font-size:14px;border-radius:4px}.ant-calendar .ant-calendar-ok-btn>a:only-child{color:currentColor}.ant-calendar .ant-calendar-ok-btn>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-calendar .ant-calendar-ok-btn:focus,.ant-calendar .ant-calendar-ok-btn:hover{color:#fff;background-color:#40a9ff;border-color:#40a9ff}.ant-calendar .ant-calendar-ok-btn:focus>a:only-child,.ant-calendar .ant-calendar-ok-btn:hover>a:only-child{color:currentColor}.ant-calendar .ant-calendar-ok-btn:focus>a:only-child:after,.ant-calendar .ant-calendar-ok-btn:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-calendar .ant-calendar-ok-btn.active,.ant-calendar .ant-calendar-ok-btn:active{color:#fff;background-color:#096dd9;border-color:#096dd9}.ant-calendar .ant-calendar-ok-btn.active>a:only-child,.ant-calendar .ant-calendar-ok-btn:active>a:only-child{color:currentColor}.ant-calendar .ant-calendar-ok-btn.active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-calendar .ant-calendar-ok-btn-disabled,.ant-calendar .ant-calendar-ok-btn-disabled.active,.ant-calendar .ant-calendar-ok-btn-disabled:active,.ant-calendar .ant-calendar-ok-btn-disabled:focus,.ant-calendar .ant-calendar-ok-btn-disabled:hover,.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn.disabled.active,.ant-calendar .ant-calendar-ok-btn.disabled:active,.ant-calendar .ant-calendar-ok-btn.disabled:focus,.ant-calendar .ant-calendar-ok-btn.disabled:hover,.ant-calendar .ant-calendar-ok-btn[disabled],.ant-calendar .ant-calendar-ok-btn[disabled].active,.ant-calendar .ant-calendar-ok-btn[disabled]:active,.ant-calendar .ant-calendar-ok-btn[disabled]:focus,.ant-calendar .ant-calendar-ok-btn[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-calendar .ant-calendar-ok-btn-disabled.active>a:only-child,.ant-calendar .ant-calendar-ok-btn-disabled:active>a:only-child,.ant-calendar .ant-calendar-ok-btn-disabled:focus>a:only-child,.ant-calendar .ant-calendar-ok-btn-disabled:hover>a:only-child,.ant-calendar .ant-calendar-ok-btn-disabled>a:only-child,.ant-calendar .ant-calendar-ok-btn.disabled.active>a:only-child,.ant-calendar .ant-calendar-ok-btn.disabled:active>a:only-child,.ant-calendar .ant-calendar-ok-btn.disabled:focus>a:only-child,.ant-calendar .ant-calendar-ok-btn.disabled:hover>a:only-child,.ant-calendar .ant-calendar-ok-btn.disabled>a:only-child,.ant-calendar .ant-calendar-ok-btn[disabled].active>a:only-child,.ant-calendar .ant-calendar-ok-btn[disabled]:active>a:only-child,.ant-calendar .ant-calendar-ok-btn[disabled]:focus>a:only-child,.ant-calendar .ant-calendar-ok-btn[disabled]:hover>a:only-child,.ant-calendar .ant-calendar-ok-btn[disabled]>a:only-child{color:currentColor}.ant-calendar .ant-calendar-ok-btn-disabled.active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn-disabled:active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn-disabled:focus>a:only-child:after,.ant-calendar .ant-calendar-ok-btn-disabled:hover>a:only-child:after,.ant-calendar .ant-calendar-ok-btn-disabled>a:only-child:after,.ant-calendar .ant-calendar-ok-btn.disabled.active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn.disabled:active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn.disabled:focus>a:only-child:after,.ant-calendar .ant-calendar-ok-btn.disabled:hover>a:only-child:after,.ant-calendar .ant-calendar-ok-btn.disabled>a:only-child:after,.ant-calendar .ant-calendar-ok-btn[disabled].active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn[disabled]:active>a:only-child:after,.ant-calendar .ant-calendar-ok-btn[disabled]:focus>a:only-child:after,.ant-calendar .ant-calendar-ok-btn[disabled]:hover>a:only-child:after,.ant-calendar .ant-calendar-ok-btn[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-calendar-range-picker-input{width:44%;height:99%;text-align:center;background-color:transparent;border:0;outline:0}.ant-calendar-range-picker-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-calendar-range-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input:placeholder-shown{text-overflow:ellipsis}.ant-calendar-range-picker-input[disabled]{cursor:not-allowed}.ant-calendar-range-picker-separator{display:inline-block;min-width:10px;height:100%;color:rgba(0,0,0,.45);white-space:nowrap;text-align:center;vertical-align:top;pointer-events:none}.ant-calendar-range{width:552px;overflow:hidden}.ant-calendar-range .ant-calendar-date-panel:after{display:block;clear:both;height:0;visibility:hidden;content:"."}.ant-calendar-range-part{position:relative;width:50%}.ant-calendar-range-left{float:left}.ant-calendar-range-left .ant-calendar-time-picker-inner{border-right:1px solid #e8e8e8}.ant-calendar-range-right{float:right}.ant-calendar-range-right .ant-calendar-time-picker-inner{border-left:1px solid #e8e8e8}.ant-calendar-range-middle{position:absolute;left:50%;z-index:1;height:34px;margin:1px 0 0;padding:0 200px 0 0;color:rgba(0,0,0,.45);line-height:34px;text-align:center;transform:translateX(-50%);pointer-events:none}.ant-calendar-range-right .ant-calendar-date-input-wrap{margin-left:-90px}.ant-calendar-range.ant-calendar-time .ant-calendar-range-middle{padding:0 10px 0 0;transform:translateX(-50%)}.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#1890ff;background:#bae7ff;border-color:#1890ff}.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date{color:#fff;background:#1890ff;border:1px solid transparent}.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover{background:#1890ff}.ant-calendar-range.ant-calendar-time .ant-calendar-range-right .ant-calendar-date-input-wrap{margin-left:0}.ant-calendar-range .ant-calendar-input-wrap{position:relative;height:34px}.ant-calendar-range .ant-calendar-input,.ant-calendar-range .ant-calendar-time-picker-input{position:relative;display:inline-block;width:100%;height:32px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5;background-color:#fff;background-image:none;border-radius:4px;transition:all .3s;height:24px;padding:4px 0;line-height:24px;border:0;box-shadow:none}.ant-calendar-range .ant-calendar-input::-moz-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-calendar-range .ant-calendar-input:-ms-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input::-webkit-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input:placeholder-shown,.ant-calendar-range .ant-calendar-time-picker-input:placeholder-shown{text-overflow:ellipsis}.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-calendar-range .ant-calendar-input-disabled,.ant-calendar-range .ant-calendar-time-picker-input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-calendar-range .ant-calendar-input-disabled:hover,.ant-calendar-range .ant-calendar-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-calendar-range .ant-calendar-input[disabled],.ant-calendar-range .ant-calendar-time-picker-input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-calendar-range .ant-calendar-input[disabled]:hover,.ant-calendar-range .ant-calendar-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-calendar-range .ant-calendar-input,textarea.ant-calendar-range .ant-calendar-time-picker-input{max-width:100%;height:auto;min-height:32px;line-height:1.5;vertical-align:bottom;transition:all .3s,height 0s}.ant-calendar-range .ant-calendar-input-lg,.ant-calendar-range .ant-calendar-time-picker-input-lg{height:40px;padding:6px 11px;font-size:16px}.ant-calendar-range .ant-calendar-input-sm,.ant-calendar-range .ant-calendar-time-picker-input-sm{height:24px;padding:1px 7px}.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{box-shadow:none}.ant-calendar-range .ant-calendar-time-picker-icon{display:none}.ant-calendar-range.ant-calendar-week-number{width:574px}.ant-calendar-range.ant-calendar-week-number .ant-calendar-range-part{width:286px}.ant-calendar-range .ant-calendar-decade-panel,.ant-calendar-range .ant-calendar-month-panel,.ant-calendar-range .ant-calendar-year-panel{top:34px}.ant-calendar-range .ant-calendar-month-panel .ant-calendar-year-panel{top:0}.ant-calendar-range .ant-calendar-decade-panel-table,.ant-calendar-range .ant-calendar-month-panel-table,.ant-calendar-range .ant-calendar-year-panel-table{height:208px}.ant-calendar-range .ant-calendar-in-range-cell{position:relative;border-radius:0}.ant-calendar-range .ant-calendar-in-range-cell>div{position:relative;z-index:1}.ant-calendar-range .ant-calendar-in-range-cell:before{position:absolute;top:4px;right:0;bottom:4px;left:0;display:block;background:#e6f7ff;border:0;border-radius:0;content:""}.ant-calendar-range .ant-calendar-footer-extra{float:left}div.ant-calendar-range-quick-selector{text-align:left}div.ant-calendar-range-quick-selector>a{margin-right:8px}.ant-calendar-range .ant-calendar-decade-panel-header,.ant-calendar-range .ant-calendar-header,.ant-calendar-range .ant-calendar-month-panel-header,.ant-calendar-range .ant-calendar-year-panel-header{border-bottom:0}.ant-calendar-range .ant-calendar-body,.ant-calendar-range .ant-calendar-decade-panel-body,.ant-calendar-range .ant-calendar-month-panel-body,.ant-calendar-range .ant-calendar-year-panel-body{border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker{top:68px;z-index:2;width:100%;height:207px}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-panel{height:267px;margin-top:-34px}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-inner{height:100%;padding-top:40px;background:none}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-combobox{display:inline-block;height:100%;background-color:#fff;border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-select{height:100%}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-select ul{max-height:100%}.ant-calendar-range.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn{margin-right:8px}.ant-calendar-range.ant-calendar-time .ant-calendar-today-btn{height:22px;margin:8px 12px;line-height:22px}.ant-calendar-range-with-ranges.ant-calendar-time .ant-calendar-time-picker{height:233px}.ant-calendar-range.ant-calendar-show-time-picker .ant-calendar-body{border-top-color:transparent}.ant-calendar-time-picker{position:absolute;top:40px;width:100%;background-color:#fff}.ant-calendar-time-picker-panel{position:absolute;z-index:1050;width:100%}.ant-calendar-time-picker-inner{position:relative;display:inline-block;width:100%;overflow:hidden;font-size:14px;line-height:1.5;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;outline:none}.ant-calendar-time-picker-combobox{width:100%}.ant-calendar-time-picker-column-1,.ant-calendar-time-picker-column-1 .ant-calendar-time-picker-select{width:100%}.ant-calendar-time-picker-column-2 .ant-calendar-time-picker-select{width:50%}.ant-calendar-time-picker-column-3 .ant-calendar-time-picker-select{width:33.33%}.ant-calendar-time-picker-column-4 .ant-calendar-time-picker-select{width:25%}.ant-calendar-time-picker-input-wrap{display:none}.ant-calendar-time-picker-select{position:relative;float:left;height:226px;overflow:hidden;font-size:14px;border-right:1px solid #e8e8e8}.ant-calendar-time-picker-select:hover{overflow-y:auto}.ant-calendar-time-picker-select:first-child{margin-left:0;border-left:0}.ant-calendar-time-picker-select:last-child{border-right:0}.ant-calendar-time-picker-select ul{width:100%;max-height:206px;margin:0;padding:0;list-style:none}.ant-calendar-time-picker-select li{width:100%;height:24px;margin:0;line-height:24px;text-align:center;list-style:none;cursor:pointer;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-calendar-time-picker-select li:last-child:after{display:block;height:202px;content:""}.ant-calendar-time-picker-select li:hover{background:#e6f7ff}.ant-calendar-time-picker-select li:focus{color:#1890ff;font-weight:600;outline:none}li.ant-calendar-time-picker-select-option-selected{font-weight:600;background:#f5f5f5}li.ant-calendar-time-picker-select-option-disabled{color:rgba(0,0,0,.25)}li.ant-calendar-time-picker-select-option-disabled:hover{background:transparent;cursor:not-allowed}.ant-calendar-time .ant-calendar-day-select{display:inline-block;padding:0 2px;color:rgba(0,0,0,.85);font-weight:500;line-height:34px}.ant-calendar-time .ant-calendar-footer{position:relative;height:auto}.ant-calendar-time .ant-calendar-footer-btn{text-align:right}.ant-calendar-time .ant-calendar-footer .ant-calendar-today-btn{float:left;margin:0}.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn{display:inline-block;margin-right:8px}.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn-disabled{color:rgba(0,0,0,.25)}.ant-calendar-month-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#fff;border-radius:4px;outline:none}.ant-calendar-month-panel>div{display:flex;flex-direction:column;height:100%}.ant-calendar-month-panel-hidden{display:none}.ant-calendar-month-panel-header{height:40px;line-height:40px;text-align:center;border-bottom:1px solid #e8e8e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.ant-calendar-month-panel-header a:hover{color:#40a9ff}.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select{display:inline-block;padding:0 2px;color:rgba(0,0,0,.85);font-weight:500;line-height:40px}.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select-arrow,.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select-arrow,.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select-arrow,.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select-arrow{display:none}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn{position:absolute;top:0;display:inline-block;padding:0 5px;color:rgba(0,0,0,.45);font-size:16px;font-family:Arial,Hiragino Sans GB,Microsoft Yahei,"Microsoft Sans Serif",sans-serif;line-height:40px}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn{left:7px;height:100%}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:after{display:none}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:after{position:relative;left:-3px;display:inline-block}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn{right:7px;height:100%}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:after{display:none}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:before{transform:rotate(135deg) scale(.8)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:before{position:relative;left:3px}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:after{display:inline-block}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn{left:29px;height:100%}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:after{display:none}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn{right:29px;height:100%}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:after{display:none}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:before{transform:rotate(135deg) scale(.8)}.ant-calendar-month-panel-body{flex:1 1}.ant-calendar-month-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-month-panel-footer .ant-calendar-footer-extra{padding:0 12px}.ant-calendar-month-panel-table{width:100%;height:100%;table-layout:fixed;border-collapse:separate}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month{color:#fff;background:#1890ff}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{color:#fff;background:#1890ff}.ant-calendar-month-panel-cell{text-align:center}.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month,.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month:hover{color:rgba(0,0,0,.25);background:#f5f5f5;cursor:not-allowed}.ant-calendar-month-panel-month{display:inline-block;height:24px;margin:0 auto;padding:0 8px;color:rgba(0,0,0,.65);line-height:24px;text-align:center;background:transparent;border-radius:2px;transition:background .3s ease}.ant-calendar-month-panel-month:hover{background:#e6f7ff;cursor:pointer}.ant-calendar-year-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#fff;border-radius:4px;outline:none}.ant-calendar-year-panel>div{display:flex;flex-direction:column;height:100%}.ant-calendar-year-panel-hidden{display:none}.ant-calendar-year-panel-header{height:40px;line-height:40px;text-align:center;border-bottom:1px solid #e8e8e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.ant-calendar-year-panel-header a:hover{color:#40a9ff}.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select{display:inline-block;padding:0 2px;color:rgba(0,0,0,.85);font-weight:500;line-height:40px}.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select-arrow,.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select-arrow,.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select-arrow,.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select-arrow{display:none}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn{position:absolute;top:0;display:inline-block;padding:0 5px;color:rgba(0,0,0,.45);font-size:16px;font-family:Arial,Hiragino Sans GB,Microsoft Yahei,"Microsoft Sans Serif",sans-serif;line-height:40px}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn{left:7px;height:100%}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:after{display:none}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:after{position:relative;left:-3px;display:inline-block}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn{right:7px;height:100%}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:after{display:none}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:before{transform:rotate(135deg) scale(.8)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:before{position:relative;left:3px}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:after{display:inline-block}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn{left:29px;height:100%}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:after{display:none}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn{right:29px;height:100%}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:after{display:none}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:before{transform:rotate(135deg) scale(.8)}.ant-calendar-year-panel-body{flex:1 1}.ant-calendar-year-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-year-panel-footer .ant-calendar-footer-extra{padding:0 12px}.ant-calendar-year-panel-table{width:100%;height:100%;table-layout:fixed;border-collapse:separate}.ant-calendar-year-panel-cell{text-align:center}.ant-calendar-year-panel-year{display:inline-block;height:24px;margin:0 auto;padding:0 8px;color:rgba(0,0,0,.65);line-height:24px;text-align:center;background:transparent;border-radius:2px;transition:background .3s ease}.ant-calendar-year-panel-year:hover{background:#e6f7ff;cursor:pointer}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year{color:#fff;background:#1890ff}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{color:#fff;background:#1890ff}.ant-calendar-year-panel-last-decade-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-next-decade-cell .ant-calendar-year-panel-year{color:rgba(0,0,0,.25);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-calendar-decade-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;background:#fff;border-radius:4px;outline:none}.ant-calendar-decade-panel-hidden{display:none}.ant-calendar-decade-panel-header{height:40px;line-height:40px;text-align:center;border-bottom:1px solid #e8e8e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.ant-calendar-decade-panel-header a:hover{color:#40a9ff}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select{display:inline-block;padding:0 2px;color:rgba(0,0,0,.85);font-weight:500;line-height:40px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select-arrow,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select-arrow,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select-arrow,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select-arrow{display:none}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn{position:absolute;top:0;display:inline-block;padding:0 5px;color:rgba(0,0,0,.45);font-size:16px;font-family:Arial,Hiragino Sans GB,Microsoft Yahei,"Microsoft Sans Serif",sans-serif;line-height:40px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn{left:7px;height:100%}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:after{display:none}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:after{position:relative;left:-3px;display:inline-block}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn{right:7px;height:100%}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:after{display:none}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:before{transform:rotate(135deg) scale(.8)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:before{position:relative;left:3px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:after{display:inline-block}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn{left:29px;height:100%}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:after{display:none}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn{right:29px;height:100%}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:before{position:relative;top:-1px;display:inline-block;width:8px;height:8px;vertical-align:middle;border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px;transform:rotate(-45deg) scale(.8);transition:all .3s;content:""}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover:before{border-color:rgba(0,0,0,.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:after{display:none}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:before{transform:rotate(135deg) scale(.8)}.ant-calendar-decade-panel-body{flex:1 1}.ant-calendar-decade-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-decade-panel-footer .ant-calendar-footer-extra{padding:0 12px}.ant-calendar-decade-panel-table{width:100%;height:100%;table-layout:fixed;border-collapse:separate}.ant-calendar-decade-panel-cell{white-space:nowrap;text-align:center}.ant-calendar-decade-panel-decade{display:inline-block;height:24px;margin:0 auto;padding:0 6px;color:rgba(0,0,0,.65);line-height:24px;text-align:center;background:transparent;border-radius:2px;transition:background .3s ease}.ant-calendar-decade-panel-decade:hover{background:#e6f7ff;cursor:pointer}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade{color:#fff;background:#1890ff}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{color:#fff;background:#1890ff}.ant-calendar-decade-panel-last-century-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-next-century-cell .ant-calendar-decade-panel-decade{color:rgba(0,0,0,.25);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-calendar-month .ant-calendar-month-header-wrap{position:relative;height:288px}.ant-calendar-month .ant-calendar-month-panel,.ant-calendar-month .ant-calendar-year-panel{top:0;height:100%}.ant-calendar-week-number-cell{opacity:.5}.ant-calendar-week-number .ant-calendar-body tr{cursor:pointer;transition:all .3s}.ant-calendar-week-number .ant-calendar-body tr:hover{background:#e6f7ff}.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{font-weight:700;background:#bae7ff}.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day .ant-calendar-date,.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day:hover .ant-calendar-date{color:rgba(0,0,0,.65);background:transparent} -.ant-time-picker-panel{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:absolute;z-index:1050;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ant-time-picker-panel-inner{position:relative;left:-2px;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border-radius:4px;outline:none;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-time-picker-panel-input{width:100%;max-width:154px;margin:0;padding:0;line-height:normal;border:0;outline:0;cursor:auto}.ant-time-picker-panel-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-time-picker-panel-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input:placeholder-shown{text-overflow:ellipsis}.ant-time-picker-panel-input-wrap{position:relative;padding:7px 2px 7px 12px;border-bottom:1px solid #e8e8e8}.ant-time-picker-panel-input-invalid{border-color:#f5222d}.ant-time-picker-panel-narrow .ant-time-picker-panel-input-wrap{max-width:112px}.ant-time-picker-panel-select{position:relative;float:left;width:56px;max-height:192px;overflow:hidden;font-size:14px;border-left:1px solid #e8e8e8}.ant-time-picker-panel-select:hover{overflow-y:auto}.ant-time-picker-panel-select:first-child{margin-left:0;border-left:0}.ant-time-picker-panel-select:last-child{border-right:0}.ant-time-picker-panel-select:only-child{width:100%}.ant-time-picker-panel-select ul{width:56px;margin:0;padding:0 0 160px;list-style:none}.ant-time-picker-panel-select li{width:100%;height:32px;margin:0;padding:0 0 0 12px;line-height:32px;text-align:left;list-style:none;cursor:pointer;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-time-picker-panel-select li:focus{color:#1890ff;font-weight:600;outline:none}.ant-time-picker-panel-select li:hover{background:#e6f7ff}li.ant-time-picker-panel-select-option-selected{font-weight:600;background:#f5f5f5}li.ant-time-picker-panel-select-option-selected:hover{background:#f5f5f5}li.ant-time-picker-panel-select-option-disabled{color:rgba(0,0,0,.25)}li.ant-time-picker-panel-select-option-disabled:hover{background:transparent;cursor:not-allowed}li.ant-time-picker-panel-select-option-disabled:focus{color:rgba(0,0,0,.25);font-weight:inherit}.ant-time-picker-panel-combobox{zoom:1}.ant-time-picker-panel-combobox:after,.ant-time-picker-panel-combobox:before{display:table;content:""}.ant-time-picker-panel-combobox:after{clear:both}.ant-time-picker-panel-addon{padding:8px;border-top:1px solid #e8e8e8}.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-topLeft,.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-topRight,.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-topLeft,.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-topRight{animation-name:antSlideDownIn}.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-bottomLeft,.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-bottomRight,.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-bottomLeft,.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-bottomRight{animation-name:antSlideUpIn}.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-topLeft,.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-topRight{animation-name:antSlideDownOut}.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-bottomLeft,.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-bottomRight{animation-name:antSlideUpOut}.ant-time-picker{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;width:128px;outline:none;cursor:text;transition:opacity .3s}.ant-time-picker-input{position:relative;display:inline-block;width:100%;height:32px;padding:4px 11px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:4px;transition:all .3s}.ant-time-picker-input::-moz-placeholder{color:#bfbfbf;opacity:1}.ant-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-input:placeholder-shown{text-overflow:ellipsis}.ant-time-picker-input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-time-picker-input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-time-picker-input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-time-picker-input{max-width:100%;height:auto;min-height:32px;line-height:1.5;vertical-align:bottom;transition:all .3s,height 0s}.ant-time-picker-input-lg{height:40px;padding:6px 11px;font-size:16px}.ant-time-picker-input-sm{height:24px;padding:1px 7px}.ant-time-picker-input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-time-picker-open{opacity:0}.ant-time-picker-clear,.ant-time-picker-icon{position:absolute;top:50%;right:11px;z-index:1;width:14px;height:14px;margin-top:-7px;color:rgba(0,0,0,.25);line-height:14px;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-time-picker-clear .ant-time-picker-clock-icon,.ant-time-picker-icon .ant-time-picker-clock-icon{display:block;color:rgba(0,0,0,.25);line-height:1}.ant-time-picker-clear{z-index:2;background:#fff;opacity:0;pointer-events:none}.ant-time-picker-clear:hover{color:rgba(0,0,0,.45)}.ant-time-picker:hover .ant-time-picker-clear{opacity:1;pointer-events:auto}.ant-time-picker-large .ant-time-picker-input{height:40px;padding:6px 11px;font-size:16px}.ant-time-picker-small .ant-time-picker-input{height:24px;padding:1px 7px}.ant-time-picker-small .ant-time-picker-clear,.ant-time-picker-small .ant-time-picker-icon{right:7px}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.ant-input{line-height:1.5}}} -.ant-tag{box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";display:inline-block;height:auto;margin:0 8px 0 0;padding:0 7px;font-size:12px;line-height:20px;white-space:nowrap;background:#fafafa;border:1px solid #d9d9d9;border-radius:4px;cursor:default;opacity:1;transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-tag:hover{opacity:.85}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,.65)}.ant-tag>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ant-tag .anticon-close{display:inline-block;font-size:12px;font-size:10px\9;transform:scale(.83333333) rotate(0deg);margin-left:3px;color:rgba(0,0,0,.45);font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.78,.14,.15,.86)}:root .ant-tag .anticon-close{font-size:12px}.ant-tag .anticon-close:hover{color:rgba(0,0,0,.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover,.ant-tag-has-color a,.ant-tag-has-color a:hover{color:#fff}.ant-tag-checkable{background-color:transparent;border-color:transparent}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}.ant-tag-checkable-checked,.ant-tag-checkable:active{color:#fff}.ant-tag-checkable-checked{background-color:#1890ff}.ant-tag-checkable:active{background-color:#096dd9}.ant-tag-hidden{display:none}.ant-tag-pink{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-magenta{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-red{color:#f5222d;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{color:#fff;background:#f5222d;border-color:#f5222d}.ant-tag-volcano{color:#fa541c;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{color:#fff;background:#fa541c;border-color:#fa541c}.ant-tag-orange{color:#fa8c16;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{color:#fff;background:#fa8c16;border-color:#fa8c16}.ant-tag-yellow{color:#fadb14;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{color:#fff;background:#fadb14;border-color:#fadb14}.ant-tag-gold{color:#faad14;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{color:#fff;background:#faad14;border-color:#faad14}.ant-tag-cyan{color:#13c2c2;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{color:#fff;background:#13c2c2;border-color:#13c2c2}.ant-tag-lime{color:#a0d911;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{color:#fff;background:#a0d911;border-color:#a0d911}.ant-tag-green{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{color:#fff;background:#52c41a;border-color:#52c41a}.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{color:#fff;background:#1890ff;border-color:#1890ff}.ant-tag-geekblue{color:#2f54eb;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-tag-purple{color:#722ed1;background:#f9f0ff;border-color:#d3adf7}.ant-tag-purple-inverse{color:#fff;background:#722ed1;border-color:#722ed1} -.ant-drawer{position:fixed;z-index:1000;width:0;height:100%;transition:transform .3s cubic-bezier(.7,.3,.1,1),height 0s ease .3s,width 0s ease .3s}.ant-drawer>*{transition:transform .3s cubic-bezier(.7,.3,.1,1),box-shadow .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-content-wrapper{position:absolute}.ant-drawer .ant-drawer-content{width:100%;height:100%}.ant-drawer-left,.ant-drawer-right{top:0;width:0;height:100%}.ant-drawer-left .ant-drawer-content-wrapper,.ant-drawer-right .ant-drawer-content-wrapper{height:100%}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{width:100%;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-left.ant-drawer-open.no-mask,.ant-drawer-right.ant-drawer-open.no-mask{width:0}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:2px 0 8px rgba(0,0,0,.15)}.ant-drawer-right{right:0}.ant-drawer-right .ant-drawer-content-wrapper{right:0}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:-2px 0 8px rgba(0,0,0,.15)}.ant-drawer-right.ant-drawer-open.no-mask{right:1px;transform:translateX(1px)}.ant-drawer-bottom,.ant-drawer-top{left:0;width:100%;height:0%}.ant-drawer-bottom .ant-drawer-content-wrapper,.ant-drawer-top .ant-drawer-content-wrapper{width:100%}.ant-drawer-bottom.ant-drawer-open,.ant-drawer-top.ant-drawer-open{height:100%;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-bottom.ant-drawer-open.no-mask,.ant-drawer-top.ant-drawer-open.no-mask{height:0%}.ant-drawer-top{top:0}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 2px 8px rgba(0,0,0,.15)}.ant-drawer-bottom{bottom:0}.ant-drawer-bottom .ant-drawer-content-wrapper{bottom:0}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 -2px 8px rgba(0,0,0,.15)}.ant-drawer-bottom.ant-drawer-open.no-mask{bottom:1px;transform:translateY(1px)}.ant-drawer.ant-drawer-open .ant-drawer-mask{height:100%;opacity:1;transition:none;animation:antdDrawerFadeIn .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-title{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:22px}.ant-drawer-content{position:relative;z-index:1;overflow:auto;background-color:#fff;background-clip:padding-box;border:0}.ant-drawer-close{position:absolute;top:0;right:0;z-index:10;display:block;width:56px;height:56px;padding:0;color:rgba(0,0,0,.45);font-weight:700;font-size:16px;font-style:normal;line-height:56px;text-align:center;text-transform:none;text-decoration:none;background:transparent;border:0;outline:0;cursor:pointer;transition:color .3s;text-rendering:auto}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-drawer-header{position:relative;padding:16px 24px;color:rgba(0,0,0,.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-drawer-header-no-title{color:rgba(0,0,0,.65);background:#fff}.ant-drawer-body{padding:24px;font-size:14px;line-height:1.5;word-wrap:break-word}.ant-drawer-wrapper-body{height:100%;overflow:auto}.ant-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0;background-color:rgba(0,0,0,.45);opacity:0;filter:alpha(opacity=45);transition:opacity .3s linear,height 0s ease .3s}.ant-drawer-open-content{box-shadow:0 4px 12px rgba(0,0,0,.15)}@keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}} -@font-face{font-family:rmel-iconfont;src:url(data:application/vnd.ms-fontobject;base64,fBkAAMAYAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAB9vj4gAAAAAAAAAAAAAAAAAAAAAAABoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdAAAAA4AUgBlAGcAdQBsAGEAcgAAABYAVgBlAHIAcwBpAG8AbgAgADEALgAwAAAAGgByAG0AZQBsAC0AaQBjAG8AbgBmAG8AbgB0AAAAAAAAAQAAAAsAgAADADBHU1VCsP6z7QAAATgAAABCT1MvMj3jT5QAAAF8AAAAVmNtYXBA5I9dAAACPAAAAwhnbHlmMImhbQAABXwAAA9gaGVhZBtQ+k8AAADgAAAANmhoZWEH3gObAAAAvAAAACRobXR4aAAAAAAAAdQAAABobG9jYTX6MgAAAAVEAAAANm1heHABMAB7AAABGAAAACBuYW1lc9ztwgAAFNwAAAKpcG9zdCcpv64AABeIAAABNQABAAADgP+AAFwEAAAAAAAEAAABAAAAAAAAAAAAAAAAAAAAGgABAAAAAQAA4uPbB18PPPUACwQAAAAAANwY2ykAAAAA3BjbKQAA//8EAAMBAAAACAACAAAAAAAAAAEAAAAaAG8ADAAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQAAAAoAHgAsAAFERkxUAAgABAAAAAAAAAABAAAAAWxpZ2EACAAAAAEAAAABAAQABAAAAAEACAABAAYAAAABAAAAAAABBAABkAAFAAgCiQLMAAAAjwKJAswAAAHrADIBCAAAAgAFAwAAAAAAAAAAAAAAAAAAAAAAAAAAAABQZkVkAEDnbe2iA4D/gABcA4AAgAAAAAEAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAUAAAADAAAALAAAAAQAAAHMAAEAAAAAAMYAAwABAAAALAADAAoAAAHMAAQAmgAAABYAEAADAAbnbelB7TztRe1h7XXteO2A7Y3tov//AADnbelB7TvtRO1f7W/td+2A7Yztn///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAWABYAFgAYABoAHgAqACwALAAuAAAAAQAEAAUAAwAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAAgAUABUAFgAXABgAGQAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAABPAAAAAAAAAAZAADnbQAA520AAAABAADpQQAA6UEAAAAEAADtOwAA7TsAAAAFAADtPAAA7TwAAAADAADtRAAA7UQAAAAGAADtRQAA7UUAAAAHAADtXwAA7V8AAAAIAADtYAAA7WAAAAAJAADtYQAA7WEAAAAKAADtbwAA7W8AAAALAADtcAAA7XAAAAAMAADtcQAA7XEAAAANAADtcgAA7XIAAAAOAADtcwAA7XMAAAAPAADtdAAA7XQAAAAQAADtdQAA7XUAAAARAADtdwAA7XcAAAASAADteAAA7XgAAAATAADtgAAA7YAAAAACAADtjAAA7YwAAAAUAADtjQAA7Y0AAAAVAADtnwAA7Z8AAAAWAADtoAAA7aAAAAAXAADtoQAA7aEAAAAYAADtogAA7aIAAAAZAAAAAABmAMwBHgGEAbwB/gJmAsgC/gM0A3IDogRABKgE7gUuBXAFygYKBmoGpAbEBugHRgewAAAABQAAAAADVgLWAAsAGAAlADQAQAAAEyEyFhQGByEuATQ2Fz4BNyEeARQGIyEiJgM0NjchHgEUBiMhIiY3PgEzITIeARQOASMhIiYnFhQPAQYmNRE0NhfWAlQSGRkS/awSGRnaARgTAWASGRkS/qASGfQZEgJUEhkZEv2sEhnzARgTAWAMFAsLFAz+oBIZOQgIkgseHgsC1RklGAEBGCUZ8hMYAQEYJRkZ/oUTGAEBGCUZGdkSGQsVFxQMGoYGFgaVDAwRASoRDAwAAAAADAAAAAADqwKrAA8AEwAXABsAHwAjACcAMwA3ADsAPwBDAAABIQ4BBwMeARchPgE3ES4BBTMVIxUzFSMnMxUjFTMVKwI1MzUjNTMBISImNDYzITIWFAY3IzUzNSM1MxcjNTM1IzUzA1X9ViQwAQEBMSQCqiQxAQEx/lxWVlZWgFZWVlYqVlZWVgFV/wASGBgSAQASGBgZVlZWVoBWVlZWAqsBMST+ViQxAQExJAGqJDF/VipW1lYqVlYqVv6AGCQZGSQYqlYqVtZWKlYAAwAAAAADKwMAAA8AHwAzAAAlHgEXIT4BNxEuASchDgEHMyEyFhcRDgEHIS4BJxE+ASUnJisBIg8BIyIGFBYzITI2NCYjAQABMCQBViQwAQEwJP6qJDABgAEAExcBARcT/wATFwEBFwEoHgsStBILHmsTFxcTAgARGRkRVSQwAQEwJAGrJDABATAkFxT+qxEZAQEZEQFVFBfVHg0NHhcnFxcnFwADAAAAAAOrAtkAFgAtAD4AAAEVBg8BBiIvASY0PwEnJjQ/ATYyHwEWBTc2NC8BJiIPAQYHFRYfARYyPwE2NCcBJyYGBwMGFh8BFjY3EzYmJwOrAQmwBxEHHgYGk5MGBh4HEQewCf0PkwYGHwYSBrAJAQEJsAcRBx4GBgFCKQkPBOMCBwgoCQ8E4gMHCQGIEA0KsAYGHgcRBpOTBhIGHgYGsAoVkwYRBx4GBrAKDRANCrAGBh4GEgYB2Q8DBwj9jAgQAw4DBwgCcwgPBAACAAAAAAOaAm8AEAAhAAAlJzc2NCYiDwEGFB8BFjI2NCU3JyY0NjIfARYUDwEGIiY0AXOmpg0ZJAzEDQ3EDiEaAQ2mpg0aIQ7EDQ3EDiEa2qamDiEaDcQNIg3EDRohDqamDCQZDcQNIg3EDRkkAAAAAwAAAAADuAKsAAsAFwAjAAABDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgEDDgEHHgEXPgE3LgECAJjrNTXrmJjrNTXrmFZwAgJwVlZwAgJwVjRDAQFDNDRDAQFDAqwCpIaGpAICpIaGpP4OAnBWVnACAnBWVnABPgFDNDRDAQFDNDRDAAAABQAAAAADgAKrAAsAFwAjADAAQAAAEyEyNjQmIyEiBhQWFyE+ATQmJyEOARQWEyEyNjQmIyEiBhQWJx4BFyE+ATQmJyEOASUhHgEXEQ4BByEuATURNDarAQATFxcT/wARGRkRAQATFxcT/wARGRkRAQATFxcT/wARGRkaARkRAQATFxcT/wARGQHUAQARGQEBGRH/ABMXFwEAFycXFycXqwEZIhkBARkiGQFVFycXFycX1RMXAQEXJhcBARcYARcT/gARGQEBGRECABMXAAAAAAMAAAAAA6sCVgAZACYAQAAAASMiBhQWOwEeARcOAQcjIgYUFjsBPgE3LgEFHgEXIT4BNCYnIQ4BFyMuASc+ATczMjY0JisBDgEHHgEXMzI2NCYC1YASGBgSgDdIAQFIN4ASGBgSgFt4AwN4/iUBGBIBABIYGBL/ABIYVYA3SAEBSDeAEhgYEoBbeAMDeFuAEhgYAlUYJBkBSTY2SQEZJBgCeFtbeNMSGAEBGCQYAQEYkgFJNjZJARkkGAJ4W1t4AhgkGQABAAAAAAOsAisAHgAAAS4BJw4BBwYWFxY2Nz4BNzIWFwcGFhczPgE3NS4BBwMSO5ZVh9Q4ChMXFCMJK6FnP28sURMTHu4SGAECMRYBvDQ6AQKJchcqCAYPElZpASslUhYxAgEYEu8dFBMAAAABAAAAAAOyAisAHgAAAQ4BBycmBgcVHgEXMz4BLwE+ATMeARceATc+AScuAQIUVZY7URYxAgEYEu4eFBNSLW8+Z6ErCSQTFxMKOdMCKwE6NFAUFB3vEhgBAjEWUiUrAWlWEg8GCCoXcokAAAADAAAAAAL1Ar8AFAAcACQAAAE+ATcuAScjDgEHER4BFyE+ATc0JiUzHgEUBgcjEyM1Mx4BFAYCkyEpAQJmTu8UGQEBGRQBB0lpAjT+1IgdJycdiJ+fnx0nJwGKF0QkTmYCARoT/d4TGgECYUk1UtkBJjsmAf7viQEmOyYAAQAAAAADEgK/ABwAAAEeARczAyMOARQWFzM+ATQmJyMTMz4BNCYnIw4BAaUBJh0hnDsdJiYd5B0mJh0hnDsdJiYd5B0mAnodJgH+lAEmOicBASc6JgEBbAEmOicBAScABgAAAAADlgLWAAsAFwAjAEEAUgBuAAABIT4BNCYnIQ4BFBYBIQ4BFBYXIT4BNCYDIQ4BFBYXIT4BNCYFIyIGFBY7ARUjIgYUFjsBFSMiBhQWOwEyNjc1LgEDMxUeATI2PQE0JisBIgYUFhcjIgYUFjsBBwYdARQWOwEyNjQmKwE3Nj0BLgEBawIAEhgYEv4AEhkZAhL+ABIZGRICABIYGBL+ABIZGRICABIYGP1YVQkMDAlAFQoLCwoVQAkMDAlVCgsBAQtfFQELEwwMCSsJDAxeVQkMDAk3RwUMCVUKCwsKN0gFAQsCVQEYJBgBARgkGP5VARgkGAEBGCQYAQEBGCQYAQEYJBjVDBIMFgwSDBYMEgwMCYAJDAHWawkMDAmACQwMEgzWDBIMVAYICQkMDBIMVAYICQkMAAAAAAYAAAAAA4sCwAAIABEAGgAmADIAPwAAEw4BFBYyNjQmAw4BFBYyNjQmAw4BFBYyNjQmFyE+ATQmJyEOARQWNyE+ATQmJyEOARQWAx4BFyE+ATQmJyEOAbUbJCQ3JCQcGyQkNyQkHBskJDYlJI8CABIYGBL+ABIYGBICABIYGBL+ABIYGBkBGBICABIYGBL+ABIYAcABJDYkJDYkAQEBJDYkJDYk/gEBJDYkJDYkagEYJBgBARgkGP8BGCQYAQEYJBgBKhIYAQEYJBgBARgAAAACAAAAAANWAlYAFgAtAAAlMjY/ATY9AS4BKwEiBh0BFBYXMwcGFgUyNj8BNj0BNCYrASIGBxUeARczBwYWATIRGwc9CQEYEqsSGBgSViwOIAHMEBsIPAkYEqsSGAEBGBJVLA0gqxEOeRIUwhIYGBKrEhgBWB4zAREOeRIUwhIYGBKrEhgBWB4zAAAAAAMAAAAAA4ACwAAIABkAJQAAJT4BNzUjFR4BAR4BFzMVMzUzPgE0JichDgEDIT4BNCYnIQ4BFBYCACQwAaoBMP75ASQblqqWGyQkG/4qGyQrAqoSGRkS/VYSGRlAATAkKyskMAI/GyQBgIABJDYkAQEk/noBGCQYAQEYJBgAAAAAAgAA//8DKwMBABsAKAAAJT4BNxEuASIGBxEUBgcGLgI1ES4BIgYHER4BBx4BMyEyNjQmIyEiBgIiYnoCAR4tHgFBNSFBNR0BHi0eAQOm1AEYEgIAEhgYEv4AEhitD5NlARcWHh4W/uQ3UwwHDys8IwEgFh4eFv7gdpR2EhkZJBgYAAAAAwAAAAADcALHAAsALQA5AAATIT4BNCYjISIGFBYFISIGFBYXITIWFxYGByM1LgEPAQYUHwEWNjc1Mz4BJy4BBSMiBhQWFzM+ATQmwAJVEhkZEv2rEhgYAgv+BxIYGBICBiAzBgUxKGABGQtMBgZMDBgBVU1iBQhk/m2rEhgYEqsSGBgCcQEYJBgYJBisGCQYAScgKTkCIg8KCkwHEQdMCgoPIgJrTkRV/xgkGAEBGCQYAAAAAgAAAAADlgLAABQAKAAAARQWFzMRHgEyNjcRMz4BNCYnIQ4BAzMVFBYyNjc1MzI2NCYnIQ4BFBYBayQclQEkNiQBlRwkJBz+VhwkwEAkNyQBQBskJBv/ABwkJAKAGyQB/kAbJCQbAcABJDYkAQEk/tDrGyQkG+skNyQBASQ3JAAKAAAAAAN4AvgADwAWABoAIQAlACkALQA0ADgAPwAAASEOAQcRHgEXIT4BNxEuAQEjIiY9ATM1IzUzNSM1NDY7ARMjNTM1IzUzNSM1MxMjNTMVFAY3IzUzNSM1MzIWFQMs/aggKgEBKiACWCAqAQEq/h5xDxaWlpaWFg9x4ZaWlpaWlrxxlhYWlpaWcQ8WAvcBKiD9qCAqAQEqIAJYICr9XhYPcUuWS3EPFv2olkuWS5b9qJZxDxbhlkuWFg8AAAACAAD//wOAAwAADwAgAAAlES4BJyEOAQcRHgEXIT4BJRc3NjIfARYGIyEiJj8BPgEDgAEwJP2qJDABATAkAlYkMP39WYUHFAeVCAwN/gEOCwhqBxRVAlYkMAEBMCT9qiQwAQEw+2yqCAnHCxcXC4kIAQAAAAEAAAAAAzUCNgAQAAABBwYUFjI/ARcWMjY0LwEmIgHZ/hAhLBHX1xEsIRD+EC4CJv4RLCEQ19cQISwR/hAAAAABAAAAAAM1AjYAEgAAAQcnJiciDgEWHwEWMj8BNjQuAQLW1tcQFxEbDQYM/hEsEf4QIS0CJtfXDwESICAM/hAQ/hAtIAEAAAAEAAAAAANrAusAEAAhADMARAAANzMVFBYyNj0BNCYrASIGFBYTIyIGFBY7ATI2PQE0JiIGFQEyNj0BMzI2NCYrASIGHQEUFhM1NCYiBh0BFBY7ATI2NCYjyWgeLB0dFpwWHR1+aBYdHRacFh0dLB4BahYeaBYdHRacFh0dSh4sHR0WnBYdHRaxaBYdHRacFh0dLB4Bnh4sHR0WnBYdHRb9Xx0WaB4sHR0WnBYdAjloFh0dFpwWHR0sHgAAAAQAAAAAA1QC1AARACMANABGAAATDgEHFR4BFzM+ATQmKwE1NCYnPgE9ATMyNjQmJyMOAQcVHgEBIyIGFBYXMz4BNzUuASIGFQMeATsBFRQWMjY3NS4BJyMOAd0VGwEBGxWRFRsbFWEcFBQcYRUbGxWRFRsBARsCK2EVGxsVkRUbAQEbKRySARsVYRwpGwEBGxWRFRsBHwEbFZEVGwEBGykcYRUbwwEbFWEcKRsBARsVkRUb/qscKRsBARsVkRUbGxUBtRQcYRUbGxWRFRsBARsAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQANABUAAQAAAAAAAgAHACIAAQAAAAAAAwANACkAAQAAAAAABAANADYAAQAAAAAABQALAEMAAQAAAAAABgANAE4AAQAAAAAACgArAFsAAQAAAAAACwATAIYAAwABBAkAAAAqAJkAAwABBAkAAQAaAMMAAwABBAkAAgAOAN0AAwABBAkAAwAaAOsAAwABBAkABAAaAQUAAwABBAkABQAWAR8AAwABBAkABgAaATUAAwABBAkACgBWAU8AAwABBAkACwAmAaUKQ3JlYXRlZCBieSBpY29uZm9udApybWVsLWljb25mb250UmVndWxhcnJtZWwtaWNvbmZvbnRybWVsLWljb25mb250VmVyc2lvbiAxLjBybWVsLWljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwADdGFiCGtleWJvYXJkBmRlbGV0ZQpjb2RlLWJsb2NrBGNvZGUKdmlzaWJpbGl0eQp2aWV3LXNwbGl0BGxpbmsEcmVkbwR1bmRvBGJvbGQGaXRhbGljDGxpc3Qtb3JkZXJlZA5saXN0LXVub3JkZXJlZAVxdW90ZQ1zdHJpa2V0aHJvdWdoCXVuZGVybGluZQR3cmFwCWZvbnQtc2l6ZQRncmlkBWltYWdlC2V4cGFuZC1sZXNzC2V4cGFuZC1tb3JlD2Z1bGxzY3JlZW4tZXhpdApmdWxsc2NyZWVuAAAAAAA=);src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI940+UAAABfAAAAFZjbWFwQOSPXQAAAjwAAAMIZ2x5ZjCJoW0AAAV8AAAPYGhlYWQbUPpPAAAA4AAAADZoaGVhB94DmwAAALwAAAAkaG10eGgAAAAAAAHUAAAAaGxvY2E1+jIAAAAFRAAAADZtYXhwATAAewAAARgAAAAgbmFtZXPc7cIAABTcAAACqXBvc3QnKb+uAAAXiAAAATUAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAABoAAQAAAAEAAOLjgrdfDzz1AAsEAAAAAADcGNspAAAAANwY2ykAAP//BAADAQAAAAgAAgAAAAAAAAABAAAAGgBvAAwAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQAAZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA523togOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAFAAAAAwAAACwAAAAEAAABzAABAAAAAADGAAMAAQAAACwAAwAKAAABzAAEAJoAAAAWABAAAwAG523pQe087UXtYe117XjtgO2N7aL//wAA523pQe077UTtX+1v7XftgO2M7Z///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAFgAWABYAGAAaAB4AKgAsACwALgAAAAEABAAFAAMABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATAAIAFAAVABYAFwAYABkAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAATwAAAAAAAAAGQAA520AAOdtAAAAAQAA6UEAAOlBAAAABAAA7TsAAO07AAAABQAA7TwAAO08AAAAAwAA7UQAAO1EAAAABgAA7UUAAO1FAAAABwAA7V8AAO1fAAAACAAA7WAAAO1gAAAACQAA7WEAAO1hAAAACgAA7W8AAO1vAAAACwAA7XAAAO1wAAAADAAA7XEAAO1xAAAADQAA7XIAAO1yAAAADgAA7XMAAO1zAAAADwAA7XQAAO10AAAAEAAA7XUAAO11AAAAEQAA7XcAAO13AAAAEgAA7XgAAO14AAAAEwAA7YAAAO2AAAAAAgAA7YwAAO2MAAAAFAAA7Y0AAO2NAAAAFQAA7Z8AAO2fAAAAFgAA7aAAAO2gAAAAFwAA7aEAAO2hAAAAGAAA7aIAAO2iAAAAGQAAAAAAZgDMAR4BhAG8Af4CZgLIAv4DNANyA6IEQASoBO4FLgVwBcoGCgZqBqQGxAboB0YHsAAAAAUAAAAAA1YC1gALABgAJQA0AEAAABMhMhYUBgchLgE0Nhc+ATchHgEUBiMhIiYDNDY3IR4BFAYjISImNz4BMyEyHgEUDgEjISImJxYUDwEGJjURNDYX1gJUEhkZEv2sEhkZ2gEYEwFgEhkZEv6gEhn0GRICVBIZGRL9rBIZ8wEYEwFgDBQLCxQM/qASGTkICJILHh4LAtUZJRgBARglGfITGAEBGCUZGf6FExgBARglGRnZEhkLFRcUDBqGBhYGlQwMEQEqEQwMAAAAAAwAAAAAA6sCqwAPABMAFwAbAB8AIwAnADMANwA7AD8AQwAAASEOAQcDHgEXIT4BNxEuAQUzFSMVMxUjJzMVIxUzFSsCNTM1IzUzASEiJjQ2MyEyFhQGNyM1MzUjNTMXIzUzNSM1MwNV/VYkMAEBATEkAqokMQEBMf5cVlZWVoBWVlZWKlZWVlYBVf8AEhgYEgEAEhgYGVZWVlaAVlZWVgKrATEk/lYkMQEBMSQBqiQxf1YqVtZWKlZWKlb+gBgkGRkkGKpWKlbWVipWAAMAAAAAAysDAAAPAB8AMwAAJR4BFyE+ATcRLgEnIQ4BBzMhMhYXEQ4BByEuAScRPgElJyYrASIPASMiBhQWMyEyNjQmIwEAATAkAVYkMAEBMCT+qiQwAYABABMXAQEXE/8AExcBARcBKB4LErQSCx5rExcXEwIAERkZEVUkMAEBMCQBqyQwAQEwJBcU/qsRGQEBGREBVRQX1R4NDR4XJxcXJxcAAwAAAAADqwLZABYALQA+AAABFQYPAQYiLwEmND8BJyY0PwE2Mh8BFgU3NjQvASYiDwEGBxUWHwEWMj8BNjQnAScmBgcDBhYfARY2NxM2JicDqwEJsAcRBx4GBpOTBgYeBxEHsAn9D5MGBh8GEgawCQEBCbAHEQceBgYBQikJDwTjAgcIKAkPBOIDBwkBiBANCrAGBh4HEQaTkwYSBh4GBrAKFZMGEQceBgawCg0QDQqwBgYeBhIGAdkPAwcI/YwIEAMOAwcIAnMIDwQAAgAAAAADmgJvABAAIQAAJSc3NjQmIg8BBhQfARYyNjQlNycmNDYyHwEWFA8BBiImNAFzpqYNGSQMxA0NxA4hGgENpqYNGiEOxA0NxA4hGtqmpg4hGg3EDSINxA0aIQ6mpgwkGQ3EDSINxA0ZJAAAAAMAAAAAA7gCrAALABcAIwAAAQ4BBx4BFz4BNy4BAy4BJz4BNx4BFw4BAw4BBx4BFz4BNy4BAgCY6zU165iY6zU165hWcAICcFZWcAICcFY0QwEBQzQ0QwEBQwKsAqSGhqQCAqSGhqT+DgJwVlZwAgJwVlZwAT4BQzQ0QwEBQzQ0QwAAAAUAAAAAA4ACqwALABcAIwAwAEAAABMhMjY0JiMhIgYUFhchPgE0JichDgEUFhMhMjY0JiMhIgYUFiceARchPgE0JichDgElIR4BFxEOAQchLgE1ETQ2qwEAExcXE/8AERkZEQEAExcXE/8AERkZEQEAExcXE/8AERkZGgEZEQEAExcXE/8AERkB1AEAERkBARkR/wATFxcBABcnFxcnF6sBGSIZAQEZIhkBVRcnFxcnF9UTFwEBFyYXAQEXGAEXE/4AERkBARkRAgATFwAAAAADAAAAAAOrAlYAGQAmAEAAAAEjIgYUFjsBHgEXDgEHIyIGFBY7AT4BNy4BBR4BFyE+ATQmJyEOARcjLgEnPgE3MzI2NCYrAQ4BBx4BFzMyNjQmAtWAEhgYEoA3SAEBSDeAEhgYEoBbeAMDeP4lARgSAQASGBgS/wASGFWAN0gBAUg3gBIYGBKAW3gDA3hbgBIYGAJVGCQZAUk2NkkBGSQYAnhbW3jTEhgBARgkGAEBGJIBSTY2SQEZJBgCeFtbeAIYJBkAAQAAAAADrAIrAB4AAAEuAScOAQcGFhcWNjc+ATcyFhcHBhYXMz4BNzUuAQcDEjuWVYfUOAoTFxQjCSuhZz9vLFETEx7uEhgBAjEWAbw0OgECiXIXKggGDxJWaQErJVIWMQIBGBLvHRQTAAAAAQAAAAADsgIrAB4AAAEOAQcnJgYHFR4BFzM+AS8BPgEzHgEXHgE3PgEnLgECFFWWO1EWMQIBGBLuHhQTUi1vPmehKwkkExcTCjnTAisBOjRQFBQd7xIYAQIxFlIlKwFpVhIPBggqF3KJAAAAAwAAAAAC9QK/ABQAHAAkAAABPgE3LgEnIw4BBxEeARchPgE3NCYlMx4BFAYHIxMjNTMeARQGApMhKQECZk7vFBkBARkUAQdJaQI0/tSIHScnHYifn58dJycBihdEJE5mAgEaE/3eExoBAmFJNVLZASY7JgH+74kBJjsmAAEAAAAAAxICvwAcAAABHgEXMwMjDgEUFhczPgE0JicjEzM+ATQmJyMOAQGlASYdIZw7HSYmHeQdJiYdIZw7HSYmHeQdJgJ6HSYB/pQBJjonAQEnOiYBAWwBJjonAQEnAAYAAAAAA5YC1gALABcAIwBBAFIAbgAAASE+ATQmJyEOARQWASEOARQWFyE+ATQmAyEOARQWFyE+ATQmBSMiBhQWOwEVIyIGFBY7ARUjIgYUFjsBMjY3NS4BAzMVHgEyNj0BNCYrASIGFBYXIyIGFBY7AQcGHQEUFjsBMjY0JisBNzY9AS4BAWsCABIYGBL+ABIZGQIS/gASGRkSAgASGBgS/gASGRkSAgASGBj9WFUJDAwJQBUKCwsKFUAJDAwJVQoLAQELXxUBCxMMDAkrCQwMXlUJDAwJN0cFDAlVCgsLCjdIBQELAlUBGCQYAQEYJBj+VQEYJBgBARgkGAEBARgkGAEBGCQY1QwSDBYMEgwWDBIMDAmACQwB1msJDAwJgAkMDBIM1gwSDFQGCAkJDAwSDFQGCAkJDAAAAAAGAAAAAAOLAsAACAARABoAJgAyAD8AABMOARQWMjY0JgMOARQWMjY0JgMOARQWMjY0JhchPgE0JichDgEUFjchPgE0JichDgEUFgMeARchPgE0JichDgG1GyQkNyQkHBskJDckJBwbJCQ2JSSPAgASGBgS/gASGBgSAgASGBgS/gASGBgZARgSAgASGBgS/gASGAHAASQ2JCQ2JAEBASQ2JCQ2JP4BASQ2JCQ2JGoBGCQYAQEYJBj/ARgkGAEBGCQYASoSGAEBGCQYAQEYAAAAAgAAAAADVgJWABYALQAAJTI2PwE2PQEuASsBIgYdARQWFzMHBhYFMjY/ATY9ATQmKwEiBgcVHgEXMwcGFgEyERsHPQkBGBKrEhgYElYsDiABzBAbCDwJGBKrEhgBARgSVSwNIKsRDnkSFMISGBgSqxIYAVgeMwERDnkSFMISGBgSqxIYAVgeMwAAAAADAAAAAAOAAsAACAAZACUAACU+ATc1IxUeAQEeARczFTM1Mz4BNCYnIQ4BAyE+ATQmJyEOARQWAgAkMAGqATD++QEkG5aqlhskJBv+KhskKwKqEhkZEv1WEhkZQAEwJCsrJDACPxskAYCAASQ2JAEBJP56ARgkGAEBGCQYAAAAAAIAAP//AysDAQAbACgAACU+ATcRLgEiBgcRFAYHBi4CNREuASIGBxEeAQceATMhMjY0JiMhIgYCImJ6AgEeLR4BQTUhQTUdAR4tHgEDptQBGBICABIYGBL+ABIYrQ+TZQEXFh4eFv7kN1MMBw8rPCMBIBYeHhb+4HaUdhIZGSQYGAAAAAMAAAAAA3ACxwALAC0AOQAAEyE+ATQmIyEiBhQWBSEiBhQWFyEyFhcWBgcjNS4BDwEGFB8BFjY3NTM+AScuAQUjIgYUFhczPgE0JsACVRIZGRL9qxIYGAIL/gcSGBgSAgYgMwYFMShgARkLTAYGTAwYAVVNYgUIZP5tqxIYGBKrEhgYAnEBGCQYGCQYrBgkGAEnICk5AiIPCgpMBxEHTAoKDyICa05EVf8YJBgBARgkGAAAAAIAAAAAA5YCwAAUACgAAAEUFhczER4BMjY3ETM+ATQmJyEOAQMzFRQWMjY3NTMyNjQmJyEOARQWAWskHJUBJDYkAZUcJCQc/lYcJMBAJDckAUAbJCQb/wAcJCQCgBskAf5AGyQkGwHAASQ2JAEBJP7Q6xskJBvrJDckAQEkNyQACgAAAAADeAL4AA8AFgAaACEAJQApAC0ANAA4AD8AAAEhDgEHER4BFyE+ATcRLgEBIyImPQEzNSM1MzUjNTQ2OwETIzUzNSM1MzUjNTMTIzUzFRQGNyM1MzUjNTMyFhUDLP2oICoBASogAlggKgEBKv4ecQ8WlpaWlhYPceGWlpaWlpa8cZYWFpaWlnEPFgL3ASog/aggKgEBKiACWCAq/V4WD3FLlktxDxb9qJZLlkuW/aiWcQ8W4ZZLlhYPAAAAAgAA//8DgAMAAA8AIAAAJREuASchDgEHER4BFyE+ASUXNzYyHwEWBiMhIiY/AT4BA4ABMCT9qiQwAQEwJAJWJDD9/VmFBxQHlQgMDf4BDgsIagcUVQJWJDABATAk/aokMAEBMPtsqggJxwsXFwuJCAEAAAABAAAAAAM1AjYAEAAAAQcGFBYyPwEXFjI2NC8BJiIB2f4QISwR19cRLCEQ/hAuAib+ESwhENfXECEsEf4QAAAAAQAAAAADNQI2ABIAAAEHJyYnIg4BFh8BFjI/ATY0LgEC1tbXEBcRGw0GDP4RLBH+ECEtAibX1w8BEiAgDP4QEP4QLSABAAAABAAAAAADawLrABAAIQAzAEQAADczFRQWMjY9ATQmKwEiBhQWEyMiBhQWOwEyNj0BNCYiBhUBMjY9ATMyNjQmKwEiBh0BFBYTNTQmIgYdARQWOwEyNjQmI8loHiwdHRacFh0dfmgWHR0WnBYdHSweAWoWHmgWHR0WnBYdHUoeLB0dFpwWHR0WsWgWHR0WnBYdHSweAZ4eLB0dFpwWHR0W/V8dFmgeLB0dFpwWHQI5aBYdHRacFh0dLB4AAAAEAAAAAANUAtQAEQAjADQARgAAEw4BBxUeARczPgE0JisBNTQmJz4BPQEzMjY0JicjDgEHFR4BASMiBhQWFzM+ATc1LgEiBhUDHgE7ARUUFjI2NzUuAScjDgHdFRsBARsVkRUbGxVhHBQUHGEVGxsVkRUbAQEbAithFRsbFZEVGwEBGykckgEbFWEcKRsBARsVkRUbAR8BGxWRFRsBARspHGEVG8MBGxVhHCkbAQEbFZEVG/6rHCkbAQEbFZEVGxsVAbUUHGEVGxsVkRUbAQEbAAAAAAAAEgDeAAEAAAAAAAAAFQAAAAEAAAAAAAEADQAVAAEAAAAAAAIABwAiAAEAAAAAAAMADQApAAEAAAAAAAQADQA2AAEAAAAAAAUACwBDAAEAAAAAAAYADQBOAAEAAAAAAAoAKwBbAAEAAAAAAAsAEwCGAAMAAQQJAAAAKgCZAAMAAQQJAAEAGgDDAAMAAQQJAAIADgDdAAMAAQQJAAMAGgDrAAMAAQQJAAQAGgEFAAMAAQQJAAUAFgEfAAMAAQQJAAYAGgE1AAMAAQQJAAoAVgFPAAMAAQQJAAsAJgGlCkNyZWF0ZWQgYnkgaWNvbmZvbnQKcm1lbC1pY29uZm9udFJlZ3VsYXJybWVsLWljb25mb250cm1lbC1pY29uZm9udFZlcnNpb24gMS4wcm1lbC1pY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAUgBlAGcAdQBsAGEAcgByAG0AZQBsAC0AaQBjAG8AbgBmAG8AbgB0AHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsAA3RhYghrZXlib2FyZAZkZWxldGUKY29kZS1ibG9jawRjb2RlCnZpc2liaWxpdHkKdmlldy1zcGxpdARsaW5rBHJlZG8EdW5kbwRib2xkBml0YWxpYwxsaXN0LW9yZGVyZWQObGlzdC11bm9yZGVyZWQFcXVvdGUNc3RyaWtldGhyb3VnaAl1bmRlcmxpbmUEd3JhcAlmb250LXNpemUEZ3JpZAVpbWFnZQtleHBhbmQtbGVzcwtleHBhbmQtbW9yZQ9mdWxsc2NyZWVuLWV4aXQKZnVsbHNjcmVlbgAAAAAA) format("truetype")}.rmel-iconfont{font-family:rmel-iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rmel-icon-tab:before{content:"\E76D"}.rmel-icon-keyboard:before{content:"\ED80"}.rmel-icon-delete:before{content:"\ED3C"}.rmel-icon-code-block:before{content:"\E941"}.rmel-icon-code:before{content:"\ED3B"}.rmel-icon-visibility:before{content:"\ED44"}.rmel-icon-view-split:before{content:"\ED45"}.rmel-icon-link:before{content:"\ED5F"}.rmel-icon-redo:before{content:"\ED60"}.rmel-icon-undo:before{content:"\ED61"}.rmel-icon-bold:before{content:"\ED6F"}.rmel-icon-italic:before{content:"\ED70"}.rmel-icon-list-ordered:before{content:"\ED71"}.rmel-icon-list-unordered:before{content:"\ED72"}.rmel-icon-quote:before{content:"\ED73"}.rmel-icon-strikethrough:before{content:"\ED74"}.rmel-icon-underline:before{content:"\ED75"}.rmel-icon-wrap:before{content:"\ED77"}.rmel-icon-font-size:before{content:"\ED78"}.rmel-icon-grid:before{content:"\ED8C"}.rmel-icon-image:before{content:"\ED8D"}.rmel-icon-expand-less:before{content:"\ED9F"}.rmel-icon-expand-more:before{content:"\EDA0"}.rmel-icon-fullscreen-exit:before{content:"\EDA1"}.rmel-icon-fullscreen:before{content:"\EDA2"}.rc-md-editor{padding-bottom:1px;position:relative;border:1px solid #e0e0e0;background:#fff;box-sizing:border-box;display:flex;flex-direction:column}.rc-md-editor.full{width:100%;height:100%!important;position:fixed;left:0;top:0;z-index:1000}.rc-md-editor .editor-container{flex:1 1;display:flex;width:100%;min-height:0;position:relative}.rc-md-editor .editor-container>.section{flex-grow:1;flex-shrink:1;flex-basis:1px;border-right:1px solid #e0e0e0}.rc-md-editor .editor-container>.section.in-visible{display:none}.rc-md-editor .editor-container>.section>.section-container{padding:10px 15px 15px}.rc-md-editor .editor-container>.section:last-child{border-radius:none}.rc-md-editor .editor-container .sec-md{min-height:0;min-width:0}.rc-md-editor .editor-container .sec-md .input{display:block;box-sizing:border-box;width:100%;height:100%;overflow-y:scroll;border:none;resize:none;outline:none;min-height:0;background:#fff;color:#333;font-size:14px;line-height:1.7}.rc-md-editor .editor-container .sec-html{min-height:0;min-width:0}.rc-md-editor .editor-container .sec-html .html-wrap{height:100%;box-sizing:border-box;overflow:auto}.custom-html-style{color:#333}.custom-html-style h1{font-size:32px;padding:0;border:none;font-weight:700;margin:32px 0;line-height:1.2}.custom-html-style h2{font-size:24px;padding:0;border:none;font-weight:700;margin:24px 0;line-height:1.7}.custom-html-style h3{font-size:18px;margin:18px 0;padding:0;line-height:1.7;border:none}.custom-html-style p{font-size:14px;line-height:1.7;margin:8px 0}.custom-html-style a{color:#0052d9}.custom-html-style a:hover{text-decoration:none}.custom-html-style strong{font-weight:700}.custom-html-style ol,.custom-html-style ul{font-size:14px;line-height:28px;padding-left:36px}.custom-html-style li{margin-bottom:8px;line-height:1.7}.custom-html-style hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.custom-html-style pre{display:block;padding:20px;line-height:28px;word-break:break-word}.custom-html-style code,.custom-html-style pre{background-color:#f5f5f5;font-size:14px;border-radius:0;overflow-x:auto}.custom-html-style code{padding:3px 0;margin:0;word-break:normal}.custom-html-style code:after,.custom-html-style code:before{letter-spacing:0}.custom-html-style blockquote{position:relative;margin:16px 0;padding:5px 8px 5px 30px;background:none repeat scroll 0 0 rgba(102,128,153,.05);color:#333;border:none;border-left:10px solid #d6dbdf}.custom-html-style img,.custom-html-style video{max-width:100%}.custom-html-style table{font-size:14px;line-height:1.7;max-width:100%;overflow:auto;border:1px solid #f6f6f6;border-collapse:collapse;border-spacing:0;box-sizing:border-box}.custom-html-style table td,.custom-html-style table th{word-break:break-all;word-wrap:break-word;white-space:normal}.custom-html-style table tr{border:1px solid #efefef}.custom-html-style table tr:nth-child(2n){background-color:transparent}.custom-html-style table th{text-align:center;font-weight:700;border:1px solid #efefef;padding:10px 6px;background-color:#f5f7fa;word-break:break-word}.custom-html-style table td{border:1px solid #efefef;text-align:left;padding:10px 15px;word-break:break-word;min-width:60px}.rc-md-editor .drop-wrap{display:block;position:absolute;left:0;top:28px;z-index:2;min-width:20px;padding:10px 0;text-align:center;background-color:#fff;border-color:#f1f1f1 #ddd #ddd #f1f1f1;border-style:solid;border-width:1px}.rc-md-editor .drop-wrap.hidden{display:none!important}.rc-md-editor .rc-md-navigation{min-height:38px;padding:0 8px;box-sizing:border-box;border-bottom:1px solid #e0e0e0;font-size:16px;background:#f5f5f5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;justify-content:space-between}.rc-md-editor .rc-md-navigation.in-visible{display:none}.rc-md-editor .rc-md-navigation .navigation-nav{align-items:center;justify-content:center;font-size:14px;color:#757575}.rc-md-editor .rc-md-navigation .button-wrap,.rc-md-editor .rc-md-navigation .navigation-nav{display:flex;flex-direction:row}.rc-md-editor .rc-md-navigation .button-wrap{flex-wrap:wrap}.rc-md-editor .rc-md-navigation .button-wrap .button{position:relative;min-width:24px;height:28px;margin-left:3px;margin-right:3px;display:inline-block;cursor:pointer;line-height:28px;text-align:center;color:#757575}.rc-md-editor .rc-md-navigation .button-wrap .button:hover{color:#212121}.rc-md-editor .rc-md-navigation .button-wrap .button.disabled{color:#bdbdbd;cursor:not-allowed}.rc-md-editor .rc-md-navigation .button-wrap .button:first-child{margin-left:0}.rc-md-editor .rc-md-navigation .button-wrap .button:last-child{margin-right:0}.rc-md-editor .rc-md-navigation .button-wrap .rmel-iconfont{font-size:18px}.rc-md-editor .rc-md-navigation li,.rc-md-editor .rc-md-navigation ul{list-style:none;margin:0;padding:0}.rc-md-editor .rc-md-navigation .h1,.rc-md-editor .rc-md-navigation .h2,.rc-md-editor .rc-md-navigation .h3,.rc-md-editor .rc-md-navigation .h4,.rc-md-editor .rc-md-navigation .h5,.rc-md-editor .rc-md-navigation .h6,.rc-md-editor .rc-md-navigation h1,.rc-md-editor .rc-md-navigation h2,.rc-md-editor .rc-md-navigation h3,.rc-md-editor .rc-md-navigation h4,.rc-md-editor .rc-md-navigation h5,.rc-md-editor .rc-md-navigation h6{font-family:inherit;font-weight:500;color:inherit;padding:0;margin:0;line-height:1.1}.rc-md-editor .rc-md-navigation h1{font-size:34px}.rc-md-editor .rc-md-navigation h2{font-size:30px}.rc-md-editor .rc-md-navigation h3{font-size:24px}.rc-md-editor .rc-md-navigation h4{font-size:18px}.rc-md-editor .rc-md-navigation h5{font-size:14px}.rc-md-editor .rc-md-navigation h6{font-size:12px}.rc-md-editor .tool-bar{position:absolute;z-index:1;right:8px;top:8px}.rc-md-editor .tool-bar .button{min-width:24px;height:28px;margin-right:5px;display:inline-block;cursor:pointer;font-size:14px;line-height:28px;text-align:center;color:#999}.rc-md-editor .tool-bar .button:hover{color:#333}.rc-md-editor .rc-md-divider{display:block;width:1px;background-color:#e0e0e0}.rc-md-editor .table-list.wrap{position:relative;margin:0 10px;box-sizing:border-box}.rc-md-editor .table-list.wrap .list-item{position:absolute;top:0;left:0;display:inline-block;width:20px;height:20px;background-color:#e0e0e0;border-radius:3px}.rc-md-editor .table-list.wrap .list-item.active{background:#9e9e9e}.rc-md-editor .tab-map-list .list-item{width:120px;box-sizing:border-box}.rc-md-editor .tab-map-list .list-item:hover{background:#f5f5f5}.rc-md-editor .tab-map-list .list-item.active{font-weight:700}.rc-md-editor .header-list .list-item{width:100px;box-sizing:border-box;padding:8px 0}.rc-md-editor .header-list .list-item:hover{background:#f5f5f5} -.ant-badge{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;color:unset;line-height:1}.ant-badge-count{min-width:20px;height:20px;padding:0 6px;color:#fff;font-weight:400;font-size:12px;line-height:20px;white-space:nowrap;text-align:center;background:#f5222d;border-radius:10px;box-shadow:0 0 0 1px #fff}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-multiple-words{padding:0 8px}.ant-badge-dot{width:6px;height:6px;background:#f5222d;border-radius:100%;box-shadow:0 0 0 1px #fff}.ant-badge-count,.ant-badge-dot,.ant-badge .ant-scroll-number-custom-component{position:absolute;top:0;right:0;z-index:1;transform:translate(50%,-50%);transform-origin:100% 0}.ant-badge-status{line-height:inherit;vertical-align:baseline}.ant-badge-status-dot{position:relative;top:-1px;display:inline-block;width:6px;height:6px;vertical-align:middle;border-radius:50%}.ant-badge-status-success{background-color:#52c41a}.ant-badge-status-processing{position:relative;background-color:#1890ff}.ant-badge-status-processing:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:50%;animation:antStatusProcessing 1.2s ease-in-out infinite;content:""}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#f5222d}.ant-badge-status-warning{background-color:#faad14}.ant-badge-status-pink{background:#eb2f96}.ant-badge-status-magenta{background:#eb2f96}.ant-badge-status-red{background:#f5222d}.ant-badge-status-volcano{background:#fa541c}.ant-badge-status-orange{background:#fa8c16}.ant-badge-status-yellow{background:#fadb14}.ant-badge-status-gold{background:#faad14}.ant-badge-status-cyan{background:#13c2c2}.ant-badge-status-lime{background:#a0d911}.ant-badge-status-green{background:#52c41a}.ant-badge-status-blue{background:#1890ff}.ant-badge-status-geekblue{background:#2f54eb}.ant-badge-status-purple{background:#722ed1}.ant-badge-status-text{margin-left:8px;color:rgba(0,0,0,.65);font-size:14px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation-fill-mode:both}.ant-badge-zoom-leave{animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation-fill-mode:both}.ant-badge-not-a-wrapper:not(.ant-badge-status){vertical-align:middle}.ant-badge-not-a-wrapper .ant-scroll-number{position:relative;top:auto;display:block}.ant-badge-not-a-wrapper .ant-badge-count{transform:none}@keyframes antStatusProcessing{0%{transform:scale(.8);opacity:.5}to{transform:scale(2.4);opacity:0}}.ant-scroll-number{overflow:hidden}.ant-scroll-number-only{display:inline-block;height:20px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-scroll-number-only>p.ant-scroll-number-only-unit{height:20px;margin:0}.ant-scroll-number-symbol{vertical-align:top}@keyframes antZoomBadgeIn{0%{transform:scale(0) translate(50%,-50%);opacity:0}to{transform:scale(1) translate(50%,-50%)}}@keyframes antZoomBadgeOut{0%{transform:scale(1) translate(50%,-50%)}to{transform:scale(0) translate(50%,-50%);opacity:0}} -.ant-menu{box-sizing:border-box;font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";margin:0;padding:0;color:rgba(0,0,0,.65);line-height:0;list-style:none;background:#fff;outline:none;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:background .3s,width .2s;zoom:1}.ant-menu:after,.ant-menu:before{display:table;content:""}.ant-menu:after{clear:both}.ant-menu ol,.ant-menu ul{margin:0;padding:0;list-style:none}.ant-menu-hidden{display:none}.ant-menu-item-group-title{padding:8px 16px;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5;transition:all .3s}.ant-menu-submenu,.ant-menu-submenu-inline{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:#1890ff}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}.ant-menu-submenu .ant-menu-sub{cursor:auto;transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item>a{display:block;color:rgba(0,0,0,.65)}.ant-menu-item>a:hover{color:#1890ff}.ant-menu-item>a:before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;content:""}.ant-menu-item>.ant-badge>a{color:rgba(0,0,0,.65)}.ant-menu-item>.ant-badge>a:hover{color:#1890ff}.ant-menu-item-divider{height:1px;overflow:hidden;line-height:0;background-color:#e8e8e8}.ant-menu-item-active,.ant-menu-item:hover,.ant-menu-submenu-active,.ant-menu-submenu-title:hover,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:transparent}.ant-menu-item-selected{color:#1890ff}.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#1890ff}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #e8e8e8}.ant-menu-vertical-right{border-left:1px solid #e8e8e8}.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{min-width:160px;padding:0;border-right:0;transform-origin:0 0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item,.ant-menu-vertical.ant-menu-sub .ant-menu-item{left:0;margin-left:0;border-right:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical.ant-menu-sub .ant-menu-item:after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-item,.ant-menu-submenu-title{position:relative;display:block;margin:0;padding:0 20px;white-space:nowrap;cursor:pointer;transition:color .3s cubic-bezier(.645,.045,.355,1),border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .anticon,.ant-menu-submenu-title .anticon{min-width:14px;margin-right:10px;font-size:14px;transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .anticon+span,.ant-menu-submenu-title .anticon+span{opacity:1;transition:opacity .3s cubic-bezier(.645,.045,.355,1),width .3s cubic-bezier(.645,.045,.355,1)}.ant-menu>.ant-menu-item-divider{height:1px;margin:1px 0;padding:0;overflow:hidden;line-height:0;background-color:#e8e8e8}.ant-menu-submenu-popup{position:absolute;z-index:1050;background:#fff;border-radius:4px}.ant-menu-submenu-popup .submenu-title-wrapper{padding-right:20px}.ant-menu-submenu-popup:before{position:absolute;top:-7px;right:0;bottom:0;left:0;opacity:.0001;content:" "}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:4px}.ant-menu-submenu>.ant-menu-submenu-title:after{transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{position:absolute;top:50%;right:16px;width:10px;transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{position:absolute;width:6px;height:1.5px;background:#fff;background:rgba(0,0,0,.65)\9;background-image:linear-gradient(90deg,rgba(0,0,0,.65),rgba(0,0,0,.65));background-image:none\9;border-radius:2px;transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1);content:""}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{transform:rotate(45deg) translateY(-2px)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateY(2px)}.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before{background:linear-gradient(90deg,#1890ff,#1890ff)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateX(2px)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateX(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow{transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateX(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{transform:rotate(45deg) translateX(2px)}.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected{color:#1890ff}.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected>a,.ant-menu-vertical .ant-menu-submenu-selected>a{color:#1890ff}.ant-menu-horizontal{line-height:46px;white-space:nowrap;border:0;border-bottom:1px solid #e8e8e8;box-shadow:none}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{position:relative;top:1px;display:inline-block;vertical-align:bottom;border-bottom:2px solid transparent}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover{color:#1890ff;border-bottom:2px solid #1890ff}.ant-menu-horizontal>.ant-menu-item>a{display:block;color:rgba(0,0,0,.65)}.ant-menu-horizontal>.ant-menu-item>a:hover{color:#1890ff}.ant-menu-horizontal>.ant-menu-item>a:before{bottom:-2px}.ant-menu-horizontal>.ant-menu-item-selected>a{color:#1890ff}.ant-menu-horizontal:after{display:block;clear:both;height:0;content:" "}.ant-menu-inline .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after{position:absolute;top:0;right:0;bottom:0;border-right:3px solid #1890ff;transform:scaleY(.0001);opacity:0;transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1);content:""}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title{height:40px;margin-top:4px;margin-bottom:4px;padding:0 16px;overflow:hidden;font-size:14px;line-height:40px;text-overflow:ellipsis}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.ant-menu-vertical-left .ant-menu-item:not(:last-child),.ant-menu-vertical-right .ant-menu-item:not(:last-child),.ant-menu-vertical .ant-menu-item:not(:last-child){margin-bottom:8px}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected:after,.ant-menu-inline .ant-menu-selected:after{transform:scaleY(1);opacity:1;transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:calc(100% + 1px)}.ant-menu-inline .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline-collapsed{width:80px}.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 32px!important;text-overflow:clip}.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{display:none}.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{margin:0;font-size:16px;line-height:40px}.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;max-width:0;opacity:0}.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu-inline-collapsed-tooltip a{color:hsla(0,0%,100%,.85)}.ant-menu-inline-collapsed .ant-menu-item-group-title{padding-right:4px;padding-left:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-menu-item-group-list{margin:0;padding:0}.ant-menu-item-group-list .ant-menu-item,.ant-menu-item-group-list .ant-menu-submenu-title{padding:0 16px 0 28px}.ant-menu-root.ant-menu-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right{box-shadow:none}.ant-menu-sub.ant-menu-inline{padding:0;border:0;border-radius:0;box-shadow:none}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px;list-style-position:inside;list-style-type:disc}.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:32px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{color:rgba(0,0,0,.25)!important;background:none;border-color:transparent!important;cursor:not-allowed}.ant-menu-item-disabled>a,.ant-menu-submenu-disabled>a{color:rgba(0,0,0,.25)!important;pointer-events:none}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,.25)!important;cursor:not-allowed}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:rgba(0,0,0,.25)!important}.ant-menu-dark,.ant-menu-dark .ant-menu-sub{color:hsla(0,0%,100%,.65);background:#001529}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:transparent}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17;box-shadow:inset 0 2px 8px rgba(0,0,0,.45)}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{top:0;margin-top:0;border-color:#001529;border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item>a:before{bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a{color:hsla(0,0%,100%,.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item{left:0;margin-left:0;border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical .ant-menu-item:after{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title{width:100%}.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff;background-color:transparent}.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-title:hover>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:transparent}.ant-menu-dark .ant-menu-item-selected{color:#fff;border-right:0}.ant-menu-dark .ant-menu-item-selected:after{border-right:0}.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover{color:#fff}.ant-menu-dark .ant-menu-item-selected .anticon{color:#fff}.ant-menu-dark .ant-menu-item-selected .anticon+span{color:#fff}.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a{color:hsla(0,0%,100%,.35)!important;opacity:.8}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:hsla(0,0%,100%,.35)!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:hsla(0,0%,100%,.35)!important} -.ant-row{position:relative;height:auto;margin-right:0;margin-left:0;zoom:1;display:block;box-sizing:border-box}.ant-row:after,.ant-row:before{display:table;content:""}.ant-row:after{clear:both}.ant-row+.ant-row:before{clear:both}.ant-row-flex{display:flex;flex-flow:row wrap}.ant-row-flex:after,.ant-row-flex:before{display:flex}.ant-row-flex-start{justify-content:flex-start}.ant-row-flex-center{justify-content:center}.ant-row-flex-end{justify-content:flex-end}.ant-row-flex-space-between{justify-content:space-between}.ant-row-flex-space-around{justify-content:space-around}.ant-row-flex-top{align-items:flex-start}.ant-row-flex-middle{align-items:center}.ant-row-flex-bottom{align-items:flex-end}.ant-col{position:relative;min-height:1px}.ant-col-1,.ant-col-2,.ant-col-3,.ant-col-4,.ant-col-5,.ant-col-6,.ant-col-7,.ant-col-8,.ant-col-9,.ant-col-10,.ant-col-11,.ant-col-12,.ant-col-13,.ant-col-14,.ant-col-15,.ant-col-16,.ant-col-17,.ant-col-18,.ant-col-19,.ant-col-20,.ant-col-21,.ant-col-22,.ant-col-23,.ant-col-24,.ant-col-lg-1,.ant-col-lg-2,.ant-col-lg-3,.ant-col-lg-4,.ant-col-lg-5,.ant-col-lg-6,.ant-col-lg-7,.ant-col-lg-8,.ant-col-lg-9,.ant-col-lg-10,.ant-col-lg-11,.ant-col-lg-12,.ant-col-lg-13,.ant-col-lg-14,.ant-col-lg-15,.ant-col-lg-16,.ant-col-lg-17,.ant-col-lg-18,.ant-col-lg-19,.ant-col-lg-20,.ant-col-lg-21,.ant-col-lg-22,.ant-col-lg-23,.ant-col-lg-24,.ant-col-md-1,.ant-col-md-2,.ant-col-md-3,.ant-col-md-4,.ant-col-md-5,.ant-col-md-6,.ant-col-md-7,.ant-col-md-8,.ant-col-md-9,.ant-col-md-10,.ant-col-md-11,.ant-col-md-12,.ant-col-md-13,.ant-col-md-14,.ant-col-md-15,.ant-col-md-16,.ant-col-md-17,.ant-col-md-18,.ant-col-md-19,.ant-col-md-20,.ant-col-md-21,.ant-col-md-22,.ant-col-md-23,.ant-col-md-24,.ant-col-sm-1,.ant-col-sm-2,.ant-col-sm-3,.ant-col-sm-4,.ant-col-sm-5,.ant-col-sm-6,.ant-col-sm-7,.ant-col-sm-8,.ant-col-sm-9,.ant-col-sm-10,.ant-col-sm-11,.ant-col-sm-12,.ant-col-sm-13,.ant-col-sm-14,.ant-col-sm-15,.ant-col-sm-16,.ant-col-sm-17,.ant-col-sm-18,.ant-col-sm-19,.ant-col-sm-20,.ant-col-sm-21,.ant-col-sm-22,.ant-col-sm-23,.ant-col-sm-24,.ant-col-xs-1,.ant-col-xs-2,.ant-col-xs-3,.ant-col-xs-4,.ant-col-xs-5,.ant-col-xs-6,.ant-col-xs-7,.ant-col-xs-8,.ant-col-xs-9,.ant-col-xs-10,.ant-col-xs-11,.ant-col-xs-12,.ant-col-xs-13,.ant-col-xs-14,.ant-col-xs-15,.ant-col-xs-16,.ant-col-xs-17,.ant-col-xs-18,.ant-col-xs-19,.ant-col-xs-20,.ant-col-xs-21,.ant-col-xs-22,.ant-col-xs-23,.ant-col-xs-24{position:relative;padding-right:0;padding-left:0}.ant-col-1,.ant-col-2,.ant-col-3,.ant-col-4,.ant-col-5,.ant-col-6,.ant-col-7,.ant-col-8,.ant-col-9,.ant-col-10,.ant-col-11,.ant-col-12,.ant-col-13,.ant-col-14,.ant-col-15,.ant-col-16,.ant-col-17,.ant-col-18,.ant-col-19,.ant-col-20,.ant-col-21,.ant-col-22,.ant-col-23,.ant-col-24{flex:0 0 auto;float:left}.ant-col-24{display:block;box-sizing:border-box;width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-offset-24{margin-left:100%}.ant-col-order-24{order:24}.ant-col-23{display:block;box-sizing:border-box;width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-offset-23{margin-left:95.83333333%}.ant-col-order-23{order:23}.ant-col-22{display:block;box-sizing:border-box;width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-offset-22{margin-left:91.66666667%}.ant-col-order-22{order:22}.ant-col-21{display:block;box-sizing:border-box;width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-offset-21{margin-left:87.5%}.ant-col-order-21{order:21}.ant-col-20{display:block;box-sizing:border-box;width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-offset-20{margin-left:83.33333333%}.ant-col-order-20{order:20}.ant-col-19{display:block;box-sizing:border-box;width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-offset-19{margin-left:79.16666667%}.ant-col-order-19{order:19}.ant-col-18{display:block;box-sizing:border-box;width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-offset-18{margin-left:75%}.ant-col-order-18{order:18}.ant-col-17{display:block;box-sizing:border-box;width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-offset-17{margin-left:70.83333333%}.ant-col-order-17{order:17}.ant-col-16{display:block;box-sizing:border-box;width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-offset-16{margin-left:66.66666667%}.ant-col-order-16{order:16}.ant-col-15{display:block;box-sizing:border-box;width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-offset-15{margin-left:62.5%}.ant-col-order-15{order:15}.ant-col-14{display:block;box-sizing:border-box;width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-offset-14{margin-left:58.33333333%}.ant-col-order-14{order:14}.ant-col-13{display:block;box-sizing:border-box;width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-offset-13{margin-left:54.16666667%}.ant-col-order-13{order:13}.ant-col-12{display:block;box-sizing:border-box;width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-offset-12{margin-left:50%}.ant-col-order-12{order:12}.ant-col-11{display:block;box-sizing:border-box;width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-offset-11{margin-left:45.83333333%}.ant-col-order-11{order:11}.ant-col-10{display:block;box-sizing:border-box;width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-offset-10{margin-left:41.66666667%}.ant-col-order-10{order:10}.ant-col-9{display:block;box-sizing:border-box;width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-offset-9{margin-left:37.5%}.ant-col-order-9{order:9}.ant-col-8{display:block;box-sizing:border-box;width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-offset-8{margin-left:33.33333333%}.ant-col-order-8{order:8}.ant-col-7{display:block;box-sizing:border-box;width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-offset-7{margin-left:29.16666667%}.ant-col-order-7{order:7}.ant-col-6{display:block;box-sizing:border-box;width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-offset-6{margin-left:25%}.ant-col-order-6{order:6}.ant-col-5{display:block;box-sizing:border-box;width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-offset-5{margin-left:20.83333333%}.ant-col-order-5{order:5}.ant-col-4{display:block;box-sizing:border-box;width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-offset-4{margin-left:16.66666667%}.ant-col-order-4{order:4}.ant-col-3{display:block;box-sizing:border-box;width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-offset-3{margin-left:12.5%}.ant-col-order-3{order:3}.ant-col-2{display:block;box-sizing:border-box;width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-offset-2{margin-left:8.33333333%}.ant-col-order-2{order:2}.ant-col-1{display:block;box-sizing:border-box;width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-offset-1{margin-left:4.16666667%}.ant-col-order-1{order:1}.ant-col-0{display:none}.ant-col-offset-0{margin-left:0}.ant-col-order-0{order:0}.ant-col-xs-1,.ant-col-xs-2,.ant-col-xs-3,.ant-col-xs-4,.ant-col-xs-5,.ant-col-xs-6,.ant-col-xs-7,.ant-col-xs-8,.ant-col-xs-9,.ant-col-xs-10,.ant-col-xs-11,.ant-col-xs-12,.ant-col-xs-13,.ant-col-xs-14,.ant-col-xs-15,.ant-col-xs-16,.ant-col-xs-17,.ant-col-xs-18,.ant-col-xs-19,.ant-col-xs-20,.ant-col-xs-21,.ant-col-xs-22,.ant-col-xs-23,.ant-col-xs-24{flex:0 0 auto;float:left}.ant-col-xs-24{display:block;box-sizing:border-box;width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-offset-24{margin-left:100%}.ant-col-xs-order-24{order:24}.ant-col-xs-23{display:block;box-sizing:border-box;width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-offset-23{margin-left:95.83333333%}.ant-col-xs-order-23{order:23}.ant-col-xs-22{display:block;box-sizing:border-box;width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-offset-22{margin-left:91.66666667%}.ant-col-xs-order-22{order:22}.ant-col-xs-21{display:block;box-sizing:border-box;width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-offset-21{margin-left:87.5%}.ant-col-xs-order-21{order:21}.ant-col-xs-20{display:block;box-sizing:border-box;width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-offset-20{margin-left:83.33333333%}.ant-col-xs-order-20{order:20}.ant-col-xs-19{display:block;box-sizing:border-box;width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-offset-19{margin-left:79.16666667%}.ant-col-xs-order-19{order:19}.ant-col-xs-18{display:block;box-sizing:border-box;width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-offset-18{margin-left:75%}.ant-col-xs-order-18{order:18}.ant-col-xs-17{display:block;box-sizing:border-box;width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-offset-17{margin-left:70.83333333%}.ant-col-xs-order-17{order:17}.ant-col-xs-16{display:block;box-sizing:border-box;width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-offset-16{margin-left:66.66666667%}.ant-col-xs-order-16{order:16}.ant-col-xs-15{display:block;box-sizing:border-box;width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-offset-15{margin-left:62.5%}.ant-col-xs-order-15{order:15}.ant-col-xs-14{display:block;box-sizing:border-box;width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-offset-14{margin-left:58.33333333%}.ant-col-xs-order-14{order:14}.ant-col-xs-13{display:block;box-sizing:border-box;width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-offset-13{margin-left:54.16666667%}.ant-col-xs-order-13{order:13}.ant-col-xs-12{display:block;box-sizing:border-box;width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-offset-12{margin-left:50%}.ant-col-xs-order-12{order:12}.ant-col-xs-11{display:block;box-sizing:border-box;width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-offset-11{margin-left:45.83333333%}.ant-col-xs-order-11{order:11}.ant-col-xs-10{display:block;box-sizing:border-box;width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-offset-10{margin-left:41.66666667%}.ant-col-xs-order-10{order:10}.ant-col-xs-9{display:block;box-sizing:border-box;width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-offset-9{margin-left:37.5%}.ant-col-xs-order-9{order:9}.ant-col-xs-8{display:block;box-sizing:border-box;width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-offset-8{margin-left:33.33333333%}.ant-col-xs-order-8{order:8}.ant-col-xs-7{display:block;box-sizing:border-box;width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-offset-7{margin-left:29.16666667%}.ant-col-xs-order-7{order:7}.ant-col-xs-6{display:block;box-sizing:border-box;width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-offset-6{margin-left:25%}.ant-col-xs-order-6{order:6}.ant-col-xs-5{display:block;box-sizing:border-box;width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-offset-5{margin-left:20.83333333%}.ant-col-xs-order-5{order:5}.ant-col-xs-4{display:block;box-sizing:border-box;width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-offset-4{margin-left:16.66666667%}.ant-col-xs-order-4{order:4}.ant-col-xs-3{display:block;box-sizing:border-box;width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-offset-3{margin-left:12.5%}.ant-col-xs-order-3{order:3}.ant-col-xs-2{display:block;box-sizing:border-box;width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-offset-2{margin-left:8.33333333%}.ant-col-xs-order-2{order:2}.ant-col-xs-1{display:block;box-sizing:border-box;width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-offset-1{margin-left:4.16666667%}.ant-col-xs-order-1{order:1}.ant-col-xs-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xs-push-0{left:auto}.ant-col-xs-pull-0{right:auto}.ant-col-xs-offset-0{margin-left:0}.ant-col-xs-order-0{order:0}@media (min-width:576px){.ant-col-sm-1,.ant-col-sm-2,.ant-col-sm-3,.ant-col-sm-4,.ant-col-sm-5,.ant-col-sm-6,.ant-col-sm-7,.ant-col-sm-8,.ant-col-sm-9,.ant-col-sm-10,.ant-col-sm-11,.ant-col-sm-12,.ant-col-sm-13,.ant-col-sm-14,.ant-col-sm-15,.ant-col-sm-16,.ant-col-sm-17,.ant-col-sm-18,.ant-col-sm-19,.ant-col-sm-20,.ant-col-sm-21,.ant-col-sm-22,.ant-col-sm-23,.ant-col-sm-24{flex:0 0 auto;float:left}.ant-col-sm-24{display:block;box-sizing:border-box;width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-offset-24{margin-left:100%}.ant-col-sm-order-24{order:24}.ant-col-sm-23{display:block;box-sizing:border-box;width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-offset-23{margin-left:95.83333333%}.ant-col-sm-order-23{order:23}.ant-col-sm-22{display:block;box-sizing:border-box;width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-offset-22{margin-left:91.66666667%}.ant-col-sm-order-22{order:22}.ant-col-sm-21{display:block;box-sizing:border-box;width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-offset-21{margin-left:87.5%}.ant-col-sm-order-21{order:21}.ant-col-sm-20{display:block;box-sizing:border-box;width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-offset-20{margin-left:83.33333333%}.ant-col-sm-order-20{order:20}.ant-col-sm-19{display:block;box-sizing:border-box;width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-offset-19{margin-left:79.16666667%}.ant-col-sm-order-19{order:19}.ant-col-sm-18{display:block;box-sizing:border-box;width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-offset-18{margin-left:75%}.ant-col-sm-order-18{order:18}.ant-col-sm-17{display:block;box-sizing:border-box;width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-offset-17{margin-left:70.83333333%}.ant-col-sm-order-17{order:17}.ant-col-sm-16{display:block;box-sizing:border-box;width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-offset-16{margin-left:66.66666667%}.ant-col-sm-order-16{order:16}.ant-col-sm-15{display:block;box-sizing:border-box;width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-offset-15{margin-left:62.5%}.ant-col-sm-order-15{order:15}.ant-col-sm-14{display:block;box-sizing:border-box;width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-offset-14{margin-left:58.33333333%}.ant-col-sm-order-14{order:14}.ant-col-sm-13{display:block;box-sizing:border-box;width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-offset-13{margin-left:54.16666667%}.ant-col-sm-order-13{order:13}.ant-col-sm-12{display:block;box-sizing:border-box;width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-offset-12{margin-left:50%}.ant-col-sm-order-12{order:12}.ant-col-sm-11{display:block;box-sizing:border-box;width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-offset-11{margin-left:45.83333333%}.ant-col-sm-order-11{order:11}.ant-col-sm-10{display:block;box-sizing:border-box;width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-offset-10{margin-left:41.66666667%}.ant-col-sm-order-10{order:10}.ant-col-sm-9{display:block;box-sizing:border-box;width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-offset-9{margin-left:37.5%}.ant-col-sm-order-9{order:9}.ant-col-sm-8{display:block;box-sizing:border-box;width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-offset-8{margin-left:33.33333333%}.ant-col-sm-order-8{order:8}.ant-col-sm-7{display:block;box-sizing:border-box;width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-offset-7{margin-left:29.16666667%}.ant-col-sm-order-7{order:7}.ant-col-sm-6{display:block;box-sizing:border-box;width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-offset-6{margin-left:25%}.ant-col-sm-order-6{order:6}.ant-col-sm-5{display:block;box-sizing:border-box;width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-offset-5{margin-left:20.83333333%}.ant-col-sm-order-5{order:5}.ant-col-sm-4{display:block;box-sizing:border-box;width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-offset-4{margin-left:16.66666667%}.ant-col-sm-order-4{order:4}.ant-col-sm-3{display:block;box-sizing:border-box;width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-offset-3{margin-left:12.5%}.ant-col-sm-order-3{order:3}.ant-col-sm-2{display:block;box-sizing:border-box;width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-offset-2{margin-left:8.33333333%}.ant-col-sm-order-2{order:2}.ant-col-sm-1{display:block;box-sizing:border-box;width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-offset-1{margin-left:4.16666667%}.ant-col-sm-order-1{order:1}.ant-col-sm-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-sm-push-0{left:auto}.ant-col-sm-pull-0{right:auto}.ant-col-sm-offset-0{margin-left:0}.ant-col-sm-order-0{order:0}}@media (min-width:768px){.ant-col-md-1,.ant-col-md-2,.ant-col-md-3,.ant-col-md-4,.ant-col-md-5,.ant-col-md-6,.ant-col-md-7,.ant-col-md-8,.ant-col-md-9,.ant-col-md-10,.ant-col-md-11,.ant-col-md-12,.ant-col-md-13,.ant-col-md-14,.ant-col-md-15,.ant-col-md-16,.ant-col-md-17,.ant-col-md-18,.ant-col-md-19,.ant-col-md-20,.ant-col-md-21,.ant-col-md-22,.ant-col-md-23,.ant-col-md-24{flex:0 0 auto;float:left}.ant-col-md-24{display:block;box-sizing:border-box;width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-offset-24{margin-left:100%}.ant-col-md-order-24{order:24}.ant-col-md-23{display:block;box-sizing:border-box;width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-offset-23{margin-left:95.83333333%}.ant-col-md-order-23{order:23}.ant-col-md-22{display:block;box-sizing:border-box;width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-offset-22{margin-left:91.66666667%}.ant-col-md-order-22{order:22}.ant-col-md-21{display:block;box-sizing:border-box;width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-offset-21{margin-left:87.5%}.ant-col-md-order-21{order:21}.ant-col-md-20{display:block;box-sizing:border-box;width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-offset-20{margin-left:83.33333333%}.ant-col-md-order-20{order:20}.ant-col-md-19{display:block;box-sizing:border-box;width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-offset-19{margin-left:79.16666667%}.ant-col-md-order-19{order:19}.ant-col-md-18{display:block;box-sizing:border-box;width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-offset-18{margin-left:75%}.ant-col-md-order-18{order:18}.ant-col-md-17{display:block;box-sizing:border-box;width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-offset-17{margin-left:70.83333333%}.ant-col-md-order-17{order:17}.ant-col-md-16{display:block;box-sizing:border-box;width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-offset-16{margin-left:66.66666667%}.ant-col-md-order-16{order:16}.ant-col-md-15{display:block;box-sizing:border-box;width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-offset-15{margin-left:62.5%}.ant-col-md-order-15{order:15}.ant-col-md-14{display:block;box-sizing:border-box;width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-offset-14{margin-left:58.33333333%}.ant-col-md-order-14{order:14}.ant-col-md-13{display:block;box-sizing:border-box;width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-offset-13{margin-left:54.16666667%}.ant-col-md-order-13{order:13}.ant-col-md-12{display:block;box-sizing:border-box;width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-offset-12{margin-left:50%}.ant-col-md-order-12{order:12}.ant-col-md-11{display:block;box-sizing:border-box;width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-offset-11{margin-left:45.83333333%}.ant-col-md-order-11{order:11}.ant-col-md-10{display:block;box-sizing:border-box;width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-offset-10{margin-left:41.66666667%}.ant-col-md-order-10{order:10}.ant-col-md-9{display:block;box-sizing:border-box;width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-offset-9{margin-left:37.5%}.ant-col-md-order-9{order:9}.ant-col-md-8{display:block;box-sizing:border-box;width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-offset-8{margin-left:33.33333333%}.ant-col-md-order-8{order:8}.ant-col-md-7{display:block;box-sizing:border-box;width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-offset-7{margin-left:29.16666667%}.ant-col-md-order-7{order:7}.ant-col-md-6{display:block;box-sizing:border-box;width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-offset-6{margin-left:25%}.ant-col-md-order-6{order:6}.ant-col-md-5{display:block;box-sizing:border-box;width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-offset-5{margin-left:20.83333333%}.ant-col-md-order-5{order:5}.ant-col-md-4{display:block;box-sizing:border-box;width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-offset-4{margin-left:16.66666667%}.ant-col-md-order-4{order:4}.ant-col-md-3{display:block;box-sizing:border-box;width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-offset-3{margin-left:12.5%}.ant-col-md-order-3{order:3}.ant-col-md-2{display:block;box-sizing:border-box;width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-offset-2{margin-left:8.33333333%}.ant-col-md-order-2{order:2}.ant-col-md-1{display:block;box-sizing:border-box;width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-offset-1{margin-left:4.16666667%}.ant-col-md-order-1{order:1}.ant-col-md-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-md-push-0{left:auto}.ant-col-md-pull-0{right:auto}.ant-col-md-offset-0{margin-left:0}.ant-col-md-order-0{order:0}}@media (min-width:992px){.ant-col-lg-1,.ant-col-lg-2,.ant-col-lg-3,.ant-col-lg-4,.ant-col-lg-5,.ant-col-lg-6,.ant-col-lg-7,.ant-col-lg-8,.ant-col-lg-9,.ant-col-lg-10,.ant-col-lg-11,.ant-col-lg-12,.ant-col-lg-13,.ant-col-lg-14,.ant-col-lg-15,.ant-col-lg-16,.ant-col-lg-17,.ant-col-lg-18,.ant-col-lg-19,.ant-col-lg-20,.ant-col-lg-21,.ant-col-lg-22,.ant-col-lg-23,.ant-col-lg-24{flex:0 0 auto;float:left}.ant-col-lg-24{display:block;box-sizing:border-box;width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-offset-24{margin-left:100%}.ant-col-lg-order-24{order:24}.ant-col-lg-23{display:block;box-sizing:border-box;width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-offset-23{margin-left:95.83333333%}.ant-col-lg-order-23{order:23}.ant-col-lg-22{display:block;box-sizing:border-box;width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-offset-22{margin-left:91.66666667%}.ant-col-lg-order-22{order:22}.ant-col-lg-21{display:block;box-sizing:border-box;width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-offset-21{margin-left:87.5%}.ant-col-lg-order-21{order:21}.ant-col-lg-20{display:block;box-sizing:border-box;width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-offset-20{margin-left:83.33333333%}.ant-col-lg-order-20{order:20}.ant-col-lg-19{display:block;box-sizing:border-box;width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-offset-19{margin-left:79.16666667%}.ant-col-lg-order-19{order:19}.ant-col-lg-18{display:block;box-sizing:border-box;width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-offset-18{margin-left:75%}.ant-col-lg-order-18{order:18}.ant-col-lg-17{display:block;box-sizing:border-box;width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-offset-17{margin-left:70.83333333%}.ant-col-lg-order-17{order:17}.ant-col-lg-16{display:block;box-sizing:border-box;width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-offset-16{margin-left:66.66666667%}.ant-col-lg-order-16{order:16}.ant-col-lg-15{display:block;box-sizing:border-box;width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-offset-15{margin-left:62.5%}.ant-col-lg-order-15{order:15}.ant-col-lg-14{display:block;box-sizing:border-box;width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-offset-14{margin-left:58.33333333%}.ant-col-lg-order-14{order:14}.ant-col-lg-13{display:block;box-sizing:border-box;width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-offset-13{margin-left:54.16666667%}.ant-col-lg-order-13{order:13}.ant-col-lg-12{display:block;box-sizing:border-box;width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-offset-12{margin-left:50%}.ant-col-lg-order-12{order:12}.ant-col-lg-11{display:block;box-sizing:border-box;width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-offset-11{margin-left:45.83333333%}.ant-col-lg-order-11{order:11}.ant-col-lg-10{display:block;box-sizing:border-box;width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-offset-10{margin-left:41.66666667%}.ant-col-lg-order-10{order:10}.ant-col-lg-9{display:block;box-sizing:border-box;width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-offset-9{margin-left:37.5%}.ant-col-lg-order-9{order:9}.ant-col-lg-8{display:block;box-sizing:border-box;width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-offset-8{margin-left:33.33333333%}.ant-col-lg-order-8{order:8}.ant-col-lg-7{display:block;box-sizing:border-box;width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-offset-7{margin-left:29.16666667%}.ant-col-lg-order-7{order:7}.ant-col-lg-6{display:block;box-sizing:border-box;width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-offset-6{margin-left:25%}.ant-col-lg-order-6{order:6}.ant-col-lg-5{display:block;box-sizing:border-box;width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-offset-5{margin-left:20.83333333%}.ant-col-lg-order-5{order:5}.ant-col-lg-4{display:block;box-sizing:border-box;width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-offset-4{margin-left:16.66666667%}.ant-col-lg-order-4{order:4}.ant-col-lg-3{display:block;box-sizing:border-box;width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-offset-3{margin-left:12.5%}.ant-col-lg-order-3{order:3}.ant-col-lg-2{display:block;box-sizing:border-box;width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-offset-2{margin-left:8.33333333%}.ant-col-lg-order-2{order:2}.ant-col-lg-1{display:block;box-sizing:border-box;width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-offset-1{margin-left:4.16666667%}.ant-col-lg-order-1{order:1}.ant-col-lg-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-lg-push-0{left:auto}.ant-col-lg-pull-0{right:auto}.ant-col-lg-offset-0{margin-left:0}.ant-col-lg-order-0{order:0}}@media (min-width:1200px){.ant-col-xl-1,.ant-col-xl-2,.ant-col-xl-3,.ant-col-xl-4,.ant-col-xl-5,.ant-col-xl-6,.ant-col-xl-7,.ant-col-xl-8,.ant-col-xl-9,.ant-col-xl-10,.ant-col-xl-11,.ant-col-xl-12,.ant-col-xl-13,.ant-col-xl-14,.ant-col-xl-15,.ant-col-xl-16,.ant-col-xl-17,.ant-col-xl-18,.ant-col-xl-19,.ant-col-xl-20,.ant-col-xl-21,.ant-col-xl-22,.ant-col-xl-23,.ant-col-xl-24{flex:0 0 auto;float:left}.ant-col-xl-24{display:block;box-sizing:border-box;width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-offset-24{margin-left:100%}.ant-col-xl-order-24{order:24}.ant-col-xl-23{display:block;box-sizing:border-box;width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-offset-23{margin-left:95.83333333%}.ant-col-xl-order-23{order:23}.ant-col-xl-22{display:block;box-sizing:border-box;width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-offset-22{margin-left:91.66666667%}.ant-col-xl-order-22{order:22}.ant-col-xl-21{display:block;box-sizing:border-box;width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-offset-21{margin-left:87.5%}.ant-col-xl-order-21{order:21}.ant-col-xl-20{display:block;box-sizing:border-box;width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-offset-20{margin-left:83.33333333%}.ant-col-xl-order-20{order:20}.ant-col-xl-19{display:block;box-sizing:border-box;width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-offset-19{margin-left:79.16666667%}.ant-col-xl-order-19{order:19}.ant-col-xl-18{display:block;box-sizing:border-box;width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-offset-18{margin-left:75%}.ant-col-xl-order-18{order:18}.ant-col-xl-17{display:block;box-sizing:border-box;width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-offset-17{margin-left:70.83333333%}.ant-col-xl-order-17{order:17}.ant-col-xl-16{display:block;box-sizing:border-box;width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-offset-16{margin-left:66.66666667%}.ant-col-xl-order-16{order:16}.ant-col-xl-15{display:block;box-sizing:border-box;width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-offset-15{margin-left:62.5%}.ant-col-xl-order-15{order:15}.ant-col-xl-14{display:block;box-sizing:border-box;width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-offset-14{margin-left:58.33333333%}.ant-col-xl-order-14{order:14}.ant-col-xl-13{display:block;box-sizing:border-box;width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-offset-13{margin-left:54.16666667%}.ant-col-xl-order-13{order:13}.ant-col-xl-12{display:block;box-sizing:border-box;width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-offset-12{margin-left:50%}.ant-col-xl-order-12{order:12}.ant-col-xl-11{display:block;box-sizing:border-box;width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-offset-11{margin-left:45.83333333%}.ant-col-xl-order-11{order:11}.ant-col-xl-10{display:block;box-sizing:border-box;width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-offset-10{margin-left:41.66666667%}.ant-col-xl-order-10{order:10}.ant-col-xl-9{display:block;box-sizing:border-box;width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-offset-9{margin-left:37.5%}.ant-col-xl-order-9{order:9}.ant-col-xl-8{display:block;box-sizing:border-box;width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-offset-8{margin-left:33.33333333%}.ant-col-xl-order-8{order:8}.ant-col-xl-7{display:block;box-sizing:border-box;width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-offset-7{margin-left:29.16666667%}.ant-col-xl-order-7{order:7}.ant-col-xl-6{display:block;box-sizing:border-box;width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-offset-6{margin-left:25%}.ant-col-xl-order-6{order:6}.ant-col-xl-5{display:block;box-sizing:border-box;width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-offset-5{margin-left:20.83333333%}.ant-col-xl-order-5{order:5}.ant-col-xl-4{display:block;box-sizing:border-box;width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-offset-4{margin-left:16.66666667%}.ant-col-xl-order-4{order:4}.ant-col-xl-3{display:block;box-sizing:border-box;width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-offset-3{margin-left:12.5%}.ant-col-xl-order-3{order:3}.ant-col-xl-2{display:block;box-sizing:border-box;width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-offset-2{margin-left:8.33333333%}.ant-col-xl-order-2{order:2}.ant-col-xl-1{display:block;box-sizing:border-box;width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-offset-1{margin-left:4.16666667%}.ant-col-xl-order-1{order:1}.ant-col-xl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xl-push-0{left:auto}.ant-col-xl-pull-0{right:auto}.ant-col-xl-offset-0{margin-left:0}.ant-col-xl-order-0{order:0}}@media (min-width:1600px){.ant-col-xxl-1,.ant-col-xxl-2,.ant-col-xxl-3,.ant-col-xxl-4,.ant-col-xxl-5,.ant-col-xxl-6,.ant-col-xxl-7,.ant-col-xxl-8,.ant-col-xxl-9,.ant-col-xxl-10,.ant-col-xxl-11,.ant-col-xxl-12,.ant-col-xxl-13,.ant-col-xxl-14,.ant-col-xxl-15,.ant-col-xxl-16,.ant-col-xxl-17,.ant-col-xxl-18,.ant-col-xxl-19,.ant-col-xxl-20,.ant-col-xxl-21,.ant-col-xxl-22,.ant-col-xxl-23,.ant-col-xxl-24{flex:0 0 auto;float:left}.ant-col-xxl-24{display:block;box-sizing:border-box;width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-offset-24{margin-left:100%}.ant-col-xxl-order-24{order:24}.ant-col-xxl-23{display:block;box-sizing:border-box;width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-offset-23{margin-left:95.83333333%}.ant-col-xxl-order-23{order:23}.ant-col-xxl-22{display:block;box-sizing:border-box;width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-offset-22{margin-left:91.66666667%}.ant-col-xxl-order-22{order:22}.ant-col-xxl-21{display:block;box-sizing:border-box;width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-offset-21{margin-left:87.5%}.ant-col-xxl-order-21{order:21}.ant-col-xxl-20{display:block;box-sizing:border-box;width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-offset-20{margin-left:83.33333333%}.ant-col-xxl-order-20{order:20}.ant-col-xxl-19{display:block;box-sizing:border-box;width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-offset-19{margin-left:79.16666667%}.ant-col-xxl-order-19{order:19}.ant-col-xxl-18{display:block;box-sizing:border-box;width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-offset-18{margin-left:75%}.ant-col-xxl-order-18{order:18}.ant-col-xxl-17{display:block;box-sizing:border-box;width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-offset-17{margin-left:70.83333333%}.ant-col-xxl-order-17{order:17}.ant-col-xxl-16{display:block;box-sizing:border-box;width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-offset-16{margin-left:66.66666667%}.ant-col-xxl-order-16{order:16}.ant-col-xxl-15{display:block;box-sizing:border-box;width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-offset-15{margin-left:62.5%}.ant-col-xxl-order-15{order:15}.ant-col-xxl-14{display:block;box-sizing:border-box;width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-offset-14{margin-left:58.33333333%}.ant-col-xxl-order-14{order:14}.ant-col-xxl-13{display:block;box-sizing:border-box;width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-offset-13{margin-left:54.16666667%}.ant-col-xxl-order-13{order:13}.ant-col-xxl-12{display:block;box-sizing:border-box;width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-offset-12{margin-left:50%}.ant-col-xxl-order-12{order:12}.ant-col-xxl-11{display:block;box-sizing:border-box;width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-offset-11{margin-left:45.83333333%}.ant-col-xxl-order-11{order:11}.ant-col-xxl-10{display:block;box-sizing:border-box;width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-offset-10{margin-left:41.66666667%}.ant-col-xxl-order-10{order:10}.ant-col-xxl-9{display:block;box-sizing:border-box;width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-offset-9{margin-left:37.5%}.ant-col-xxl-order-9{order:9}.ant-col-xxl-8{display:block;box-sizing:border-box;width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-offset-8{margin-left:33.33333333%}.ant-col-xxl-order-8{order:8}.ant-col-xxl-7{display:block;box-sizing:border-box;width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-offset-7{margin-left:29.16666667%}.ant-col-xxl-order-7{order:7}.ant-col-xxl-6{display:block;box-sizing:border-box;width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-offset-6{margin-left:25%}.ant-col-xxl-order-6{order:6}.ant-col-xxl-5{display:block;box-sizing:border-box;width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-offset-5{margin-left:20.83333333%}.ant-col-xxl-order-5{order:5}.ant-col-xxl-4{display:block;box-sizing:border-box;width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-offset-4{margin-left:16.66666667%}.ant-col-xxl-order-4{order:4}.ant-col-xxl-3{display:block;box-sizing:border-box;width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-offset-3{margin-left:12.5%}.ant-col-xxl-order-3{order:3}.ant-col-xxl-2{display:block;box-sizing:border-box;width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-offset-2{margin-left:8.33333333%}.ant-col-xxl-order-2{order:2}.ant-col-xxl-1{display:block;box-sizing:border-box;width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-offset-1{margin-left:4.16666667%}.ant-col-xxl-order-1{order:1}.ant-col-xxl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xxl-push-0{left:auto}.ant-col-xxl-pull-0{right:auto}.ant-col-xxl-offset-0{margin-left:0}.ant-col-xxl-order-0{order:0}} -.ant-list{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;font-feature-settings:"tnum";position:relative}.ant-list *{outline:none}.ant-list-pagination{margin-top:24px;text-align:right}.ant-list-pagination .ant-pagination-options{text-align:left}.ant-list-more{margin-top:12px;text-align:center}.ant-list-more button{padding-right:32px;padding-left:32px}.ant-list-spin{min-height:40px;text-align:center}.ant-list-empty-text{padding:16px;color:rgba(0,0,0,.25);font-size:14px;text-align:center}.ant-list-items{margin:0;padding:0;list-style:none}.ant-list-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0}.ant-list-item-content{color:rgba(0,0,0,.65)}.ant-list-item-meta{display:flex;flex:1 1;align-items:flex-start;font-size:0}.ant-list-item-meta-avatar{margin-right:16px}.ant-list-item-meta-content{flex:1 0}.ant-list-item-meta-title{margin-bottom:4px;color:rgba(0,0,0,.65);font-size:14px;line-height:22px}.ant-list-item-meta-title>a{color:rgba(0,0,0,.65);transition:all .3s}.ant-list-item-meta-title>a:hover{color:#1890ff}.ant-list-item-meta-description{color:rgba(0,0,0,.45);font-size:14px;line-height:22px}.ant-list-item-action{flex:0 0 auto;margin-left:48px;padding:0;font-size:0;list-style:none}.ant-list-item-action>li{position:relative;display:inline-block;padding:0 8px;color:rgba(0,0,0,.45);font-size:14px;line-height:22px;text-align:center;cursor:pointer}.ant-list-item-action>li:first-child{padding-left:0}.ant-list-item-action-split{position:absolute;top:50%;right:0;width:1px;height:14px;margin-top:-7px;background-color:#e8e8e8}.ant-list-header{background:transparent}.ant-list-footer{background:transparent}.ant-list-footer,.ant-list-header{padding-top:12px;padding-bottom:12px}.ant-list-empty{padding:16px 0;color:rgba(0,0,0,.45);font-size:12px;text-align:center}.ant-list-split .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-list-split .ant-list-item:last-child{border-bottom:none}.ant-list-split .ant-list-header{border-bottom:1px solid #e8e8e8}.ant-list-loading .ant-list-spin-nested-loading{min-height:32px}.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #e8e8e8}.ant-list-lg .ant-list-item{padding-top:16px;padding-bottom:16px}.ant-list-sm .ant-list-item{padding-top:8px;padding-bottom:8px}.ant-list-vertical .ant-list-item{align-items:normal}.ant-list-vertical .ant-list-item-main{display:block;flex:1 1}.ant-list-vertical .ant-list-item-extra{margin-left:40px}.ant-list-vertical .ant-list-item-meta{margin-bottom:16px}.ant-list-vertical .ant-list-item-meta-title{margin-bottom:12px;color:rgba(0,0,0,.85);font-size:16px;line-height:24px}.ant-list-vertical .ant-list-item-action{margin-top:16px;margin-left:auto}.ant-list-vertical .ant-list-item-action>li{padding:0 16px}.ant-list-vertical .ant-list-item-action>li:first-child{padding-left:0}.ant-list-grid .ant-col>.ant-list-item{display:block;max-width:100%;margin-bottom:16px;padding-top:0;padding-bottom:0;border-bottom:none}.ant-list-item-no-flex{display:block}.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:right}.ant-list-bordered{border:1px solid #d9d9d9;border-radius:4px}.ant-list-bordered .ant-list-header{padding-right:24px;padding-left:24px}.ant-list-bordered .ant-list-footer{padding-right:24px;padding-left:24px}.ant-list-bordered .ant-list-item{padding-right:24px;padding-left:24px;border-bottom:1px solid #e8e8e8}.ant-list-bordered .ant-list-pagination{margin:16px 24px}.ant-list-bordered.ant-list-sm .ant-list-item{padding-right:16px;padding-left:16px}.ant-list-bordered.ant-list-sm .ant-list-footer,.ant-list-bordered.ant-list-sm .ant-list-header{padding:8px 16px}.ant-list-bordered.ant-list-lg .ant-list-footer,.ant-list-bordered.ant-list-lg .ant-list-header{padding:16px 24px}@media screen and (max-width:768px){.ant-list-item-action{margin-left:24px}.ant-list-vertical .ant-list-item-extra{margin-left:24px}}@media screen and (max-width:576px){.ant-list-item{flex-wrap:wrap}.ant-list-item-action{margin-left:12px}.ant-list-vertical .ant-list-item{flex-wrap:wrap-reverse}.ant-list-vertical .ant-list-item-main{min-width:220px}.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}} diff --git a/public/assets/admin/custom.css b/public/assets/admin/custom.css deleted file mode 100644 index e69de29..0000000 diff --git a/public/assets/admin/env.example.js b/public/assets/admin/env.example.js deleted file mode 100644 index 4be0112..0000000 --- a/public/assets/admin/env.example.js +++ /dev/null @@ -1,17 +0,0 @@ -window.settings = { - // 站点标题 - title: 'V2Board', - // API - host: '', - // 主题 - theme: { - sidebar: 'light', - header: 'dark', - color: 'default' - }, - // 背景 - background_url: '', - logo: '', - // 需与V2Board设置中的后台路径一致 - secure_path: 'admin' -} diff --git a/public/assets/admin/locales/en-US.js b/public/assets/admin/locales/en-US.js new file mode 100644 index 0000000..81b7d20 --- /dev/null +++ b/public/assets/admin/locales/en-US.js @@ -0,0 +1,2044 @@ +window.XBOARD_TRANSLATIONS = window.XBOARD_TRANSLATIONS || {}; +window.XBOARD_TRANSLATIONS['en-US'] = { + "payment": { + "title": "Payment Configuration", + "description": "Configure payment methods including Alipay, WeChat Pay, etc.", + "table": { + "columns": { + "id": "ID", + "enable": "Enable", + "name": "Display Name", + "payment": "Payment Gateway", + "notify_url": "Notify URL", + "notify_url_tooltip": "The payment gateway will send notifications to this address. Please ensure it's accessible through your firewall.", + "actions": "Actions" + }, + "actions": { + "edit": "Edit", + "delete": { + "title": "Confirm Delete", + "description": "Are you sure you want to delete this payment method? This action cannot be undone.", + "success": "Successfully deleted" + } + }, + "toolbar": { + "search": "Search payment methods...", + "reset": "Reset", + "sort": { + "hint": "Drag payment methods to sort, click save when finished", + "save": "Save Order", + "edit": "Edit Order" + } + } + }, + "form": { + "add": { + "button": "Add Payment Method", + "title": "Add Payment Method" + }, + "edit": { + "title": "Edit Payment Method" + }, + "fields": { + "name": { + "label": "Display Name", + "placeholder": "Enter payment name", + "description": "Used for frontend display" + }, + "icon": { + "label": "Icon URL", + "placeholder": "https://example.com/icon.svg", + "description": "Icon URL for frontend display" + }, + "notify_domain": { + "label": "Notify Domain", + "placeholder": "https://example.com", + "description": "Domain for gateway notifications" + }, + "handling_fee_percent": { + "label": "Percentage Fee (%)", + "placeholder": "0-100" + }, + "handling_fee_fixed": { + "label": "Fixed Fee", + "placeholder": "0" + }, + "payment": { + "label": "Payment Gateway", + "placeholder": "Select payment gateway", + "description": "Choose the payment gateway to use" + } + }, + "validation": { + "name": { + "min": "Name must be at least 2 characters", + "max": "Name cannot exceed 30 characters" + }, + "notify_domain": { + "url": "Please enter a valid URL" + }, + "payment": { + "required": "Please select a payment gateway" + } + }, + "buttons": { + "cancel": "Cancel", + "submit": "Submit" + }, + "messages": { + "success": "Saved successfully" + } + } + }, + "knowledge": { + "title": "Knowledge Base", + "description": "Here you can configure the knowledge base, including adding, deleting, and editing operations.", + "columns": { + "id": "ID", + "status": "Status", + "title": "Title", + "category": "Category", + "actions": "Actions" + }, + "form": { + "add": "Add Knowledge", + "edit": "Edit Knowledge", + "title": "Title", + "titlePlaceholder": "Please enter knowledge title", + "category": "Category", + "categoryPlaceholder": "Please enter category, it will be automatically classified", + "language": "Language", + "languagePlaceholder": "Please select language", + "content": "Content", + "show": "Show", + "cancel": "Cancel", + "submit": "Submit" + }, + "languages": { + "en-US": "English", + "ja-JP": "日本語", + "ko-KR": "한국어", + "vi-VN": "Tiếng Việt", + "zh-CN": "简体中文", + "zh-TW": "繁體中文" + }, + "messages": { + "deleteConfirm": "Confirm Delete", + "deleteDescription": "This action will permanently delete this knowledge base record and cannot be recovered. Are you sure you want to continue?", + "deleteButton": "Delete", + "operationSuccess": "Operation Successful" + }, + "toolbar": { + "searchPlaceholder": "Search knowledge...", + "reset": "Reset", + "sortModeHint": "Drag knowledge items to sort, click save when done", + "editSort": "Edit Sort", + "saveSort": "Save Sort" + } + }, + "search": { + "placeholder": "Search menus and functions...", + "title": "Menu Navigation", + "noResults": "No results found", + "shortcut": { + "label": "Search", + "key": "⌘K" + } + }, + "nav": { + "dashboard": "Dashboard", + "systemManagement": "System Management", + "systemConfig": "System Configuration", + "themeConfig": "Theme Configuration", + "noticeManagement": "Notice Management", + "pluginManagement": "Plugin Management", + "paymentConfig": "Payment Configuration", + "knowledgeManagement": "Knowledge Management", + "nodeManagement": "Node Management", + "permissionGroupManagement": "Permission Group", + "routeManagement": "Route Management", + "subscriptionManagement": "Subscription", + "planManagement": "Plan Management", + "orderManagement": "Order Management", + "couponManagement": "Coupon Management", + "userManagement": "User Management", + "ticketManagement": "Ticket Management" + }, + "plugin": { + "title": "Plugin Management", + "description": "Manage and configure system plugins", + "search": { + "placeholder": "Search plugin name or description..." + }, + "category": { + "placeholder": "Select Category", + "all": "All", + "other": "Other" + }, + "tabs": { + "all": "All Plugins", + "installed": "Installed", + "available": "Available" + }, + "status": { + "enabled": "Enabled", + "disabled": "Disabled" + }, + "button": { + "install": "Install", + "config": "Configure", + "enable": "Enable", + "disable": "Disable" + }, + "uninstall": { + "title": "Uninstall Plugin", + "description": "Are you sure you want to uninstall this plugin? Plugin data will be cleared after uninstallation.", + "button": "Uninstall" + }, + "config": { + "title": "Configuration", + "description": "Modify plugin configuration", + "save": "Save", + "cancel": "Cancel" + }, + "author": "Author", + "messages": { + "installSuccess": "Plugin installed successfully", + "installError": "Failed to install plugin", + "uninstallSuccess": "Plugin uninstalled successfully", + "uninstallError": "Failed to uninstall plugin", + "enableSuccess": "Plugin enabled successfully", + "enableError": "Failed to enable plugin", + "disableSuccess": "Plugin disabled successfully", + "disableError": "Failed to disable plugin", + "configLoadError": "Failed to load plugin configuration", + "configSaveSuccess": "Configuration saved successfully", + "configSaveError": "Failed to save configuration" + } + }, + "settings": { + "title": "System Settings", + "description": "Manage core system configurations, including site, security, subscription, invite commission, nodes, email, and notifications", + "server": { + "title": "Server Configuration", + "description": "Configure node communication and synchronization settings, including communication keys, polling intervals, load balancing and other advanced options.", + "server_token": { + "title": "Communication Token", + "placeholder": "Enter communication token", + "description": "Used for authentication between servers", + "generate_tooltip": "Click to generate random token" + }, + "server_pull_interval": { + "title": "Node Pull Action Polling Interval", + "description": "The frequency at which nodes retrieve data from the panel.", + "placeholder": "Enter pull interval" + }, + "server_push_interval": { + "title": "Node Push Action Polling Interval", + "description": "The frequency at which nodes push data to the panel.", + "placeholder": "Enter push interval" + }, + "device_limit_mode": { + "title": "Device Limit Mode", + "description": "In relaxed mode, using multiple nodes from the same IP address counts as one device.", + "strict": "Strict Mode", + "relaxed": "Relaxed Mode", + "placeholder": "Select device limit mode" + } + }, + "invite": { + "title": "Invitation & Commission Settings", + "description": "Configure invitation registration and commission related settings.", + "invite_force": { + "title": "Enable Forced Invitation", + "description": "When enabled, only invited users can register." + }, + "invite_commission": { + "title": "Invitation Commission Percentage", + "description": "Default global commission distribution ratio, you can configure individual ratios in user management.", + "placeholder": "Enter commission percentage" + }, + "invite_gen_limit": { + "title": "Invitation Code Generation Limit", + "description": "Maximum number of invitation codes a user can create", + "placeholder": "Enter generation limit" + }, + "invite_never_expire": { + "title": "Never Expire Invitation Code", + "description": "When enabled, invitation codes will not expire after use, otherwise they will expire after being used." + }, + "commission_first_time": { + "title": "First-time Commission Only", + "description": "When enabled, commission will only be generated on the first payment of the invitee, can be configured individually in user management." + }, + "commission_auto_check": { + "title": "Automatic Commission Confirmation", + "description": "When enabled, commission will be automatically confirmed 3 days after order completion." + }, + "commission_withdraw_limit": { + "title": "Withdrawal Threshold (Yuan)", + "description": "Withdrawal requests below this threshold will not be submitted.", + "placeholder": "Enter withdrawal threshold" + }, + "commission_withdraw_method": { + "title": "Withdrawal Methods", + "description": "Supported withdrawal methods, separate multiple methods with commas.", + "placeholder": "Enter withdrawal methods, separate with commas" + }, + "withdraw_close": { + "title": "Disable Withdrawals", + "description": "When enabled, users will be prohibited from requesting withdrawals, and invitation commissions will go directly to user balance." + }, + "commission_distribution": { + "title": "Three-level Distribution", + "description": "When enabled, commission will be split according to the three set ratios, total should not exceed 100%.", + "l1": "Level 1 Inviter Ratio", + "l2": "Level 2 Inviter Ratio", + "l3": "Level 3 Inviter Ratio", + "placeholder": "Enter ratio e.g. 50" + }, + "saving": "Saving..." + }, + "site": { + "title": "Site Settings", + "description": "Configure basic site information, including site name, description, currency unit, and other core settings.", + "form": { + "siteName": { + "label": "Site Name", + "placeholder": "Please enter site name", + "description": "Used where site name needs to be displayed." + }, + "siteDescription": { + "label": "Site Description", + "placeholder": "Please enter site description", + "description": "Used where site description needs to be displayed." + }, + "siteUrl": { + "label": "Site URL", + "placeholder": "Please enter site URL, without trailing /", + "description": "Current website URL, will be used in emails and other places where URL is needed." + }, + "forceHttps": { + "label": "Force HTTPS", + "description": "Need to enable when the site is not using HTTPS but CDN or reverse proxy has forced HTTPS." + }, + "logo": { + "label": "LOGO", + "placeholder": "Please enter LOGO URL, without trailing /", + "description": "Used where LOGO needs to be displayed." + }, + "subscribeUrl": { + "label": "Subscribe URL", + "placeholder": "Used for subscription, multiple URLs separated by ','. Leave empty to use site URL.", + "description": "Used for subscription, leave empty to use site URL." + }, + "tosUrl": { + "label": "Terms of Service (TOS) URL", + "placeholder": "Please enter TOS URL, without trailing /", + "description": "Used to link to Terms of Service (TOS)" + }, + "stopRegister": { + "label": "Stop New User Registration", + "description": "When enabled, no one will be able to register." + }, + "tryOut": { + "label": "Registration Trial", + "placeholder": "Disabled", + "description": "Select the subscription for trial, if no options please add in subscription management first.", + "duration": { + "label": "Trial Duration", + "placeholder": "0", + "description": "Trial duration in hours." + } + }, + "currency": { + "label": "Currency Unit", + "placeholder": "CNY", + "description": "For display only, changing this will affect all currency units in the system." + }, + "currencySymbol": { + "label": "Currency Symbol", + "placeholder": "¥", + "description": "For display only, changing this will affect all currency symbols in the system." + } + } + }, + "safe": { + "title": "Security Settings", + "description": "Configure system security options, including login verification, password policies, and API access settings.", + "form": { + "emailVerify": { + "label": "Email Verification", + "description": "When enabled, users will be required to verify their email." + }, + "gmailLimit": { + "label": "Disable Gmail Aliases", + "description": "When enabled, Gmail aliases will not be allowed to register." + }, + "safeMode": { + "label": "Safe Mode", + "description": "When enabled, accessing the site through domains other than the site URL will be blocked with 403." + }, + "securePath": { + "label": "Admin Path", + "placeholder": "admin", + "description": "Admin management path, changing this will modify the original admin path" + }, + "emailWhitelist": { + "label": "Email Suffix Whitelist", + "description": "When enabled, only email suffixes in the list will be allowed to register.", + "suffixes": { + "label": "Email Suffixes", + "placeholder": "Enter email suffixes, one per line", + "description": "Enter the allowed email suffixes, one per line" + } + }, + "recaptcha": { + "enable": { + "label": "Enable reCAPTCHA", + "description": "When enabled, users will need to pass reCAPTCHA verification when registering." + }, + "key": { + "label": "reCAPTCHA Key", + "placeholder": "Enter reCAPTCHA key", + "description": "Enter your reCAPTCHA key" + }, + "siteKey": { + "label": "reCAPTCHA Site Key", + "placeholder": "Enter reCAPTCHA site key", + "description": "Enter your reCAPTCHA site key" + } + }, + "registerLimit": { + "enable": { + "label": "IP Registration Limit", + "description": "When enabled, the number of registrations from the same IP will be limited." + }, + "count": { + "label": "Registration Count", + "placeholder": "Enter maximum registration count", + "description": "Maximum number of registrations allowed from the same IP" + }, + "expire": { + "label": "Limit Duration", + "placeholder": "Enter limit duration in hours", + "description": "Duration of the registration limit in hours" + } + }, + "passwordLimit": { + "enable": { + "label": "Password Attempt Limit", + "description": "When enabled, the number of password attempts will be limited." + }, + "count": { + "label": "Attempt Count", + "placeholder": "Enter maximum attempt count", + "description": "Maximum number of password attempts allowed" + }, + "expire": { + "label": "Lock Duration", + "placeholder": "Enter lock duration in hours", + "description": "Duration of the account lock in hours" + } + } + } + }, + "subscribe": { + "title": "Subscription Settings", + "description": "Manage subscription-related configurations, including subscription link format, update frequency, traffic statistics, and other settings.", + "plan_change_enable": { + "title": "Allow Subscription Changes", + "description": "When enabled, users will be able to change their subscription plans." + }, + "reset_traffic_method": { + "title": "Monthly Traffic Reset Method", + "description": "Global traffic reset method, defaults to the 1st of each month. Can be set individually for subscriptions in subscription management.", + "options": { + "monthly_first": "1st of Each Month", + "monthly_reset": "Monthly Reset", + "no_reset": "No Reset", + "yearly_first": "January 1st", + "yearly_reset": "Yearly Reset" + } + }, + "surplus_enable": { + "title": "Enable Deduction Plan", + "description": "When enabled, the system will deduct from the original subscription when users change subscriptions, refer to documentation for details." + }, + "new_order_event": { + "title": "Trigger Event on New Subscription", + "description": "This task will be triggered when a new subscription is completed.", + "options": { + "no_action": "No Action", + "reset_traffic": "Reset User Traffic" + } + }, + "renew_order_event": { + "title": "Trigger Event on Subscription Renewal", + "description": "This task will be triggered when a subscription renewal is completed.", + "options": { + "no_action": "No Action", + "reset_traffic": "Reset User Traffic" + } + }, + "change_order_event": { + "title": "Trigger Event on Subscription Change", + "description": "This task will be triggered when a subscription change is completed.", + "options": { + "no_action": "No Action", + "reset_traffic": "Reset User Traffic" + } + }, + "subscribe_path": { + "title": "Subscription Path", + "description": "Subscription path, modifying will change the original subscribe path", + "current_format": "Current subscription path format: {path}/xxxxxxxxxx" + }, + "show_info_to_server": { + "title": "Show Subscription Info in Nodes", + "description": "When enabled, subscription information will be output when users subscribe to nodes." + }, + "show_protocol_to_server": { + "title": "Show Protocol in Node Names", + "description": "When enabled, subscription lines will include protocol names (e.g., [Hy2]Hong Kong)" + }, + "saving": "Saving...", + "plan": { + "title": "Subscription Plans", + "add": "Add Plan", + "search": "Search plans...", + "sort": { + "edit": "Edit Sort", + "save": "Save Sort" + }, + "columns": { + "id": "ID", + "show": "Show", + "sell": "Sell", + "renew": "Renew", + "renew_tooltip": "Whether existing users can renew when the subscription stops selling", + "name": "Name", + "stats": "Statistics", + "group": "Permission Group", + "price": "Price", + "actions": "Actions", + "edit": "Edit", + "delete": "Delete", + "delete_confirm": { + "title": "Confirm Delete", + "description": "This action will permanently delete this subscription and cannot be undone. Are you sure you want to continue?", + "success": "Successfully deleted" + }, + "price_period": { + "monthly": "Monthly", + "quarterly": "Quarterly", + "half_yearly": "Half Yearly", + "yearly": "Yearly", + "two_yearly": "Two Years", + "three_yearly": "Three Years", + "onetime": "One Time", + "reset_traffic": "Reset Traffic", + "unit": { + "month": "/month", + "quarter": "/quarter", + "half_year": "/half year", + "year": "/year", + "two_year": "/2 years", + "three_year": "/3 years", + "times": "/time" + } + } + }, + "form": { + "add_title": "Add Plan", + "edit_title": "Edit Plan", + "name": { + "label": "Plan Name", + "placeholder": "Enter plan name" + }, + "group": { + "label": "Permission Group", + "placeholder": "Select permission group", + "add": "Add Group" + }, + "transfer": { + "label": "Traffic", + "placeholder": "Enter traffic size", + "unit": "GB" + }, + "speed": { + "label": "Speed Limit", + "placeholder": "Enter speed limit", + "unit": "Mbps" + }, + "price": { + "title": "Price Settings", + "base_price": "Base monthly price", + "clear": { + "button": "Clear Prices", + "tooltip": "Clear all period price settings" + } + }, + "device": { + "label": "Device Limit", + "placeholder": "Leave empty for no limit", + "unit": "devices" + }, + "capacity": { + "label": "Capacity Limit", + "placeholder": "Leave empty for no limit", + "unit": "users" + }, + "reset_method": { + "label": "Traffic Reset Method", + "placeholder": "Select traffic reset method", + "description": "Set how subscription traffic is reset, different methods affect how user traffic is calculated", + "options": { + "follow_system": "Follow System Settings", + "monthly_first": "1st of Each Month", + "monthly_reset": "Monthly Reset", + "no_reset": "No Reset", + "yearly_first": "January 1st", + "yearly_reset": "Yearly Reset" + } + }, + "content": { + "label": "Plan Description", + "placeholder": "Write plan description here...", + "description": "Supports Markdown format, you can use headings, lists, bold, italic and other styles to beautify the content", + "preview": "Preview", + "preview_button": { + "show": "Show Preview", + "hide": "Hide Preview" + }, + "template": { + "button": "Use Template", + "tooltip": "Click to use preset plan description template", + "content": "## Plan Features\n• High-speed and stable global network access\n• Support multiple devices online simultaneously\n• Unlimited traffic reset\n\n## Usage Instructions\n1. Supported devices: iOS, Android, Windows, macOS\n2. 24/7 technical support\n3. Automatic periodic traffic reset\n\n## Notes\n- No abuse allowed\n- Comply with local laws and regulations\n- Support plan changes anytime" + } + }, + "force_update": { + "label": "Force Update to Users" + }, + "submit": { + "submitting": "Submitting...", + "submit": "Submit", + "cancel": "Cancel", + "success": { + "add": "Plan added successfully", + "update": "Plan updated successfully" + } + } + }, + "page": { + "description": "Here you can configure subscription plans, including adding, deleting, and editing operations." + } + } + }, + "email": { + "title": "Email Settings", + "description": "Configure system email service for sending verification codes, password resets, and notifications, supporting various SMTP providers.", + "email_host": { + "title": "SMTP Host", + "description": "SMTP server address, e.g., smtp.gmail.com" + }, + "email_port": { + "title": "SMTP Port", + "description": "SMTP server port, common ports: 25, 465, 587" + }, + "email_username": { + "title": "SMTP Username", + "description": "SMTP authentication username" + }, + "email_password": { + "title": "SMTP Password", + "description": "SMTP authentication password or application-specific password" + }, + "email_encryption": { + "title": "Encryption Method", + "description": "Email encryption method", + "none": "None", + "ssl": "SSL/TLS", + "tls": "STARTTLS" + }, + "email_from": { + "title": "From Address", + "description": "Sender's email address" + }, + "email_from_name": { + "title": "From Name", + "description": "Sender's display name" + }, + "email_template": { + "title": "Email Template", + "description": "You can check the documentation for how to customize email templates", + "placeholder": "Select email template" + }, + "remind_mail": { + "title": "Email Reminders", + "description": "When enabled, users will receive email notifications when their subscription is about to expire or when traffic is running low." + }, + "test": { + "title": "Send Test Email", + "sending": "Sending...", + "description": "Send a test email to verify the configuration", + "success": "Test email sent successfully", + "error": "Failed to send test email" + } + }, + "telegram": { + "title": "Telegram Settings", + "description": "Configure Telegram bot functionality for user notifications, account binding, and command interactions.", + "bot_token": { + "title": "Bot Token", + "description": "Please enter the token provided by Botfather.", + "placeholder": "0000000000:xxxxxxxxx_xxxxxxxxxxxxxxx" + }, + "webhook": { + "title": "Set Webhook", + "description": "Set up webhook for the bot. Without setting it, you won't receive Telegram notifications.", + "button": "One-Click Setup", + "setting": "Setting Webhook...", + "success": "Webhook set successfully" + }, + "bot_enable": { + "title": "Enable Bot Notifications", + "description": "When enabled, the bot will send basic notifications to administrators and users who have bound their Telegram accounts." + }, + "discuss_link": { + "title": "Group Link", + "description": "Once filled in, it will be displayed on the user side or used where needed.", + "placeholder": "https://t.me/xxxxxx" + } + }, + "app": { + "title": "APP Settings", + "description": "Manage mobile application configurations, including API interfaces, version control, and push notifications.", + "common": { + "placeholder": "Please input" + }, + "windows": { + "version": { + "title": "Windows Version", + "description": "Current version number of Windows client" + }, + "download": { + "title": "Windows Download URL", + "description": "Download link for Windows client" + } + }, + "macos": { + "version": { + "title": "macOS Version", + "description": "Current version number of macOS client" + }, + "download": { + "title": "macOS Download URL", + "description": "Download link for macOS client" + } + }, + "android": { + "version": { + "title": "Android Version", + "description": "Current version number of Android client" + }, + "download": { + "title": "Android Download URL", + "description": "Download link for Android client" + } + } + }, + "common": { + "saving": "Saving...", + "save_success": "Saved automatically", + "placeholder": "Please input", + "autoSaved": "Saved automatically" + } + }, + "group": { + "title": "Permission Groups", + "description": "Manage all permission groups, including adding, deleting, and editing operations.", + "columns": { + "id": "Group ID", + "name": "Group Name", + "usersCount": "Users Count", + "serverCount": "Nodes Count", + "actions": "Actions" + }, + "form": { + "add": "Add Group", + "edit": "Edit Group", + "create": "Create Group", + "update": "Update", + "name": "Group Name", + "namePlaceholder": "Please enter group name", + "nameDescription": "Group name is used to identify different user groups, it's recommended to use meaningful names.", + "cancel": "Cancel", + "editDescription": "Modify group information, changes will take effect immediately.", + "createDescription": "Create a new permission group to assign different permissions to different users." + }, + "toolbar": { + "searchPlaceholder": "Search groups...", + "reset": "Reset" + }, + "messages": { + "deleteConfirm": "Confirm Delete", + "deleteDescription": "This action will permanently delete this permission group and cannot be recovered. Are you sure you want to continue?", + "deleteButton": "Delete", + "createSuccess": "Created Successfully", + "updateSuccess": "Updated Successfully", + "nameValidation": { + "min": "Group name must be at least 2 characters", + "max": "Group name cannot exceed 50 characters", + "pattern": "Group name can only contain letters, numbers, Chinese characters, underscores and hyphens" + } + } + }, + "traffic": { + "trafficRecord": { + "title": "Traffic Usage Records", + "time": "Time", + "upload": "Upload", + "download": "Download", + "rate": "Rate", + "total": "Total", + "noRecords": "No records found", + "perPage": "Show per page", + "records": "records", + "page": "Page {{current}} / {{total}}", + "multiplier": "{{value}}x" + } + }, + "common": { + "loading": "Loading...", + "error": "Error", + "success": "Success", + "save": "Save", + "cancel": "Cancel", + "delete": "Delete", + "edit": "Edit", + "view": "View", + "toggleNavigation": "Toggle Navigation", + "toggleSidebar": "Toggle Sidebar", + "search": "Search...", + "theme": { + "light": "Light", + "dark": "Dark", + "system": "System" + }, + "user": "User", + "defaultEmail": "user@example.com", + "settings": "Settings", + "logout": "Logout", + "copy": { + "success": "Copied successfully", + "error": "Copy failed", + "errorLog": "Error copying to clipboard" + }, + "table": { + "noData": "No data available", + "pagination": { + "selected": "{{selected}} of {{total}} items selected", + "itemsPerPage": "Per page", + "page": "Page", + "pageOf": "of {{total}} pages", + "firstPage": "Go to first page", + "previousPage": "Previous page", + "nextPage": "Next page", + "lastPage": "Go to last page" + } + } + }, + "dashboard": { + "title": "Dashboard", + "stats": { + "newUsers": "New Users", + "totalScore": "Total Score", + "monthlyUpload": "Monthly Upload", + "vsLastMonth": "vs Last Month", + "vsYesterday": "vs Yesterday", + "todayIncome": "Today's Income", + "monthlyIncome": "Monthly Income", + "totalIncome": "Total Income", + "totalUsers": "Total Users", + "activeUsers": "Active Users: {{count}}", + "totalOrders": "Total Orders", + "revenue": "Revenue", + "todayRegistered": "Today Registered", + "monthlyRegistered": "Monthly Registered", + "onlineUsers": "Online Users", + "pendingTickets": "Pending Tickets", + "hasPendingTickets": "There are tickets that need attention", + "noPendingTickets": "No pending tickets", + "pendingCommission": "Pending Commission", + "hasPendingCommission": "There are commissions that need confirmation", + "noPendingCommission": "No pending commission", + "monthlyNewUsers": "Monthly New Users", + "monthlyDownload": "Monthly Download", + "todayTraffic": "Today: {{value}}", + "activeUserTrend": "Active User Trend", + "realtimeUsers": "Realtime Users", + "todayPeak": "Today's Peak", + "vsLastWeek": "vs Last Week" + }, + "trafficRank": { + "nodeTrafficRank": "Node Traffic Rank", + "userTrafficRank": "User Traffic Rank", + "today": "Today", + "last7days": "Last 7 Days", + "last30days": "Last 30 Days", + "customRange": "Custom Range", + "selectTimeRange": "Select Time Range", + "selectDateRange": "Select Date Range", + "currentTraffic": "Current Traffic", + "previousTraffic": "Previous Traffic", + "changeRate": "Change Rate", + "recordTime": "Record Time" + }, + "overview": { + "title": "Revenue Overview", + "thisMonth": "This Month", + "lastMonth": "Last Month", + "to": "to", + "selectTimeRange": "Select Range", + "selectDate": "Select Date", + "last7Days": "Last 7 Days", + "last30Days": "Last 30 Days", + "last90Days": "Last 90 Days", + "last180Days": "Last 180 Days", + "lastYear": "Last Year", + "customRange": "Custom Range", + "amount": "Amount", + "count": "Count", + "transactions": "{{count}} transactions", + "orderAmount": "Order Amount", + "commissionAmount": "Commission Amount", + "orderCount": "Order Count", + "commissionCount": "Commission Count", + "totalIncome": "Total Income", + "totalCommission": "Total Commission", + "totalTransactions": "Total: {{count}} transactions", + "avgOrderAmount": "Average Order Amount:", + "commissionRate": "Commission Rate:" + }, + "traffic": { + "title": "Traffic Ranking", + "rank": "Rank", + "domain": "Domain", + "todayTraffic": "Today's Traffic", + "monthlyTraffic": "Monthly Traffic" + }, + "queue": { + "title": "Queue Status", + "jobDetails": "Job Details", + "status": { + "description": "Current queue running status", + "running": "Running Status", + "normal": "Normal", + "abnormal": "Abnormal", + "waitTime": "Current wait time: {{seconds}} seconds", + "pending": "Pending", + "processing": "Processing", + "completed": "Completed", + "failed": "Failed", + "cancelled": "Cancelled" + }, + "details": { + "description": "Queue processing details", + "recentJobs": "Recent Jobs", + "statisticsPeriod": "Statistics Period: {{hours}} hours", + "jobsPerMinute": "Jobs Per Minute", + "maxThroughput": "Max Throughput: {{value}}", + "failedJobs7Days": "Failed Jobs (7 days)", + "retentionPeriod": "Retention Period: {{hours}} hours", + "longestRunningQueue": "Longest Running Queue", + "activeProcesses": "Active Processes", + "id": "Job ID", + "type": "Job Type", + "status": "Status", + "progress": "Progress", + "createdAt": "Created At", + "updatedAt": "Updated At", + "error": "Error Message", + "data": "Job Data", + "result": "Result", + "duration": "Duration", + "attempts": "Attempts", + "nextRetry": "Next Retry" + }, + "actions": { + "retry": "Retry", + "cancel": "Cancel", + "delete": "Delete", + "viewDetails": "View Details" + }, + "empty": "No jobs in queue", + "loading": "Loading queue status...", + "error": "Failed to load queue status" + }, + "search": { + "placeholder": "Search menus and functions...", + "title": "Menu Navigation", + "noResults": "No results found", + "loading": "Searching..." + } + }, + "route": { + "title": "Route Management", + "description": "Manage all route groups, including adding, deleting, and editing operations.", + "columns": { + "id": "Group ID", + "remarks": "Remarks", + "action": "Action", + "actions": "Actions", + "matchRules": "Match {{count}} rules" + }, + "actions": { + "dns": "Resolve using specified DNS server", + "block": "Block access" + }, + "form": { + "add": "Add Route", + "edit": "Edit Route", + "create": "Create Route", + "remarks": "Remarks", + "remarksPlaceholder": "Please enter remarks", + "match": "Match Rules", + "matchPlaceholder": "example.com\n*.example.com", + "action": "Action", + "actionPlaceholder": "Please select action", + "dns": "DNS Server", + "dnsPlaceholder": "Please enter DNS server", + "cancel": "Cancel", + "submit": "Submit", + "validation": { + "remarks": "Please enter valid remarks" + } + }, + "toolbar": { + "searchPlaceholder": "Search routes...", + "reset": "Reset" + }, + "messages": { + "deleteConfirm": "Confirm Delete", + "deleteDescription": "This action will permanently delete this route group and cannot be recovered. Are you sure you want to continue?", + "deleteButton": "Delete", + "deleteSuccess": "Deleted Successfully", + "createSuccess": "Created Successfully", + "updateSuccess": "Updated Successfully" + } + }, + "order": { + "title": "Order Management", + "description": "Here you can view user orders, including assignment, viewing, deletion and other operations.", + "table": { + "columns": { + "tradeNo": "Order No.", + "type": "Type", + "plan": "Subscription Plan", + "period": "Period", + "amount": "Payment Amount", + "status": "Order Status", + "commission": "Commission Amount", + "commissionStatus": "Commission Status", + "createdAt": "Created At" + } + }, + "type": { + "NEW": "New Purchase", + "RENEWAL": "Renewal", + "UPGRADE": "Upgrade", + "RESET_FLOW": "Reset Traffic" + }, + "period": { + "month_price": "Monthly", + "quarter_price": "Quarterly", + "half_year_price": "Semi-annually", + "year_price": "Annually", + "two_year_price": "2 Years", + "three_year_price": "3 Years", + "onetime_price": "One-time", + "reset_price": "Reset Package" + }, + "status": { + "PENDING": "Pending", + "PROCESSING": "Processing", + "CANCELLED": "Cancelled", + "COMPLETED": "Completed", + "DISCOUNTED": "Discounted", + "tooltip": "After marking as [Paid], the system will proceed with activation and completion" + }, + "commission": { + "PENDING": "Pending", + "PROCESSING": "Processing", + "VALID": "Valid", + "INVALID": "Invalid" + }, + "actions": { + "markAsPaid": "Mark as Paid", + "cancel": "Cancel Order", + "openMenu": "Open Menu", + "reset": "Reset" + }, + "search": { + "placeholder": "Search orders..." + }, + "dialog": { + "title": "Order Information", + "basicInfo": "Basic Information", + "amountInfo": "Amount Information", + "timeInfo": "Time Information", + "addOrder": "Add Order", + "assignOrder": "Assign Order", + "fields": { + "userEmail": "User Email", + "orderPeriod": "Order Period", + "subscriptionPlan": "Subscription Plan", + "callbackNo": "Callback No.", + "paymentAmount": "Payment Amount", + "balancePayment": "Balance Payment", + "discountAmount": "Discount Amount", + "refundAmount": "Refund Amount", + "deductionAmount": "Deduction Amount", + "createdAt": "Created At", + "updatedAt": "Updated At" + }, + "placeholders": { + "email": "Please enter user email", + "plan": "Please select subscription plan", + "period": "Please select subscription period", + "amount": "Please enter payment amount" + }, + "actions": { + "cancel": "Cancel", + "confirm": "Confirm" + }, + "messages": { + "addSuccess": "Added successfully" + } + } + }, + "coupon": { + "title": "Coupon Management", + "description": "Here you can manage coupons, including adding, viewing, and deleting operations.", + "table": { + "columns": { + "id": "ID", + "show": "Enable", + "name": "Coupon Name", + "type": "Type", + "code": "Code", + "limitUse": "Remaining Uses", + "limitUseWithUser": "Uses Per User", + "validity": "Validity Period", + "actions": "Actions" + }, + "validity": { + "expired": "Expired {{days}} days ago", + "notStarted": "Starts in {{days}} days", + "remaining": "{{days}} days remaining", + "startTime": "Start Time", + "endTime": "End Time", + "unlimited": "Unlimited", + "noLimit": "No Limit" + }, + "actions": { + "edit": "Edit", + "delete": "Delete", + "deleteConfirm": { + "title": "Confirm Delete", + "description": "This action will permanently delete this coupon and cannot be undone. Are you sure you want to continue?", + "confirmText": "Delete" + } + }, + "toolbar": { + "search": "Search coupons...", + "type": "Type", + "reset": "Reset", + "types": { + "1": "Fixed Amount", + "2": "Percentage" + } + } + }, + "form": { + "add": "Add Coupon", + "edit": "Edit Coupon", + "name": { + "label": "Coupon Name", + "placeholder": "Enter coupon name", + "required": "Please enter coupon name" + }, + "type": { + "label": "Coupon Type and Value", + "placeholder": "Select coupon type" + }, + "value": { + "placeholder": "Enter value" + }, + "validity": { + "label": "Validity Period", + "to": "to", + "endTimeError": "End time must be later than start time" + }, + "limitUse": { + "label": "Maximum Uses", + "placeholder": "Set maximum uses, leave empty for unlimited", + "description": "Set the total number of times this coupon can be used, leave empty for unlimited uses" + }, + "limitUseWithUser": { + "label": "Uses Per User", + "placeholder": "Set uses per user, leave empty for unlimited", + "description": "Limit how many times each user can use this coupon, leave empty for unlimited uses per user" + }, + "limitPeriod": { + "label": "Subscription Periods", + "placeholder": "Limit to specific subscription periods, leave empty for no restrictions", + "description": "Select which subscription periods can use this coupon, leave empty for no period restrictions", + "empty": "No matching periods found" + }, + "limitPlan": { + "label": "Subscription Plans", + "placeholder": "Limit to specific subscription plans, leave empty for no restrictions", + "empty": "No matching plans found" + }, + "code": { + "label": "Custom Coupon Code", + "placeholder": "Enter custom code, leave empty for auto-generation", + "description": "Customize the coupon code, leave empty for auto-generation" + }, + "generateCount": { + "label": "Batch Generation Count", + "placeholder": "Number of coupons to generate, leave empty for single coupon", + "description": "Generate multiple coupon codes at once, leave empty to generate a single code" + }, + "submit": { + "saving": "Saving...", + "save": "Save" + }, + "error": { + "saveFailed": "Failed to save coupon" + } + } + }, + "notice": { + "title": "Notice Management", + "description": "Here you can configure notices, including adding, deleting, editing and other operations.", + "table": { + "columns": { + "id": "ID", + "show": "Display Status", + "title": "Title", + "actions": "Actions" + }, + "toolbar": { + "search": "Search notice title...", + "reset": "Reset", + "sort": { + "edit": "Edit Order", + "save": "Save Order" + } + }, + "actions": { + "edit": "Edit", + "delete": { + "title": "Delete Confirmation", + "description": "Are you sure you want to delete this notice? This action cannot be undone.", + "success": "Successfully deleted" + } + } + }, + "form": { + "add": { + "title": "Add Notice", + "button": "Add Notice" + }, + "edit": { + "title": "Edit Notice" + }, + "fields": { + "title": { + "label": "Title", + "placeholder": "Please enter notice title" + }, + "content": { + "label": "Content" + }, + "img_url": { + "label": "Background Image", + "placeholder": "Please enter notice background image URL" + }, + "show": { + "label": "Display" + }, + "tags": { + "label": "Tags", + "placeholder": "Press Enter to add tags" + } + }, + "buttons": { + "cancel": "Cancel", + "submit": "Submit", + "success": "Successfully submitted" + } + } + }, + "theme": { + "title": "Theme Configuration", + "description": "Theme configuration, including theme colors, font sizes, etc. If you deploy V2board in a front-end and back-end separated way, theme configuration will not take effect.", + "upload": { + "button": "Upload Theme", + "title": "Upload Theme", + "description": "Please upload a valid theme package (.zip format). The theme package should contain a complete theme file structure.", + "dragText": "Drag and drop theme file here, or", + "clickText": "click to select", + "supportText": "Supports .zip format theme packages", + "uploading": "Uploading...", + "error": { + "format": "Only ZIP format theme files are supported" + } + }, + "preview": { + "title": "Theme Preview", + "imageCount": "{{current}} / {{total}}" + }, + "card": { + "version": "Version: {{version}}", + "currentTheme": "Current Theme", + "activateTheme": "Activate Theme", + "configureTheme": "Theme Settings", + "preview": "Preview", + "delete": { + "title": "Delete Theme", + "description": "Are you sure you want to delete this theme? This action cannot be undone.", + "button": "Delete", + "error": { + "active": "Cannot delete the currently active theme" + } + } + }, + "config": { + "title": "Configure {{name}} Theme", + "description": "Modify theme styles, layouts, and other display options.", + "cancel": "Cancel", + "save": "Save", + "success": "Settings saved successfully" + } + }, + "ticket": { + "title": "Ticket Management", + "description": "Here you can view user tickets, including viewing, replying, and closing operations.", + "columns": { + "id": "Ticket ID", + "subject": "Subject", + "level": "Priority", + "status": "Status", + "updated_at": "Last Updated", + "created_at": "Created At", + "actions": "Actions" + }, + "status": { + "closed": "Closed", + "replied": "Replied", + "pending": "Pending", + "processing": "Processing" + }, + "level": { + "low": "Low", + "medium": "Medium", + "high": "High" + }, + "filter": { + "placeholder": "Search {field}...", + "no_results": "No results found.", + "selected": "{count} selected", + "clear": "Clear filters" + }, + "actions": { + "view_details": "View Details", + "close_ticket": "Close Ticket", + "close_confirm_title": "Confirm Close Ticket", + "close_confirm_description": "After closing, you will not be able to reply. Are you sure you want to close this ticket?", + "close_confirm_button": "Close Ticket", + "close_success": "Ticket closed successfully", + "view_ticket": "View Ticket" + }, + "detail": { + "no_messages": "No messages yet", + "created_at": "Created at", + "user_info": "User Info", + "traffic_records": "Traffic Records", + "order_records": "Order Records", + "input": { + "closed_placeholder": "Ticket is closed", + "reply_placeholder": "Type your reply...", + "sending": "Sending...", + "send": "Send" + } + } + }, + "server": { + "title": "Node Configuration", + "description": "Configure node communication and synchronization settings, including communication key, polling interval, load balancing and other advanced options.", + "server_token": { + "title": "Communication Key", + "description": "The key for communication between Xboard and nodes to prevent unauthorized data access.", + "placeholder": "Please enter communication key" + }, + "server_pull_interval": { + "title": "Node Pull Action Polling Interval", + "description": "The frequency at which nodes retrieve data from the panel.", + "placeholder": "Please enter pull interval" + }, + "server_push_interval": { + "title": "Node Push Action Polling Interval", + "description": "The frequency at which nodes push data to the panel.", + "placeholder": "Please enter push interval" + }, + "device_limit_mode": { + "title": "Device Limit Mode", + "description": "In relaxed mode, multiple nodes from the same IP address count as one device.", + "strict": "Strict Mode", + "relaxed": "Relaxed Mode", + "placeholder": "Please select device limit mode" + }, + "saving": "Saving...", + "manage": { + "title": "Node Management", + "description": "Manage all nodes, including adding, deleting, editing and other operations." + }, + "columns": { + "sort": "Sort", + "nodeId": "Node ID", + "show": "Show", + "node": "Node", + "address": "Address", + "onlineUsers": { + "title": "Online Users", + "tooltip": "Online users count based on server reporting frequency" + }, + "rate": { + "title": "Rate", + "tooltip": "Traffic billing rate" + }, + "groups": { + "title": "Permission Groups", + "tooltip": "Groups that can subscribe to this node", + "empty": "--" + }, + "type": "Type", + "actions": "Actions", + "copyAddress": "Copy Connection Address", + "internalPort": "Internal Port", + "status": { + "0": "Not Running", + "1": "Unused or Abnormal", + "2": "Running Normal" + }, + "actions_dropdown": { + "edit": "Edit", + "copy": "Copy", + "delete": { + "title": "Confirm Delete", + "description": "This action will permanently delete this node and cannot be undone. Are you sure you want to continue?", + "confirm": "Delete" + }, + "copy_success": "Copied successfully", + "delete_success": "Deleted successfully" + } + }, + "toolbar": { + "search": "Search nodes...", + "type": "Type", + "reset": "Reset", + "sort": { + "tip": "Drag nodes to sort, then click save", + "edit": "Edit Sort", + "save": "Save Sort" + } + }, + "form": { + "add_node": "Add Node", + "edit_node": "Edit Node", + "new_node": "New Node", + "name": { + "label": "Node Name", + "placeholder": "Please enter node name", + "error": "Please enter a valid name" + }, + "rate": { + "label": "Rate", + "error": "Please enter a valid rate" + }, + "code": { + "label": "Custom Node ID", + "optional": "(Optional)", + "placeholder": "Please enter custom node ID" + }, + "tags": { + "label": "Node Tags", + "placeholder": "Press Enter to add tags" + }, + "groups": { + "label": "Permission Groups", + "add": "Add Group", + "placeholder": "Please select permission groups", + "empty": "No results found" + }, + "host": { + "label": "Node Address", + "placeholder": "Please enter domain or IP" + }, + "port": { + "label": "Connection Port", + "placeholder": "User connection port", + "tooltip": "The port that users actually connect to, this is the port number that needs to be filled in the client configuration. If using transit or tunnel, this port may be different from the port that the server actually listens on.", + "sync": "Sync to server port" + }, + "server_port": { + "label": "Server Port", + "placeholder": "Server listening port", + "tooltip": "The port that the server actually listens on, this is the real port opened on the server. If using transit or tunnel, this port may be different from the user connection port." + }, + "parent": { + "label": "Parent Node", + "placeholder": "Select parent node", + "none": "None" + }, + "route": { + "label": "Route Groups", + "placeholder": "Select route groups", + "empty": "No results found" + }, + "submit": "Submit", + "cancel": "Cancel", + "success": "Submitted successfully" + }, + "dynamic_form": { + "shadowsocks": { + "cipher": { + "label": "Encryption Method", + "placeholder": "Select encryption method" + }, + "obfs": { + "label": "Obfuscation", + "placeholder": "Select obfuscation method", + "none": "None", + "http": "HTTP" + }, + "obfs_settings": { + "path": "Path", + "host": "Host" + } + }, + "vmess": { + "tls": { + "label": "TLS", + "placeholder": "Please select security", + "disabled": "Disabled", + "enabled": "Enabled" + }, + "tls_settings": { + "server_name": { + "label": "Server Name Indication (SNI)", + "placeholder": "Leave empty if not used" + }, + "allow_insecure": "Allow Insecure?" + }, + "network": { + "label": "Transport Protocol", + "placeholder": "Select transport protocol" + } + }, + "trojan": { + "server_name": { + "label": "Server Name Indication (SNI)", + "placeholder": "Used for certificate verification when node address differs from certificate" + }, + "allow_insecure": "Allow Insecure?", + "network": { + "label": "Transport Protocol", + "placeholder": "Select transport protocol" + } + }, + "hysteria": { + "version": { + "label": "Protocol Version", + "placeholder": "Protocol version" + }, + "alpn": { + "label": "ALPN", + "placeholder": "ALPN" + }, + "obfs": { + "label": "Obfuscation", + "type": { + "label": "Obfuscation Implementation", + "placeholder": "Select obfuscation implementation", + "salamander": "Salamander" + }, + "password": { + "label": "Obfuscation Password", + "placeholder": "Please enter obfuscation password", + "generate_success": "Obfuscation password generated successfully" + } + }, + "tls": { + "server_name": { + "label": "Server Name Indication (SNI)", + "placeholder": "Used for certificate verification when node address differs from certificate" + }, + "allow_insecure": "Allow Insecure?" + }, + "bandwidth": { + "up": { + "label": "Upload Bandwidth", + "placeholder": "Please enter upload bandwidth", + "suffix": "Mbps", + "bbr_tip": ", leave empty to use BBR" + }, + "down": { + "label": "Download Bandwidth", + "placeholder": "Please enter download bandwidth", + "suffix": "Mbps", + "bbr_tip": ", leave empty to use BBR" + } + } + }, + "vless": { + "tls": { + "label": "Security", + "placeholder": "Please select security", + "none": "None", + "tls": "TLS", + "reality": "Reality" + }, + "tls_settings": { + "server_name": { + "label": "Server Name Indication (SNI)", + "placeholder": "Leave empty if not used" + }, + "allow_insecure": "Allow Insecure?" + }, + "reality_settings": { + "server_name": { + "label": "Destination Site (dest)", + "placeholder": "e.g., example.com" + }, + "server_port": { + "label": "Port", + "placeholder": "e.g., 443" + }, + "allow_insecure": "Allow Insecure?", + "private_key": { + "label": "Private Key" + }, + "public_key": { + "label": "Public Key" + }, + "short_id": { + "label": "Short ID", + "placeholder": "Optional, length must be even, max 16 characters", + "description": "List of shortIds available to clients, can be used to distinguish different clients, using hexadecimal characters 0-f", + "generate": "Generate Short ID", + "success": "Short ID generated successfully" + }, + "key_pair": { + "generate": "Generate Key Pair", + "success": "Key pair generated successfully", + "error": "Failed to generate key pair" + } + }, + "network": { + "label": "Transport Protocol", + "placeholder": "Select transport protocol" + }, + "flow": { + "label": "Flow Control", + "placeholder": "Select flow control" + } + } + }, + "network_settings": { + "edit_protocol": "Edit Protocol", + "edit_protocol_config": "Edit Protocol Configuration", + "use_template": "Use {{template}} Template", + "json_config_placeholder": "Please enter JSON configuration", + "json_config_placeholder_with_template": "Please enter JSON configuration or select template above", + "validation": { + "must_be_object": "Configuration must be a JSON object", + "invalid_json": "Invalid JSON format" + }, + "errors": { + "save_failed": "Error occurred while saving" + } + }, + "common": { + "cancel": "Cancel", + "confirm": "Confirm" + } + }, + "user": { + "manage": { + "title": "User Management", + "description": "Here you can manage users, including adding, deleting, editing, and querying operations." + }, + "columns": { + "is_admin": "Admin", + "is_staff": "Staff", + "id": "ID", + "email": "Email", + "online_count": "Online Devices", + "status": "Status", + "subscription": "Subscription", + "group": "Group", + "used_traffic": "Used Traffic", + "total_traffic": "Total Traffic", + "expire_time": "Expire Time", + "balance": "Balance", + "commission": "Commission", + "register_time": "Register Time", + "actions": "Actions", + "device_limit": { + "unlimited": "No device limit", + "limited": "Maximum {{count}} devices allowed" + }, + "status_text": { + "normal": "Normal", + "banned": "Banned" + }, + "online_status": { + "online": "Currently Online", + "never": "Never Online", + "last_online": "Last Online: {{time}}", + "offline_duration": { + "days": "Offline Duration: {{count}}d", + "hours": "Offline Duration: {{count}}h", + "minutes": "Offline Duration: {{count}}m", + "seconds": "Offline Duration: {{count}}s" + } + }, + "expire_status": { + "permanent": "Permanent", + "expired": "Expired {{days}} days ago", + "remaining": "{{days}} days remaining" + }, + "actions_menu": { + "edit": "Edit", + "assign_order": "Assign Order", + "copy_url": "Copy Subscribe URL", + "reset_secret": "Reset UUID & URL", + "orders": "Orders", + "invites": "Invites", + "traffic_records": "Traffic Records" + } + }, + "filter": { + "selected": "{{count}} selected", + "no_results": "No results found.", + "clear": "Clear filters", + "search_placeholder": "Search...", + "email_search": "Search user email...", + "advanced": "Advanced Filter", + "reset": "Reset Filter", + "sheet": { + "title": "Advanced Filter", + "description": "Add one or more filter conditions to find users precisely", + "conditions": "Filter Conditions", + "add": "Add Condition", + "condition": "Condition {{number}}", + "field": "Select Field", + "operator": "Select Operator", + "value": "Enter Value", + "value_number": "Enter Value ({{unit}})", + "reset": "Reset", + "apply": "Apply Filter" + }, + "fields": { + "email": "Email", + "id": "User ID", + "plan_id": "Subscription", + "transfer_enable": "Traffic", + "total_used": "Used Traffic", + "online_count": "Online Devices", + "expired_at": "Expire Time", + "uuid": "UUID", + "token": "Token", + "banned": "Account Status", + "remark": "Remark", + "inviter_email": "Inviter Email", + "invite_user_id": "Inviter ID", + "is_admin": "Admin", + "is_staff": "Staff" + }, + "operators": { + "contains": "Contains", + "eq": "Equals", + "gt": "Greater Than", + "lt": "Less Than" + }, + "status": { + "normal": "Normal", + "banned": "Banned" + }, + "boolean": { + "true": "Yes", + "false": "No" + } + }, + "generate": { + "button": "Create User", + "title": "Create User", + "form": { + "email": "Email", + "email_prefix": "Account (leave empty for batch generation)", + "email_domain": "Domain", + "password": "Password", + "password_placeholder": "Leave empty to use email as password", + "expire_time": "Expire Time", + "expire_time_placeholder": "Select user expire date, leave empty for permanent", + "permanent": "Permanent", + "subscription": "Subscription Plan", + "subscription_none": "None", + "generate_count": "Generate Count", + "generate_count_placeholder": "Enter count for batch generation", + "cancel": "Cancel", + "submit": "Generate", + "success": "Generated successfully" + } + }, + "edit": { + "button": "Edit User Info", + "title": "User Management", + "form": { + "email": "Email", + "email_placeholder": "Please enter email", + "inviter_email": "Inviter Email", + "inviter_email_placeholder": "Please enter email", + "password": "Password", + "password_placeholder": "Enter new password if you want to change it", + "balance": "Balance", + "balance_placeholder": "Please enter balance", + "commission_balance": "Commission Balance", + "commission_balance_placeholder": "Please enter commission balance", + "upload": "Upload Traffic", + "upload_placeholder": "Upload traffic", + "download": "Download Traffic", + "download_placeholder": "Download traffic", + "total_traffic": "Total Traffic", + "total_traffic_placeholder": "Please enter traffic", + "expire_time": "Expire Time", + "expire_time_placeholder": "Select user expire date, leave empty for permanent", + "expire_time_specific": "Specific Time", + "expire_time_today": "Set to end of today", + "expire_time_permanent": "Permanent", + "expire_time_1month": "One Month", + "expire_time_3months": "Three Months", + "expire_time_confirm": "Confirm", + "subscription": "Subscription Plan", + "subscription_none": "None", + "account_status": "Account Status", + "commission_type": "Commission Type", + "commission_type_system": "Follow System Settings", + "commission_type_cycle": "Cycle Commission", + "commission_type_onetime": "One-time Commission", + "commission_rate": "Commission Rate", + "commission_rate_placeholder": "Leave empty to follow site commission rate", + "discount": "Exclusive Discount", + "discount_placeholder": "Leave empty for no exclusive discount", + "speed_limit": "Speed Limit", + "speed_limit_placeholder": "Leave empty for no speed limit", + "device_limit": "Device Limit", + "device_limit_placeholder": "Leave empty for no device limit", + "is_admin": "Is Admin", + "is_staff": "Is Staff", + "remarks": "Remarks", + "remarks_placeholder": "Please enter remarks here", + "cancel": "Cancel", + "submit": "Submit", + "success": "Modified successfully" + } + } + }, + "subscribe": { + "plan": { + "title": "Subscription Plans", + "add": "Add Plan", + "search": "Search plans...", + "sort": { + "edit": "Edit Sort", + "save": "Save Sort" + }, + "columns": { + "id": "ID", + "show": "Show", + "sell": "Sell", + "renew": "Renew", + "renew_tooltip": "Whether existing users can renew when the subscription stops selling", + "name": "Name", + "stats": "Statistics", + "group": "Permission Group", + "price": "Price", + "actions": "Actions", + "edit": "Edit", + "delete": "Delete", + "delete_confirm": { + "title": "Confirm Delete", + "description": "This action will permanently delete this subscription and cannot be undone. Are you sure you want to continue?", + "success": "Successfully deleted" + }, + "price_period": { + "monthly": "Monthly", + "quarterly": "Quarterly", + "half_yearly": "Half Yearly", + "yearly": "Yearly", + "two_yearly": "Two Years", + "three_yearly": "Three Years", + "onetime": "One Time", + "reset_traffic": "Reset Traffic", + "unit": { + "month": "/month", + "quarter": "/quarter", + "half_year": "/half year", + "year": "/year", + "two_year": "/2 years", + "three_year": "/3 years", + "times": "/time" + } + } + }, + "form": { + "add_title": "Add Plan", + "edit_title": "Edit Plan", + "name": { + "label": "Plan Name", + "placeholder": "Enter plan name" + }, + "group": { + "label": "Server Group", + "add": "Add Group", + "placeholder": "Select server group" + }, + "transfer": { + "label": "Traffic", + "placeholder": "Enter traffic limit", + "unit": "GB" + }, + "speed": { + "label": "Speed Limit", + "placeholder": "Enter speed limit", + "unit": "Mbps" + }, + "price": { + "title": "Price Settings", + "base_price": "Base Price", + "clear": { + "button": "Clear", + "tooltip": "Clear all prices" + }, + "period": { + "monthly": "Monthly", + "months": "{{count}} Months" + }, + "onetime_desc": "One-time traffic package, no time limit", + "reset_desc": "Reset traffic package, can be used multiple times" + }, + "device": { + "label": "Device Limit", + "placeholder": "Enter device limit", + "unit": "Devices" + }, + "capacity": { + "label": "Capacity Limit", + "placeholder": "Enter capacity limit", + "unit": "Users" + }, + "reset_method": { + "label": "Traffic Reset Method", + "placeholder": "Select reset method", + "description": "Traffic reset method will determine how the traffic is reset", + "options": { + "follow_system": "Follow System Settings", + "monthly_first": "Monthly First Day", + "monthly_reset": "Monthly Purchase Day", + "no_reset": "No Reset", + "yearly_first": "Yearly First Day", + "yearly_reset": "Yearly Purchase Day" + } + }, + "content": { + "label": "Plan Description", + "placeholder": "Enter plan description", + "description": "Support Markdown format", + "preview": "Preview", + "preview_button": { + "show": "Show Preview", + "hide": "Hide Preview" + }, + "template": { + "button": "Use Template", + "tooltip": "Use default template", + "content": "## Plan Features\n\n- Traffic: {{transfer}} GB\n- Speed: {{speed}} Mbps\n- Devices: {{devices}}\n\n## Usage Notes\n\n1. The plan is valid for {{validity}} days\n2. Traffic resets {{reset_method}}\n3. Maximum {{capacity}} concurrent users" + } + }, + "force_update": { + "label": "Force Update User Plans" + }, + "submit": { + "cancel": "Cancel", + "submit": "Submit", + "submitting": "Submitting...", + "success": { + "add": "Plan added successfully", + "update": "Plan updated successfully" + } + } + }, + "page": { + "description": "Here you can configure subscription plans, including adding, deleting, and editing operations." + } + } + }, + "auth": { + "signIn": { + "title": "Sign In", + "description": "Enter your email and password to sign in", + "email": "Email", + "emailPlaceholder": "name@example.com", + "password": "Password", + "passwordPlaceholder": "Enter your password", + "forgotPassword": "Forgot Password?", + "submit": "Sign In", + "rememberMe": "Remember me", + "resetPassword": { + "title": "Reset Password", + "description": "Execute the following command in the site directory to reset your password", + "command": "php artisan reset:password admin-email" + }, + "validation": { + "emailRequired": "Please enter your email address", + "emailInvalid": "Please enter a valid email address", + "passwordRequired": "Please enter your password", + "passwordLength": "Password must be at least 7 characters" + } + } + }, + "sidebar": { + "dashboard": "Dashboard", + "systemManagement": "System Management", + "systemConfig": "System Configuration", + "themeConfig": "Theme Configuration", + "noticeManagement": "Notice Management", + "paymentConfig": "Payment Configuration", + "knowledgeManagement": "Knowledge Base", + "nodeManagement": "Node Management", + "permissionGroupManagement": "Permission Groups", + "routeManagement": "Route Management", + "subscriptionManagement": "Subscription Management", + "planManagement": "Plan Management", + "orderManagement": "Order Management", + "couponManagement": "Coupon Management", + "userManagement": "User Management", + "ticketManagement": "Ticket Management" + } +}; \ No newline at end of file diff --git a/public/assets/admin/locales/ko-KR.js b/public/assets/admin/locales/ko-KR.js new file mode 100644 index 0000000..add98ae --- /dev/null +++ b/public/assets/admin/locales/ko-KR.js @@ -0,0 +1,1998 @@ +window.XBOARD_TRANSLATIONS = window.XBOARD_TRANSLATIONS || {}; +window.XBOARD_TRANSLATIONS['ko-KR'] = { + "payment": { + "title": "결제 설정", + "description": "알리페이, 위챗페이 등의 결제 수단을 설정합니다.", + "table": { + "columns": { + "id": "ID", + "enable": "활성화", + "name": "표시 이름", + "payment": "결제 게이트웨이", + "notify_url": "알림 URL", + "notify_url_tooltip": "결제 게이트웨이가 이 주소로 알림을 보냅니다. 방화벽을 통해 접근 가능한지 확인해주세요.", + "actions": "작업" + }, + "actions": { + "edit": "편집", + "delete": { + "title": "삭제 확인", + "description": "이 결제 수단을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.", + "success": "삭제 완료" + } + }, + "toolbar": { + "search": "결제 수단 검색...", + "reset": "초기화", + "sort": { + "hint": "결제 수단을 드래그하여 정렬하고, 완료 후 저장을 클릭하세요", + "save": "순서 저장", + "edit": "순서 편집" + } + } + }, + "form": { + "add": { + "button": "결제 수단 추가", + "title": "결제 수단 추가" + }, + "edit": { + "title": "결제 수단 편집" + }, + "fields": { + "name": { + "label": "표시 이름", + "placeholder": "결제 이름 입력", + "description": "프론트엔드 표시용" + }, + "icon": { + "label": "아이콘 URL", + "placeholder": "https://example.com/icon.svg", + "description": "프론트엔드 표시용 아이콘 URL" + }, + "notify_domain": { + "label": "알림 도메인", + "placeholder": "https://example.com", + "description": "게이트웨이 알림용 도메인" + }, + "handling_fee_percent": { + "label": "수수료 비율 (%)", + "placeholder": "0-100" + }, + "handling_fee_fixed": { + "label": "고정 수수료", + "placeholder": "0" + }, + "payment": { + "label": "결제 게이트웨이", + "placeholder": "결제 게이트웨이 선택", + "description": "사용할 결제 게이트웨이 선택" + } + }, + "validation": { + "name": { + "min": "이름은 최소 2자 이상이어야 합니다", + "max": "이름은 30자를 초과할 수 없습니다" + }, + "notify_domain": { + "url": "올바른 URL을 입력해주세요" + }, + "payment": { + "required": "결제 게이트웨이를 선택해주세요" + } + }, + "buttons": { + "cancel": "취소", + "submit": "제출" + }, + "messages": { + "success": "저장 완료" + } + } + }, + "knowledge": { + "title": "지식 베이스", + "description": "여기에서 지식 베이스를 구성할 수 있으며, 추가, 삭제 및 편집 작업을 수행할 수 있습니다.", + "columns": { + "id": "ID", + "status": "상태", + "title": "제목", + "category": "카테고리", + "actions": "작업" + }, + "form": { + "add": "지식 추가", + "edit": "지식 편집", + "title": "제목", + "titlePlaceholder": "지식 제목을 입력해주세요", + "category": "카테고리", + "categoryPlaceholder": "카테고리를 입력하면 자동으로 분류됩니다", + "language": "언어", + "languagePlaceholder": "언어를 선택해주세요", + "content": "내용", + "show": "표시", + "cancel": "취소", + "submit": "제출" + }, + "languages": { + "en-US": "English", + "ja-JP": "日本語", + "ko-KR": "한국어", + "vi-VN": "Tiếng Việt", + "zh-CN": "简体中文", + "zh-TW": "繁體中文" + }, + "messages": { + "deleteConfirm": "삭제 확인", + "deleteDescription": "이 작업은 이 지식 베이스 기록을 영구적으로 삭제하며 복구할 수 없습니다. 계속하시겠습니까?", + "deleteButton": "삭제", + "operationSuccess": "작업 성공" + }, + "toolbar": { + "searchPlaceholder": "지식 검색...", + "reset": "초기화", + "sortModeHint": "지식 항목을 드래그하여 정렬하고, 완료 후 저장을 클릭하세요", + "editSort": "정렬 편집", + "saveSort": "정렬 저장" + } + }, + "search": { + "placeholder": "메뉴 및 기능 검색...", + "title": "메뉴 네비게이션", + "noResults": "검색 결과가 없습니다", + "shortcut": { + "label": "검색", + "key": "⌘K" + } + }, + "nav": { + "dashboard": "대시보드", + "systemManagement": "시스템 관리", + "systemConfig": "시스템 설정", + "themeConfig": "테마 설정", + "noticeManagement": "공지사항 관리", + "pluginManagement": "플러그인 관리", + "paymentConfig": "결제 설정", + "knowledgeManagement": "지식 관리", + "nodeManagement": "노드 관리", + "permissionGroupManagement": "권한 그룹", + "routeManagement": "경로 관리", + "subscriptionManagement": "구독", + "planManagement": "플랜 관리", + "orderManagement": "주문 관리", + "couponManagement": "쿠폰 관리", + "userManagement": "사용자 관리", + "ticketManagement": "티켓 관리" + }, + "plugin": { + "title": "플러그인 관리", + "description": "시스템 플러그인 관리 및 설정", + "search": { + "placeholder": "플러그인 이름 또는 설명 검색..." + }, + "category": { + "placeholder": "카테고리 선택", + "all": "전체", + "other": "기타" + }, + "tabs": { + "all": "전체 플러그인", + "installed": "설치됨", + "available": "사용 가능" + }, + "status": { + "enabled": "활성화됨", + "disabled": "비활성화됨" + }, + "button": { + "install": "설치", + "config": "설정", + "enable": "활성화", + "disable": "비활성화" + }, + "uninstall": { + "title": "플러그인 제거", + "description": "이 플러그인을 제거하시겠습니까? 제거 후 플러그인 데이터가 삭제됩니다.", + "button": "제거" + }, + "config": { + "title": "설정", + "description": "플러그인 설정 수정", + "save": "저장", + "cancel": "취소" + }, + "author": "작성자", + "messages": { + "installSuccess": "플러그인이 성공적으로 설치되었습니다", + "installError": "플러그인 설치에 실패했습니다", + "uninstallSuccess": "플러그인이 성공적으로 제거되었습니다", + "uninstallError": "플러그인 제거에 실패했습니다", + "enableSuccess": "플러그인이 성공적으로 활성화되었습니다", + "enableError": "플러그인 활성화에 실패했습니다", + "disableSuccess": "플러그인이 성공적으로 비활성화되었습니다", + "disableError": "플러그인 비활성화에 실패했습니다", + "configLoadError": "플러그인 설정을 불러오는데 실패했습니다", + "configSaveSuccess": "설정이 성공적으로 저장되었습니다", + "configSaveError": "설정 저장에 실패했습니다" + } + }, + "settings": { + "title": "시스템 설정", + "description": "사이트, 보안, 구독, 초대 수수료, 노드, 이메일 및 알림을 포함한 핵심 시스템 구성을 관리합니다", + "server": { + "title": "서버 설정", + "description": "통신 키, 폴링 간격, 로드 밸런싱 및 기타 고급 옵션을 포함한 노드 통신 및 동기화 설정을 구성합니다.", + "server_token": { + "title": "통신 토큰", + "placeholder": "통신 토큰 입력", + "description": "서버 간 인증에 사용됩니다", + "generate_tooltip": "클릭하여 무작위 토큰 생성" + }, + "server_pull_interval": { + "title": "노드 풀 작업 폴링 간격", + "description": "노드가 패널에서 데이터를 가져오는 빈도입니다.", + "placeholder": "풀 간격 입력" + }, + "server_push_interval": { + "title": "노드 푸시 작업 폴링 간격", + "description": "노드가 패널로 데이터를 푸시하는 빈도입니다.", + "placeholder": "푸시 간격 입력" + }, + "device_limit_mode": { + "title": "기기 제한 모드", + "description": "완화 모드에서는 동일한 IP 주소의 여러 노드가 하나의 기기로 계산됩니다.", + "strict": "엄격 모드", + "relaxed": "완화 모드", + "placeholder": "기기 제한 모드 선택" + } + }, + "invite": { + "title": "초대 및 수수료 설정", + "description": "초대 등록 및 수수료 관련 설정을 구성합니다.", + "invite_force": { + "title": "강제 초대 활성화", + "description": "활성화하면 초대받은 사용자만 등록할 수 있습니다." + }, + "invite_commission": { + "title": "초대 수수료 비율", + "description": "기본 전역 수수료 분배 비율입니다. 사용자 관리에서 개별 비율을 구성할 수 있습니다.", + "placeholder": "수수료 비율 입력" + }, + "invite_gen_limit": { + "title": "초대 코드 생성 제한", + "description": "사용자가 생성할 수 있는 최대 초대 코드 수", + "placeholder": "생성 제한 입력" + }, + "invite_never_expire": { + "title": "초대 코드 만료 없음", + "description": "활성화하면 초대 코드가 사용 후에도 만료되지 않으며, 그렇지 않으면 사용 후 만료됩니다." + }, + "commission_first_time": { + "title": "첫 결제 수수료만", + "description": "활성화하면 초대받은 사용자의 첫 결제에서만 수수료가 생성되며, 사용자 관리에서 개별적으로 구성할 수 있습니다." + }, + "commission_auto_check": { + "title": "자동 수수료 확인", + "description": "활성화하면 주문 완료 3일 후 수수료가 자동으로 확인됩니다." + }, + "commission_withdraw_limit": { + "title": "출금 임계값 (위안)", + "description": "이 임계값 미만의 출금 요청은 제출되지 않습니다.", + "placeholder": "출금 임계값 입력" + }, + "commission_withdraw_method": { + "title": "출금 방법", + "description": "지원되는 출금 방법, 여러 방법은 쉼표로 구분합니다.", + "placeholder": "출금 방법 입력, 쉼표로 구분" + }, + "withdraw_close": { + "title": "출금 비활성화", + "description": "활성화하면 사용자가 출금을 요청할 수 없으며, 초대 수수료는 사용자 잔액으로 직접 이동합니다." + }, + "commission_distribution": { + "title": "3단계 분배", + "description": "활성화하면 수수료가 설정된 세 비율에 따라 분할되며, 총합은 100%를 초과할 수 없습니다.", + "l1": "1단계 초대자 비율", + "l2": "2단계 초대자 비율", + "l3": "3단계 초대자 비율", + "placeholder": "비율 입력 예: 50" + }, + "saving": "저장 중..." + }, + "site": { + "title": "사이트 설정", + "description": "사이트 이름, 설명, 통화 단위 및 기타 핵심 설정을 포함한 기본 사이트 정보를 구성합니다.", + "form": { + "siteName": { + "label": "사이트 이름", + "placeholder": "사이트 이름을 입력해주세요", + "description": "사이트 이름이 표시되어야 하는 곳에 사용됩니다." + }, + "siteDescription": { + "label": "사이트 설명", + "placeholder": "사이트 설명을 입력해주세요", + "description": "사이트 설명이 표시되어야 하는 곳에 사용됩니다." + }, + "siteUrl": { + "label": "사이트 URL", + "placeholder": "사이트 URL을 입력해주세요, 끝에 /를 제외", + "description": "현재 웹사이트 URL, 이메일 및 URL이 필요한 다른 곳에서 사용됩니다." + }, + "forceHttps": { + "label": "HTTPS 강제", + "description": "사이트가 HTTPS를 사용하지 않지만 CDN 또는 리버스 프록시가 HTTPS를 강제할 때 활성화해야 합니다." + }, + "logo": { + "label": "LOGO", + "placeholder": "LOGO URL을 입력해주세요, 끝에 /를 제외", + "description": "LOGO가 표시되어야 하는 곳에 사용됩니다." + }, + "subscribeUrl": { + "label": "구독 URL", + "placeholder": "구독에 사용됩니다. 여러 URL은 ','로 구분. 비워두면 사이트 URL을 사용합니다.", + "description": "구독에 사용되며, 비워두면 사이트 URL을 사용합니다." + }, + "tosUrl": { + "label": "이용약관(TOS) URL", + "placeholder": "이용약관 URL을 입력해주세요, 끝에 /를 제외", + "description": "이용약관(TOS) 링크에 사용됩니다" + }, + "stopRegister": { + "label": "신규 사용자 등록 중지", + "description": "활성화하면 누구도 등록할 수 없습니다." + }, + "tryOut": { + "label": "등록 체험", + "placeholder": "비활성화", + "description": "체험용 구독을 선택하세요. 옵션이 없다면 먼저 구독 관리에서 추가하세요.", + "duration": { + "label": "체험 기간", + "placeholder": "0", + "description": "체험 기간(시간)." + } + }, + "currency": { + "label": "통화 단위", + "placeholder": "CNY", + "description": "표시용으로만 사용되며, 변경하면 시스템의 모든 통화 단위에 영향을 미칩니다." + }, + "currencySymbol": { + "label": "통화 기호", + "placeholder": "¥", + "description": "표시용으로만 사용되며, 변경하면 시스템의 모든 통화 기호에 영향을 미칩니다." + } + } + }, + "safe": { + "title": "보안 설정", + "description": "로그인 인증, 비밀번호 정책 및 API 접근 설정을 포함한 시스템 보안 옵션을 구성합니다.", + "form": { + "emailVerify": { + "label": "이메일 인증", + "description": "활성화하면 사용자는 이메일을 인증해야 합니다." + }, + "gmailLimit": { + "label": "Gmail 별칭 비활성화", + "description": "활성화하면 Gmail 별칭으로 등록할 수 없습니다." + }, + "safeMode": { + "label": "안전 모드", + "description": "활성화하면 사이트 URL 이외의 도메인을 통한 접근이 403으로 차단됩니다." + }, + "securePath": { + "label": "관리자 경로", + "placeholder": "admin", + "description": "관리자 관리 경로, 변경하면 기존 관리자 경로가 수정됩니다" + }, + "emailWhitelist": { + "label": "이메일 접미사 화이트리스트", + "description": "활성화하면 목록의 이메일 접미사만 등록할 수 있습니다.", + "suffixes": { + "label": "이메일 접미사", + "placeholder": "이메일 접미사를 한 줄에 하나씩 입력", + "description": "허용된 이메일 접미사를 한 줄에 하나씩 입력하세요" + } + }, + "recaptcha": { + "enable": { + "label": "reCAPTCHA 활성화", + "description": "활성화하면 사용자는 등록 시 reCAPTCHA 인증을 통과해야 합니다." + }, + "key": { + "label": "reCAPTCHA 키", + "placeholder": "reCAPTCHA 키 입력", + "description": "reCAPTCHA 키를 입력하세요" + }, + "siteKey": { + "label": "reCAPTCHA 사이트 키", + "placeholder": "reCAPTCHA 사이트 키 입력", + "description": "reCAPTCHA 사이트 키를 입력하세요" + } + }, + "registerLimit": { + "enable": { + "label": "IP 등록 제한", + "description": "활성화하면 동일 IP에서의 등록 수가 제한됩니다." + }, + "count": { + "label": "등록 횟수", + "placeholder": "최대 등록 횟수 입력", + "description": "동일 IP에서 허용되는 최대 등록 횟수" + }, + "expire": { + "label": "제한 기간", + "placeholder": "제한 기간을 시간 단위로 입력", + "description": "등록 제한 기간(시간)" + } + }, + "passwordLimit": { + "enable": { + "label": "비밀번호 시도 제한", + "description": "활성화하면 비밀번호 시도 횟수가 제한됩니다." + }, + "count": { + "label": "시도 횟수", + "placeholder": "최대 시도 횟수 입력", + "description": "허용되는 최대 비밀번호 시도 횟수" + }, + "expire": { + "label": "잠금 기간", + "placeholder": "잠금 기간을 시간 단위로 입력", + "description": "계정 잠금 기간(시간)" + } + } + } + }, + "subscribe": { + "title": "구독 설정", + "description": "구독 링크 형식, 업데이트 빈도, 트래픽 통계 및 기타 설정을 포함한 구독 관련 구성을 관리합니다.", + "plan_change_enable": { + "title": "구독 변경 허용", + "description": "활성화하면 사용자가 구독 플랜을 변경할 수 있습니다." + }, + "reset_traffic_method": { + "title": "월간 트래픽 초기화 방식", + "description": "전역 트래픽 초기화 방식으로, 기본값은 매월 1일입니다. 구독 관리에서 구독별로 개별 설정할 수 있습니다.", + "options": { + "monthly_first": "매월 1일", + "monthly_reset": "월간 초기화", + "no_reset": "초기화 없음", + "yearly_first": "1월 1일", + "yearly_reset": "연간 초기화" + } + }, + "surplus_enable": { + "title": "공제 플랜 활성화", + "description": "활성화하면 사용자가 구독을 변경할 때 시스템이 기존 구독에서 공제합니다. 자세한 내용은 문서를 참조하세요." + }, + "new_order_event": { + "title": "새 구독 시 트리거 이벤트", + "description": "새 구독이 완료되면 이 작업이 트리거됩니다.", + "options": { + "no_action": "작업 없음", + "reset_traffic": "사용자 트래픽 초기화" + } + }, + "renew_order_event": { + "title": "구독 갱신 시 트리거 이벤트", + "description": "구독 갱신이 완료되면 이 작업이 트리거됩니다.", + "options": { + "no_action": "작업 없음", + "reset_traffic": "사용자 트래픽 초기화" + } + }, + "change_order_event": { + "title": "구독 변경 시 트리거 이벤트", + "description": "구독 변경이 완료되면 이 작업이 트리거됩니다.", + "options": { + "no_action": "작업 없음", + "reset_traffic": "사용자 트래픽 초기화" + } + }, + "subscribe_path": { + "title": "구독 경로", + "description": "구독 경로, 수정하면 기존 구독 경로가 변경됩니다", + "current_format": "현재 구독 경로 형식: {path}/xxxxxxxxxx" + }, + "show_info_to_server": { + "title": "노드에 구독 정보 표시", + "description": "활성화하면 사용자가 노드를 구독할 때 구독 정보가 출력됩니다." + }, + "show_protocol_to_server": { + "title": "노드 이름에 프로토콜 표시", + "description": "활성화하면 구독 라인에 프로토콜 이름이 포함됩니다 (예: [Hy2]홍콩)" + }, + "saving": "저장 중...", + "plan": { + "title": "구독 플랜", + "add": "플랜 추가", + "search": "플랜 검색...", + "sort": { + "edit": "정렬 편집", + "save": "정렬 저장" + }, + "columns": { + "id": "ID", + "show": "표시", + "sell": "판매", + "renew": "갱신", + "renew_tooltip": "구독 판매가 중단된 경우 기존 사용자의 갱신 가능 여부", + "name": "이름", + "stats": "통계", + "group": "권한 그룹", + "price": "가격", + "actions": "작업", + "edit": "편집", + "delete": "삭제", + "delete_confirm": { + "title": "삭제 확인", + "description": "이 작업은 이 구독을 영구적으로 삭제하며 되돌릴 수 없습니다. 계속하시겠습니까?", + "success": "성공적으로 삭제됨" + }, + "price_period": { + "monthly": "월간", + "quarterly": "분기", + "half_yearly": "반년", + "yearly": "연간", + "two_yearly": "2년", + "three_yearly": "3년", + "onetime": "일회성", + "reset_traffic": "트래픽 초기화", + "unit": { + "month": "/월", + "quarter": "/분기", + "half_year": "/반년", + "year": "/년", + "two_year": "/2년", + "three_year": "/3년", + "times": "/회" + } + } + }, + "form": { + "add_title": "플랜 추가", + "edit_title": "플랜 편집", + "name": { + "label": "플랜 이름", + "placeholder": "플랜 이름 입력" + }, + "group": { + "label": "권한 그룹", + "placeholder": "권한 그룹 선택", + "add": "그룹 추가" + }, + "transfer": { + "label": "트래픽", + "placeholder": "트래픽 크기 입력", + "unit": "GB" + }, + "speed": { + "label": "속도 제한", + "placeholder": "속도 제한 입력", + "unit": "Mbps" + }, + "price": { + "title": "가격 설정", + "base_price": "기본 월간 가격", + "clear": { + "button": "가격 초기화", + "tooltip": "모든 기간 가격 설정 초기화" + } + }, + "device": { + "label": "기기 제한", + "placeholder": "제한 없음은 비워두세요", + "unit": "기기" + }, + "capacity": { + "label": "용량 제한", + "placeholder": "제한 없음은 비워두세요", + "unit": "사용자" + }, + "reset_method": { + "label": "트래픽 초기화 방식", + "placeholder": "트래픽 초기화 방식 선택", + "description": "구독 트래픽 초기화 방식을 설정하며, 다른 방식은 사용자 트래픽 계산 방식에 영향을 미칩니다", + "options": { + "follow_system": "시스템 설정 따름", + "monthly_first": "매월 1일", + "monthly_reset": "월간 초기화", + "no_reset": "초기화 없음", + "yearly_first": "1월 1일", + "yearly_reset": "연간 초기화" + } + }, + "content": { + "label": "플랜 설명", + "placeholder": "여기에 플랜 설명을 작성하세요...", + "description": "마크다운 형식을 지원하며, 제목, 목록, 굵게, 기울임꼴 등의 스타일을 사용하여 내용을 꾸밀 수 있습니다", + "preview": "미리보기", + "preview_button": { + "show": "미리보기 표시", + "hide": "미리보기 숨기기" + }, + "template": { + "button": "템플릿 사용", + "tooltip": "클릭하여 미리 설정된 플랜 설명 템플릿 사용", + "content": "## 플랜 특징\n• 고속 및 안정적인 글로벌 네트워크 액세스\n• 여러 기기 동시 온라인 지원\n• 무제한 트래픽 초기화\n\n## 사용 안내\n1. 지원 기기: iOS, Android, Windows, macOS\n2. 24/7 기술 지원\n3. 자동 주기적 트래픽 초기화\n\n## 주의사항\n- 남용 금지\n- 현지 법률 및 규정 준수\n- 언제든지 플랜 변경 지원" + } + }, + "force_update": { + "label": "사용자에게 강제 업데이트" + }, + "submit": { + "submitting": "제출 중...", + "submit": "제출", + "cancel": "취소", + "success": { + "add": "플랜이 성공적으로 추가되었습니다", + "update": "플랜이 성공적으로 업데이트되었습니다" + } + } + }, + "page": { + "description": "여기에서 구독 플랜을 구성할 수 있으며, 추가, 삭제 및 편집 작업을 수행할 수 있습니다." + } + } + }, + "email": { + "title": "이메일 설정", + "description": "인증 코드, 비밀번호 재설정 및 알림 전송을 위한 시스템 이메일 서비스를 구성하며, 다양한 SMTP 제공업체를 지원합니다.", + "email_host": { + "title": "SMTP 호스트", + "description": "SMTP 서버 주소, 예: smtp.gmail.com" + }, + "email_port": { + "title": "SMTP 포트", + "description": "SMTP 서버 포트, 일반적인 포트: 25, 465, 587" + }, + "email_username": { + "title": "SMTP 사용자 이름", + "description": "SMTP 인증 사용자 이름" + }, + "email_password": { + "title": "SMTP 비밀번호", + "description": "SMTP 인증 비밀번호 또는 애플리케이션별 비밀번호" + }, + "email_encryption": { + "title": "암호화 방식", + "description": "이메일 암호화 방식", + "none": "없음", + "ssl": "SSL/TLS", + "tls": "STARTTLS" + }, + "email_from": { + "title": "발신자 주소", + "description": "발신자 이메일 주소" + }, + "email_from_name": { + "title": "발신자 이름", + "description": "발신자 표시 이름" + }, + "email_template": { + "title": "이메일 템플릿", + "description": "이메일 템플릿 사용자 정의 방법은 문서를 참조하세요", + "placeholder": "이메일 템플릿 선택" + }, + "remind_mail": { + "title": "이메일 알림", + "description": "활성화하면 사용자는 구독이 만료되거나 트래픽이 부족할 때 이메일 알림을 받습니다." + }, + "test": { + "title": "테스트 이메일 전송", + "sending": "전송 중...", + "description": "구성을 확인하기 위해 테스트 이메일 전송", + "success": "테스트 이메일이 성공적으로 전송되었습니다", + "error": "테스트 이메일 전송 실패" + } + }, + "telegram": { + "title": "텔레그램 설정", + "description": "사용자 알림, 계정 연동 및 명령어 상호작용을 위한 텔레그램 봇 기능을 구성합니다.", + "bot_token": { + "title": "봇 토큰", + "description": "Botfather가 제공한 토큰을 입력하세요.", + "placeholder": "0000000000:xxxxxxxxx_xxxxxxxxxxxxxxx" + }, + "webhook": { + "title": "웹훅 설정", + "description": "봇의 웹훅을 설정합니다. 설정하지 않으면 텔레그램 알림을 받을 수 없습니다.", + "button": "원클릭 설정", + "setting": "웹훅 설정 중...", + "success": "웹훅이 성공적으로 설정되었습니다" + }, + "bot_enable": { + "title": "봇 알림 활성화", + "description": "활성화하면 봇이 관리자와 텔레그램 계정을 연동한 사용자에게 기본 알림을 전송합니다." + }, + "discuss_link": { + "title": "그룹 링크", + "description": "입력하면 사용자 측에 표시되거나 필요한 곳에서 사용됩니다.", + "placeholder": "https://t.me/xxxxxx" + } + }, + "app": { + "title": "앱 설정", + "description": "API 인터페이스, 버전 관리 및 푸시 알림을 포함한 모바일 애플리케이션 구성을 관리합니다.", + "common": { + "placeholder": "입력해주세요" + }, + "windows": { + "version": { + "title": "Windows 버전", + "description": "Windows 클라이언트의 현재 버전 번호" + }, + "download": { + "title": "Windows 다운로드 URL", + "description": "Windows 클라이언트 다운로드 링크" + } + }, + "macos": { + "version": { + "title": "macOS 버전", + "description": "macOS 클라이언트의 현재 버전 번호" + }, + "download": { + "title": "macOS 다운로드 URL", + "description": "macOS 클라이언트 다운로드 링크" + } + }, + "android": { + "version": { + "title": "Android 버전", + "description": "Android 클라이언트의 현재 버전 번호" + }, + "download": { + "title": "Android 다운로드 URL", + "description": "Android 클라이언트 다운로드 링크" + } + } + }, + "common": { + "saving": "저장 중...", + "save_success": "자동으로 저장됨", + "placeholder": "입력해주세요", + "autoSaved": "자동으로 저장됨" + } + }, + "group": { + "title": "권한 그룹", + "description": "모든 권한 그룹을 관리하며, 추가, 삭제 및 편집 작업을 수행할 수 있습니다.", + "columns": { + "id": "그룹 ID", + "name": "그룹 이름", + "usersCount": "사용자 수", + "serverCount": "노드 수", + "actions": "작업" + }, + "form": { + "add": "그룹 추가", + "edit": "그룹 편집", + "create": "그룹 생성", + "update": "업데이트", + "name": "그룹 이름", + "namePlaceholder": "그룹 이름을 입력해주세요", + "nameDescription": "그룹 이름은 서로 다른 사용자 그룹을 구분하는 데 사용되며, 의미 있는 이름을 사용하는 것이 좋습니다.", + "cancel": "취소", + "editDescription": "그룹 정보를 수정하면 즉시 적용됩니다.", + "createDescription": "새로운 권한 그룹을 생성하여 서로 다른 사용자에게 다른 권한을 할당합니다." + }, + "toolbar": { + "searchPlaceholder": "그룹 검색...", + "reset": "초기화" + }, + "messages": { + "deleteConfirm": "삭제 확인", + "deleteDescription": "이 작업은 이 권한 그룹을 영구적으로 삭제하며 복구할 수 없습니다. 계속하시겠습니까?", + "deleteButton": "삭제", + "createSuccess": "생성 완료", + "updateSuccess": "업데이트 완료", + "nameValidation": { + "min": "그룹 이름은 최소 2자 이상이어야 합니다", + "max": "그룹 이름은 50자를 초과할 수 없습니다", + "pattern": "그룹 이름은 문자, 숫자, 한자, 밑줄 및 하이픈만 포함할 수 있습니다" + } + } + }, + "traffic": { + "trafficRecord": { + "title": "트래픽 사용 기록", + "time": "시간", + "upload": "업로드", + "download": "다운로드", + "rate": "요금", + "total": "총계", + "noRecords": "기록이 없습니다", + "perPage": "페이지당 표시", + "records": "기록", + "page": "페이지 {{current}} / {{total}}", + "multiplier": "{{value}}배" + } + }, + "common": { + "loading": "로딩 중...", + "error": "오류", + "success": "성공", + "save": "저장", + "cancel": "취소", + "delete": "삭제", + "edit": "편집", + "view": "보기", + "toggleNavigation": "네비게이션 전환", + "toggleSidebar": "사이드바 전환", + "search": "검색...", + "theme": { + "light": "라이트", + "dark": "다크", + "system": "시스템" + }, + "user": "사용자", + "defaultEmail": "user@example.com", + "settings": "설정", + "logout": "로그아웃", + "copy": { + "success": "복사 성공", + "error": "복사 실패", + "errorLog": "클립보드에 복사하는 중 오류 발생" + }, + "table": { + "noData": "데이터가 없습니다", + "pagination": { + "selected": "{{selected}}개 선택됨, 총 {{total}}개", + "itemsPerPage": "페이지당 표시", + "page": "페이지", + "pageOf": "/ {{total}} 페이지", + "firstPage": "첫 페이지로 이동", + "previousPage": "이전 페이지", + "nextPage": "다음 페이지", + "lastPage": "마지막 페이지로 이동" + } + } + }, + "dashboard": { + "title": "대시보드", + "stats": { + "newUsers": "신규 사용자", + "totalScore": "총 점수", + "monthlyUpload": "월간 업로드", + "vsLastMonth": "전월 대비", + "vsYesterday": "전일 대비", + "todayIncome": "오늘의 수입", + "monthlyIncome": "월간 수입", + "totalIncome": "총 수입", + "totalUsers": "총 사용자", + "activeUsers": "활성 사용자: {{count}}", + "totalOrders": "총 주문", + "revenue": "매출", + "todayRegistered": "오늘 등록", + "monthlyRegistered": "월간 등록", + "onlineUsers": "온라인 사용자", + "pendingTickets": "대기 중인 티켓", + "hasPendingTickets": "주의가 필요한 티켓이 있습니다", + "noPendingTickets": "대기 중인 티켓 없음", + "pendingCommission": "대기 중인 수수료", + "hasPendingCommission": "확인이 필요한 수수료가 있습니다", + "noPendingCommission": "대기 중인 수수료 없음", + "monthlyNewUsers": "월간 신규 사용자", + "monthlyDownload": "월간 다운로드", + "todayTraffic": "오늘: {{value}}", + "activeUserTrend": "활성 사용자 추세", + "realtimeUsers": "실시간 사용자", + "todayPeak": "오늘의 최고치", + "vsLastWeek": "전주 대비" + }, + "trafficRank": { + "nodeTrafficRank": "노드 트래픽 순위", + "userTrafficRank": "사용자 트래픽 순위", + "today": "오늘", + "last7days": "최근 7일", + "last30days": "최근 30일", + "customRange": "사용자 지정 기간", + "selectTimeRange": "기간 선택", + "selectDateRange": "날짜 범위 선택", + "currentTraffic": "현재 트래픽", + "previousTraffic": "이전 트래픽", + "changeRate": "변화율", + "recordTime": "기록 시간" + }, + "overview": { + "title": "매출 개요", + "thisMonth": "이번 달", + "lastMonth": "지난 달", + "to": "부터", + "selectTimeRange": "기간 선택", + "selectDate": "날짜 선택", + "last7Days": "최근 7일", + "last30Days": "최근 30일", + "last90Days": "최근 90일", + "last180Days": "최근 180일", + "lastYear": "작년", + "customRange": "사용자 지정 기간", + "amount": "금액", + "count": "건수", + "transactions": "{{count}}건의 거래", + "orderAmount": "주문 금액", + "commissionAmount": "수수료 금액", + "orderCount": "주문 건수", + "commissionCount": "수수료 건수", + "totalIncome": "총 수입", + "totalCommission": "총 수수료", + "totalTransactions": "총: {{count}}건의 거래", + "avgOrderAmount": "평균 주문 금액:", + "commissionRate": "수수료율:" + }, + "traffic": { + "title": "트래픽 순위", + "rank": "순위", + "domain": "도메인", + "todayTraffic": "오늘의 트래픽", + "monthlyTraffic": "월간 트래픽" + }, + "queue": { + "title": "대기열 상태", + "jobDetails": "작업 상세", + "status": { + "description": "현재 대기열 실행 상태", + "running": "실행 상태", + "normal": "정상", + "abnormal": "비정상", + "waitTime": "현재 대기 시간: {{seconds}}초", + "pending": "대기 중", + "processing": "처리 중", + "completed": "완료됨", + "failed": "실패", + "cancelled": "취소됨" + }, + "details": { + "description": "대기열 처리 상세", + "recentJobs": "최근 작업", + "statisticsPeriod": "통계 기간: {{hours}}시간", + "jobsPerMinute": "분당 작업 수", + "maxThroughput": "최대 처리량: {{value}}", + "failedJobs7Days": "실패한 작업 (7일)", + "retentionPeriod": "보존 기간: {{hours}}시간", + "longestRunningQueue": "가장 오래 실행 중인 대기열", + "activeProcesses": "활성 프로세스", + "id": "작업 ID", + "type": "작업 유형", + "status": "상태", + "progress": "진행률", + "createdAt": "생성 시간", + "updatedAt": "업데이트 시간", + "error": "오류 메시지", + "data": "작업 데이터", + "result": "결과", + "duration": "소요 시간", + "attempts": "시도 횟수", + "nextRetry": "다음 재시도" + }, + "actions": { + "retry": "재시도", + "cancel": "취소", + "delete": "삭제", + "viewDetails": "상세 보기" + }, + "empty": "대기열에 작업 없음", + "loading": "대기열 상태 로딩 중...", + "error": "대기열 상태 로드 실패" + }, + "search": { + "placeholder": "메뉴 및 기능 검색...", + "title": "메뉴 네비게이션", + "noResults": "검색 결과 없음", + "loading": "검색 중..." + } + }, + "route": { + "title": "라우트 관리", + "description": "모든 라우트 그룹을 관리하며, 추가, 삭제 및 편집 작업을 수행할 수 있습니다.", + "columns": { + "id": "그룹 ID", + "remarks": "비고", + "action": "동작", + "actions": "작업", + "matchRules": "{{count}}개 규칙 일치" + }, + "actions": { + "dns": "지정된 DNS 서버로 해석", + "block": "접근 차단" + }, + "form": { + "add": "라우트 추가", + "edit": "라우트 편집", + "create": "라우트 생성", + "remarks": "비고", + "remarksPlaceholder": "비고를 입력해주세요", + "match": "일치 규칙", + "matchPlaceholder": "example.com\n*.example.com", + "action": "동작", + "actionPlaceholder": "동작을 선택해주세요", + "dns": "DNS 서버", + "dnsPlaceholder": "DNS 서버를 입력해주세요", + "cancel": "취소", + "submit": "제출", + "validation": { + "remarks": "올바른 비고를 입력해주세요" + } + }, + "toolbar": { + "searchPlaceholder": "라우트 검색...", + "reset": "초기화" + }, + "messages": { + "deleteConfirm": "삭제 확인", + "deleteDescription": "이 작업은 이 라우트 그룹을 영구적으로 삭제하며 복구할 수 없습니다. 계속하시겠습니까?", + "deleteButton": "삭제", + "deleteSuccess": "삭제 완료", + "createSuccess": "생성 완료", + "updateSuccess": "업데이트 완료" + } + }, + "order": { + "title": "주문 관리", + "description": "여기에서 사용자 주문을 확인할 수 있으며, 할당, 조회, 삭제 등의 작업을 수행할 수 있습니다.", + "table": { + "columns": { + "tradeNo": "주문 번호", + "type": "유형", + "plan": "구독 플랜", + "period": "기간", + "amount": "결제 금액", + "status": "주문 상태", + "commission": "수수료 금액", + "commissionStatus": "수수료 상태", + "createdAt": "생성 시간" + } + }, + "type": { + "NEW": "신규 구매", + "RENEWAL": "갱신", + "UPGRADE": "업그레이드", + "RESET_FLOW": "트래픽 초기화" + }, + "period": { + "month_price": "월간", + "quarter_price": "분기", + "half_year_price": "반기", + "year_price": "연간", + "two_year_price": "2년", + "three_year_price": "3년", + "onetime_price": "일회성", + "reset_price": "초기화 패키지" + }, + "status": { + "PENDING": "대기 중", + "PROCESSING": "처리 중", + "CANCELLED": "취소됨", + "COMPLETED": "완료됨", + "DISCOUNTED": "할인 적용됨", + "tooltip": "[결제 완료] 표시 후 시스템이 활성화 및 완료 처리를 진행합니다" + }, + "commission": { + "PENDING": "대기 중", + "PROCESSING": "처리 중", + "VALID": "유효", + "INVALID": "무효" + }, + "actions": { + "markAsPaid": "결제 완료 표시", + "cancel": "주문 취소", + "openMenu": "메뉴 열기", + "reset": "초기화" + }, + "search": { + "placeholder": "주문 검색..." + }, + "dialog": { + "title": "주문 정보", + "basicInfo": "기본 정보", + "amountInfo": "금액 정보", + "timeInfo": "시간 정보", + "addOrder": "주문 추가", + "assignOrder": "주문 할당", + "fields": { + "userEmail": "사용자 이메일", + "orderPeriod": "주문 기간", + "subscriptionPlan": "구독 플랜", + "callbackNo": "콜백 번호", + "paymentAmount": "결제 금액", + "balancePayment": "잔액 결제", + "discountAmount": "할인 금액", + "refundAmount": "환불 금액", + "deductionAmount": "차감 금액", + "createdAt": "생성 시간", + "updatedAt": "업데이트 시간" + }, + "placeholders": { + "email": "사용자 이메일을 입력해주세요", + "plan": "구독 플랜을 선택해주세요", + "period": "구독 기간을 선택해주세요", + "amount": "결제 금액을 입력해주세요" + }, + "actions": { + "cancel": "취소", + "confirm": "확인" + }, + "messages": { + "addSuccess": "추가 완료" + } + } + }, + "coupon": { + "title": "쿠폰 관리", + "description": "여기에서 쿠폰을 관리할 수 있으며, 추가, 조회 및 삭제 작업을 수행할 수 있습니다.", + "table": { + "columns": { + "id": "ID", + "show": "활성화", + "name": "쿠폰 이름", + "type": "유형", + "code": "코드", + "limitUse": "남은 사용 횟수", + "limitUseWithUser": "사용자당 사용 횟수", + "validity": "유효 기간", + "actions": "작업" + }, + "validity": { + "expired": "{{days}}일 전 만료됨", + "notStarted": "{{days}}일 후 시작", + "remaining": "{{days}}일 남음", + "startTime": "시작 시간", + "endTime": "종료 시간", + "unlimited": "무제한", + "noLimit": "제한 없음" + }, + "actions": { + "edit": "편집", + "delete": "삭제", + "deleteConfirm": { + "title": "삭제 확인", + "description": "이 작업은 이 쿠폰을 영구적으로 삭제하며 취소할 수 없습니다. 계속하시겠습니까?", + "confirmText": "삭제" + } + }, + "toolbar": { + "search": "쿠폰 검색...", + "type": "유형", + "reset": "초기화", + "types": { + "1": "고정 금액", + "2": "비율" + } + } + }, + "form": { + "add": "쿠폰 추가", + "edit": "쿠폰 편집", + "name": { + "label": "쿠폰 이름", + "placeholder": "쿠폰 이름 입력", + "required": "쿠폰 이름을 입력해주세요" + }, + "type": { + "label": "쿠폰 유형 및 값", + "placeholder": "쿠폰 유형 선택" + }, + "value": { + "placeholder": "값 입력" + }, + "validity": { + "label": "유효 기간", + "to": "부터", + "endTimeError": "종료 시간은 시작 시간보다 늦어야 합니다" + }, + "limitUse": { + "label": "최대 사용 횟수", + "placeholder": "최대 사용 횟수 설정, 무제한은 비워두기", + "description": "이 쿠폰의 총 사용 가능 횟수를 설정합니다. 무제한은 비워두세요" + }, + "limitUseWithUser": { + "label": "사용자당 사용 횟수", + "placeholder": "사용자당 사용 횟수 설정, 무제한은 비워두기", + "description": "각 사용자가 이 쿠폰을 사용할 수 있는 횟수를 제한합니다. 무제한은 비워두세요" + }, + "limitPeriod": { + "label": "구독 기간", + "placeholder": "특정 구독 기간으로 제한, 제한 없음은 비워두기", + "description": "이 쿠폰을 사용할 수 있는 구독 기간을 선택합니다. 제한이 없으면 비워두세요", + "empty": "일치하는 기간이 없습니다" + }, + "limitPlan": { + "label": "구독 플랜", + "placeholder": "특정 구독 플랜으로 제한, 제한 없음은 비워두기", + "empty": "일치하는 플랜이 없습니다" + }, + "code": { + "label": "사용자 지정 쿠폰 코드", + "placeholder": "사용자 지정 코드 입력, 자동 생성은 비워두기", + "description": "쿠폰 코드를 사용자 지정합니다. 자동 생성하려면 비워두세요" + }, + "generateCount": { + "label": "일괄 생성 수량", + "placeholder": "생성할 쿠폰 수량, 단일 쿠폰은 비워두기", + "description": "여러 쿠폰 코드를 한 번에 생성합니다. 단일 코드 생성은 비워두세요" + }, + "submit": { + "saving": "저장 중...", + "save": "저장" + }, + "error": { + "saveFailed": "쿠폰 저장 실패" + } + } + }, + "notice": { + "title": "공지사항 관리", + "description": "여기에서 공지사항을 구성할 수 있으며, 추가, 삭제, 편집 등의 작업을 수행할 수 있습니다.", + "table": { + "columns": { + "id": "ID", + "show": "표시 상태", + "title": "제목", + "actions": "작업" + }, + "toolbar": { + "search": "공지사항 제목 검색...", + "reset": "초기화", + "sort": { + "edit": "순서 편집", + "save": "순서 저장" + } + }, + "actions": { + "edit": "편집", + "delete": { + "title": "삭제 확인", + "description": "이 공지사항을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.", + "success": "삭제 완료" + } + } + }, + "form": { + "add": { + "title": "공지사항 추가", + "button": "공지사항 추가" + }, + "edit": { + "title": "공지사항 편집" + }, + "fields": { + "title": { + "label": "제목", + "placeholder": "공지사항 제목을 입력해주세요" + }, + "content": { + "label": "내용" + }, + "img_url": { + "label": "배경 이미지", + "placeholder": "공지사항 배경 이미지 URL을 입력해주세요" + }, + "show": { + "label": "표시" + }, + "tags": { + "label": "태그", + "placeholder": "Enter를 눌러 태그 추가" + } + }, + "buttons": { + "cancel": "취소", + "submit": "제출", + "success": "제출 완료" + } + } + }, + "theme": { + "title": "테마 설정", + "description": "테마 색상, 글꼴 크기 등을 포함한 테마 설정입니다. V2board를 프론트엔드와 백엔드로 분리하여 배포하는 경우 테마 설정이 적용되지 않습니다.", + "upload": { + "button": "테마 업로드", + "title": "테마 업로드", + "description": "유효한 테마 패키지(.zip 형식)를 업로드해주세요. 테마 패키지는 완전한 테마 파일 구조를 포함해야 합니다.", + "dragText": "테마 파일을 여기에 끌어다 놓거나", + "clickText": "클릭하여 선택", + "supportText": ".zip 형식의 테마 패키지 지원", + "uploading": "업로드 중...", + "error": { + "format": "ZIP 형식의 테마 파일만 지원됩니다" + } + }, + "preview": { + "title": "테마 미리보기", + "imageCount": "{{current}} / {{total}}" + }, + "card": { + "version": "버전: {{version}}", + "currentTheme": "현재 테마", + "activateTheme": "테마 활성화", + "configureTheme": "테마 설정", + "preview": "미리보기", + "delete": { + "title": "테마 삭제", + "description": "이 테마를 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.", + "button": "삭제", + "error": { + "active": "현재 활성화된 테마는 삭제할 수 없습니다" + } + } + }, + "config": { + "title": "{{name}} 테마 구성", + "description": "테마 스타일, 레이아웃 및 기타 표시 옵션을 수정합니다.", + "cancel": "취소", + "save": "저장", + "success": "설정이 성공적으로 저장되었습니다" + } + }, + "ticket": { + "title": "티켓 관리", + "description": "여기에서 사용자 티켓을 확인할 수 있으며, 조회, 답변 및 종료 작업을 수행할 수 있습니다.", + "columns": { + "id": "티켓 ID", + "subject": "제목", + "level": "우선순위", + "status": "상태", + "updated_at": "최근 업데이트", + "created_at": "생성 시간", + "actions": "작업" + }, + "status": { + "closed": "종료됨", + "replied": "답변됨", + "pending": "대기 중", + "processing": "처리 중" + }, + "level": { + "low": "낮음", + "medium": "중간", + "high": "높음" + }, + "filter": { + "placeholder": "{field} 검색...", + "no_results": "검색 결과가 없습니다.", + "selected": "{count}개 선택됨", + "clear": "필터 초기화" + }, + "actions": { + "view_details": "상세 보기", + "close_ticket": "티켓 종료", + "close_confirm_title": "티켓 종료 확인", + "close_confirm_description": "종료 후에는 답변할 수 없습니다. 이 티켓을 종료하시겠습니까?", + "close_confirm_button": "티켓 종료", + "close_success": "티켓이 성공적으로 종료되었습니다", + "view_ticket": "티켓 보기" + }, + "detail": { + "no_messages": "메시지가 아직 없습니다", + "created_at": "생성 시간", + "user_info": "사용자 정보", + "traffic_records": "트래픽 기록", + "order_records": "주문 기록", + "input": { + "closed_placeholder": "티켓이 종료되었습니다", + "reply_placeholder": "답변을 입력하세요...", + "sending": "전송 중...", + "send": "전송" + } + } + }, + "server": { + "title": "노드 설정", + "description": "통신 키, 폴링 간격, 로드 밸런싱 및 기타 고급 옵션을 포함한 노드 통신 및 동기화 설정을 구성합니다.", + "server_token": { + "title": "통신 키", + "description": "Xboard와 노드 간의 통신을 위한 키로, 무단 데이터 접근을 방지합니다.", + "placeholder": "통신 키를 입력해주세요" + }, + "server_pull_interval": { + "title": "노드 풀 작업 폴링 간격", + "description": "노드가 패널에서 데이터를 가져오는 빈도입니다.", + "placeholder": "풀 간격을 입력해주세요" + }, + "server_push_interval": { + "title": "노드 푸시 작업 폴링 간격", + "description": "노드가 패널로 데이터를 푸시하는 빈도입니다.", + "placeholder": "푸시 간격을 입력해주세요" + }, + "device_limit_mode": { + "title": "기기 제한 모드", + "description": "완화 모드에서는 동일한 IP 주소의 여러 노드가 하나의 기기로 계산됩니다.", + "strict": "엄격 모드", + "relaxed": "완화 모드", + "placeholder": "기기 제한 모드를 선택해주세요" + }, + "saving": "저장 중...", + "manage": { + "title": "노드 관리", + "description": "모든 노드를 관리하며, 추가, 삭제, 편집 등의 작업을 수행할 수 있습니다." + }, + "columns": { + "sort": "정렬", + "nodeId": "노드 ID", + "show": "표시", + "node": "노드", + "address": "주소", + "onlineUsers": { + "title": "온라인 사용자", + "tooltip": "서버 보고 빈도에 따른 온라인 사용자 수" + }, + "rate": { + "title": "요금", + "tooltip": "트래픽 과금 요율" + }, + "groups": { + "title": "권한 그룹", + "tooltip": "이 노드를 구독할 수 있는 그룹", + "empty": "--" + }, + "type": "유형", + "actions": "작업", + "copyAddress": "연결 주소 복사", + "internalPort": "내부 포트", + "status": { + "0": "실행되지 않음", + "1": "미사용 또는 비정상", + "2": "정상 실행 중" + }, + "actions_dropdown": { + "edit": "편집", + "copy": "복사", + "delete": { + "title": "삭제 확인", + "description": "이 작업은 이 노드를 영구적으로 삭제하며 취소할 수 없습니다. 계속하시겠습니까?", + "confirm": "삭제" + }, + "copy_success": "복사 완료", + "delete_success": "삭제 완료" + } + }, + "toolbar": { + "search": "노드 검색...", + "type": "유형", + "reset": "초기화", + "sort": { + "tip": "노드를 드래그하여 정렬한 후 저장을 클릭하세요", + "edit": "정렬 편집", + "save": "정렬 저장" + } + }, + "form": { + "add_node": "노드 추가", + "edit_node": "노드 편집", + "new_node": "새 노드", + "name": { + "label": "노드 이름", + "placeholder": "노드 이름을 입력해주세요", + "error": "올바른 이름을 입력해주세요" + }, + "rate": { + "label": "요금", + "error": "올바른 요금을 입력해주세요" + }, + "code": { + "label": "사용자 지정 노드 ID", + "optional": "(선택사항)", + "placeholder": "사용자 지정 노드 ID를 입력해주세요" + }, + "tags": { + "label": "노드 태그", + "placeholder": "Enter를 눌러 태그 추가" + }, + "groups": { + "label": "권한 그룹", + "add": "그룹 추가", + "placeholder": "권한 그룹을 선택해주세요", + "empty": "검색 결과가 없습니다" + }, + "host": { + "label": "노드 주소", + "placeholder": "도메인 또는 IP를 입력해주세요" + }, + "port": { + "label": "연결 포트", + "placeholder": "사용자 연결 포트", + "tooltip": "사용자가 실제로 연결하는 포트로, 클라이언트 설정에 입력해야 하는 포트 번호입니다. 중계 또는 터널을 사용하는 경우 서버가 실제로 수신하는 포트와 다를 수 있습니다.", + "sync": "서버 포트와 동기화" + }, + "server_port": { + "label": "서버 포트", + "placeholder": "서버 수신 포트", + "tooltip": "서버가 실제로 수신하는 포트로, 서버에서 실제로 열린 포트입니다. 중계 또는 터널을 사용하는 경우 사용자 연결 포트와 다를 수 있습니다." + }, + "parent": { + "label": "상위 노드", + "placeholder": "상위 노드 선택", + "none": "없음" + }, + "route": { + "label": "라우트 그룹", + "placeholder": "라우트 그룹 선택", + "empty": "검색 결과가 없습니다" + }, + "submit": "제출", + "cancel": "취소", + "success": "제출 완료" + }, + "dynamic_form": { + "shadowsocks": { + "cipher": { + "label": "암호화 방식", + "placeholder": "암호화 방식 선택" + }, + "obfs": { + "label": "난독화", + "placeholder": "난독화 방식 선택", + "none": "없음", + "http": "HTTP" + }, + "obfs_settings": { + "path": "경로", + "host": "호스트" + } + }, + "vmess": { + "tls": { + "label": "TLS", + "placeholder": "보안을 선택해주세요", + "disabled": "비활성화", + "enabled": "활성화" + }, + "tls_settings": { + "server_name": { + "label": "서버 이름 표시(SNI)", + "placeholder": "사용하지 않는 경우 비워두세요" + }, + "allow_insecure": "안전하지 않은 연결 허용?" + }, + "network": { + "label": "전송 프로토콜", + "placeholder": "전송 프로토콜 선택" + } + }, + "trojan": { + "server_name": { + "label": "서버 이름 표시(SNI)", + "placeholder": "노드 주소가 인증서와 다른 경우 인증서 확인에 사용" + }, + "allow_insecure": "안전하지 않은 연결 허용?", + "network": { + "label": "전송 프로토콜", + "placeholder": "전송 프로토콜 선택" + } + }, + "hysteria": { + "version": { + "label": "프로토콜 버전", + "placeholder": "프로토콜 버전" + }, + "alpn": { + "label": "ALPN", + "placeholder": "ALPN" + }, + "obfs": { + "label": "난독화", + "type": { + "label": "난독화 구현", + "placeholder": "난독화 구현 선택", + "salamander": "Salamander" + }, + "password": { + "label": "난독화 비밀번호", + "placeholder": "난독화 비밀번호를 입력해주세요", + "generate_success": "난독화 비밀번호 생성 완료" + } + }, + "tls": { + "server_name": { + "label": "서버 이름 표시(SNI)", + "placeholder": "노드 주소가 인증서와 다른 경우 인증서 확인에 사용" + }, + "allow_insecure": "안전하지 않은 연결 허용?" + }, + "bandwidth": { + "up": { + "label": "업로드 대역폭", + "placeholder": "업로드 대역폭을 입력해주세요", + "suffix": "Mbps", + "bbr_tip": ", BBR 사용시 비워두세요" + }, + "down": { + "label": "다운로드 대역폭", + "placeholder": "다운로드 대역폭을 입력해주세요", + "suffix": "Mbps", + "bbr_tip": ", BBR 사용시 비워두세요" + } + } + }, + "vless": { + "tls": { + "label": "보안", + "placeholder": "보안을 선택해주세요", + "none": "없음", + "tls": "TLS", + "reality": "Reality" + }, + "tls_settings": { + "server_name": { + "label": "서버 이름 표시(SNI)", + "placeholder": "사용하지 않는 경우 비워두세요" + }, + "allow_insecure": "안전하지 않은 연결 허용?" + }, + "reality_settings": { + "server_name": { + "label": "대상 사이트(dest)", + "placeholder": "예: example.com" + }, + "server_port": { + "label": "포트" + } + } + } + } + }, + "user": { + "manage": { + "title": "사용자 관리", + "description": "여기에서 사용자 추가, 삭제, 편집 및 조회 작업을 수행할 수 있습니다." + }, + "columns": { + "is_admin": "관리자", + "is_staff": "스태프", + "id": "ID", + "email": "이메일", + "online_count": "온라인 기기", + "status": "상태", + "subscription": "구독", + "group": "그룹", + "used_traffic": "사용된 트래픽", + "total_traffic": "총 트래픽", + "expire_time": "만료 시간", + "balance": "잔액", + "commission": "수수료", + "register_time": "등록 시간", + "actions": "작업", + "device_limit": { + "unlimited": "기기 제한 없음", + "limited": "최대 {{count}}대의 기기 허용" + }, + "status_text": { + "normal": "정상", + "banned": "차단됨" + }, + "online_status": { + "online": "현재 온라인", + "never": "접속 기록 없음", + "last_online": "마지막 접속: {{time}}", + "offline_duration": { + "days": "오프라인 기간: {{count}}일", + "hours": "오프라인 기간: {{count}}시간", + "minutes": "오프라인 기간: {{count}}분", + "seconds": "오프라인 기간: {{count}}초" + } + }, + "expire_status": { + "permanent": "영구", + "expired": "{{days}}일 전 만료됨", + "remaining": "{{days}}일 남음" + }, + "actions_menu": { + "edit": "편집", + "assign_order": "주문 할당", + "copy_url": "구독 URL 복사", + "reset_secret": "UUID 및 URL 재설정", + "orders": "주문", + "invites": "초대", + "traffic_records": "트래픽 기록" + } + }, + "filter": { + "selected": "{{count}}개 선택됨", + "no_results": "검색 결과가 없습니다.", + "clear": "필터 초기화", + "search_placeholder": "검색...", + "email_search": "사용자 이메일 검색...", + "advanced": "고급 필터", + "reset": "필터 초기화", + "sheet": { + "title": "고급 필터", + "description": "하나 이상의 필터 조건을 추가하여 사용자를 정확하게 찾기", + "conditions": "필터 조건", + "add": "조건 추가", + "condition": "조건 {{number}}", + "field": "필드 선택", + "operator": "연산자 선택", + "value": "값 입력", + "value_number": "값 입력 ({{unit}})", + "reset": "초기화", + "apply": "필터 적용" + }, + "fields": { + "email": "이메일", + "id": "사용자 ID", + "plan_id": "구독", + "transfer_enable": "트래픽", + "total_used": "사용된 트래픽", + "online_count": "온라인 기기", + "expired_at": "만료 시간", + "uuid": "UUID", + "token": "토큰", + "banned": "계정 상태", + "remark": "비고", + "inviter_email": "초대자 이메일", + "invite_user_id": "초대자 ID", + "is_admin": "관리자", + "is_staff": "스태프" + }, + "operators": { + "contains": "포함", + "eq": "일치", + "gt": "초과", + "lt": "미만" + }, + "status": { + "normal": "정상", + "banned": "차단됨" + }, + "boolean": { + "true": "예", + "false": "아니오" + } + }, + "generate": { + "button": "사용자 생성", + "title": "사용자 생성", + "form": { + "email": "이메일", + "email_prefix": "계정 (일괄 생성시 비워두기)", + "email_domain": "도메인", + "password": "비밀번호", + "password_placeholder": "비워두면 이메일을 비밀번호로 사용", + "expire_time": "만료 시간", + "expire_time_placeholder": "사용자 만료 날짜 선택, 영구는 비워두기", + "permanent": "영구", + "subscription": "구독 플랜", + "subscription_none": "없음", + "generate_count": "생성 수량", + "generate_count_placeholder": "일괄 생성할 수량 입력", + "cancel": "취소", + "submit": "생성", + "success": "생성 완료" + } + }, + "edit": { + "button": "사용자 정보 편집", + "title": "사용자 관리", + "form": { + "email": "이메일", + "email_placeholder": "이메일을 입력해주세요", + "inviter_email": "초대자 이메일", + "inviter_email_placeholder": "이메일을 입력해주세요", + "password": "비밀번호", + "password_placeholder": "변경하려면 새 비밀번호 입력", + "balance": "잔액", + "balance_placeholder": "잔액을 입력해주세요", + "commission_balance": "수수료 잔액", + "commission_balance_placeholder": "수수료 잔액을 입력해주세요", + "upload": "업로드 트래픽", + "upload_placeholder": "업로드 트래픽", + "download": "다운로드 트래픽", + "download_placeholder": "다운로드 트래픽", + "total_traffic": "총 트래픽", + "total_traffic_placeholder": "트래픽을 입력해주세요", + "expire_time": "만료 시간", + "expire_time_placeholder": "사용자 만료 날짜 선택, 영구는 비워두기", + "expire_time_specific": "특정 시간", + "expire_time_today": "오늘 종료로 설정", + "expire_time_permanent": "영구", + "expire_time_1month": "1개월", + "expire_time_3months": "3개월", + "expire_time_confirm": "확인", + "subscription": "구독 플랜", + "subscription_none": "없음", + "account_status": "계정 상태", + "commission_type": "수수료 유형", + "commission_type_system": "시스템 설정 따르기", + "commission_type_cycle": "주기별 수수료", + "commission_type_onetime": "일회성 수수료", + "commission_rate": "수수료율", + "commission_rate_placeholder": "사이트 수수료율을 따르려면 비워두기", + "discount": "전용 할인", + "discount_placeholder": "전용 할인이 없으면 비워두기", + "speed_limit": "속도 제한", + "speed_limit_placeholder": "속도 제한이 없으면 비워두기", + "device_limit": "기기 제한", + "device_limit_placeholder": "기기 제한이 없으면 비워두기", + "is_admin": "관리자 여부", + "is_staff": "스태프 여부", + "remarks": "비고", + "remarks_placeholder": "비고를 입력해주세요", + "cancel": "취소", + "submit": "제출", + "success": "수정 완료" + } + } + }, + "subscribe": { + "plan": { + "title": "구독 플랜", + "add": "플랜 추가", + "search": "플랜 검색...", + "sort": { + "edit": "정렬 편집", + "save": "정렬 저장" + }, + "columns": { + "id": "ID", + "show": "표시", + "sell": "판매", + "renew": "갱신", + "renew_tooltip": "구독 판매가 중단된 후 기존 사용자의 갱신 가능 여부", + "name": "이름", + "stats": "통계", + "group": "권한 그룹", + "price": "가격", + "actions": "작업", + "edit": "편집", + "delete": "삭제", + "delete_confirm": { + "title": "삭제 확인", + "description": "이 작업은 이 구독을 영구적으로 삭제하며 취소할 수 없습니다. 계속하시겠습니까?", + "success": "삭제 완료" + }, + "price_period": { + "monthly": "월간", + "quarterly": "분기", + "half_yearly": "반기", + "yearly": "연간", + "two_yearly": "2년", + "three_yearly": "3년", + "onetime": "일회성", + "reset_traffic": "트래픽 초기화", + "unit": { + "month": "/월", + "quarter": "/분기", + "half_year": "/반기", + "year": "/년", + "two_year": "/2년", + "three_year": "/3년", + "times": "/회" + } + } + }, + "form": { + "add_title": "플랜 추가", + "edit_title": "플랜 편집", + "name": { + "label": "플랜 이름", + "placeholder": "플랜 이름 입력" + }, + "group": { + "label": "서버 그룹", + "add": "그룹 추가", + "placeholder": "서버 그룹 선택" + }, + "transfer": { + "label": "트래픽", + "placeholder": "트래픽 제한 입력", + "unit": "GB" + }, + "speed": { + "label": "속도 제한", + "placeholder": "속도 제한 입력", + "unit": "Mbps" + }, + "price": { + "title": "가격 설정", + "base_price": "기본 가격", + "clear": { + "button": "초기화", + "tooltip": "모든 가격 초기화" + }, + "period": { + "monthly": "월간", + "months": "{{count}}개월" + }, + "onetime_desc": "일회성 트래픽 패키지, 시간 제한 없음", + "reset_desc": "트래픽 초기화 패키지, 여러 번 사용 가능" + }, + "device": { + "label": "기기 제한", + "placeholder": "기기 제한 입력", + "unit": "대" + }, + "capacity": { + "label": "용량 제한", + "placeholder": "용량 제한 입력", + "unit": "사용자" + }, + "reset_method": { + "label": "트래픽 초기화 방식", + "placeholder": "초기화 방식 선택", + "description": "트래픽 초기화 방식에 따라 트래픽이 초기화되는 방법이 결정됩니다", + "options": { + "follow_system": "시스템 설정 따르기", + "monthly_first": "매월 1일", + "monthly_reset": "매월 구매일", + "no_reset": "초기화 없음", + "yearly_first": "매년 1일", + "yearly_reset": "매년 구매일" + } + }, + "content": { + "label": "플랜 설명", + "placeholder": "플랜 설명 입력", + "description": "마크다운 형식 지원", + "preview": "미리보기", + "preview_button": { + "show": "미리보기 표시", + "hide": "미리보기 숨기기" + }, + "template": { + "button": "템플릿 사용", + "tooltip": "기본 템플릿 사용", + "content": "## 플랜 특징\n\n- 트래픽: {{transfer}} GB\n- 속도: {{speed}} Mbps\n- 기기: {{devices}}대\n\n## 사용 안내\n\n1. 플랜 유효 기간: {{validity}}일\n2. 트래픽 초기화: {{reset_method}}\n3. 최대 동시 접속자: {{capacity}}명" + } + }, + "force_update": { + "label": "사용자 플랜 강제 업데이트" + }, + "submit": { + "cancel": "취소", + "submit": "제출", + "submitting": "제출 중...", + "success": { + "add": "플랜이 성공적으로 추가되었습니다", + "update": "플랜이 성공적으로 업데이트되었습니다" + } + } + }, + "page": { + "description": "여기에서 구독 플랜을 구성할 수 있으며, 추가, 삭제 및 편집 작업을 수행할 수 있습니다." + } + } + }, + "auth": { + "signIn": { + "title": "로그인", + "description": "이메일과 비밀번호를 입력하여 로그인하세요", + "email": "이메일", + "emailPlaceholder": "name@example.com", + "password": "비밀번호", + "passwordPlaceholder": "비밀번호를 입력하세요", + "forgotPassword": "비밀번호를 잊으셨나요?", + "submit": "로그인", + "rememberMe": "로그인 상태 유지", + "resetPassword": { + "title": "비밀번호 재설정", + "description": "비밀번호를 재설정하려면 사이트 디렉토리에서 다음 명령을 실행하세요", + "command": "php artisan reset:password 관리자-이메일" + }, + "validation": { + "emailRequired": "이메일을 입력해주세요", + "emailInvalid": "올바른 이메일 주소를 입력해주세요", + "passwordRequired": "비밀번호를 입력해주세요", + "passwordLength": "비밀번호는 최소 7자 이상이어야 합니다" + } + } + }, + "sidebar": { + "dashboard": "대시보드", + "systemManagement": "시스템 관리", + "systemConfig": "시스템 설정", + "themeConfig": "테마 설정", + "noticeManagement": "공지사항 관리", + "paymentConfig": "결제 설정", + "knowledgeManagement": "지식 베이스", + "nodeManagement": "노드 관리", + "permissionGroupManagement": "권한 그룹", + "routeManagement": "경로 관리", + "subscriptionManagement": "구독 관리", + "planManagement": "플랜 관리", + "orderManagement": "주문 관리", + "couponManagement": "쿠폰 관리", + "userManagement": "사용자 관리", + "ticketManagement": "티켓 관리" + } +}; \ No newline at end of file diff --git a/public/assets/admin/locales/zh-CN.js b/public/assets/admin/locales/zh-CN.js new file mode 100644 index 0000000..e19a824 --- /dev/null +++ b/public/assets/admin/locales/zh-CN.js @@ -0,0 +1,2012 @@ +window.XBOARD_TRANSLATIONS = window.XBOARD_TRANSLATIONS || {}; +window.XBOARD_TRANSLATIONS['zh-CN'] = { + "payment": { + "title": "支付配置", + "description": "在这里可以配置支付方式,包括支付宝、微信等。", + "table": { + "columns": { + "id": "ID", + "enable": "启用", + "name": "显示名称", + "payment": "支付接口", + "notify_url": "通知地址", + "notify_url_tooltip": "支付网关将会把数据通知到本地址,请通过防火墙放行本地址。", + "actions": "操作" + }, + "actions": { + "edit": "编辑", + "delete": { + "title": "删除确认", + "description": "确定要删除该支付方式吗?此操作无法撤销。", + "success": "删除成功" + } + }, + "toolbar": { + "search": "搜索支付方式...", + "reset": "重置", + "sort": { + "hint": "拖拽支付方式进行排序,完成后点击保存", + "save": "保存排序", + "edit": "编辑排序" + } + } + }, + "form": { + "add": { + "button": "添加支付方式", + "title": "添加支付方式" + }, + "edit": { + "title": "编辑支付方式" + }, + "fields": { + "name": { + "label": "显示名称", + "placeholder": "请输入支付名称", + "description": "用于前端显示" + }, + "icon": { + "label": "图标URL", + "placeholder": "https://example.com/icon.svg", + "description": "用于前端显示的图标地址" + }, + "notify_domain": { + "label": "通知域名", + "placeholder": "https://example.com", + "description": "网关通知将发送到该域名" + }, + "handling_fee_percent": { + "label": "百分比手续费(%)", + "placeholder": "0-100" + }, + "handling_fee_fixed": { + "label": "固定手续费", + "placeholder": "0" + }, + "payment": { + "label": "支付接口", + "placeholder": "请选择支付接口", + "description": "选择要使用的支付接口" + } + }, + "validation": { + "name": { + "min": "名称至少需要2个字符", + "max": "名称不能超过30个字符" + }, + "notify_domain": { + "url": "请输入有效的URL" + }, + "payment": { + "required": "请选择支付接口" + } + }, + "buttons": { + "cancel": "取消", + "submit": "提交" + }, + "messages": { + "success": "保存成功" + } + } + }, + "knowledge": { + "title": "知识库管理", + "description": "在这里可以配置知识库,包括添加、删除、编辑等操作。", + "columns": { + "id": "ID", + "status": "状态", + "title": "标题", + "category": "分类", + "actions": "操作" + }, + "form": { + "add": "添加知识", + "edit": "编辑知识", + "title": "标题", + "titlePlaceholder": "请输入知识标题", + "category": "分类", + "categoryPlaceholder": "请输入分类,分类将会自动归类", + "language": "语言", + "languagePlaceholder": "请选择语言", + "content": "内容", + "show": "显示", + "cancel": "取消", + "submit": "提交" + }, + "languages": { + "en-US": "English", + "ja-JP": "日本語", + "ko-KR": "한국어", + "vi-VN": "Tiếng Việt", + "zh-CN": "简体中文", + "zh-TW": "繁體中文" + }, + "messages": { + "deleteConfirm": "确认删除", + "deleteDescription": "此操作将永久删除该知识库记录,删除后无法恢复。确定要继续吗?", + "deleteButton": "删除", + "operationSuccess": "操作成功" + }, + "toolbar": { + "searchPlaceholder": "搜索知识...", + "reset": "重置", + "sortModeHint": "拖拽知识条目进行排序,完成后点击保存", + "editSort": "编辑排序", + "saveSort": "保存排序" + } + }, + "search": { + "placeholder": "搜索菜单和功能...", + "title": "菜单导航", + "noResults": "未找到结果", + "shortcut": { + "label": "搜索", + "key": "⌘K" + } + }, + "nav": { + "dashboard": "仪表盘", + "systemManagement": "系统管理", + "systemConfig": "系统配置", + "themeConfig": "主题配置", + "pluginManagement": "插件管理", + "noticeManagement": "公告管理", + "paymentConfig": "支付配置", + "knowledgeManagement": "知识库管理", + "nodeManagement": "节点管理", + "permissionGroupManagement": "权限组管理", + "routeManagement": "路由管理", + "subscriptionManagement": "订阅管理", + "planManagement": "套餐管理", + "orderManagement": "订单管理", + "couponManagement": "优惠券管理", + "userManagement": "用户管理", + "ticketManagement": "工单管理" + }, + "plugin": { + "title": "插件管理", + "description": "管理和配置系统插件", + "search": { + "placeholder": "搜索插件名称或描述..." + }, + "category": { + "placeholder": "选择分类", + "all": "全部", + "other": "其他" + }, + "tabs": { + "all": "全部插件", + "installed": "已安装", + "available": "可用插件" + }, + "status": { + "enabled": "已启用", + "disabled": "已禁用" + }, + "button": { + "install": "安装", + "config": "配置", + "enable": "启用", + "disable": "禁用" + }, + "uninstall": { + "title": "卸载插件", + "description": "确定要卸载该插件吗?卸载后插件数据将被清除。", + "button": "卸载" + }, + "config": { + "title": "配置", + "description": "修改插件配置", + "save": "保存", + "cancel": "取消" + }, + "author": "作者", + "messages": { + "installSuccess": "插件安装成功", + "installError": "插件安装失败", + "uninstallSuccess": "插件卸载成功", + "uninstallError": "插件卸载失败", + "enableSuccess": "插件启用成功", + "enableError": "插件启用失败", + "disableSuccess": "插件禁用成功", + "disableError": "插件禁用失败", + "configLoadError": "加载插件配置失败", + "configSaveSuccess": "配置保存成功", + "configSaveError": "配置保存失败" + } + }, + "settings": { + "title": "系统设置", + "description": "管理系统核心配置,包括站点、安全、订阅、邀请佣金、节点、邮件和通知等设置", + "site": { + "title": "站点设置", + "description": "配置站点基本信息,包括站点名称、描述、货币单位等核心设置。", + "form": { + "siteName": { + "label": "站点名称", + "placeholder": "请输入站点名称", + "description": "用于显示需要站点名称的地方。" + }, + "siteDescription": { + "label": "站点描述", + "placeholder": "请输入站点描述", + "description": "用于显示需要站点描述的地方。" + }, + "siteUrl": { + "label": "站点网址", + "placeholder": "请输入站点URL,末尾不要/", + "description": "当前网站最新网址,将会在邮件等需要用于网址处体现。" + }, + "forceHttps": { + "label": "强制HTTPS", + "description": "当站点没有使用HTTPS,CDN或反代开启强制HTTPS时需要开启。" + }, + "logo": { + "label": "LOGO", + "placeholder": "请输入LOGO URL,末尾不要/", + "description": "用于显示需要LOGO的地方。" + }, + "subscribeUrl": { + "label": "订阅URL", + "placeholder": "用于订阅所使用,多个订阅地址用','隔开.留空则为站点URL。", + "description": "用于订阅所使用,留空则为站点URL。" + }, + "tosUrl": { + "label": "用户条款(TOS)URL", + "placeholder": "请输入用户条款URL,末尾不要/", + "description": "用于跳转到用户条款(TOS)" + }, + "stopRegister": { + "label": "停止新用户注册", + "description": "开启后任何人都将无法进行注册。" + }, + "tryOut": { + "label": "注册试用", + "placeholder": "关闭", + "description": "选择需要试用的订阅,如果没有选项请先前往订阅管理添加。", + "duration": { + "label": "注册试用时长", + "placeholder": "0", + "description": "注册试用时长,单位为小时。" + } + }, + "currency": { + "label": "货币单位", + "placeholder": "CNY", + "description": "仅用于展示使用,更改后系统中所有的货币单位都将发生变更。" + }, + "currencySymbol": { + "label": "货币符号", + "placeholder": "¥", + "description": "仅用于展示使用,更改后系统中所有的货币单位都将发生变更。" + } + } + }, + "safe": { + "title": "安全设置", + "description": "配置系统安全相关选项,包括登录验证、密码策略、API访问等安全设置。", + "form": { + "emailVerify": { + "label": "邮箱验证", + "description": "开启后将会强制要求用户进行邮箱验证。" + }, + "gmailLimit": { + "label": "禁止使用Gmail多别名", + "description": "开启后Gmail多别名将无法注册。" + }, + "safeMode": { + "label": "安全模式", + "description": "开启后除了站点URL以外的绑定本站点的域名访问都将会被403。" + }, + "securePath": { + "label": "后台路径", + "placeholder": "admin", + "description": "后台管理路径,修改后将会改变原有的admin路径" + }, + "emailWhitelist": { + "label": "邮箱后缀白名单", + "description": "开启后在名单中的邮箱后缀才允许进行注册。", + "suffixes": { + "label": "邮箱后缀", + "placeholder": "输入邮箱后缀,每行一个", + "description": "输入允许的邮箱后缀,每行一个" + } + }, + "recaptcha": { + "enable": { + "label": "启用reCAPTCHA", + "description": "开启后用户注册时需要通过reCAPTCHA验证。" + }, + "key": { + "label": "reCAPTCHA密钥", + "placeholder": "输入reCAPTCHA密钥", + "description": "输入您的reCAPTCHA密钥" + }, + "siteKey": { + "label": "reCAPTCHA站点密钥", + "placeholder": "输入reCAPTCHA站点密钥", + "description": "输入您的reCAPTCHA站点密钥" + } + }, + "registerLimit": { + "enable": { + "label": "IP注册限制", + "description": "开启后将限制同一IP的注册次数。" + }, + "count": { + "label": "注册次数", + "placeholder": "输入最大注册次数", + "description": "同一IP允许的最大注册次数" + }, + "expire": { + "label": "限制时长", + "placeholder": "输入限制时长(小时)", + "description": "注册限制的持续时间(小时)" + } + }, + "passwordLimit": { + "enable": { + "label": "密码尝试限制", + "description": "开启后将限制密码尝试次数。" + }, + "count": { + "label": "尝试次数", + "placeholder": "输入最大尝试次数", + "description": "允许的最大密码尝试次数" + }, + "expire": { + "label": "锁定时长", + "placeholder": "输入锁定时长(小时)", + "description": "账户锁定的持续时间(小时)" + } + } + } + }, + "subscribe": { + "title": "订阅设置", + "description": "管理用户订阅相关配置,包括订阅链接格式、更新频率、流量统计等设置。", + "plan_change_enable": { + "title": "允许用户更改订阅", + "description": "开启后用户将会可以对订阅计划进行变更。" + }, + "reset_traffic_method": { + "title": "月流量重置方式", + "description": "全局流量重置方式,默认每月1号。可以在订阅管理为订阅单独设置。", + "options": { + "monthly_first": "每月1号", + "monthly_reset": "按月重置", + "no_reset": "不重置", + "yearly_first": "每年1月1号", + "yearly_reset": "按年重置" + } + }, + "surplus_enable": { + "title": "开启折抵方案", + "description": "开启后用户更换订阅将会由系统对原有订阅进行折抵,方案参考文档。" + }, + "new_order_event": { + "title": "当订阅新购时触发事件", + "description": "新购订阅完成时将触发该任务。", + "options": { + "no_action": "不执行任何动作", + "reset_traffic": "重置用户流量" + } + }, + "renew_order_event": { + "title": "当订阅续费时触发事件", + "description": "续费订阅完成时将触发该任务。", + "options": { + "no_action": "不执行任何动作", + "reset_traffic": "重置用户流量" + } + }, + "change_order_event": { + "title": "当订阅变更时触发事件", + "description": "变更订阅完成时将触发该任务。", + "options": { + "no_action": "不执行任何动作", + "reset_traffic": "重置用户流量" + } + }, + "subscribe_path": { + "title": "订阅路径", + "description": "订阅路径,修改后将会改变原有的subscribe路径", + "current_format": "当前订阅路径格式:{path}/xxxxxxxxxx" + }, + "show_info_to_server": { + "title": "在订阅中展示订阅信息", + "description": "开启后将会在用户订阅节点时输出订阅信息。" + }, + "show_protocol_to_server": { + "title": "在订阅中线路名称中显示协议名称", + "description": "开启后订阅线路会附带协议名称(例如: [Hy2]香港)" + }, + "saving": "保存中...", + "plan": { + "title": "订阅套餐", + "add": "添加套餐", + "search": "搜索套餐...", + "sort": { + "edit": "编辑排序", + "save": "保存排序" + }, + "columns": { + "id": "ID", + "show": "显示", + "sell": "新购", + "renew": "续费", + "renew_tooltip": "在订阅停止销售时,已购用户是否可以续费", + "name": "名称", + "stats": "统计", + "group": "权限组", + "price": "价格", + "actions": "操作", + "edit": "编辑", + "delete": "删除", + "delete_confirm": { + "title": "确认删除", + "description": "此操作将永久删除该订阅,删除后无法恢复。确定要继续吗?", + "success": "删除成功" + }, + "price_period": { + "monthly": "月付", + "quarterly": "季付", + "half_yearly": "半年付", + "yearly": "年付", + "two_yearly": "两年付", + "three_yearly": "三年付", + "onetime": "流量包", + "reset_traffic": "重置包", + "unit": { + "month": "元/月", + "quarter": "元/季", + "half_year": "元/半年", + "year": "元/年", + "two_year": "元/两年", + "three_year": "元/三年", + "times": "元/次" + } + } + }, + "form": { + "add_title": "添加套餐", + "edit_title": "编辑套餐", + "name": { + "label": "套餐名称", + "placeholder": "请输入套餐名称" + }, + "group": { + "label": "权限组", + "placeholder": "选择权限组", + "add": "添加权限组" + }, + "transfer": { + "label": "流量", + "placeholder": "请输入流量大小", + "unit": "GB" + }, + "speed": { + "label": "限速", + "placeholder": "请输入限速", + "unit": "Mbps" + }, + "price": { + "title": "售价设置", + "base_price": "基础月付价格", + "clear": { + "button": "清空价格", + "tooltip": "清空所有周期的价格设置" + } + }, + "device": { + "label": "设备限制", + "placeholder": "留空则不限制", + "unit": "台" + }, + "capacity": { + "label": "容量限制", + "placeholder": "留空则不限制", + "unit": "人" + }, + "reset_method": { + "label": "流量重置方式", + "placeholder": "选择流量重置方式", + "description": "设置订阅流量的重置方式,不同的重置方式会影响用户的流量计算方式", + "options": { + "follow_system": "跟随系统设置", + "monthly_first": "每月1号", + "monthly_reset": "按月重置", + "no_reset": "不重置", + "yearly_first": "每年1月1日", + "yearly_reset": "按年重置" + } + }, + "content": { + "label": "套餐描述", + "placeholder": "在这里编写套餐描述...", + "description": "支持 Markdown 格式,可以使用标题、列表、粗体、斜体等样式来美化描述内容", + "preview": "预览", + "preview_button": { + "show": "显示预览", + "hide": "隐藏预览" + }, + "template": { + "button": "使用模板", + "tooltip": "点击使用预设的套餐描述模板", + "content": "## 套餐特点\n• 高速稳定的全球网络接入\n• 支持多设备同时在线\n• 无限制的流量重置\n\n## 使用说明\n1. 支持设备:iOS、Android、Windows、macOS\n2. 24/7 技术支持\n3. 自动定期流量重置\n\n## 注意事项\n- 禁止滥用\n- 遵守当地法律法规\n- 支持随时更换套餐" + } + }, + "force_update": { + "label": "强制更新到用户" + }, + "submit": { + "submitting": "提交中...", + "submit": "提交", + "cancel": "取消", + "success": { + "add": "套餐添加成功", + "update": "套餐更新成功" + } + } + }, + "page": { + "description": "在这里可以配置订阅计划,包括添加、删除、编辑等操作。" + } + } + }, + "email": { + "title": "邮件设置", + "description": "配置系统邮件服务,用于发送验证码、密码重置、通知等邮件,支持多种SMTP服务商。", + "email_host": { + "title": "SMTP主机", + "description": "SMTP服务器地址,例如:smtp.gmail.com" + }, + "email_port": { + "title": "SMTP端口", + "description": "SMTP服务器端口,常用端口:25, 465, 587" + }, + "email_username": { + "title": "SMTP用户名", + "description": "SMTP认证用户名" + }, + "email_password": { + "title": "SMTP密码", + "description": "SMTP认证密码或应用专用密码" + }, + "email_encryption": { + "title": "加密方式", + "description": "邮件加密方式", + "none": "无", + "ssl": "SSL/TLS", + "tls": "STARTTLS" + }, + "email_from": { + "title": "发件人地址", + "description": "发件人邮箱地址" + }, + "email_from_name": { + "title": "发件人名称", + "description": "发件人显示名称" + }, + "email_template": { + "title": "邮件模板", + "description": "自定义邮件模板方式请查看文档", + "placeholder": "选择邮件模板" + }, + "remind_mail": { + "title": "邮件提醒", + "description": "开启后用户订阅即将到期或流量不足时会收到邮件通知。" + }, + "test": { + "title": "发送测试邮件", + "sending": "发送中...", + "description": "发送测试邮件以验证配置", + "success": "测试邮件发送成功", + "error": "测试邮件发送失败" + } + }, + "telegram": { + "title": "Telegram设置", + "description": "配置Telegram机器人功能,实现用户通知、账户绑定、指令交互等自动化服务。", + "bot_token": { + "title": "机器人令牌", + "description": "请输入从Botfather获取的令牌。", + "placeholder": "0000000000:xxxxxxxxx_xxxxxxxxxxxxxxx" + }, + "webhook": { + "title": "设置Webhook", + "description": "设置机器人的webhook,不设置将无法收到Telegram通知。", + "button": "一键设置", + "setting": "设置中...", + "success": "Webhook 设置成功" + }, + "bot_enable": { + "title": "启用机器人通知", + "description": "开启后机器人将向管理员和已绑定Telegram的用户发送基础通知。" + }, + "discuss_link": { + "title": "群组链接", + "description": "填写后将在用户端显示或在需要的地方使用。", + "placeholder": "https://t.me/xxxxxx" + } + }, + "app": { + "title": "APP设置", + "description": "管理移动应用程序相关配置,包括API接口、版本控制、推送通知等功能设置。", + "common": { + "placeholder": "请输入" + }, + "windows": { + "version": { + "title": "Windows版本", + "description": "Windows客户端当前版本号" + }, + "download": { + "title": "Windows下载地址", + "description": "Windows客户端下载链接" + } + }, + "macos": { + "version": { + "title": "macOS版本", + "description": "macOS客户端当前版本号" + }, + "download": { + "title": "macOS下载地址", + "description": "macOS客户端下载链接" + } + }, + "android": { + "version": { + "title": "Android版本", + "description": "Android客户端当前版本号" + }, + "download": { + "title": "Android下载地址", + "description": "Android客户端下载链接" + } + } + }, + "common": { + "saving": "保存中...", + "save_success": "已自动保存", + "placeholder": "请输入", + "autoSaved": "已自动保存" + }, + "invite": { + "title": "邀请&佣金设置", + "description": "邀请注册、佣金相关设置。", + "invite_force": { + "title": "开启强制邀请", + "description": "开启后只有被邀请的用户才可以进行注册。" + }, + "invite_commission": { + "title": "邀请佣金百分比", + "description": "默认全局的佣金分配比例,你可以在用户管理单独配置单个比例。", + "placeholder": "请输入佣金百分比" + }, + "invite_gen_limit": { + "title": "用户可创建邀请码上限", + "description": "用户可创建邀请码上限", + "placeholder": "请输入创建上限" + }, + "invite_never_expire": { + "title": "邀请码永不失效", + "description": "开启后邀请码被使用后将不会失效,否则使用过后即失效。" + }, + "commission_first_time": { + "title": "佣金仅首次发放", + "description": "开启后被邀请人首次支付时才会产生佣金,可以在用户管理对用户进行单独配置。" + }, + "commission_auto_check": { + "title": "佣金自动确认", + "description": "开启后佣金将会在订单完成3日后自动进行确认。" + }, + "commission_withdraw_limit": { + "title": "提现单申请门槛(元)", + "description": "小于门槛金额的提现单将不会被提交。", + "placeholder": "请输入提现门槛" + }, + "commission_withdraw_method": { + "title": "提现方式", + "description": "可以支持的提现方式,多个用逗号分隔。", + "placeholder": "请输入提现方式,多个用逗号分隔" + }, + "withdraw_close": { + "title": "关闭提现", + "description": "关闭后将禁止用户申请提现,且邀请佣金将会直接进入用户余额。" + }, + "commission_distribution": { + "title": "三级分销", + "description": "开启后将佣金将按照设置的3成比例进行分成,三成比例合计请不要大于100%。", + "l1": "一级邀请人比例", + "l2": "二级邀请人比例", + "l3": "三级邀请人比例", + "placeholder": "请输入比例,如:50" + }, + "saving": "保存中..." + }, + "server": { + "title": "节点配置", + "description": "配置节点通信和同步设置,包括通信密钥、轮询间隔、负载均衡等高级选项。", + "server_token": { + "title": "通讯密钥", + "description": "Xboard与节点通讯的密钥,以便数据不会被他人获取。", + "placeholder": "请输入通讯密钥", + "generate_tooltip": "点击生成随机通信密钥" + }, + "server_pull_interval": { + "title": "节点拉取动作轮询间隔", + "description": "节点从面板获取数据的间隔频率。", + "placeholder": "请输入拉取间隔" + }, + "server_push_interval": { + "title": "节点推送动作轮询间隔", + "description": "节点推送数据到面板的间隔频率。", + "placeholder": "请输入推送间隔" + }, + "device_limit_mode": { + "title": "设备限制模式", + "description": "宽松模式下,同一IP地址使用多个节点只统计为一个设备。", + "strict": "严格模式", + "relaxed": "宽松模式", + "placeholder": "请选择设备限制模式" + }, + "saving": "保存中...", + "manage": { + "title": "节点管理", + "description": "管理所有节点,包括添加、删除、编辑等操作。" + } + } + }, + "group": { + "title": "权限组管理", + "description": "管理所有权限组,包括添加、删除、编辑等操作。", + "columns": { + "id": "组ID", + "name": "组名称", + "usersCount": "用户数量", + "serverCount": "节点数量", + "actions": "操作" + }, + "form": { + "add": "添加权限组", + "edit": "编辑权限组", + "create": "创建权限组", + "update": "更新", + "name": "组名称", + "namePlaceholder": "请输入权限组名称", + "nameDescription": "权限组名称用于标识不同的用户组,建议使用有意义的名称。", + "cancel": "取消", + "editDescription": "修改权限组信息,更新后会立即生效。", + "createDescription": "创建新的权限组,可以为不同的用户分配不同的权限。" + }, + "toolbar": { + "searchPlaceholder": "搜索权限组...", + "reset": "重置" + }, + "messages": { + "deleteConfirm": "确认删除", + "deleteDescription": "此操作将永久删除该权限组,删除后无法恢复。确定要继续吗?", + "deleteButton": "删除", + "createSuccess": "创建成功", + "updateSuccess": "更新成功", + "nameValidation": { + "min": "组名至少需要2个字符", + "max": "组名不能超过50个字符", + "pattern": "组名只能包含字母、数字、中文、下划线和连字符" + } + } + }, + "traffic": { + "trafficRecord": { + "title": "流量使用记录", + "time": "时间", + "upload": "上行流量", + "download": "下行流量", + "rate": "倍率", + "total": "总计", + "noRecords": "暂无记录", + "perPage": "每页显示", + "records": "条记录", + "page": "第 {{current}} / {{total}} 页", + "multiplier": "{{value}}x" + } + }, + "common": { + "loading": "加载中...", + "error": "错误", + "success": "成功", + "save": "保存", + "cancel": "取消", + "delete": "删除", + "edit": "编辑", + "view": "查看", + "toggleNavigation": "切换导航", + "toggleSidebar": "切换侧边栏", + "search": "搜索...", + "theme": { + "light": "浅色", + "dark": "深色", + "system": "跟随系统" + }, + "user": "用户", + "defaultEmail": "user@example.com", + "settings": "设置", + "logout": "退出登录", + "copy": { + "success": "复制成功", + "error": "复制失败", + "errorLog": "复制到剪贴板时出错" + }, + "table": { + "noData": "暂无数据", + "pagination": { + "selected": "已选择 {{selected}} 项,共 {{total}} 项", + "itemsPerPage": "每页显示", + "page": "第", + "pageOf": "页,共 {{total}} 页", + "firstPage": "跳转到第一页", + "previousPage": "上一页", + "nextPage": "下一页", + "lastPage": "跳转到最后一页" + } + } + }, + "dashboard": { + "title": "仪表盘", + "stats": { + "newUsers": "新用户", + "totalScore": "总积分", + "monthlyUpload": "月上传", + "vsLastMonth": "对比上月", + "vsYesterday": "对比昨日", + "todayIncome": "今日收入", + "monthlyIncome": "月收入", + "totalIncome": "总收入", + "totalUsers": "总用户", + "activeUsers": "活跃用户: {{count}}", + "totalOrders": "总订单", + "revenue": "收入", + "todayRegistered": "今日注册", + "monthlyRegistered": "月注册", + "onlineUsers": "在线用户", + "pendingTickets": "待处理工单", + "hasPendingTickets": "有工单需要处理", + "noPendingTickets": "无待处理工单", + "pendingCommission": "待处理佣金", + "hasPendingCommission": "有佣金需要确认", + "noPendingCommission": "无待处理佣金", + "monthlyNewUsers": "月新增用户", + "monthlyDownload": "月下载", + "todayTraffic": "今日: {{value}}", + "activeUserTrend": "活跃用户趋势", + "realtimeUsers": "实时用户", + "todayPeak": "今日峰值", + "vsLastWeek": "对比上周" + }, + "trafficRank": { + "nodeTrafficRank": "节点流量排行", + "userTrafficRank": "用户流量排行", + "today": "今天", + "last7days": "最近7天", + "last30days": "最近30天", + "customRange": "自定义范围", + "selectTimeRange": "选择时间范围", + "selectDateRange": "选择日期范围", + "currentTraffic": "当前流量", + "previousTraffic": "上期流量", + "changeRate": "变化率", + "recordTime": "记录时间" + }, + "overview": { + "title": "收入概览", + "thisMonth": "本月", + "lastMonth": "上月", + "to": "至", + "selectTimeRange": "选择范围", + "selectDate": "选择日期", + "last7Days": "最近7天", + "last30Days": "最近30天", + "last90Days": "最近90天", + "last180Days": "最近180天", + "lastYear": "最近一年", + "customRange": "自定义范围", + "amount": "金额", + "count": "数量", + "transactions": "{{count}} 笔交易", + "orderAmount": "订单金额", + "commissionAmount": "佣金金额", + "orderCount": "订单数量", + "commissionCount": "佣金数量", + "totalIncome": "总收入", + "totalCommission": "总佣金", + "totalTransactions": "共 {{count}} 笔交易", + "avgOrderAmount": "平均订单金额:", + "commissionRate": "佣金比例:" + }, + "queue": { + "title": "队列状态", + "jobDetails": "作业详情", + "status": { + "description": "当前队列运行状态", + "running": "运行状态", + "normal": "正常", + "abnormal": "异常", + "waitTime": "当前等待时间:{{seconds}} 秒", + "pending": "等待中", + "processing": "处理中", + "completed": "已完成", + "failed": "失败", + "cancelled": "已取消" + }, + "details": { + "description": "队列处理详细信息", + "recentJobs": "近期任务数", + "statisticsPeriod": "统计时间范围:{{hours}} 小时", + "jobsPerMinute": "每分钟处理量", + "maxThroughput": "最高吞吐量:{{value}}", + "failedJobs7Days": "7日报错数量", + "retentionPeriod": "保留 {{hours}} 小时", + "longestRunningQueue": "最长运行队列", + "activeProcesses": "活跃进程", + "id": "作业ID", + "type": "作业类型", + "status": "状态", + "progress": "进度", + "createdAt": "创建时间", + "updatedAt": "更新时间", + "error": "错误信息", + "data": "作业数据", + "result": "结果", + "duration": "耗时", + "attempts": "重试次数", + "nextRetry": "下次重试" + }, + "actions": { + "retry": "重试", + "cancel": "取消", + "delete": "删除", + "viewDetails": "查看详情" + }, + "empty": "队列中暂无作业", + "loading": "正在加载队列状态...", + "error": "加载队列状态失败" + } + }, + "route": { + "title": "路由管理", + "description": "管理所有路由组,包括添加、删除、编辑等操作。", + "columns": { + "id": "组ID", + "remarks": "备注", + "action": "动作", + "actions": "操作", + "matchRules": "匹配{{count}}条规则" + }, + "actions": { + "dns": "指定DNS服务器进行解析", + "block": "禁止访问" + }, + "form": { + "add": "添加路由", + "edit": "编辑路由", + "create": "创建路由", + "remarks": "备注", + "remarksPlaceholder": "请输入备注", + "match": "匹配规则", + "matchPlaceholder": "example.com\n*.example.com", + "action": "动作", + "actionPlaceholder": "请选择动作", + "dns": "DNS服务器", + "dnsPlaceholder": "请输入DNS服务器", + "cancel": "取消", + "submit": "提交", + "validation": { + "remarks": "请输入有效的备注" + } + }, + "toolbar": { + "searchPlaceholder": "搜索路由...", + "reset": "重置" + }, + "messages": { + "deleteConfirm": "确认删除", + "deleteDescription": "此操作将永久删除该路由组,删除后无法恢复。确定要继续吗?", + "deleteButton": "删除", + "deleteSuccess": "删除成功", + "createSuccess": "创建成功", + "updateSuccess": "更新成功" + } + }, + "order": { + "title": "订单管理", + "description": "在这里可以查看用户订单,包括分配、查看、删除等操作。", + "table": { + "columns": { + "tradeNo": "订单号", + "type": "类型", + "plan": "订阅计划", + "period": "周期", + "amount": "支付金额", + "status": "订单状态", + "commission": "佣金金额", + "commissionStatus": "佣金状态", + "createdAt": "创建时间" + } + }, + "type": { + "NEW": "新购", + "RENEWAL": "续费", + "UPGRADE": "升级", + "RESET_FLOW": "流量重置" + }, + "period": { + "month_price": "月付", + "quarter_price": "季付", + "half_year_price": "半年付", + "year_price": "年付", + "two_year_price": "两年付", + "three_year_price": "三年付", + "onetime_price": "一次性", + "reset_price": "流量重置包" + }, + "status": { + "PENDING": "待支付", + "PROCESSING": "开通中", + "CANCELLED": "已取消", + "COMPLETED": "已完成", + "DISCOUNTED": "已折抵", + "tooltip": "标记为[已支付]后将会由系统进行开通后并完成" + }, + "commission": { + "PENDING": "待确认", + "PROCESSING": "发放中", + "VALID": "有效", + "INVALID": "无效" + }, + "actions": { + "markAsPaid": "标记为已支付", + "cancel": "取消订单", + "openMenu": "打开菜单", + "reset": "重置" + }, + "search": { + "placeholder": "搜索订单..." + }, + "dialog": { + "title": "订单信息", + "basicInfo": "基本信息", + "amountInfo": "金额信息", + "timeInfo": "时间信息", + "addOrder": "添加订单", + "assignOrder": "订单分配", + "fields": { + "userEmail": "用户邮箱", + "orderPeriod": "订单周期", + "subscriptionPlan": "订阅计划", + "callbackNo": "回调单号", + "paymentAmount": "支付金额", + "balancePayment": "余额支付", + "discountAmount": "优惠金额", + "refundAmount": "退回金额", + "deductionAmount": "折抵金额", + "createdAt": "创建时间", + "updatedAt": "更新时间" + }, + "placeholders": { + "email": "请输入用户邮箱", + "plan": "请选择订阅计划", + "period": "请选择购买时长", + "amount": "请输入需要支付的金额" + }, + "actions": { + "cancel": "取消", + "confirm": "确定" + }, + "messages": { + "addSuccess": "添加成功" + } + } + }, + "coupon": { + "title": "优惠券管理", + "description": "在这里可以查看优惠券,包括增加、查看、删除等操作。", + "table": { + "columns": { + "id": "ID", + "show": "启用", + "name": "卷名称", + "type": "类型", + "code": "卷码", + "limitUse": "剩余次数", + "limitUseWithUser": "可用次数/用户", + "validity": "有效期", + "actions": "操作" + }, + "validity": { + "expired": "已过期{{days}}天", + "notStarted": "{{days}}天后开始", + "remaining": "剩余{{days}}天", + "startTime": "开始时间", + "endTime": "结束时间", + "unlimited": "无限次", + "noLimit": "无限制" + }, + "actions": { + "edit": "编辑", + "delete": "删除", + "deleteConfirm": { + "title": "确认删除", + "description": "此操作将永久删除该优惠券,删除后无法恢复。确定要继续吗?", + "confirmText": "删除" + } + }, + "toolbar": { + "search": "搜索优惠券...", + "type": "类型", + "reset": "重置", + "types": { + "1": "按金额优惠", + "2": "按比例优惠" + } + } + }, + "form": { + "add": "添加优惠券", + "edit": "编辑优惠券", + "name": { + "label": "优惠券名称", + "placeholder": "请输入优惠券名称", + "required": "请输入优惠券名称" + }, + "type": { + "label": "优惠券类型和值", + "placeholder": "优惠券类型" + }, + "value": { + "placeholder": "请输入值" + }, + "validity": { + "label": "优惠券有效期", + "to": "至", + "endTimeError": "结束时间必须晚于开始时间" + }, + "limitUse": { + "label": "最大使用次数", + "placeholder": "限制最大使用次数,留空则不限制", + "description": "设置优惠券的总使用次数限制,留空表示不限制使用次数" + }, + "limitUseWithUser": { + "label": "每个用户可使用次数", + "placeholder": "限制每个用户可使用次数,留空则不限制", + "description": "限制每个用户可使用该优惠券的次数,留空表示不限制单用户使用次数" + }, + "limitPeriod": { + "label": "指定周期", + "placeholder": "限制指定周期可以使用优惠,留空则不限制", + "description": "选择可以使用优惠券的订阅周期,留空表示不限制使用周期", + "empty": "没有找到匹配的周期" + }, + "limitPlan": { + "label": "指定订阅", + "placeholder": "限制指定订阅可以使用优惠,留空则不限制", + "empty": "没有找到匹配的订阅" + }, + "code": { + "label": "自定义优惠码", + "placeholder": "自定义优惠码,留空则自动生成", + "description": "可以自定义优惠码,留空则系统自动生成" + }, + "generateCount": { + "label": "批量生成数量", + "placeholder": "批量生成优惠码数量,留空则生成单个", + "description": "批量生成多个优惠码,留空则只生成单个优惠码" + }, + "submit": { + "saving": "保存中...", + "save": "保存" + }, + "error": { + "saveFailed": "保存优惠券失败" + } + } + }, + "notice": { + "title": "公告管理", + "description": "在这里可以配置公告,包括添加、删除、编辑等操作。", + "table": { + "columns": { + "id": "ID", + "show": "显示状态", + "title": "标题", + "actions": "操作" + }, + "toolbar": { + "search": "搜索公告标题...", + "reset": "重置", + "sort": { + "edit": "编辑排序", + "save": "保存排序" + } + }, + "actions": { + "edit": "编辑", + "delete": { + "title": "删除确认", + "description": "确定要删除该条公告吗?此操作无法撤销。", + "success": "删除成功" + } + } + }, + "form": { + "add": { + "title": "添加公告", + "button": "添加公告" + }, + "edit": { + "title": "编辑公告" + }, + "fields": { + "title": { + "label": "标题", + "placeholder": "请输入公告标题" + }, + "content": { + "label": "公告内容" + }, + "img_url": { + "label": "公告背景", + "placeholder": "请输入公告背景图片URL" + }, + "show": { + "label": "显示" + }, + "tags": { + "label": "节点标签", + "placeholder": "输入后回车添加标签" + } + }, + "buttons": { + "cancel": "取消", + "submit": "提交", + "success": "提交成功" + } + } + }, + "theme": { + "title": "主题配置", + "description": "主题配置,包括主题色、字体大小等。如果你采用前后分离的方式部署V2board,那么主题配置将不会生效。", + "upload": { + "button": "上传主题", + "title": "上传主题", + "description": "请上传一个有效的主题压缩包(.zip 格式)。主题包应包含完整的主题文件结构。", + "dragText": "将主题文件拖放到此处,或者", + "clickText": "点击选择", + "supportText": "支持 .zip 格式的主题包", + "uploading": "正在上传...", + "error": { + "format": "只支持上传 ZIP 格式的主题文件" + } + }, + "preview": { + "title": "主题预览", + "imageCount": "{{current}} / {{total}}" + }, + "card": { + "version": "版本: {{version}}", + "currentTheme": "当前主题", + "activateTheme": "激活主题", + "configureTheme": "主题设置", + "preview": "预览", + "delete": { + "title": "删除主题", + "description": "确定要删除该主题吗?删除后无法恢复。", + "button": "删除", + "error": { + "active": "不能删除当前使用的主题" + } + } + }, + "config": { + "title": "配置{{name}}主题", + "description": "修改主题的样式、布局和其他显示选项。", + "cancel": "取消", + "save": "保存", + "success": "保存成功" + } + }, + "ticket": { + "title": "工单管理", + "description": "在这里可以查看用户工单,包括查看、回复、关闭等操作。", + "columns": { + "id": "工单号", + "subject": "主题", + "level": "优先级", + "status": "状态", + "updated_at": "最后更新", + "created_at": "创建时间", + "actions": "操作" + }, + "status": { + "closed": "已关闭", + "replied": "已回复", + "pending": "待回复", + "processing": "处理中" + }, + "level": { + "low": "低", + "medium": "中", + "high": "高" + }, + "filter": { + "placeholder": "搜索{field}...", + "no_results": "未找到结果", + "selected": "已选择 {count} 项", + "clear": "清除筛选" + }, + "actions": { + "view_details": "查看详情", + "close_ticket": "关闭工单", + "close_confirm_title": "确认关闭工单", + "close_confirm_description": "关闭后将无法继续回复,是否确认关闭该工单?", + "close_confirm_button": "关闭工单", + "close_success": "工单已关闭", + "view_ticket": "查看工单" + }, + "detail": { + "no_messages": "暂无消息记录", + "created_at": "创建于", + "user_info": "用户信息", + "traffic_records": "流量记录", + "order_records": "订单记录", + "input": { + "closed_placeholder": "工单已关闭", + "reply_placeholder": "请输入回复内容...", + "sending": "发送中...", + "send": "发送" + } + } + }, + "server": { + "manage": { + "title": "节点管理", + "description": "管理所有节点,包括添加、删除、编辑等操作。" + }, + "columns": { + "sort": "排序", + "nodeId": "节点ID", + "show": "显隐", + "node": "节点", + "address": "地址", + "onlineUsers": { + "title": "在线人数", + "tooltip": "在线人数根据服务端上报频率而定" + }, + "rate": { + "title": "倍率", + "tooltip": "流量扣费倍率" + }, + "groups": { + "title": "权限组", + "tooltip": "可订阅到该节点的权限组", + "empty": "--" + }, + "type": "类型", + "actions": "操作", + "copyAddress": "复制连接地址", + "internalPort": "内部端口", + "status": { + "0": "未运行", + "1": "无人使用或异常", + "2": "运行正常" + }, + "actions_dropdown": { + "edit": "编辑", + "copy": "复制", + "delete": { + "title": "确认删除", + "description": "此操作将永久删除该节点,删除后无法恢复。确定要继续吗?", + "confirm": "删除" + }, + "copy_success": "复制成功", + "delete_success": "删除成功" + } + }, + "toolbar": { + "search": "搜索节点...", + "type": "类型", + "reset": "重置", + "sort": { + "tip": "拖拽节点进行排序,完成后点击保存", + "edit": "编辑排序", + "save": "保存排序" + } + }, + "form": { + "add_node": "添加节点", + "edit_node": "编辑节点", + "new_node": "新建节点", + "name": { + "label": "节点名称", + "placeholder": "请输入节点名称", + "error": "请输入有效的节点名称" + }, + "rate": { + "label": "倍率", + "error": "请输入有效的倍率" + }, + "code": { + "label": "自定义节点ID", + "optional": "(选填)", + "placeholder": "请输入自定义节点ID" + }, + "tags": { + "label": "节点标签", + "placeholder": "输入后回车添加标签" + }, + "groups": { + "label": "权限组", + "add": "添加权限组", + "placeholder": "请选择权限组", + "empty": "未找到结果" + }, + "host": { + "label": "节点地址", + "placeholder": "请输入节点域名或者IP" + }, + "port": { + "label": "连接端口", + "placeholder": "用户连接端口", + "tooltip": "用户实际连接使用的端口,这是客户端配置中需要填写的端口号。如果使用了中转或隧道,这个端口可能与服务器实际监听的端口不同。", + "sync": "同步到服务端口" + }, + "server_port": { + "label": "服务端口", + "placeholder": "服务端开放端口", + "tooltip": "服务器实际监听的端口,这是在服务器上开放的真实端口。如果使用了中转或隧道,这个端口可能与用户连接端口不同。" + }, + "parent": { + "label": "父节点", + "placeholder": "选择父节点", + "none": "无" + }, + "route": { + "label": "路由组", + "placeholder": "选择路由组", + "empty": "未找到结果" + }, + "submit": "提交", + "cancel": "取消", + "success": "提交成功" + }, + "dynamic_form": { + "shadowsocks": { + "cipher": { + "label": "加密算法", + "placeholder": "选择加密算法" + }, + "obfs": { + "label": "混淆", + "placeholder": "选择混淆方式", + "none": "无", + "http": "HTTP" + }, + "obfs_settings": { + "path": "路径", + "host": "Host" + } + }, + "vmess": { + "tls": { + "label": "TLS", + "placeholder": "请选择安全性", + "disabled": "不支持", + "enabled": "支持" + }, + "tls_settings": { + "server_name": { + "label": "服务器名称指示(SNI)", + "placeholder": "不使用请留空" + }, + "allow_insecure": "允许不安全?" + }, + "network": { + "label": "传输协议", + "placeholder": "选择传输协议" + } + }, + "trojan": { + "server_name": { + "label": "服务器名称指示(SNI)", + "placeholder": "当节点地址于证书不一致时用于证书验证" + }, + "allow_insecure": "允许不安全?", + "network": { + "label": "传输协议", + "placeholder": "选择传输协议" + } + }, + "hysteria": { + "version": { + "label": "协议版本", + "placeholder": "协议版本" + }, + "alpn": { + "label": "ALPN", + "placeholder": "ALPN" + }, + "obfs": { + "label": "混淆", + "type": { + "label": "混淆实现", + "placeholder": "选择混淆实现", + "salamander": "Salamander" + }, + "password": { + "label": "混淆密码", + "placeholder": "请输入混淆密码", + "generate_success": "混淆密码生成成功" + } + }, + "tls": { + "server_name": { + "label": "服务器名称指示(SNI)", + "placeholder": "当节点地址于证书不一致时用于证书验证" + }, + "allow_insecure": "允许不安全?" + }, + "bandwidth": { + "up": { + "label": "上行宽带", + "placeholder": "请输入上行宽带", + "suffix": "Mbps", + "bbr_tip": ",留空则使用BBR" + }, + "down": { + "label": "下行宽带", + "placeholder": "请输入下行宽带", + "suffix": "Mbps", + "bbr_tip": ",留空则使用BBR" + } + } + }, + "vless": { + "tls": { + "label": "安全性", + "placeholder": "请选择安全性", + "none": "无", + "tls": "TLS", + "reality": "Reality" + }, + "tls_settings": { + "server_name": { + "label": "服务器名称指示(SNI)", + "placeholder": "不使用请留空" + }, + "allow_insecure": "允许不安全?" + }, + "reality_settings": { + "server_name": { + "label": "伪装站点(dest)", + "placeholder": "例如:example.com" + }, + "server_port": { + "label": "端口(port)", + "placeholder": "例如:443" + }, + "allow_insecure": "允许不安全?", + "private_key": { + "label": "私钥(Private key)" + }, + "public_key": { + "label": "公钥(Public key)" + }, + "short_id": { + "label": "Short ID", + "placeholder": "可留空,长度为2的倍数,最长16位", + "description": "客户端可用的 shortId 列表,可用于区分不同的客户端,使用0-f的十六进制字符", + "generate": "生成 Short ID", + "success": "Short ID 生成成功" + }, + "key_pair": { + "generate": "生成密钥对", + "success": "密钥对生成成功", + "error": "生成密钥对失败" + } + }, + "network": { + "label": "传输协议", + "placeholder": "选择传输协议" + }, + "flow": { + "label": "流控", + "placeholder": "选择流控" + } + } + }, + "network_settings": { + "edit_protocol": "编辑协议", + "edit_protocol_config": "编辑协议配置", + "use_template": "使用{{template}}模板", + "json_config_placeholder": "请输入JSON配置", + "json_config_placeholder_with_template": "请输入JSON配置或选择上方模板", + "validation": { + "must_be_object": "配置必须是一个JSON对象", + "invalid_json": "无效的JSON格式" + }, + "errors": { + "save_failed": "保存时发生错误" + } + }, + "common": { + "cancel": "取消", + "confirm": "确定" + } + }, + "user": { + "manage": { + "title": "用户管理", + "description": "在这里可以管理用户,包括增加、删除、编辑、查询等操作。" + }, + "columns": { + "is_admin": "管理员", + "is_staff": "员工", + "id": "ID", + "email": "邮箱", + "online_count": "在线设备", + "status": "状态", + "subscription": "订阅", + "group": "权限组", + "used_traffic": "已用流量", + "total_traffic": "总流量", + "expire_time": "到期时间", + "balance": "余额", + "commission": "佣金", + "register_time": "注册时间", + "actions": "操作", + "device_limit": { + "unlimited": "无设备数限制", + "limited": "最多可同时在线 {{count}} 台设备" + }, + "status_text": { + "normal": "正常", + "banned": "封禁" + }, + "online_status": { + "online": "当前在线", + "never": "从未在线", + "last_online": "最后在线时间: {{time}}", + "offline_duration": { + "days": "离线时长: {{count}}天", + "hours": "离线时长: {{count}}小时", + "minutes": "离线时长: {{count}}分钟", + "seconds": "离线时长: {{count}}秒" + } + }, + "expire_status": { + "permanent": "长期有效", + "expired": "已过期 {{days}} 天", + "remaining": "剩余 {{days}} 天" + }, + "actions_menu": { + "edit": "编辑", + "assign_order": "分配订单", + "copy_url": "复制订阅URL", + "reset_secret": "重置UUID及订阅URL", + "orders": "TA的订单", + "invites": "TA的邀请", + "traffic_records": "TA的流量记录" + } + }, + "filter": { + "selected": "已选择 {{count}} 项", + "no_results": "未找到结果", + "clear": "清除筛选", + "search_placeholder": "搜索...", + "email_search": "搜索用户邮箱...", + "advanced": "高级筛选", + "reset": "重置筛选", + "sheet": { + "title": "高级筛选", + "description": "添加一个或多个筛选条件来精确查找用户", + "conditions": "筛选条件", + "add": "添加条件", + "condition": "条件 {{number}}", + "field": "选择字段", + "operator": "选择操作符", + "value": "输入值", + "value_number": "输入数值({{unit}})", + "reset": "重置", + "apply": "应用筛选" + }, + "fields": { + "email": "邮箱", + "id": "用户ID", + "plan_id": "订阅", + "transfer_enable": "流量", + "total_used": "已用流量", + "online_count": "在线设备", + "expired_at": "到期时间", + "uuid": "UUID", + "token": "Token", + "banned": "账号状态", + "remark": "备注", + "inviter_email": "邀请人邮箱", + "invite_user_id": "邀请人ID", + "is_admin": "管理员", + "is_staff": "员工" + }, + "operators": { + "contains": "包含", + "eq": "等于", + "gt": "大于", + "lt": "小于" + }, + "status": { + "normal": "正常", + "banned": "禁用" + }, + "boolean": { + "true": "是", + "false": "否" + } + }, + "generate": { + "button": "创建用户", + "title": "创建用户", + "form": { + "email": "邮箱", + "email_prefix": "帐号(批量生成请留空)", + "email_domain": "域", + "password": "密码", + "password_placeholder": "留空则密码与邮件相同", + "expire_time": "到期时间", + "expire_time_placeholder": "请选择用户到期日期,留空为长期有效", + "permanent": "长期有效", + "subscription": "订阅计划", + "subscription_none": "无", + "generate_count": "生成数量", + "generate_count_placeholder": "如果为批量生产请输入生成数量", + "cancel": "取消", + "submit": "生成", + "success": "生成成功" + } + }, + "edit": { + "button": "编辑用户信息", + "title": "用户管理", + "form": { + "email": "邮箱", + "email_placeholder": "请输入邮箱", + "inviter_email": "邀请人邮箱", + "inviter_email_placeholder": "请输入邮箱", + "password": "密码", + "password_placeholder": "如需修改密码请输入", + "balance": "余额", + "balance_placeholder": "请输入余额", + "commission_balance": "佣金余额", + "commission_balance_placeholder": "请输入佣金余额", + "upload": "已用上行", + "upload_placeholder": "已用上行", + "download": "已用下行", + "download_placeholder": "已用下行", + "total_traffic": "流量", + "total_traffic_placeholder": "请输入流量", + "expire_time": "到期时间", + "expire_time_placeholder": "请选择用户到期日期,留空为长期有效", + "expire_time_specific": "具体时间", + "expire_time_today": "设为当天结束", + "expire_time_permanent": "长期有效", + "expire_time_1month": "一个月", + "expire_time_3months": "三个月", + "expire_time_confirm": "确定", + "subscription": "订阅计划", + "subscription_none": "无", + "account_status": "账户状态", + "commission_type": "佣金类型", + "commission_type_system": "跟随系统设置", + "commission_type_cycle": "循环返利", + "commission_type_onetime": "首次返利", + "commission_rate": "推荐返利比例", + "commission_rate_placeholder": "为空则跟随站点设置返利比例", + "discount": "专享折扣比例", + "discount_placeholder": "为空则不享受专享折扣", + "speed_limit": "限速", + "speed_limit_placeholder": "留空则不限速", + "device_limit": "设备限制", + "device_limit_placeholder": "留空则不限制", + "is_admin": "是否管理员", + "is_staff": "是否员工", + "remarks": "备注", + "remarks_placeholder": "请在这里记录", + "cancel": "取消", + "submit": "提交", + "success": "修改成功" + } + } + }, + "subscribe": { + "plan": { + "title": "订阅套餐", + "add": "添加套餐", + "search": "搜索套餐...", + "sort": { + "edit": "编辑排序", + "save": "保存排序" + }, + "columns": { + "id": "ID", + "show": "显示", + "sell": "新购", + "renew": "续费", + "renew_tooltip": "在订阅停止销售时,已购用户是否可以续费", + "name": "名称", + "stats": "统计", + "group": "权限组", + "price": "价格", + "actions": "操作", + "edit": "编辑", + "delete": "删除", + "delete_confirm": { + "title": "确认删除", + "description": "此操作将永久删除该订阅,删除后无法恢复。确定要继续吗?", + "success": "删除成功" + }, + "price_period": { + "monthly": "月付", + "quarterly": "季付", + "half_yearly": "半年付", + "yearly": "年付", + "two_yearly": "两年付", + "three_yearly": "三年付", + "onetime": "流量包", + "reset_traffic": "重置包", + "unit": { + "month": "元/月", + "quarter": "元/季", + "half_year": "元/半年", + "year": "元/年", + "two_year": "元/两年", + "three_year": "元/三年", + "times": "元/次" + } + } + }, + "form": { + "add_title": "添加套餐", + "edit_title": "编辑套餐", + "name": { + "label": "套餐名称", + "placeholder": "请输入套餐名称" + }, + "group": { + "label": "服务器分组", + "add": "添加分组", + "placeholder": "请选择服务器分组" + }, + "transfer": { + "label": "流量", + "placeholder": "请输入流量限制", + "unit": "GB" + }, + "speed": { + "label": "速度限制", + "placeholder": "请输入速度限制", + "unit": "Mbps" + }, + "price": { + "title": "价格设置", + "base_price": "基础价格", + "clear": { + "button": "清空", + "tooltip": "清空所有价格" + }, + "period": { + "monthly": "每月", + "months": "{{count}}个月" + }, + "onetime_desc": "一次性流量包,无时间限制", + "reset_desc": "重置流量包,可多次使用" + }, + "device": { + "label": "设备限制", + "placeholder": "请输入设备限制", + "unit": "台设备" + }, + "capacity": { + "label": "容量限制", + "placeholder": "请输入容量限制", + "unit": "个用户" + }, + "reset_method": { + "label": "流量重置方式", + "placeholder": "请选择重置方式", + "description": "流量重置方式将决定如何重置流量", + "options": { + "follow_system": "跟随系统设置", + "monthly_first": "每月首日", + "monthly_reset": "每月购买日", + "no_reset": "不重置", + "yearly_first": "每年首日", + "yearly_reset": "每年购买日" + } + }, + "content": { + "label": "套餐说明", + "placeholder": "请输入套餐说明", + "description": "支持 Markdown 格式", + "preview": "预览", + "preview_button": { + "show": "显示预览", + "hide": "隐藏预览" + }, + "template": { + "button": "使用模板", + "tooltip": "使用默认模板", + "content": "## 套餐特点\n\n- 流量:{{transfer}} GB\n- 速度:{{speed}} Mbps\n- 设备数:{{devices}}\n\n## 使用说明\n\n1. 套餐有效期 {{validity}} 天\n2. 流量{{reset_method}}重置\n3. 最多支持 {{capacity}} 个用户同时在线" + } + }, + "force_update": { + "label": "强制更新用户套餐" + }, + "submit": { + "cancel": "取消", + "submit": "提交", + "submitting": "提交中...", + "success": { + "add": "套餐添加成功", + "update": "套餐更新成功" + } + } + }, + "page": { + "description": "在这里可以配置订阅计划,包括添加、删除、编辑等操作。" + } + } + }, + "auth": { + "signIn": { + "title": "登录", + "description": "请输入您的邮箱和密码登录系统", + "email": "邮箱地址", + "emailPlaceholder": "name@example.com", + "password": "密码", + "passwordPlaceholder": "请输入密码", + "forgotPassword": "忘记密码?", + "submit": "登录", + "rememberMe": "记住我", + "resetPassword": { + "title": "重置密码", + "description": "在站点目录下执行以下命令找回密码", + "command": "php artisan reset:password 管理员邮箱" + }, + "validation": { + "emailRequired": "请输入邮箱地址", + "emailInvalid": "邮箱地址格式不正确", + "passwordRequired": "请输入密码", + "passwordLength": "密码长度至少为7个字符" + } + } + }, + "sidebar": { + "dashboard": "仪表盘", + "systemManagement": "系统管理", + "systemConfig": "系统配置", + "pluginManagement": "插件管理", + "themeConfig": "主题配置", + "noticeManagement": "公告管理", + "paymentConfig": "支付配置", + "knowledgeManagement": "知识库管理", + "nodeManagement": "节点管理", + "permissionGroupManagement": "权限组管理", + "routeManagement": "路由管理", + "subscriptionManagement": "订阅管理", + "planManagement": "套餐管理", + "orderManagement": "订单管理", + "couponManagement": "优惠券管理", + "userManagement": "用户管理", + "ticketManagement": "工单管理" + } +}; \ No newline at end of file diff --git a/public/assets/admin/theme/black.css b/public/assets/admin/theme/black.css deleted file mode 100644 index 8935165..0000000 --- a/public/assets/admin/theme/black.css +++ /dev/null @@ -1,4 +0,0 @@ -body{color:#495057;background-color:#f5f5f5}a{color:#0665d0}a.link-fx::before{background-color:#0665d0}a:hover{color:#03356d}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#212529}.content-heading{border-bottom-color:#ebebeb}hr{border-top-color:#ebebeb}.text-primary{color:#343a40!important}a.text-primary.link-fx::before{background-color:#343a40}a.text-primary:focus,a.text-primary:hover{color:#060708!important}.text-primary-dark{color:#1d2124!important}a.text-primary-dark.link-fx::before{background-color:#1d2124}a.text-primary-dark:focus,a.text-primary-dark:hover{color:#000!important}.text-primary-darker{color:#060708!important}a.text-primary-darker.link-fx::before{background-color:#060708}a.text-primary-darker:focus,a.text-primary-darker:hover{color:#000!important}.text-primary-light{color:#6d7a86!important}a.text-primary-light.link-fx::before{background-color:#6d7a86}a.text-primary-light:focus,a.text-primary-light:hover{color:#3f474e!important}.text-primary-lighter{color:#b2bac1!important}a.text-primary-lighter.link-fx::before{background-color:#b2bac1}a.text-primary-lighter:focus,a.text-primary-lighter:hover{color:#7a8793!important}.text-body-bg{color:#f5f5f5!important}a.text-body-bg.link-fx::before{background-color:#f5f5f5}a.text-body-bg:focus,a.text-body-bg:hover{color:#c2c2c2!important}.text-body-bg-light{color:#fafafa!important}a.text-body-bg-light.link-fx::before{background-color:#fafafa}a.text-body-bg-light:focus,a.text-body-bg-light:hover{color:#c7c7c7!important}.text-body-bg-dark{color:#ebebeb!important}a.text-body-bg-dark.link-fx::before{background-color:#ebebeb}a.text-body-bg-dark:focus,a.text-body-bg-dark:hover{color:#b8b8b8!important}.text-body-color{color:#495057!important}a.text-body-color.link-fx::before{background-color:#495057}a.text-body-color:focus,a.text-body-color:hover{color:#1a1d20!important}.text-body-color-dark{color:#212529!important}a.text-body-color-dark.link-fx::before{background-color:#212529}a.text-body-color-dark:focus,a.text-body-color-dark:hover{color:#000!important}.text-body-color-light{color:#ebebeb!important}a.text-body-color-light.link-fx::before{background-color:#ebebeb}a.text-body-color-light:focus,a.text-body-color-light:hover{color:#b8b8b8!important}.text-dual{color:#1d2124!important}a.text-dual.link-fx::before{background-color:#1d2124}a.text-dual:focus,a.text-dual:hover{color:#000!important}.page-header-dark #page-header .text-dual,.sidebar-dark #sidebar .text-dual{color:#ebebeb!important}.page-header-dark #page-header a.text-dual.link-fx::before,.sidebar-dark #sidebar a.text-dual.link-fx::before{background-color:#ebebeb}.page-header-dark #page-header a.text-dual:focus,.page-header-dark #page-header a.text-dual:hover,.sidebar-dark #sidebar a.text-dual:focus,.sidebar-dark #sidebar a.text-dual:hover{color:#b8b8b8!important}.bg-primary{background-color:#343a40!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#1d2124!important}.bg-primary-op{background-color:rgba(52,58,64,.75)!important}a.bg-primary-op:focus,a.bg-primary-op:hover,button.bg-primary-op:focus,button.bg-primary-op:hover{background-color:rgba(29,33,36,.75)!important}.bg-primary-dark{background-color:#1d2124!important}a.bg-primary-dark:focus,a.bg-primary-dark:hover,button.bg-primary-dark:focus,button.bg-primary-dark:hover{background-color:#060708!important}.bg-primary-dark-op{background-color:rgba(29,33,36,.8)!important}a.bg-primary-dark-op:focus,a.bg-primary-dark-op:hover,button.bg-primary-dark-op:focus,button.bg-primary-dark-op:hover{background-color:rgba(6,7,8,.8)!important}.bg-primary-darker{background-color:#060708!important}a.bg-primary-darker:focus,a.bg-primary-darker:hover,button.bg-primary-darker:focus,button.bg-primary-darker:hover{background-color:#000!important}.bg-primary-light{background-color:#6d7a86!important}a.bg-primary-light:focus,a.bg-primary-light:hover,button.bg-primary-light:focus,button.bg-primary-light:hover{background-color:#56606a!important}.bg-primary-lighter{background-color:#b2bac1!important}a.bg-primary-lighter:focus,a.bg-primary-lighter:hover,button.bg-primary-lighter:focus,button.bg-primary-lighter:hover{background-color:#96a0aa!important}.bg-body{background-color:#f5f5f5!important}a.bg-body:focus,a.bg-body:hover,button.bg-body:focus,button.bg-body:hover{background-color:#dcdcdc!important}.bg-body-light{background-color:#fafafa!important}a.bg-body-light:focus,a.bg-body-light:hover,button.bg-body-light:focus,button.bg-body-light:hover{background-color:#e1e1e1!important}.bg-body-dark{background-color:#ebebeb!important}a.bg-body-dark:focus,a.bg-body-dark:hover,button.bg-body-dark:focus,button.bg-body-dark:hover{background-color:#d1d1d1!important}.bg-header-light{background-color:#fff!important}a.bg-header-light:focus,a.bg-header-light:hover,button.bg-header-light:focus,button.bg-header-light:hover{background-color:#e6e6e6!important}.bg-header-dark{background-color:#343a40!important}a.bg-header-dark:focus,a.bg-header-dark:hover,button.bg-header-dark:focus,button.bg-header-dark:hover{background-color:#1d2124!important}.bg-sidebar-light{background-color:#fff!important}a.bg-sidebar-light:focus,a.bg-sidebar-light:hover,button.bg-sidebar-light:focus,button.bg-sidebar-light:hover{background-color:#e6e6e6!important}.bg-sidebar-dark{background-color:#35393e!important}a.bg-sidebar-dark:focus,a.bg-sidebar-dark:hover,button.bg-sidebar-dark:focus,button.bg-sidebar-dark:hover{background-color:#1d2023!important}.bg-gd-primary{background:#343a40 linear-gradient(135deg,#343a40 0,#56606a 100%)!important}.btn-link{color:#0665d0}.btn-link:hover{color:#03356d}.btn-primary{color:#fff;background-color:#343a40;border-color:#343a40}.btn-primary:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#343a40;border-color:#343a40}.btn-outline-primary:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#343a40;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-alt-primary{color:#060708;background-color:#c0c6cc;border-color:#c0c6cc}.btn-alt-primary:hover{color:#060708;background-color:#abb3bb;border-color:#abb3bb}.btn-alt-primary.focus,.btn-alt-primary:focus{color:#060708;background-color:#abb3bb;border-color:#abb3bb;box-shadow:0 0 0 .2rem rgba(159,168,177,.25)}.btn-alt-primary.disabled,.btn-alt-primary:disabled{color:#fff;background-color:#c0c6cc;border-color:#c0c6cc}.btn-alt-primary:not(:disabled):not(.disabled).active,.btn-alt-primary:not(:disabled):not(.disabled):active,.show>.btn-alt-primary.dropdown-toggle{color:#000;background-color:#9fa8b1;border-color:#9fa8b1}.btn-alt-primary:not(:disabled):not(.disabled).active:focus,.btn-alt-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(159,168,177,.25)}.btn-alt-secondary{color:#495057;background-color:#f5f5f5;border-color:#f5f5f5}.btn-alt-secondary:hover{color:#495057;background-color:#e2e2e2;border-color:#e2e2e2}.btn-alt-secondary.focus,.btn-alt-secondary:focus{color:#495057;background-color:#e2e2e2;border-color:#e2e2e2;box-shadow:0 0 0 .2rem rgba(214,214,214,.25)}.btn-alt-secondary.disabled,.btn-alt-secondary:disabled{color:#212529;background-color:#f5f5f5;border-color:#f5f5f5}.btn-alt-secondary:not(:disabled):not(.disabled).active,.btn-alt-secondary:not(:disabled):not(.disabled):active,.show>.btn-alt-secondary.dropdown-toggle{color:#262a2d;background-color:#d6d6d6;border-color:#d6d6d6}.btn-alt-secondary:not(:disabled):not(.disabled).active:focus,.btn-alt-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(214,214,214,.25)}.btn-hero-primary{color:#fff;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#343a40;border:none;box-shadow:0 .125rem .75rem rgba(18,20,22,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .12s ease-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out,-webkit-transform .12s ease-out}.btn-hero-primary:hover{color:#fff;background-color:#4b545c;box-shadow:0 .375rem .75rem rgba(18,20,22,.4);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.btn-hero-primary.focus,.btn-hero-primary:focus{color:#fff;background-color:#4b545c;box-shadow:0 .125rem .75rem rgba(18,20,22,.25)}.btn-hero-primary.disabled,.btn-hero-primary:disabled{color:#fff;background-color:#343a40;box-shadow:0 .125rem .75rem rgba(18,20,22,.25);-webkit-transform:translateY(0);transform:translateY(0)}.btn-hero-primary:not(:disabled):not(.disabled).active,.btn-hero-primary:not(:disabled):not(.disabled):active,.show>.btn-hero-primary.dropdown-toggle{color:#fff;background-color:#121416;box-shadow:0 .125rem .75rem rgba(18,20,22,.25);-webkit-transform:translateY(0);transform:translateY(0)}.btn-hero-primary:not(:disabled):not(.disabled).active:focus,.btn-hero-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-primary.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(18,20,22,.25)}.btn-hero-lg{padding:.875rem 2.25rem;font-size:.875rem;line-height:1.5;border-radius:.25rem}.btn-hero-sm{padding:.375rem 1.25rem;font-size:.875rem;line-height:1.5;border-radius:.25rem}.btn-dual{color:#16181a;background-color:transparent;border-color:transparent}.btn-dual.focus,.btn-dual:focus,.btn-dual:hover{color:#16181a;background-color:#dcdcdc;border-color:#dcdcdc;box-shadow:none}.btn-dual.disabled,.btn-dual:disabled{background-color:transparent;border-color:transparent}.btn-dual.active,.btn-dual:active{color:#16181a;background-color:transparent;border-color:transparent}.btn-dual:not(:disabled):not(.disabled).active,.btn-dual:not(:disabled):not(.disabled):active,.show>.btn-dual.dropdown-toggle{color:#16181a;background-color:#dcdcdc;border-color:#dcdcdc}.page-header-dark #page-header .btn-dual,.sidebar-dark #sidebar .btn-dual{color:#fff;background-color:transparent;border-color:transparent}.page-header-dark #page-header .btn-dual.focus,.page-header-dark #page-header .btn-dual:focus,.page-header-dark #page-header .btn-dual:hover,.sidebar-dark #sidebar .btn-dual.focus,.sidebar-dark #sidebar .btn-dual:focus,.sidebar-dark #sidebar .btn-dual:hover{color:#fff;background-color:#1d2124;border-color:#1d2124;box-shadow:none}.page-header-dark #page-header .btn-dual.disabled,.page-header-dark #page-header .btn-dual:disabled,.sidebar-dark #sidebar .btn-dual.disabled,.sidebar-dark #sidebar .btn-dual:disabled{background-color:transparent;border-color:transparent}.page-header-dark #page-header .btn-dual.active,.page-header-dark #page-header .btn-dual:active,.sidebar-dark #sidebar .btn-dual.active,.sidebar-dark #sidebar .btn-dual:active{color:#fff;background-color:transparent;border-color:transparent}.page-header-dark #page-header .btn-dual:not(:disabled):not(.disabled).active,.page-header-dark #page-header .btn-dual:not(:disabled):not(.disabled):active,.show>.page-header-dark #page-header .btn-dual.dropdown-toggle,.show>.sidebar-dark #sidebar .btn-dual.dropdown-toggle,.sidebar-dark #sidebar .btn-dual:not(:disabled):not(.disabled).active,.sidebar-dark #sidebar .btn-dual:not(:disabled):not(.disabled):active{color:#fff;background-color:#1d2124;border-color:#1d2124}.alert-primary{color:#1d2124;background-color:#b2bac1;border-color:#b2bac1}.alert-primary hr{border-top-color:#a4adb5}.alert-primary .alert-link{color:#060708}.badge-primary{color:#fff;background-color:#343a40}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#1d2124}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.progress-bar{background-color:#343a40}.nav-link{color:#495057}.nav-link:focus,.nav-link:hover{color:#343a40}.nav-pills .nav-link:focus,.nav-pills .nav-link:hover{background-color:#f5f5f5}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:#343a40}.nav-tabs{border-bottom-color:#ebebeb}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#ebebeb #ebebeb #ebebeb}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{border-color:#ebebeb #ebebeb #fff}.nav-tabs-block{background-color:#fafafa}.nav-tabs-block .nav-link{border-color:transparent}.nav-tabs-block .nav-link:focus,.nav-tabs-block .nav-link:hover{color:#343a40;background-color:#f5f5f5;border-color:transparent}.nav-tabs-block .nav-item.show .nav-link,.nav-tabs-block .nav-link.active{color:#495057;background-color:#fff;border-color:transparent}.nav-tabs-alt{border-bottom-color:#ebebeb}.nav-tabs-alt .nav-link{background-color:transparent;border-color:transparent}.nav-tabs-alt .nav-link:focus,.nav-tabs-alt .nav-link:hover{color:#343a40;background-color:transparent;border-color:transparent;box-shadow:inset 0 -3px #343a40}.nav-tabs-alt .nav-item.show .nav-link,.nav-tabs-alt .nav-link.active{color:#495057;background-color:transparent;border-color:transparent;box-shadow:inset 0 -3px #343a40}.nav-items a{border-bottom-color:#f5f5f5}.nav-items a:hover{background-color:#fafafa}.nav-items a:active{background-color:#f5f5f5}.nav-items>li:last-child>a{border-bottom:none}.page-item.active .page-link{background-color:#343a40;border-color:#343a40}.page-link{color:#495057;background-color:#f5f5f5;border-color:#f5f5f5}.page-link:hover{color:#495057;background-color:#d1d1d1;border-color:#d1d1d1}.page-link:focus{background-color:#ebebeb;border-color:#ebebeb}.list-group-item-action{color:#495057}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;background-color:#fafafa}.list-group-item-action:active{color:#495057;background-color:#ebebeb}.list-group-item{border-color:#ebebeb}.list-group-item.active{color:#fff;background-color:#343a40;border-color:#343a40}.popover{border-color:#ebebeb}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{border-top-color:#ebebeb}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{border-top-color:#fff}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{border-right-color:#ebebeb}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{border-right-color:#fff}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{border-bottom-color:#ebebeb}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{border-bottom-color:#fff}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{border-left-color:#ebebeb}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{border-left-color:#fff}.modal-header{border-bottom-color:#ebebeb}.modal-footer{border-top-color:#ebebeb}.dropdown-menu{border-color:#ebebeb}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #f5f5f5}.dropdown-item{color:#495057}.dropdown-item:focus,.dropdown-item:hover{color:#212529;background-color:#f5f5f5}.dropdown-item.active,.dropdown-item:active{color:#fff;background-color:#343a40}.dropdown-header{color:#212529}.table td,.table th{border-top-color:#ebebeb}.table thead th{border-bottom-color:#ebebeb}.table tbody+tbody{border-top-color:#ebebeb}.table-bordered,.table-bordered td,.table-bordered th{border-color:#ebebeb}.table-striped tbody tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover tbody tr:hover{background-color:#f1f1f1}.table-active,.table-active>td,.table-active>th{background-color:#f1f1f1}.table-hover .table-active:hover{background-color:#e4e4e4}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#e4e4e4}.table-primary,.table-primary>td,.table-primary>th{background-color:#b2bac1}.table-hover .table-primary:hover{background-color:#a4adb5}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a4adb5}.table .thead-dark th{background-color:#1d2124;border-color:#1d2124}.table .thead-light th{background-color:#ebebeb;border-color:#ebebeb}.form-control{color:#495057;background-color:#fff;border-color:#e1e1e1}.form-control:focus{color:#212529;background-color:#fff;border-color:#6d7a86;box-shadow:0 0 0 .2rem rgba(52,58,64,.25)}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.custom-control-primary .custom-control-input:checked~.custom-control-label::before{background-color:#343a40}.custom-control-primary .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(52,58,64,.25)}.custom-control-primary .custom-control-input:not(:disabled):active~.custom-control-label::before{background-color:#626d78}.custom-control-primary .custom-control-label::before{background-color:#ebebeb}.custom-control-primary.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#343a40}.custom-control-primary.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#343a40}.custom-control-primary.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#343a40}.custom-control-primary.custom-block .custom-block-indicator{background-color:#343a40}.custom-control-primary.custom-block .custom-control-input:checked~.custom-control-label{background-color:#ebebeb;border-color:#343a40}.custom-control-primary.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .75rem rgba(52,58,64,.25)}.custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#343a40}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(52,58,64,.25)}.custom-control-input:not(:disabled):active~.custom-control-label::before{background-color:#b2bac1}.custom-select{border-color:#e1e1e1}.custom-select:focus{border-color:#6d7a86;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .2rem rgba(109,122,134,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-file-input:focus~.custom-file-label{border-color:#6d7a86;box-shadow:0 0 0 .2rem rgba(52,58,64,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#6d7a86}.custom-file-label{color:#495057;background-color:#fff;border-color:#e1e1e1}.custom-file-label::after{color:#495057;background-color:#ebebeb;border-left-color:#e1e1e1}.valid-feedback{display:none;width:100%;margin-top:.5rem;font-size:.875rem;color:#82b54b}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .75rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(130,181,75,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#82b54b}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#82b54b}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#82b54b}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#82b54b}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#82b54b}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#9bc46f;background-color:#9bc46f}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#82b54b}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#82b54b}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.invalid-feedback{display:none;width:100%;margin-top:.5rem;font-size:.875rem;color:#e04f1a}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .75rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(224,79,26,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#e04f1a}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#e04f1a}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#e04f1a}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#e04f1a}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#e04f1a}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e97044;background-color:#e97044}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#e04f1a}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#e04f1a}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.form-control.form-control-alt{border-color:#f5f5f5;background-color:#f5f5f5}.form-control.form-control-alt:focus{border-color:#ebebeb;background-color:#ebebeb;box-shadow:none}.form-control.form-control-alt.is-valid{border-color:#e4efd8;background-color:#e4efd8}.form-control.form-control-alt.is-valid:focus{border-color:#d7e8c6;background-color:#d7e8c6}.form-control.form-control-alt.is-invalid{border-color:#fdf1ed;background-color:#fdf1ed}.form-control.form-control-alt.is-invalid:focus{border-color:#fbe7df;background-color:#fbe7df}.input-group-text{color:#495057;background-color:#f5f5f5;border-color:#e1e1e1}.input-group-text.input-group-text-alt{background-color:#ebebeb;border-color:#ebebeb}.border{border-color:#ebebeb!important}.border-top{border-top-color:#ebebeb!important}.border-right{border-right-color:#ebebeb!important}.border-bottom{border-bottom-color:#ebebeb!important}.border-left{border-left-color:#ebebeb!important}.border-primary-light{border-color:#2a8bf9!important}.border-primary-lighter{border-color:#74b3fb!important}.border-primary-dark{border-color:#054d9e!important}.border-primary-darker{border-color:#022954!important}.border-success-light{border-color:#bed9a2!important}.border-info-light{border-color:#a5ccf0!important}.border-warning-light{border-color:#ffdb93!important}.border-danger-light{border-color:#f1a184!important}.border-primary{border-color:#0665d0!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#82b54b!important}.border-info{border-color:#3c90df!important}.border-warning{border-color:#ffb119!important}.border-danger{border-color:#e04f1a!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-primary{border-color:#343a40!important}.border-white{border-color:#fff!important}.border-white-op{border-color:rgba(255,255,255,.1)!important}.border-black-op{border-color:rgba(0,0,0,.1)!important}#page-header{background-color:#fff}#sidebar{background-color:#fff}#side-overlay{background-color:#fff}#page-container.page-header-dark #page-header{color:#d6d6d6;background-color:#343a40}#page-container.page-header-glass #page-header{background-color:transparent}#page-container.page-header-glass.page-header-fixed.page-header-scroll #page-header{background-color:#fff}#page-container.page-header-glass.page-header-fixed.page-header-scroll.page-header-dark #page-header{background-color:#343a40}#page-container.sidebar-dark #sidebar{color:#ebebeb;background-color:#35393e}.block{box-shadow:0 2px 6px rgba(235,235,235,.4)}.block-header-default{background-color:#fafafa}.block.block-bordered{border-color:#ebebeb}.block.block-themed>.block-header{background-color:#343a40}.block.block-mode-loading::after{color:#1d2124;box-shadow:0 0 .75rem .75rem rgba(29,33,36,.05)}.block.block-mode-loading.block-mode-hidden::after{box-shadow:0 0 .5rem .5rem rgba(29,33,36,.05)}.block.block-mode-loading.block-mode-loading-dark::after{background-color:#1d2124}a.block{color:#495057}a.block:hover{color:#495057}a.block.block-link-pop:hover{box-shadow:0 .5rem 2rem #e1e1e1}a.block.block-link-pop:active{box-shadow:0 .25rem .75rem #f2f2f2}a.block.block-link-shadow:hover{box-shadow:0 0 2.25rem #e1e1e1}a.block.block-link-shadow:active{box-shadow:0 0 1.125rem #ebebeb}.block.block-fx-shadow{box-shadow:0 0 2.25rem #e1e1e1}.block.block-fx-pop{box-shadow:0 .5rem 2rem #e1e1e1}.btn-block-option{color:#343a40}.btn-block-option:hover{color:#6d7a86}.active>a.btn-block-option,.show>button.btn-block-option,a.btn-block-option:focus{color:#6d7a86}.btn-block-option:active{color:#b2bac1}#page-loader{background-color:#343a40}.nav-main-heading{color:#869099}.nav-main-link{color:#495057}.nav-main-link .nav-main-link-icon{color:#6d7a86}.nav-main-link.active,.nav-main-link:hover{color:#000;background-color:#e9ecef}.nav-main-submenu{background-color:#f8f9fa}.nav-main-submenu .nav-main-link{color:rgba(73,80,87,.75)}.nav-main-submenu .nav-main-link.active,.nav-main-submenu .nav-main-link:hover{color:#000;background-color:transparent}.nav-main-item.open>.nav-main-link-submenu{color:#000;background-color:#e9ecef}.nav-main-submenu .nav-main-item.open .nav-main-link{background-color:transparent}@media (min-width:992px){.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu{color:#000;background-color:#e9ecef}}.nav-main-dark .nav-main-heading,.page-header-dark #page-header .nav-main-heading,.sidebar-dark #sidebar .nav-main-heading{color:#b8b8b8}.nav-main-dark .nav-main-link,.page-header-dark #page-header .nav-main-link,.sidebar-dark #sidebar .nav-main-link{color:#ebebeb}.nav-main-dark .nav-main-link>.nav-main-link-icon,.page-header-dark #page-header .nav-main-link>.nav-main-link-icon,.sidebar-dark #sidebar .nav-main-link>.nav-main-link-icon{color:#b2bac1}.nav-main-dark .nav-main-link.active,.nav-main-dark .nav-main-link:hover,.page-header-dark #page-header .nav-main-link.active,.page-header-dark #page-header .nav-main-link:hover,.sidebar-dark #sidebar .nav-main-link.active,.sidebar-dark #sidebar .nav-main-link:hover{color:#fff;background-color:#1d2023}.nav-main-dark .nav-main-submenu,.page-header-dark #page-header .nav-main-submenu,.sidebar-dark #sidebar .nav-main-submenu{background-color:#292c30}.nav-main-dark .nav-main-submenu .nav-main-link,.page-header-dark #page-header .nav-main-submenu .nav-main-link,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link{color:rgba(235,235,235,.75)}.nav-main-dark .nav-main-submenu .nav-main-link.active,.nav-main-dark .nav-main-submenu .nav-main-link:hover,.page-header-dark #page-header .nav-main-submenu .nav-main-link.active,.page-header-dark #page-header .nav-main-submenu .nav-main-link:hover,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link.active,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link:hover{color:#fff;background-color:transparent}.nav-main-dark .nav-main-item.open>.nav-main-link-submenu,.page-header-dark #page-header .nav-main-item.open>.nav-main-link-submenu,.sidebar-dark #sidebar .nav-main-item.open>.nav-main-link-submenu{color:#fff;background-color:#1d2023}.nav-main-dark .nav-main-item.open>.nav-main-submenu,.page-header-dark #page-header .nav-main-item.open>.nav-main-submenu,.sidebar-dark #sidebar .nav-main-item.open>.nav-main-submenu{background-color:#292c30}.nav-main-dark .nav-main-submenu .nav-main-item.open .nav-main-link,.page-header-dark #page-header .nav-main-submenu .nav-main-item.open .nav-main-link,.sidebar-dark #sidebar .nav-main-submenu .nav-main-item.open .nav-main-link{background-color:transparent}@media (min-width:992px){.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu{color:#fff;background-color:#1d2023}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu{background-color:#292c30}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link{background-color:transparent}}.nav-items a{border-bottom-color:#f5f5f5}.nav-items a:hover{background-color:#fafafa}.list-activity>li{border-bottom-color:#f5f5f5}.timeline-event-icon{box-shadow:0 .375rem 1.5rem #e1e1e1}.ribbon-light .ribbon-box{color:#495057;background-color:#ebebeb}.ribbon-light.ribbon-bookmark .ribbon-box::before{border-color:#ebebeb;border-left-color:transparent}.ribbon-light.ribbon-bookmark.ribbon-left .ribbon-box::before{border-color:#ebebeb;border-right-color:transparent}.ribbon-primary .ribbon-box{color:#fff;background-color:#343a40}.ribbon-primary.ribbon-bookmark .ribbon-box::before{border-color:#343a40;border-left-color:transparent}.ribbon-primary.ribbon-bookmark.ribbon-left .ribbon-box::before{border-color:#343a40;border-right-color:transparent}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:active,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:focus,.datepicker table tr td span.active:hover:hover,.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:focus,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active:active,.datepicker table tr td.active:focus,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:focus,.datepicker table tr td.active:hover:hover,.open .dropdown-toggle.datepicker table tr td span.active,.open .dropdown-toggle.datepicker table tr td span.active.disabled,.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td span.active:hover,.open .dropdown-toggle.datepicker table tr td.active,.open .dropdown-toggle.datepicker table tr td.active.disabled,.open .dropdown-toggle.datepicker table tr td.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td.active:hover{background-color:#343a40;border-color:#343a40}.cke_chrome{border-color:#ebebeb!important}.cke_top{border-bottom-color:#ebebeb!important;background:#fafafa!important}.cke_bottom{border-top-color:#ebebeb!important;background:#fafafa!important}.dropzone{background-color:#fafafa;border-color:#e1e1e1}.dropzone .dz-message{color:#495057}.dropzone:hover{background-color:#fff;border-color:#343a40}.dropzone:hover .dz-message{color:#343a40}.fc-bootstrap4 a.fc-event:not([href]):not([tabindex]){color:#212529}.fc-bootstrap4 .fc-event{color:#212529}.fc-bootstrap4 .fc-event:hover{color:#495057}.fc-bootstrap4 thead th.fc-day-header{background-color:#fafafa}.fc-bootstrap4 .fc-content,.fc-bootstrap4 .fc-divider,.fc-bootstrap4 .fc-list-heading td,.fc-bootstrap4 .fc-list-table.table,.fc-bootstrap4 .fc-list-view,.fc-bootstrap4 .fc-popover,.fc-bootstrap4 .fc-row,.fc-bootstrap4 tbody,.fc-bootstrap4 td,.fc-bootstrap4 th,.fc-bootstrap4 thead{border-color:#ebebeb}.fc-bootstrap4 .fc-divider,.fc-bootstrap4 .fc-list-heading td,.fc-bootstrap4 .fc-popover .fc-header{background:#f5f5f5}.fc-bootstrap4 .fc-today{background:#fafafa}.irs.irs--round .irs-grid-pol,.irs.irs--round .irs-line,.irs.irs--round .irs-max,.irs.irs--round .irs-min{background:#f5f5f5}.irs.irs--round .irs-handle{border-color:#343a40}.irs.irs--round .irs-from:before,.irs.irs--round .irs-single:before,.irs.irs--round .irs-to:before{border-top-color:#343a40}.irs.irs--round .irs-bar,.irs.irs--round .irs-from,.irs.irs--round .irs-single,.irs.irs--round .irs-to{background:#343a40}.select2-container--default .select2-selection--single{border-color:#e1e1e1}.select2-container--default .select2-selection--multiple{border-color:#e1e1e1}.select2-container--default.select2-container--focus .select2-selection--multiple,.select2-container--default.select2-container--focus .select2-selection--single,.select2-container--default.select2-container--open .select2-selection--multiple,.select2-container--default.select2-container--open .select2-selection--single{border-color:#6d7a86;box-shadow:0 0 0 .2rem rgba(52,58,64,.25)}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#343a40}.select2-container--default .select2-search--dropdown .select2-search__field{border-color:#e1e1e1}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#343a40}.select2-container--default .select2-dropdown .select2-search__field:focus{border-color:#6d7a86;box-shadow:0 0 0 .2rem rgba(52,58,64,.25)}.simplebar-scrollbar::before{background:#060708}.sidebar-dark #sidebar .simplebar-scrollbar::before{background:#b2bac1}.slick-slider .slick-next::before,.slick-slider .slick-prev::before{color:#1d2124}.editor-toolbar{border-color:#ebebeb;background-color:#fafafa}.CodeMirror{border-color:#ebebeb}.note-editor.note-frame{border-color:#ebebeb}.note-editor.note-frame .note-toolbar{background-color:#fafafa;border-bottom-color:#ebebeb}.note-editor.note-frame .note-statusbar{border-top-color:#ebebeb;background-color:#fafafa}.dd-handle{color:#495057;background:#fafafa;border-color:#ebebeb}.dd-handle:hover{color:#212529}.dd-empty,.dd-placeholder{border-color:#060708;background:#b2bac1}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{border-color:#343a40;background:#343a40}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#343a40} - -/* antd */ -.ant-affix{z-index:10}.ant-alert{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-radius:4px}.ant-alert-icon{top:11.5px}.ant-alert-description{font-size:14px}.ant-alert-success{background-color:#f6ffed;border:1px solid #b7eb8f}.ant-alert-success .ant-alert-icon{color:#52c41a}.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}.ant-alert-info .ant-alert-icon{color:#1890ff}.ant-alert-warning{background-color:#fffbe6;border:1px solid #ffe58f}.ant-alert-warning .ant-alert-icon{color:#faad14}.ant-alert-error{background-color:#fff1f0;border:1px solid #ffa39e}.ant-alert-error .ant-alert-icon{color:#f5222d}.ant-alert-close-icon{font-size:12px}.ant-alert-close-icon .anticon-close{color:rgba(0,0,0,0.45)}.ant-alert-close-icon .anticon-close:hover{color:rgba(0,0,0,0.75)}.ant-alert-close-text{color:rgba(0,0,0,0.45)}.ant-alert-close-text:hover{color:rgba(0,0,0,0.75)}.ant-alert-with-description{color:rgba(0,0,0,0.65);line-height:1.5;border-radius:4px}.ant-alert-with-description .ant-alert-close-icon{font-size:14px}.ant-alert-with-description .ant-alert-message{color:rgba(0,0,0,0.85);font-size:16px}.ant-alert-message{color:rgba(0,0,0,0.85)}.ant-alert.ant-alert-close{transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-alert-slide-up-leave{animation:antAlertSlideUpOut .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-alert-banner{border:0;border-radius:0}.ant-anchor{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-anchor-wrapper{background-color:#fff}.ant-anchor-ink::before{width:2px;background-color:#e8e8e8}.ant-anchor-ink-ball{background-color:#fff;border:2px solid #343a40;border-radius:8px}.ant-anchor-link-title{color:rgba(0,0,0,0.65)}.ant-anchor-link-active>.ant-anchor-link-title{color:#343a40}.ant-select-auto-complete{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-auto-complete.ant-select .ant-select-selection{border:0}.ant-select-auto-complete.ant-select .ant-select-selection__rendered{line-height:32px}.ant-select-auto-complete.ant-select .ant-input{height:32px;line-height:1.5;border-width:1px}.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#484a4d;border-right-width:1px !important}.ant-select-auto-complete.ant-select .ant-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-select-auto-complete.ant-select .ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-select-auto-complete.ant-select-lg .ant-select-selection__rendered{line-height:40px}.ant-select-auto-complete.ant-select-lg .ant-input{height:40px}.ant-select-auto-complete.ant-select-sm .ant-select-selection__rendered{line-height:24px}.ant-select-auto-complete.ant-select-sm .ant-input{height:24px}.ant-avatar{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#fff;background:#ccc;width:32px;height:32px;line-height:32px;border-radius:50%}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar-lg{width:40px;height:40px;line-height:40px;border-radius:50%}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-sm{width:24px;height:24px;line-height:24px;border-radius:50%}.ant-avatar-sm.ant-avatar-icon{font-size:14px}.ant-avatar-square{border-radius:4px}.ant-back-top{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:10}.ant-back-top-content{color:#fff;background-color:rgba(0,0,0,0.45);border-radius:20px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-back-top-content:hover{background-color:rgba(0,0,0,0.65);transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-badge{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-badge-count{z-index:10;min-width:20px;height:20px;color:#fff;font-weight:normal;font-size:12px;line-height:20px;background:#f5222d;border-radius:10px;box-shadow:0 0 0 1px #fff}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-dot{z-index:10;width:6px;height:6px;background:#f5222d;border-radius:100%;box-shadow:0 0 0 1px #fff}.ant-badge-status-dot{width:6px;height:6px;border-radius:50%}.ant-badge-status-success{background-color:#52c41a}.ant-badge-status-processing{background-color:#1890ff}.ant-badge-status-processing::after{border:1px solid #1890ff;border-radius:50%}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#f5222d}.ant-badge-status-warning{background-color:#faad14}.ant-badge-status-pink{background:#eb2f96}.ant-badge-status-magenta{background:#eb2f96}.ant-badge-status-red{background:#f5222d}.ant-badge-status-volcano{background:#fa541c}.ant-badge-status-orange{background:#fa8c16}.ant-badge-status-yellow{background:#fadb14}.ant-badge-status-gold{background:#faad14}.ant-badge-status-cyan{background:#13c2c2}.ant-badge-status-lime{background:#a0d911}.ant-badge-status-green{background:#52c41a}.ant-badge-status-blue{background:#1890ff}.ant-badge-status-geekblue{background:#2f54eb}.ant-badge-status-purple{background:#722ed1}.ant-badge-status-text{color:rgba(0,0,0,0.65);font-size:14px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{animation:antZoomBadgeIn .3s cubic-bezier(0.12,0.4,0.29,1.46)}.ant-badge-zoom-leave{animation:antZoomBadgeOut .3s cubic-bezier(0.71,-0.46,0.88,0.6)}.ant-scroll-number-only{height:20px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-scroll-number-only>p{height:20px}.ant-breadcrumb{box-sizing:border-box;color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:rgba(0,0,0,0.45);font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:rgba(0,0,0,0.45)}.ant-breadcrumb a:hover{color:#484a4d}.ant-breadcrumb>span:last-child{color:rgba(0,0,0,0.65)}.ant-breadcrumb>span:last-child a{color:rgba(0,0,0,0.65)}.ant-breadcrumb-separator{color:rgba(0,0,0,0.45)}.ant-btn{line-height:1.5;font-weight:400;border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,0.015);transition:all .3s cubic-bezier(0.645,0.045,0.355,1);height:32px;font-size:14px;border-radius:4px;color:rgba(0,0,0,0.65);background-color:#fff;border-color:#d9d9d9}.ant-btn-lg{height:40px;font-size:16px;border-radius:4px}.ant-btn-sm{height:24px;font-size:14px;border-radius:4px}.ant-btn:hover,.ant-btn:focus{color:#484a4d;background-color:#fff;border-color:#484a4d}.ant-btn:active,.ant-btn.active{color:#13161a;background-color:#fff;border-color:#13161a}.ant-btn-disabled,.ant-btn.disabled,.ant-btn[disabled],.ant-btn-disabled:hover,.ant-btn.disabled:hover,.ant-btn[disabled]:hover,.ant-btn-disabled:focus,.ant-btn.disabled:focus,.ant-btn[disabled]:focus,.ant-btn-disabled:active,.ant-btn.disabled:active,.ant-btn[disabled]:active,.ant-btn-disabled.active,.ant-btn.disabled.active,.ant-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn:hover,.ant-btn:focus,.ant-btn:active,.ant-btn.active{background:#fff}.ant-btn-primary{color:#fff;background-color:#343a40;border-color:#343a40;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045)}.ant-btn-primary:hover,.ant-btn-primary:focus{color:#fff;background-color:#484a4d;border-color:#484a4d}.ant-btn-primary:active,.ant-btn-primary.active{color:#fff;background-color:#13161a;border-color:#13161a}.ant-btn-primary-disabled,.ant-btn-primary.disabled,.ant-btn-primary[disabled],.ant-btn-primary-disabled:hover,.ant-btn-primary.disabled:hover,.ant-btn-primary[disabled]:hover,.ant-btn-primary-disabled:focus,.ant-btn-primary.disabled:focus,.ant-btn-primary[disabled]:focus,.ant-btn-primary-disabled:active,.ant-btn-primary.disabled:active,.ant-btn-primary[disabled]:active,.ant-btn-primary-disabled.active,.ant-btn-primary.disabled.active,.ant-btn-primary[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#484a4d;border-left-color:#484a4d}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#484a4d}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary:last-child:not(:first-child),.ant-btn-group .ant-btn-primary+.ant-btn-primary{border-left-color:#484a4d}.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:rgba(0,0,0,0.65);background-color:transparent;border-color:#d9d9d9}.ant-btn-ghost:hover,.ant-btn-ghost:focus{color:#484a4d;background-color:transparent;border-color:#484a4d}.ant-btn-ghost:active,.ant-btn-ghost.active{color:#13161a;background-color:transparent;border-color:#13161a}.ant-btn-ghost-disabled,.ant-btn-ghost.disabled,.ant-btn-ghost[disabled],.ant-btn-ghost-disabled:hover,.ant-btn-ghost.disabled:hover,.ant-btn-ghost[disabled]:hover,.ant-btn-ghost-disabled:focus,.ant-btn-ghost.disabled:focus,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost-disabled:active,.ant-btn-ghost.disabled:active,.ant-btn-ghost[disabled]:active,.ant-btn-ghost-disabled.active,.ant-btn-ghost.disabled.active,.ant-btn-ghost[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-dashed{color:rgba(0,0,0,0.65);background-color:#fff;border-color:#d9d9d9;border-style:dashed}.ant-btn-dashed:hover,.ant-btn-dashed:focus{color:#484a4d;background-color:#fff;border-color:#484a4d}.ant-btn-dashed:active,.ant-btn-dashed.active{color:#13161a;background-color:#fff;border-color:#13161a}.ant-btn-dashed-disabled,.ant-btn-dashed.disabled,.ant-btn-dashed[disabled],.ant-btn-dashed-disabled:hover,.ant-btn-dashed.disabled:hover,.ant-btn-dashed[disabled]:hover,.ant-btn-dashed-disabled:focus,.ant-btn-dashed.disabled:focus,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed-disabled:active,.ant-btn-dashed.disabled:active,.ant-btn-dashed[disabled]:active,.ant-btn-dashed-disabled.active,.ant-btn-dashed.disabled.active,.ant-btn-dashed[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-danger{color:#fff;background-color:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045)}.ant-btn-danger:hover,.ant-btn-danger:focus{color:#fff;background-color:#ff7875;border-color:#ff7875}.ant-btn-danger:active,.ant-btn-danger.active{color:#fff;background-color:#d9363e;border-color:#d9363e}.ant-btn-danger-disabled,.ant-btn-danger.disabled,.ant-btn-danger[disabled],.ant-btn-danger-disabled:hover,.ant-btn-danger.disabled:hover,.ant-btn-danger[disabled]:hover,.ant-btn-danger-disabled:focus,.ant-btn-danger.disabled:focus,.ant-btn-danger[disabled]:focus,.ant-btn-danger-disabled:active,.ant-btn-danger.disabled:active,.ant-btn-danger[disabled]:active,.ant-btn-danger-disabled.active,.ant-btn-danger.disabled.active,.ant-btn-danger[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link{color:#343a40;background-color:transparent;border-color:transparent}.ant-btn-link:hover,.ant-btn-link:focus{color:#484a4d;background-color:transparent;border-color:#484a4d}.ant-btn-link:active,.ant-btn-link.active{color:#13161a;background-color:transparent;border-color:#13161a}.ant-btn-link-disabled,.ant-btn-link.disabled,.ant-btn-link[disabled],.ant-btn-link-disabled:hover,.ant-btn-link.disabled:hover,.ant-btn-link[disabled]:hover,.ant-btn-link-disabled:focus,.ant-btn-link.disabled:focus,.ant-btn-link[disabled]:focus,.ant-btn-link-disabled:active,.ant-btn-link.disabled:active,.ant-btn-link[disabled]:active,.ant-btn-link-disabled.active,.ant-btn-link.disabled.active,.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:hover,.ant-btn-link:focus,.ant-btn-link:active{border-color:transparent}.ant-btn-link-disabled,.ant-btn-link.disabled,.ant-btn-link[disabled],.ant-btn-link-disabled:hover,.ant-btn-link.disabled:hover,.ant-btn-link[disabled]:hover,.ant-btn-link-disabled:focus,.ant-btn-link.disabled:focus,.ant-btn-link[disabled]:focus,.ant-btn-link-disabled:active,.ant-btn-link.disabled:active,.ant-btn-link[disabled]:active,.ant-btn-link-disabled.active,.ant-btn-link.disabled.active,.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:transparent;border-color:transparent}.ant-btn-icon-only{width:32px;height:32px;font-size:16px;border-radius:4px}.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px;font-size:18px;border-radius:4px}.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px;font-size:14px;border-radius:4px}.ant-btn-round{height:32px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-lg{height:40px;font-size:16px;border-radius:40px}.ant-btn-round.ant-btn-sm{height:24px;font-size:14px;border-radius:24px}.ant-btn-circle,.ant-btn-circle-outline{min-width:32px;border-radius:50%}.ant-btn-circle.ant-btn-lg,.ant-btn-circle-outline.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle.ant-btn-sm,.ant-btn-circle-outline.ant-btn-sm{min-width:24px;border-radius:50%}.ant-btn::before{background:#fff;border-radius:inherit}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{height:40px;font-size:16px;border-radius:0;line-height:38px}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{height:24px;font-size:14px;border-radius:0;line-height:22px}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:only-child{border-radius:4px}.ant-btn-group>span:only-child>.ant-btn{border-radius:4px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-btn-group-sm>.ant-btn:only-child{border-radius:4px}.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:4px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.ant-btn-background-ghost{color:#fff;border-color:#fff}.ant-btn-background-ghost.ant-btn-primary{color:#343a40;background-color:transparent;border-color:#343a40}.ant-btn-background-ghost.ant-btn-primary:hover,.ant-btn-background-ghost.ant-btn-primary:focus{color:#484a4d;background-color:transparent;border-color:#484a4d}.ant-btn-background-ghost.ant-btn-primary:active,.ant-btn-background-ghost.ant-btn-primary.active{color:#13161a;background-color:transparent;border-color:#13161a}.ant-btn-background-ghost.ant-btn-primary-disabled,.ant-btn-background-ghost.ant-btn-primary.disabled,.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary-disabled:hover,.ant-btn-background-ghost.ant-btn-primary.disabled:hover,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover,.ant-btn-background-ghost.ant-btn-primary-disabled:focus,.ant-btn-background-ghost.ant-btn-primary.disabled:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary-disabled:active,.ant-btn-background-ghost.ant-btn-primary.disabled:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary-disabled.active,.ant-btn-background-ghost.ant-btn-primary.disabled.active,.ant-btn-background-ghost.ant-btn-primary[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;background-color:transparent;border-color:#ff4d4f}.ant-btn-background-ghost.ant-btn-danger:hover,.ant-btn-background-ghost.ant-btn-danger:focus{color:#ff7875;background-color:transparent;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:active,.ant-btn-background-ghost.ant-btn-danger.active{color:#d9363e;background-color:transparent;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-danger-disabled,.ant-btn-background-ghost.ant-btn-danger.disabled,.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger-disabled:hover,.ant-btn-background-ghost.ant-btn-danger.disabled:hover,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover,.ant-btn-background-ghost.ant-btn-danger-disabled:focus,.ant-btn-background-ghost.ant-btn-danger.disabled:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger-disabled:active,.ant-btn-background-ghost.ant-btn-danger.disabled:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger-disabled.active,.ant-btn-background-ghost.ant-btn-danger.disabled.active,.ant-btn-background-ghost.ant-btn-danger[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-background-ghost.ant-btn-link{color:#343a40;background-color:transparent;border-color:transparent;color:#fff}.ant-btn-background-ghost.ant-btn-link:hover,.ant-btn-background-ghost.ant-btn-link:focus{color:#484a4d;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link:active,.ant-btn-background-ghost.ant-btn-link.active{color:#13161a;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link-disabled,.ant-btn-background-ghost.ant-btn-link.disabled,.ant-btn-background-ghost.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-link-disabled:hover,.ant-btn-background-ghost.ant-btn-link.disabled:hover,.ant-btn-background-ghost.ant-btn-link[disabled]:hover,.ant-btn-background-ghost.ant-btn-link-disabled:focus,.ant-btn-background-ghost.ant-btn-link.disabled:focus,.ant-btn-background-ghost.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-link-disabled:active,.ant-btn-background-ghost.ant-btn-link.disabled:active,.ant-btn-background-ghost.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-link-disabled.active,.ant-btn-background-ghost.ant-btn-link.disabled.active,.ant-btn-background-ghost.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}a.ant-btn{line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-fullcalendar{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-top:1px solid #d9d9d9}.ant-fullcalendar table{border-collapse:collapse}.ant-fullcalendar table,.ant-fullcalendar th,.ant-fullcalendar td{border:0}.ant-fullcalendar-calendar-table{border-spacing:0}.ant-fullcalendar-value{color:rgba(0,0,0,0.65);border-radius:2px}.ant-fullcalendar-value:hover{background:#787d80}.ant-fullcalendar-value:active{color:#fff;background:#343a40}.ant-fullcalendar-today .ant-fullcalendar-value,.ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-value{box-shadow:0 0 0 1px #343a40 inset}.ant-fullcalendar-selected-day .ant-fullcalendar-value,.ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value{color:#fff;background:#343a40}.ant-fullcalendar-disabled-cell-first-of-row .ant-fullcalendar-value{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-fullcalendar-disabled-cell-last-of-row .ant-fullcalendar-value{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-fullcalendar-last-month-cell .ant-fullcalendar-value,.ant-fullcalendar-next-month-btn-day .ant-fullcalendar-value{color:rgba(0,0,0,0.25)}.ant-fullcalendar-month-panel-table{border-collapse:separate}.ant-fullcalendar-fullscreen{border-top:0}.ant-fullcalendar-fullscreen .ant-fullcalendar-header label.ant-radio-button{height:32px;line-height:30px}.ant-fullcalendar-fullscreen .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-date{color:rgba(0,0,0,0.65);border-top:2px solid #e8e8e8}.ant-fullcalendar-fullscreen .ant-fullcalendar-month:hover,.ant-fullcalendar-fullscreen .ant-fullcalendar-date:hover{background:#787d80}.ant-fullcalendar-fullscreen .ant-fullcalendar-month:active,.ant-fullcalendar-fullscreen .ant-fullcalendar-date:active{background:#6c7073}.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-value{color:rgba(0,0,0,0.65)}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-date{border-top-color:#343a40}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-date{background:#787d80}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value,.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-value{color:#343a40}.ant-fullcalendar-fullscreen .ant-fullcalendar-last-month-cell .ant-fullcalendar-date,.ant-fullcalendar-fullscreen .ant-fullcalendar-next-month-btn-day .ant-fullcalendar-date{color:rgba(0,0,0,0.25)}.ant-fullcalendar-disabled-cell .ant-fullcalendar-value{color:rgba(0,0,0,0.25);border-radius:0}.ant-card{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background:#fff;border-radius:2px}.ant-card-hoverable:hover{border-color:rgba(0,0,0,0.09);box-shadow:0 2px 8px rgba(0,0,0,0.09)}.ant-card-bordered{border:1px solid #e8e8e8}.ant-card-head{min-height:48px;color:rgba(0,0,0,0.85);font-size:16px;background:transparent;border-bottom:1px solid #e8e8e8;border-radius:2px 2px 0 0}.ant-card-head .ant-tabs{color:rgba(0,0,0,0.65);font-size:14px}.ant-card-head .ant-tabs-bar{border-bottom:1px solid #e8e8e8}.ant-card-extra{color:rgba(0,0,0,0.65);font-size:14px}.ant-card-grid{border:0;border-radius:0;box-shadow:1px 0 0 0 #e8e8e8,0 1px 0 0 #e8e8e8,1px 1px 0 0 #e8e8e8,1px 0 0 0 #e8e8e8 inset,0 1px 0 0 #e8e8e8 inset}.ant-card-grid-hoverable:hover{box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{background:#fafafa;border-top:1px solid #e8e8e8}.ant-card-actions>li{color:rgba(0,0,0,0.45)}.ant-card-actions>li>span:hover{color:#343a40}.ant-card-actions>li>span a:not(.ant-btn),.ant-card-actions>li>span>.anticon{color:rgba(0,0,0,0.45)}.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#343a40}.ant-card-actions>li>span>.anticon{font-size:16px}.ant-card-actions>li:not(:last-child){border-right:1px solid #e8e8e8}.ant-card-type-inner .ant-card-head{background:#fafafa}.ant-card-type-inner .ant-card-head-title{font-size:14px}.ant-card-meta-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-card-meta-description{color:rgba(0,0,0,0.45)}.ant-card-loading-block{background:linear-gradient(90deg,rgba(207,216,220,0.2),rgba(207,216,220,0.4),rgba(207,216,220,0.2));border-radius:2px}.ant-carousel{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-carousel .slick-slider{box-sizing:border-box}.ant-carousel .slick-vertical .slick-slide{border:1px solid transparent}.ant-carousel .slick-prev,.ant-carousel .slick-next{border:0}.ant-carousel .slick-dots{height:3px}.ant-carousel .slick-dots li button{width:16px;height:3px;background:#fff;border:0;border-radius:1px}.ant-carousel .slick-dots li.slick-active button{width:24px;background:#fff}.ant-carousel-vertical .slick-dots{width:3px}.ant-carousel-vertical .slick-dots li button{width:3px;height:16px}.ant-carousel-vertical .slick-dots li.slick-active button{width:3px;height:24px}.ant-cascader{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-cascader-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background-color:#fff;border-radius:4px}.ant-cascader-picker-disabled{color:rgba(0,0,0,0.25);background:#f5f5f5}.ant-cascader-picker:focus .ant-cascader-input{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-cascader-picker-show-search.ant-cascader-picker-focused{color:rgba(0,0,0,0.25)}.ant-cascader-picker-clear{color:rgba(0,0,0,0.25);font-size:12px;background:#fff}.ant-cascader-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-cascader-picker-arrow{color:rgba(0,0,0,0.25)}.ant-cascader-picker-label:hover+.ant-cascader-input{border-color:#484a4d;border-right-width:1px !important}.ant-cascader-menus{z-index:1050;font-size:14px;background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-cascader-menu{border-right:1px solid #e8e8e8}.ant-cascader-menu:first-child{border-radius:4px 0 0 4px}.ant-cascader-menu:last-child{border-right-color:transparent;border-radius:0 4px 4px 0}.ant-cascader-menu:only-child{border-radius:4px}.ant-cascader-menu-item:hover{background:#787d80}.ant-cascader-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover{font-weight:600;background-color:#fafafa}.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-loading-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45)}:root .ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,:root .ant-cascader-menu-item-loading-icon{font-size:12px}.ant-cascader-menu-item .ant-cascader-menu-item-keyword{color:#f5222d}.ant-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner,.ant-checkbox-input:focus+.ant-checkbox-inner{border-color:#343a40}.ant-checkbox-checked::after{border:1px solid #343a40;border-radius:2px}.ant-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-checkbox-checked .ant-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-checkbox-checked .ant-checkbox-inner{background-color:#343a40;border-color:#343a40}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-checkbox-disabled .ant-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner::after{width:8px;height:8px;background-color:#343a40;border:0}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-collapse{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:4px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 4px 4px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{color:rgba(0,0,0,0.85)}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{color:inherit;font-size:12px}.ant-collapse-anim-active{transition:height .2s cubic-bezier(0.215,0.61,0.355,1)}.ant-collapse-content{color:rgba(0,0,0,0.65);background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 4px 4px}.ant-collapse-borderless{background-color:#fff;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{border-top:0}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:rgba(0,0,0,0.25)}.ant-comment-avatar img{border-radius:50%}.ant-comment-content{font-size:14px}.ant-comment-content-author{font-size:14px}.ant-comment-content-author>a,.ant-comment-content-author>span{font-size:12px}.ant-comment-content-author-name{color:rgba(0,0,0,0.45);font-size:14px}.ant-comment-content-author-name>*{color:rgba(0,0,0,0.45)}.ant-comment-content-author-name>*:hover{color:rgba(0,0,0,0.45)}.ant-comment-content-author-time{color:#ccc}.ant-comment-actions>li{color:rgba(0,0,0,0.45)}.ant-comment-actions>li>span{color:rgba(0,0,0,0.45);font-size:12px}.ant-comment-actions>li>span:hover{color:#595959}.ant-descriptions-title{color:rgba(0,0,0,0.85);font-size:16px;line-height:1.5}.ant-descriptions-view{border-radius:4px}.ant-descriptions-row:last-child{border-bottom:0}.ant-descriptions-item-label{color:rgba(0,0,0,0.85);font-size:14px;line-height:1.5}.ant-descriptions-item-content{color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-item-label,.ant-descriptions-bordered .ant-descriptions-item-content{border-right:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-item-label:last-child,.ant-descriptions-bordered .ant-descriptions-item-content:last-child{border-right:0}.ant-descriptions-bordered .ant-descriptions-item-label{background-color:#fafafa}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:0}.ant-divider{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background:#e8e8e8}.ant-divider-horizontal.ant-divider-with-text-center,.ant-divider-horizontal.ant-divider-with-text-left,.ant-divider-horizontal.ant-divider-with-text-right{color:rgba(0,0,0,0.85);font-size:16px}.ant-divider-horizontal.ant-divider-with-text-center::before,.ant-divider-horizontal.ant-divider-with-text-left::before,.ant-divider-horizontal.ant-divider-with-text-right::before,.ant-divider-horizontal.ant-divider-with-text-center::after,.ant-divider-horizontal.ant-divider-with-text-left::after,.ant-divider-horizontal.ant-divider-with-text-right::after{border-top:1px solid #e8e8e8}.ant-divider-dashed{border-color:#e8e8e8;border-style:dashed;border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed{border-top:0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed::after,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed::after,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed::after{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px}.ant-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-wrap .ant-btn>.anticon-down{font-size:12px}.ant-dropdown-menu{background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-dropdown-menu-item-group-title{color:rgba(0,0,0,0.45)}.ant-dropdown-menu-submenu-popup{z-index:1050}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{color:rgba(0,0,0,0.65);font-size:14px;line-height:22px}.ant-dropdown-menu-item>a,.ant-dropdown-menu-submenu-title>a{color:rgba(0,0,0,0.65)}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected>a{color:#343a40;background-color:#787d80}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#787d80}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,0.25)}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{background-color:#e8e8e8}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,0.45);font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,:root .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{font-size:12px}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,0.25);background-color:#fff}.ant-dropdown-trigger>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-trigger>.anticon.anticon-down,:root .ant-dropdown-link>.anticon.anticon-down{font-size:12px}.ant-dropdown-button .anticon.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-button .anticon.anticon-down{font-size:12px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a{color:rgba(255,255,255,0.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow::after{color:rgba(255,255,255,0.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover{color:#fff}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{color:#fff;background:#343a40}.ant-empty{font-size:14px}.ant-empty-normal{color:rgba(0,0,0,0.25)}.ant-empty-small{color:rgba(0,0,0,0.25)}.ant-form{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-form legend{color:rgba(0,0,0,0.45);font-size:16px;border:0;border-bottom:1px solid #d9d9d9}.ant-form label{font-size:14px}.ant-form input[type="search"]{box-sizing:border-box}.ant-form output{color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5}.ant-form-item-required::before{color:#f5222d;font-size:14px}.ant-form-item-label>label{color:rgba(0,0,0,0.85)}.ant-form-item{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-form-item label>.anticon{font-size:14px}.ant-form-item-control{line-height:40px}.ant-form-item-label{line-height:39.9999px}.ant-form-explain,.ant-form-extra{min-height:22px;color:rgba(0,0,0,0.45);font-size:14px;line-height:1.5;transition:color .3s cubic-bezier(0.215,0.61,0.355,1)}.ant-form-vertical .ant-form-item-label,.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label{line-height:1.5}.ant-form-vertical .ant-form-item-control{line-height:1.5}@media(max-width:575px){.ant-form-item-label{line-height:1.5}.ant-col-xs-24.ant-form-item-label{line-height:1.5}}@media(max-width:767px){.ant-col-sm-24.ant-form-item-label{line-height:1.5}}@media(max-width:991px){.ant-col-md-24.ant-form-item-label{line-height:1.5}}@media(max-width:1199px){.ant-col-lg-24.ant-form-item-label{line-height:1.5}}@media(max-width:1599px){.ant-col-xl-24.ant-form-item-label{line-height:1.5}}.has-success.has-feedback .ant-form-item-children-icon,.has-warning.has-feedback .ant-form-item-children-icon,.has-error.has-feedback .ant-form-item-children-icon,.is-validating.has-feedback .ant-form-item-children-icon{width:32px;font-size:14px;animation:zoomIn .3s cubic-bezier(0.12,0.4,0.29,1.46)}.has-success.has-feedback .ant-form-item-children-icon{color:#52c41a}.has-warning .ant-form-explain,.has-warning .ant-form-split{color:#faad14}.has-warning .ant-input,.has-warning .ant-input:hover{background-color:#fff;border-color:#faad14}.has-warning .ant-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input:not([disabled]):hover{border-color:#faad14}.has-warning .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-affix-wrapper .ant-input,.has-warning .ant-input-affix-wrapper .ant-input:hover{background-color:#fff;border-color:#faad14}.has-warning .ant-input-affix-wrapper .ant-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#faad14}.has-warning .ant-input-prefix{color:#faad14}.has-warning .ant-input-group-addon{color:#faad14;background-color:#fff;border-color:#faad14}.has-warning .has-feedback{color:#faad14}.has-warning.has-feedback .ant-form-item-children-icon{color:#faad14}.has-warning .ant-select-selection{border-color:#faad14}.has-warning .ant-select-selection:hover{border-color:#faad14}.has-warning .ant-select-open .ant-select-selection,.has-warning .ant-select-focused .ant-select-selection{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-calendar-picker-icon::after,.has-warning .ant-time-picker-icon::after,.has-warning .ant-picker-icon::after,.has-warning .ant-select-arrow,.has-warning .ant-cascader-picker-arrow{color:#faad14}.has-warning .ant-input-number,.has-warning .ant-time-picker-input{border-color:#faad14}.has-warning .ant-input-number-focused,.has-warning .ant-time-picker-input-focused,.has-warning .ant-input-number:focus,.has-warning .ant-time-picker-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-number:not([disabled]):hover,.has-warning .ant-time-picker-input:not([disabled]):hover{border-color:#faad14}.has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-error .ant-form-explain,.has-error .ant-form-split{color:#f5222d}.has-error .ant-input,.has-error .ant-input:hover{background-color:#fff;border-color:#f5222d}.has-error .ant-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input:not([disabled]):hover{border-color:#f5222d}.has-error .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-affix-wrapper .ant-input,.has-error .ant-input-affix-wrapper .ant-input:hover{background-color:#fff;border-color:#f5222d}.has-error .ant-input-affix-wrapper .ant-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#f5222d}.has-error .ant-input-prefix{color:#f5222d}.has-error .ant-input-group-addon{color:#f5222d;background-color:#fff;border-color:#f5222d}.has-error .has-feedback{color:#f5222d}.has-error.has-feedback .ant-form-item-children-icon{color:#f5222d}.has-error .ant-select-selection{border-color:#f5222d}.has-error .ant-select-selection:hover{border-color:#f5222d}.has-error .ant-select-open .ant-select-selection,.has-error .ant-select-focused .ant-select-selection{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:#f5222d}.has-error .ant-input-group-addon .ant-select-selection{border-color:transparent}.has-error .ant-calendar-picker-icon::after,.has-error .ant-time-picker-icon::after,.has-error .ant-picker-icon::after,.has-error .ant-select-arrow,.has-error .ant-cascader-picker-arrow{color:#f5222d}.has-error .ant-input-number,.has-error .ant-time-picker-input{border-color:#f5222d}.has-error .ant-input-number-focused,.has-error .ant-time-picker-input-focused,.has-error .ant-input-number:focus,.has-error .ant-time-picker-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-number:not([disabled]):hover,.has-error .ant-time-picker-input:not([disabled]):hover{border-color:#f5222d}.has-error .ant-mention-wrapper .ant-mention-editor,.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover{border-color:#f5222d}.has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-cascader-picker:focus .ant-cascader-input{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-transfer-list{border-color:#f5222d}.has-error .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#484a4d;border-right-width:1px !important}.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.is-validating.has-feedback .ant-form-item-children-icon{color:#343a40}.show-help-enter,.show-help-appear{animation-duration:.3s}.show-help-leave{animation-duration:.3s}.show-help-enter.show-help-enter-active,.show-help-appear.show-help-appear-active{animation-name:antShowHelpIn}.show-help-leave.show-help-leave-active{animation-name:antShowHelpOut}.show-help-enter,.show-help-appear{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.show-help-leave{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-row{box-sizing:border-box}.ant-col-24{box-sizing:border-box;width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-order-24{order:24}.ant-col-23{box-sizing:border-box;width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-order-23{order:23}.ant-col-22{box-sizing:border-box;width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-order-22{order:22}.ant-col-21{box-sizing:border-box;width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-order-21{order:21}.ant-col-20{box-sizing:border-box;width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-order-20{order:20}.ant-col-19{box-sizing:border-box;width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-order-19{order:19}.ant-col-18{box-sizing:border-box;width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-order-18{order:18}.ant-col-17{box-sizing:border-box;width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-order-17{order:17}.ant-col-16{box-sizing:border-box;width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-order-16{order:16}.ant-col-15{box-sizing:border-box;width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-order-15{order:15}.ant-col-14{box-sizing:border-box;width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-order-14{order:14}.ant-col-13{box-sizing:border-box;width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-order-13{order:13}.ant-col-12{box-sizing:border-box;width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-order-12{order:12}.ant-col-11{box-sizing:border-box;width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-order-11{order:11}.ant-col-10{box-sizing:border-box;width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-order-10{order:10}.ant-col-9{box-sizing:border-box;width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-order-9{order:9}.ant-col-8{box-sizing:border-box;width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-order-8{order:8}.ant-col-7{box-sizing:border-box;width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-order-7{order:7}.ant-col-6{box-sizing:border-box;width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-order-6{order:6}.ant-col-5{box-sizing:border-box;width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-order-5{order:5}.ant-col-4{box-sizing:border-box;width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-order-4{order:4}.ant-col-3{box-sizing:border-box;width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-order-3{order:3}.ant-col-2{box-sizing:border-box;width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-order-2{order:2}.ant-col-1{box-sizing:border-box;width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-order-1{order:1}.ant-col-xs-24{box-sizing:border-box;width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-order-24{order:24}.ant-col-xs-23{box-sizing:border-box;width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-order-23{order:23}.ant-col-xs-22{box-sizing:border-box;width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-order-22{order:22}.ant-col-xs-21{box-sizing:border-box;width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-order-21{order:21}.ant-col-xs-20{box-sizing:border-box;width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-order-20{order:20}.ant-col-xs-19{box-sizing:border-box;width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-order-19{order:19}.ant-col-xs-18{box-sizing:border-box;width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-order-18{order:18}.ant-col-xs-17{box-sizing:border-box;width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-order-17{order:17}.ant-col-xs-16{box-sizing:border-box;width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-order-16{order:16}.ant-col-xs-15{box-sizing:border-box;width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-order-15{order:15}.ant-col-xs-14{box-sizing:border-box;width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-order-14{order:14}.ant-col-xs-13{box-sizing:border-box;width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-order-13{order:13}.ant-col-xs-12{box-sizing:border-box;width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-order-12{order:12}.ant-col-xs-11{box-sizing:border-box;width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-order-11{order:11}.ant-col-xs-10{box-sizing:border-box;width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-order-10{order:10}.ant-col-xs-9{box-sizing:border-box;width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-order-9{order:9}.ant-col-xs-8{box-sizing:border-box;width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-order-8{order:8}.ant-col-xs-7{box-sizing:border-box;width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-order-7{order:7}.ant-col-xs-6{box-sizing:border-box;width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-order-6{order:6}.ant-col-xs-5{box-sizing:border-box;width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-order-5{order:5}.ant-col-xs-4{box-sizing:border-box;width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-order-4{order:4}.ant-col-xs-3{box-sizing:border-box;width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-order-3{order:3}.ant-col-xs-2{box-sizing:border-box;width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-order-2{order:2}.ant-col-xs-1{box-sizing:border-box;width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-order-1{order:1}@media(min-width:576px){.ant-col-sm-24{box-sizing:border-box;width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-order-24{order:24}.ant-col-sm-23{box-sizing:border-box;width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-order-23{order:23}.ant-col-sm-22{box-sizing:border-box;width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-order-22{order:22}.ant-col-sm-21{box-sizing:border-box;width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-order-21{order:21}.ant-col-sm-20{box-sizing:border-box;width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-order-20{order:20}.ant-col-sm-19{box-sizing:border-box;width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-order-19{order:19}.ant-col-sm-18{box-sizing:border-box;width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-order-18{order:18}.ant-col-sm-17{box-sizing:border-box;width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-order-17{order:17}.ant-col-sm-16{box-sizing:border-box;width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-order-16{order:16}.ant-col-sm-15{box-sizing:border-box;width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-order-15{order:15}.ant-col-sm-14{box-sizing:border-box;width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-order-14{order:14}.ant-col-sm-13{box-sizing:border-box;width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-order-13{order:13}.ant-col-sm-12{box-sizing:border-box;width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-order-12{order:12}.ant-col-sm-11{box-sizing:border-box;width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-order-11{order:11}.ant-col-sm-10{box-sizing:border-box;width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-order-10{order:10}.ant-col-sm-9{box-sizing:border-box;width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-order-9{order:9}.ant-col-sm-8{box-sizing:border-box;width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-order-8{order:8}.ant-col-sm-7{box-sizing:border-box;width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-order-7{order:7}.ant-col-sm-6{box-sizing:border-box;width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-order-6{order:6}.ant-col-sm-5{box-sizing:border-box;width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-order-5{order:5}.ant-col-sm-4{box-sizing:border-box;width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-order-4{order:4}.ant-col-sm-3{box-sizing:border-box;width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-order-3{order:3}.ant-col-sm-2{box-sizing:border-box;width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-order-2{order:2}.ant-col-sm-1{box-sizing:border-box;width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-order-1{order:1}}@media(min-width:768px){.ant-col-md-24{box-sizing:border-box;width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-order-24{order:24}.ant-col-md-23{box-sizing:border-box;width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-order-23{order:23}.ant-col-md-22{box-sizing:border-box;width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-order-22{order:22}.ant-col-md-21{box-sizing:border-box;width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-order-21{order:21}.ant-col-md-20{box-sizing:border-box;width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-order-20{order:20}.ant-col-md-19{box-sizing:border-box;width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-order-19{order:19}.ant-col-md-18{box-sizing:border-box;width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-order-18{order:18}.ant-col-md-17{box-sizing:border-box;width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-order-17{order:17}.ant-col-md-16{box-sizing:border-box;width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-order-16{order:16}.ant-col-md-15{box-sizing:border-box;width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-order-15{order:15}.ant-col-md-14{box-sizing:border-box;width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-order-14{order:14}.ant-col-md-13{box-sizing:border-box;width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-order-13{order:13}.ant-col-md-12{box-sizing:border-box;width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-order-12{order:12}.ant-col-md-11{box-sizing:border-box;width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-order-11{order:11}.ant-col-md-10{box-sizing:border-box;width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-order-10{order:10}.ant-col-md-9{box-sizing:border-box;width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-order-9{order:9}.ant-col-md-8{box-sizing:border-box;width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-order-8{order:8}.ant-col-md-7{box-sizing:border-box;width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-order-7{order:7}.ant-col-md-6{box-sizing:border-box;width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-order-6{order:6}.ant-col-md-5{box-sizing:border-box;width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-order-5{order:5}.ant-col-md-4{box-sizing:border-box;width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-order-4{order:4}.ant-col-md-3{box-sizing:border-box;width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-order-3{order:3}.ant-col-md-2{box-sizing:border-box;width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-order-2{order:2}.ant-col-md-1{box-sizing:border-box;width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-order-1{order:1}}@media(min-width:992px){.ant-col-lg-24{box-sizing:border-box;width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-order-24{order:24}.ant-col-lg-23{box-sizing:border-box;width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-order-23{order:23}.ant-col-lg-22{box-sizing:border-box;width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-order-22{order:22}.ant-col-lg-21{box-sizing:border-box;width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-order-21{order:21}.ant-col-lg-20{box-sizing:border-box;width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-order-20{order:20}.ant-col-lg-19{box-sizing:border-box;width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-order-19{order:19}.ant-col-lg-18{box-sizing:border-box;width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-order-18{order:18}.ant-col-lg-17{box-sizing:border-box;width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-order-17{order:17}.ant-col-lg-16{box-sizing:border-box;width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-order-16{order:16}.ant-col-lg-15{box-sizing:border-box;width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-order-15{order:15}.ant-col-lg-14{box-sizing:border-box;width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-order-14{order:14}.ant-col-lg-13{box-sizing:border-box;width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-order-13{order:13}.ant-col-lg-12{box-sizing:border-box;width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-order-12{order:12}.ant-col-lg-11{box-sizing:border-box;width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-order-11{order:11}.ant-col-lg-10{box-sizing:border-box;width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-order-10{order:10}.ant-col-lg-9{box-sizing:border-box;width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-order-9{order:9}.ant-col-lg-8{box-sizing:border-box;width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-order-8{order:8}.ant-col-lg-7{box-sizing:border-box;width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-order-7{order:7}.ant-col-lg-6{box-sizing:border-box;width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-order-6{order:6}.ant-col-lg-5{box-sizing:border-box;width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-order-5{order:5}.ant-col-lg-4{box-sizing:border-box;width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-order-4{order:4}.ant-col-lg-3{box-sizing:border-box;width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-order-3{order:3}.ant-col-lg-2{box-sizing:border-box;width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-order-2{order:2}.ant-col-lg-1{box-sizing:border-box;width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-order-1{order:1}}@media(min-width:1200px){.ant-col-xl-24{box-sizing:border-box;width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-order-24{order:24}.ant-col-xl-23{box-sizing:border-box;width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-order-23{order:23}.ant-col-xl-22{box-sizing:border-box;width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-order-22{order:22}.ant-col-xl-21{box-sizing:border-box;width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-order-21{order:21}.ant-col-xl-20{box-sizing:border-box;width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-order-20{order:20}.ant-col-xl-19{box-sizing:border-box;width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-order-19{order:19}.ant-col-xl-18{box-sizing:border-box;width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-order-18{order:18}.ant-col-xl-17{box-sizing:border-box;width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-order-17{order:17}.ant-col-xl-16{box-sizing:border-box;width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-order-16{order:16}.ant-col-xl-15{box-sizing:border-box;width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-order-15{order:15}.ant-col-xl-14{box-sizing:border-box;width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-order-14{order:14}.ant-col-xl-13{box-sizing:border-box;width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-order-13{order:13}.ant-col-xl-12{box-sizing:border-box;width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-order-12{order:12}.ant-col-xl-11{box-sizing:border-box;width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-order-11{order:11}.ant-col-xl-10{box-sizing:border-box;width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-order-10{order:10}.ant-col-xl-9{box-sizing:border-box;width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-order-9{order:9}.ant-col-xl-8{box-sizing:border-box;width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-order-8{order:8}.ant-col-xl-7{box-sizing:border-box;width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-order-7{order:7}.ant-col-xl-6{box-sizing:border-box;width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-order-6{order:6}.ant-col-xl-5{box-sizing:border-box;width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-order-5{order:5}.ant-col-xl-4{box-sizing:border-box;width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-order-4{order:4}.ant-col-xl-3{box-sizing:border-box;width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-order-3{order:3}.ant-col-xl-2{box-sizing:border-box;width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-order-2{order:2}.ant-col-xl-1{box-sizing:border-box;width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-order-1{order:1}}@media(min-width:1600px){.ant-col-xxl-24{box-sizing:border-box;width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-order-24{order:24}.ant-col-xxl-23{box-sizing:border-box;width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-order-23{order:23}.ant-col-xxl-22{box-sizing:border-box;width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-order-22{order:22}.ant-col-xxl-21{box-sizing:border-box;width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-order-21{order:21}.ant-col-xxl-20{box-sizing:border-box;width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-order-20{order:20}.ant-col-xxl-19{box-sizing:border-box;width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-order-19{order:19}.ant-col-xxl-18{box-sizing:border-box;width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-order-18{order:18}.ant-col-xxl-17{box-sizing:border-box;width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-order-17{order:17}.ant-col-xxl-16{box-sizing:border-box;width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-order-16{order:16}.ant-col-xxl-15{box-sizing:border-box;width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-order-15{order:15}.ant-col-xxl-14{box-sizing:border-box;width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-order-14{order:14}.ant-col-xxl-13{box-sizing:border-box;width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-order-13{order:13}.ant-col-xxl-12{box-sizing:border-box;width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-order-12{order:12}.ant-col-xxl-11{box-sizing:border-box;width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-order-11{order:11}.ant-col-xxl-10{box-sizing:border-box;width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-order-10{order:10}.ant-col-xxl-9{box-sizing:border-box;width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-order-9{order:9}.ant-col-xxl-8{box-sizing:border-box;width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-order-8{order:8}.ant-col-xxl-7{box-sizing:border-box;width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-order-7{order:7}.ant-col-xxl-6{box-sizing:border-box;width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-order-6{order:6}.ant-col-xxl-5{box-sizing:border-box;width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-order-5{order:5}.ant-col-xxl-4{box-sizing:border-box;width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-order-4{order:4}.ant-col-xxl-3{box-sizing:border-box;width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-order-3{order:3}.ant-col-xxl-2{box-sizing:border-box;width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-order-2{order:2}.ant-col-xxl-1{box-sizing:border-box;width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-order-1{order:1}}.ant-input-number{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-input-number::-moz-placeholder{color:#bfbfbf}.ant-input-number:-ms-input-placeholder{color:#bfbfbf}.ant-input-number::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number:hover{border-color:#484a4d;border-right-width:1px !important}.ant-input-number:focus{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-input-number-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input-number[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-input-number{min-height:32px;line-height:1.5}.ant-input-number-lg{height:40px;font-size:16px}.ant-input-number-sm{height:24px}.ant-input-number-handler{color:rgba(0,0,0,0.45)}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-up-inner,.ant-input-number-handler:hover .ant-input-number-handler-down-inner{color:#484a4d}.ant-input-number-handler-up-inner,.ant-input-number-handler-down-inner{color:inherit;color:rgba(0,0,0,0.45)}.ant-input-number:hover{border-color:#484a4d;border-right-width:1px !important}.ant-input-number-focused{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-input-number-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input-number-input{height:30px;border:0;border-radius:4px}.ant-input-number-input::-moz-placeholder{color:#bfbfbf}.ant-input-number-input:-ms-input-placeholder{color:#bfbfbf}.ant-input-number-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number-lg{font-size:16px}.ant-input-number-lg input{height:38px}.ant-input-number-sm input{height:22px}.ant-input-number-handler-wrap{background:#fff;border-left:1px solid #d9d9d9;border-radius:0 4px 4px 0}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner{font-size:7px \9;transform:scale(0.58333333) rotate(0)}:root .ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,:root .ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner{font-size:12px}.ant-input-number-handler-down{border-top:1px solid #d9d9d9}.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner,.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner{color:rgba(0,0,0,0.25)}.ant-input{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-input::-moz-placeholder{color:#bfbfbf}.ant-input:-ms-input-placeholder{color:#bfbfbf}.ant-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input:hover{border-color:#484a4d;border-right-width:1px !important}.ant-input:focus{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-input{min-height:32px;line-height:1.5}.ant-input-lg{height:40px;font-size:16px}.ant-input-sm{height:24px}.ant-input-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-collapse:separate;border-spacing:0}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group .ant-input:focus{border-right-width:1px}.ant-input-group .ant-input:hover{border-right-width:1px}.ant-input-group-addon{color:rgba(0,0,0,0.65);font-size:14px;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:4px}.ant-input-group-addon .ant-select .ant-select-selection{border:1px solid transparent}.ant-input-group-addon .ant-select-open .ant-select-selection,.ant-input-group-addon .ant-select-focused .ant-select-selection{color:#343a40}.ant-input-group>.ant-input:first-child,.ant-input-group-addon:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input:first-child .ant-select .ant-select-selection,.ant-input-group-addon:first-child .ant-select .ant-select-selection{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group>.ant-input:last-child,.ant-input-group-addon:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input:last-child .ant-select .ant-select-selection,.ant-input-group-addon:last-child .ant-select .ant-select-selection{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{height:40px;font-size:16px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{height:24px}.ant-input-group-lg .ant-select-selection--single{height:40px}.ant-input-group-sm .ant-select-selection--single{height:24px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact>*{border-radius:0}.ant-input-group.ant-input-group-compact>*:not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>*:first-child,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:first-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker:first-child .ant-time-picker-input{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-input-group.ant-input-group-compact>*:last-child,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:last-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker:last-child .ant-time-picker-input{border-right-width:1px;border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-input-affix-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#484a4d;border-right-width:1px !important}.ant-input-affix-wrapper .ant-input-prefix,.ant-input-affix-wrapper .ant-input-suffix{color:rgba(0,0,0,0.65)}.ant-input-affix-wrapper .ant-input-prefix :not(.anticon),.ant-input-affix-wrapper .ant-input-suffix :not(.anticon){line-height:1.5}.ant-input-password-icon{color:rgba(0,0,0,0.45)}.ant-input-clear-icon{color:rgba(0,0,0,0.25);font-size:12px}.ant-input-clear-icon:hover{color:rgba(0,0,0,0.45)}.ant-input-clear-icon:active{color:rgba(0,0,0,0.65)}.ant-layout{background:#f0f2f5}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout-header{height:64px;line-height:64px;background:#001529}.ant-layout-footer{color:rgba(0,0,0,0.65);font-size:14px;background:#f0f2f5}.ant-layout-sider{background:#001529}.ant-layout-sider-trigger{height:48px;color:#fff;line-height:48px;background:#002140}.ant-layout-sider-zero-width-trigger{top:64px;right:-36px;width:36px;height:42px;color:#fff;font-size:18px;line-height:42px;background:#001529;border-radius:0 4px 4px 0}.ant-layout-sider-zero-width-trigger:hover{background:#192c3e}.ant-layout-sider-zero-width-trigger-right{left:-36px;border-radius:4px 0 0 4px}.ant-list{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-list-empty-text{color:rgba(0,0,0,0.25);font-size:14px}.ant-list-item-content{color:rgba(0,0,0,0.65)}.ant-list-item-meta-title{color:rgba(0,0,0,0.65);font-size:14px}.ant-list-item-meta-title>a{color:rgba(0,0,0,0.65)}.ant-list-item-meta-title>a:hover{color:#343a40}.ant-list-item-meta-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-list-item-action>li{color:rgba(0,0,0,0.45);font-size:14px}.ant-list-item-action-split{background-color:#e8e8e8}.ant-list-header{background:transparent}.ant-list-footer{background:transparent}.ant-list-empty{color:rgba(0,0,0,0.45)}.ant-list-split .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-list-split .ant-list-item:last-child{border-bottom:0}.ant-list-split .ant-list-header{border-bottom:1px solid #e8e8e8}.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #e8e8e8}.ant-list-vertical .ant-list-item-meta-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-list-grid .ant-col>.ant-list-item{border-bottom:0}.ant-mentions-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-mentions-wrapper .ant-mentions-editor{height:32px;color:rgba(0,0,0,0.65);font-size:14px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;min-height:32px;line-height:1.5}.ant-mentions-wrapper .ant-mentions-editor::-moz-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor:-ms-input-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor:hover{border-color:#484a4d;border-right-width:1px !important}.ant-mentions-wrapper .ant-mentions-editor:focus{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-mentions-wrapper .ant-mentions-editor-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper .ant-mentions-editor-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-wrapper .ant-mentions-editor[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper .ant-mentions-editor[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-mentions-wrapper .ant-mentions-editor{min-height:32px;line-height:1.5}.ant-mentions-wrapper .ant-mentions-editor-lg{height:40px;font-size:16px}.ant-mentions-wrapper .ant-mentions-editor-sm{height:24px}.ant-mentions-wrapper.ant-mentions-active:not(.disabled) .ant-mentions-editor{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-mentions-wrapper.disabled .ant-mentions-editor{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper.disabled .ant-mentions-editor:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-wrapper .public-DraftEditorPlaceholder-root .public-DraftEditorPlaceholder-inner{color:#bfbfbf}.ant-mentions-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-mentions-dropdown-notfound.ant-mentions-dropdown-item{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-notfound.ant-mentions-dropdown-item .anticon-loading{color:#343a40}.ant-mentions-dropdown-item{color:rgba(0,0,0,0.65)}.ant-mentions-dropdown-item:hover{background-color:#787d80}.ant-mentions-dropdown-item.focus,.ant-mentions-dropdown-item-active{background-color:#787d80}.ant-mentions-dropdown-item-disabled{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-item-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-mentions-dropdown-item-selected,.ant-mentions-dropdown-item-selected:hover{color:rgba(0,0,0,0.65);background-color:#f5f5f5}.ant-mentions-dropdown-item-divider{background-color:#e8e8e8}.ant-mentions{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;line-height:1.5}.ant-mentions::-moz-placeholder{color:#bfbfbf}.ant-mentions:-ms-input-placeholder{color:#bfbfbf}.ant-mentions::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions:hover{border-color:#484a4d;border-right-width:1px !important}.ant-mentions:focus{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-mentions-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-mentions{min-height:32px;line-height:1.5}.ant-mentions-lg{height:40px;font-size:16px}.ant-mentions-sm{height:24px}.ant-mentions-disabled>textarea{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-disabled>textarea:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-focused{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-mentions>textarea,.ant-mentions-measure{min-height:30px}.ant-mentions>textarea{border:0}.ant-mentions>textarea::-moz-placeholder{color:#bfbfbf}.ant-mentions>textarea:-ms-input-placeholder{color:#bfbfbf}.ant-mentions>textarea::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions-dropdown{color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;box-sizing:border-box;font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-mentions-dropdown-menu-item{color:rgba(0,0,0,0.65)}.ant-mentions-dropdown-menu-item:hover{background-color:#787d80}.ant-mentions-dropdown-menu-item:first-child{border-radius:4px 4px 0 0}.ant-mentions-dropdown-menu-item:last-child{border-radius:0 0 4px 4px}.ant-mentions-dropdown-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-mentions-dropdown-menu-item-selected{color:rgba(0,0,0,0.65);font-weight:600;background-color:#fafafa}.ant-mentions-dropdown-menu-item-active{background-color:#787d80}.ant-menu{box-sizing:border-box;font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:rgba(0,0,0,0.65);background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-menu-item-group-title{color:rgba(0,0,0,0.45);font-size:14px;line-height:1.5}.ant-menu-submenu-selected{color:#343a40}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#787d80}.ant-menu-item>a{color:rgba(0,0,0,0.65)}.ant-menu-item>a:hover{color:#343a40}.ant-menu-item-divider{background-color:#e8e8e8}.ant-menu-item:hover,.ant-menu-item-active,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,.ant-menu-submenu-active,.ant-menu-submenu-title:hover{color:#343a40}.ant-menu-item-selected{color:#343a40}.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#343a40}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#787d80}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #e8e8e8}.ant-menu-vertical-right{border-left:1px solid #e8e8e8}.ant-menu-vertical.ant-menu-sub,.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub{border-right:0}.ant-menu-vertical.ant-menu-sub .ant-menu-item,.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item{border-right:0}.ant-menu-vertical.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after{border-right:0}.ant-menu-item .anticon,.ant-menu-submenu-title .anticon{font-size:14px}.ant-menu-item .anticon+span,.ant-menu-submenu-title .anticon+span{transition:opacity .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu>.ant-menu-item-divider{background-color:#e8e8e8}.ant-menu-submenu-popup{z-index:1050;background:#fff;border-radius:4px}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:4px}.ant-menu-submenu>.ant-menu-submenu-title::after{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow::after{background:#fff;background:rgba(0,0,0,0.65) \9;background-image:linear-gradient(to right,rgba(0,0,0,0.65),rgba(0,0,0,0.65));border-radius:2px;transition:background .3s cubic-bezier(0.645,0.045,0.355,1),transform .3s cubic-bezier(0.645,0.045,0.355,1),top .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before{background:linear-gradient(to right,#343a40,#343a40)}.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected{color:#343a40}.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#343a40}.ant-menu-horizontal{border:0;border-bottom:1px solid #e8e8e8}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{border-bottom:2px solid transparent}.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu:hover,.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-submenu-selected{color:#343a40;border-bottom:2px solid #343a40}.ant-menu-horizontal>.ant-menu-item>a{color:rgba(0,0,0,0.65)}.ant-menu-horizontal>.ant-menu-item>a:hover{color:#343a40}.ant-menu-horizontal>.ant-menu-item-selected>a{color:#343a40}.ant-menu-vertical .ant-menu-item::after,.ant-menu-vertical-left .ant-menu-item::after,.ant-menu-vertical-right .ant-menu-item::after,.ant-menu-inline .ant-menu-item::after{border-right:3px solid #343a40;transition:transform .15s cubic-bezier(0.215,0.61,0.355,1),opacity .15s cubic-bezier(0.215,0.61,0.355,1)}.ant-menu-vertical .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item,.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title{height:40px;font-size:14px;line-height:40px}.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-inline>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-inline .ant-menu-selected::after,.ant-menu-inline .ant-menu-item-selected::after{transition:transform .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-inline-collapsed{width:80px}.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{line-height:40px}.ant-menu-inline-collapsed-tooltip a{color:rgba(255,255,255,0.85)}.ant-menu-sub.ant-menu-inline{border:0;border-radius:0}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{color:rgba(0,0,0,0.25) !important;border-color:transparent !important}.ant-menu-item-disabled>a,.ant-menu-submenu-disabled>a{color:rgba(0,0,0,0.25) !important}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,0.25) !important}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{background:rgba(0,0,0,0.25) !important}.ant-message{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1010}.ant-message-notice-content{background:#fff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-message-success .anticon{color:#52c41a}.ant-message-error .anticon{color:#f5222d}.ant-message-warning .anticon{color:#faad14}.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}.ant-message .anticon{font-size:16px}.ant-notification{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1010;width:384px}.ant-notification-close-icon{font-size:14px}.ant-notification-notice{background:#fff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-notification-notice-message{color:rgba(0,0,0,0.85);font-size:16px}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-with-icon .ant-notification-notice-message{font-size:16px}.ant-notification-notice-with-icon .ant-notification-notice-description{font-size:14px}.anticon.ant-notification-notice-icon-success{color:#52c41a}.anticon.ant-notification-notice-icon-info{color:#1890ff}.anticon.ant-notification-notice-icon-warning{color:#faad14}.anticon.ant-notification-notice-icon-error{color:#f5222d}.ant-notification-notice-close{color:rgba(0,0,0,0.45)}.ant-notification-notice-close:hover{color:rgba(0,0,0,0.67)}.ant-notification .notification-fade-effect{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-notification-fade-enter,.ant-notification-fade-appear{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-notification-fade-leave{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}@keyframes NotificationFadeIn{0%{left:384px}}@keyframes NotificationLeftFadeIn{0%{right:384px}}.ant-page-header{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-page-header-back-button{color:#343a40}.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#484a4d}.ant-page-header-back-button:active{color:#13161a}.ant-page-header-heading-title{color:rgba(0,0,0,0.85);font-size:24px}.ant-page-header-heading-sub-title{color:rgba(0,0,0,0.45)}.ant-page-header-footer .ant-tabs-bar{border-bottom:0}.ant-pagination{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-pagination-total-text{height:32px;line-height:30px}.ant-pagination-item{min-width:32px;height:32px;font-family:Arial;line-height:30px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-item a{color:rgba(0,0,0,0.65)}.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#343a40}.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#343a40}.ant-pagination-item-active{font-weight:500;background:#fff;border-color:#343a40}.ant-pagination-item-active a{color:#343a40}.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#484a4d}.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#484a4d}.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon{font-size:12px \9;transform:scale(1) rotate(0);color:#343a40}:root .ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,:root .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon{font-size:12px}.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis{color:rgba(0,0,0,0.25)}.ant-pagination-prev,.ant-pagination-next,.ant-pagination-jump-prev,.ant-pagination-jump-next{min-width:32px;height:32px;color:rgba(0,0,0,0.65);font-family:Arial;line-height:32px;border-radius:4px}.ant-pagination-prev a,.ant-pagination-next a{color:rgba(0,0,0,0.65)}.ant-pagination-prev:hover a,.ant-pagination-next:hover a{border-color:#484a4d}.ant-pagination-prev .ant-pagination-item-link,.ant-pagination-next .ant-pagination-item-link{background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link{color:#343a40;border-color:#343a40}.ant-pagination-disabled a,.ant-pagination-disabled:hover a,.ant-pagination-disabled:focus a,.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link,.ant-pagination-disabled:focus .ant-pagination-item-link{color:rgba(0,0,0,0.25);border-color:#d9d9d9}.ant-pagination-options-quick-jumper{height:32px;line-height:32px}.ant-pagination-options-quick-jumper input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-options-quick-jumper input::-moz-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input::-webkit-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:hover{border-color:#484a4d;border-right-width:1px !important}.ant-pagination-options-quick-jumper input:focus{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-pagination-options-quick-jumper input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-pagination-options-quick-jumper input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-pagination-options-quick-jumper input{min-height:32px;line-height:1.5}.ant-pagination-options-quick-jumper input-lg{height:40px;font-size:16px}.ant-pagination-options-quick-jumper input-sm{height:24px}.ant-pagination-simple .ant-pagination-prev,.ant-pagination-simple .ant-pagination-next{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link{height:24px;border:0}.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link::after,.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link::after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{height:24px}.ant-pagination-simple .ant-pagination-simple-pager input{box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#343a40}.ant-pagination.mini .ant-pagination-total-text,.ant-pagination.mini .ant-pagination-simple-pager{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{min-width:24px;height:24px;line-height:22px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){border-color:transparent}.ant-pagination.mini .ant-pagination-prev,.ant-pagination.mini .ant-pagination-next{min-width:24px;height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link{border-color:transparent}.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link::after,.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link::after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-prev,.ant-pagination.mini .ant-pagination-jump-next{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{height:24px}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{color:rgba(0,0,0,0.25);border:0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#dbdbdb;border-color:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:hover,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:focus{color:rgba(0,0,0,0.45);background:#f5f5f5;border-color:#d9d9d9}.ant-popover{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1030}.ant-popover::after{background:rgba(255,255,255,0.01)}.ant-popover-inner{background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15);box-shadow:0 0 8px rgba(0,0,0,0.15) \9}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-popover-inner{box-shadow:0 2px 8px rgba(0,0,0,0.15)}}.ant-popover-title{min-width:177px;color:rgba(0,0,0,0.85);border-bottom:1px solid #e8e8e8}.ant-popover-inner-content{color:rgba(0,0,0,0.65)}.ant-popover-message{color:rgba(0,0,0,0.65);font-size:14px}.ant-popover-message>.anticon{color:#faad14;font-size:14px}.ant-popover-arrow{width:8.48528137px;height:8.48528137px;border-style:solid;border-width:4.24264069px}.ant-popover-placement-top>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topRight>.ant-popover-content>.ant-popover-arrow{bottom:6.2px;border-top-color:transparent;border-right-color:#fff;border-bottom-color:#fff;border-left-color:transparent;box-shadow:3px 3px 7px rgba(0,0,0,0.07)}.ant-popover-placement-right>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightTop>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightBottom>.ant-popover-content>.ant-popover-arrow{left:6px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#fff;border-left-color:#fff;box-shadow:-3px 3px 7px rgba(0,0,0,0.07)}.ant-popover-placement-bottom>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomRight>.ant-popover-content>.ant-popover-arrow{top:6px;border-top-color:#fff;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#fff;box-shadow:-2px -2px 5px rgba(0,0,0,0.06)}.ant-popover-placement-left>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftTop>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftBottom>.ant-popover-content>.ant-popover-arrow{right:6px;border-top-color:#fff;border-right-color:#fff;border-bottom-color:transparent;border-left-color:transparent;box-shadow:3px -3px 7px rgba(0,0,0,0.07)}.ant-progress{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-progress-line{font-size:14px}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-inner{background-color:#f5f5f5;border-radius:100px}.ant-progress-circle-trail{stroke:#f5f5f5}.ant-progress-circle-path{animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}.ant-progress-success-bg,.ant-progress-bg{background-color:#1890ff;border-radius:100px;transition:all .4s cubic-bezier(0.08,0.82,0.17,1) 0s}.ant-progress-success-bg{background-color:#52c41a}.ant-progress-text{color:rgba(0,0,0,0.45)}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg::before{background:#fff;border-radius:10px;animation:ant-progress-active 2.4s cubic-bezier(0.23,1,0.32,1) infinite}.ant-progress-status-exception .ant-progress-bg{background-color:#f5222d}.ant-progress-status-exception .ant-progress-text{color:#f5222d}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#f5222d}.ant-progress-status-success .ant-progress-bg{background-color:#52c41a}.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#52c41a}.ant-progress-circle .ant-progress-text{color:rgba(0,0,0,0.65)}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:#f5222d}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-radio-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner,.ant-radio-input:focus+.ant-radio-inner{border-color:#343a40}.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px rgba(52,58,64,0.08)}.ant-radio-checked::after{border:1px solid #343a40;border-radius:50%}.ant-radio-inner{width:16px;height:16px;background-color:#fff;border-color:#d9d9d9;border-style:solid;border-width:1px;border-radius:100px;transition:all .3s}.ant-radio-inner::after{top:3px;left:3px;width:8px;height:8px;background-color:#343a40;border-top:0;border-left:0;border-radius:8px;transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-radio-checked .ant-radio-inner{border-color:#343a40}.ant-radio-checked .ant-radio-inner::after{transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-radio-disabled .ant-radio-inner::after{background-color:rgba(0,0,0,0.2)}.ant-radio-disabled+span{color:rgba(0,0,0,0.25)}.ant-radio-button-wrapper{height:32px;color:rgba(0,0,0,0.65);line-height:30px;background:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-left:0;transition:color .3s,background .3s,border-color .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,0.65)}.ant-radio-group-large .ant-radio-button-wrapper{height:40px;font-size:16px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;line-height:22px}.ant-radio-button-wrapper:not(:first-child)::before{background-color:#d9d9d9}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:4px 0 0 4px}.ant-radio-button-wrapper:last-child{border-radius:0 4px 4px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:4px}.ant-radio-button-wrapper:hover{color:#343a40}.ant-radio-button-wrapper:focus-within{outline:3px solid rgba(52,58,64,0.06)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#343a40;background:#fff;border-color:#343a40;box-shadow:-1px 0 0 0 #343a40}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before{background-color:#343a40 !important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#343a40}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#484a4d;border-color:#484a4d;box-shadow:-1px 0 0 0 #484a4d}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#13161a;border-color:#13161a;box-shadow:-1px 0 0 0 #13161a}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(52,58,64,0.06)}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff;background:#343a40;border-color:#343a40}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#fff;background:#484a4d;border-color:#484a4d}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#fff;background:#13161a;border-color:#13161a}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(52,58,64,0.06)}.ant-radio-button-wrapper-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:#fff;background-color:#e6e6e6;border-color:#d9d9d9}.ant-rate{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#fadb14}.ant-rate-star-first,.ant-rate-star-second{color:#e8e8e8}.ant-rate-text{font-size:14px}.ant-result-success .ant-result-icon>.anticon{color:#52c41a}.ant-result-error .ant-result-icon>.anticon{color:#f5222d}.ant-result-info .ant-result-icon>.anticon{color:#1890ff}.ant-result-warning .ant-result-icon>.anticon{color:#faad14}.ant-result-title{color:rgba(0,0,0,0.85)}.ant-result-subtitle{color:rgba(0,0,0,0.45)}.ant-result-content{background-color:#fafafa}.ant-select{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select>ul>li>a{background-color:#fff}.ant-select-arrow{color:inherit;color:rgba(0,0,0,0.25);font-size:12px}.ant-select-selection{box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-radius:4px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-select-selection:hover{border-color:#484a4d;border-right-width:1px !important}.ant-select-focused .ant-select-selection,.ant-select-selection:focus,.ant-select-selection:active{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-select-selection__clear{color:rgba(0,0,0,0.25);font-size:12px;background:#fff}.ant-select-selection__clear:hover{color:rgba(0,0,0,0.45)}.ant-select-disabled{color:rgba(0,0,0,0.25)}.ant-select-disabled .ant-select-selection{background:#f5f5f5}.ant-select-disabled .ant-select-selection:hover,.ant-select-disabled .ant-select-selection:focus,.ant-select-disabled .ant-select-selection:active{border-color:#d9d9d9}.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice{color:rgba(0,0,0,0.33);background:#f5f5f5}.ant-select-selection--single{height:32px}.ant-select-selection__rendered{line-height:30px}.ant-select-lg{font-size:16px}.ant-select-lg .ant-select-selection--single{height:40px}.ant-select-lg .ant-select-selection__rendered{line-height:38px}.ant-select-lg .ant-select-selection--multiple{min-height:40px}.ant-select-lg .ant-select-selection--multiple .ant-select-selection__rendered li{height:32px;line-height:32px}.ant-select-lg .ant-select-selection--multiple .ant-select-selection__clear,.ant-select-lg .ant-select-selection--multiple .ant-select-arrow{top:20px}.ant-select-sm .ant-select-selection--single{height:24px}.ant-select-sm .ant-select-selection__rendered{line-height:22px}.ant-select-sm .ant-select-selection--multiple{min-height:24px}.ant-select-sm .ant-select-selection--multiple .ant-select-selection__rendered li{height:16px;line-height:14px}.ant-select-sm .ant-select-selection--multiple .ant-select-selection__clear,.ant-select-sm .ant-select-selection--multiple .ant-select-arrow{top:12px}.ant-select-disabled .ant-select-selection__choice__remove{color:rgba(0,0,0,0.25)}.ant-select-disabled .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,0.25)}.ant-select-selection__placeholder,.ant-select-search__field__placeholder{color:#bfbfbf}.ant-select-search--inline .ant-select-search__field{border-width:0;border-radius:4px}.ant-select-selection--multiple{min-height:32px}.ant-select-selection--multiple>ul>li,.ant-select-selection--multiple .ant-select-selection__rendered>ul>li{height:24px;line-height:22px}.ant-select-selection--multiple .ant-select-selection__choice{color:rgba(0,0,0,0.65);background-color:#fafafa;border:1px solid #e8e8e8;border-radius:2px}.ant-select-selection--multiple .ant-select-selection__choice__remove{color:inherit;color:rgba(0,0,0,0.45);font-size:12px;font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-selection--multiple .ant-select-selection__choice__remove{font-size:12px}.ant-select-selection--multiple .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,0.75)}.ant-select-selection--multiple .ant-select-selection__clear,.ant-select-selection--multiple .ant-select-arrow{top:16px}.ant-select-open .ant-select-selection{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-select-combobox .ant-select-search__field{transition:all .3s cubic-bezier(0.645,0.045,0.355,1),height 0s}.ant-select-dropdown{color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;box-sizing:border-box;font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-select-dropdown-menu-item-group-title{color:rgba(0,0,0,0.45);font-size:12px}.ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:first-child:not(:last-child),.ant-select-dropdown-menu-item-group:not(:last-child) .ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:last-child{border-radius:0}.ant-select-dropdown-menu-item{color:rgba(0,0,0,0.65)}.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#787d80}.ant-select-dropdown-menu-item:first-child{border-radius:4px 4px 0 0}.ant-select-dropdown-menu-item:last-child{border-radius:0 0 4px 4px}.ant-select-dropdown-menu-item-selected{color:rgba(0,0,0,0.65);font-weight:600;background-color:#fafafa}.ant-select-dropdown-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-select-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,0.25)}.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#787d80}.ant-select-dropdown-menu-item-divider{background-color:#e8e8e8}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item:hover .ant-select-selected-icon{color:rgba(0,0,0,0.87)}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#343a40}.ant-skeleton-header .ant-skeleton-avatar{background:#f2f2f2;width:32px;height:32px;line-height:32px}.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-content .ant-skeleton-title{background:#f2f2f2}.ant-skeleton-content .ant-skeleton-paragraph>li{background:#f2f2f2}.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);animation:ant-skeleton-loading 1.4s ease infinite}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);animation:ant-skeleton-loading 1.4s ease infinite}.ant-slider{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-slider-rail{background-color:#f5f5f5;border-radius:2px}.ant-slider-track{background-color:#606466;border-radius:4px}.ant-slider-handle{background-color:#fff;border:solid 2px #606466;border-radius:50%;box-shadow:0 0;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(0.18,0.89,0.32,1.28)}.ant-slider-handle:focus{border-color:#5d6166;box-shadow:0 0 0 5px rgba(52,58,64,0.2)}.ant-slider-handle.ant-tooltip-open{border-color:#343a40}.ant-slider:hover .ant-slider-rail{background-color:#e1e1e1}.ant-slider:hover .ant-slider-track{background-color:#545759}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#545759}.ant-slider-mark{font-size:14px}.ant-slider-mark-text{color:rgba(0,0,0,0.45)}.ant-slider-mark-text-active{color:rgba(0,0,0,0.65)}.ant-slider-dot{background-color:#fff;border:2px solid #e8e8e8;border-radius:50%}.ant-slider-dot-active{border-color:#9a9da0}.ant-slider-disabled .ant-slider-track{background-color:rgba(0,0,0,0.25) !important}.ant-slider-disabled .ant-slider-handle,.ant-slider-disabled .ant-slider-dot{background-color:#fff;border-color:rgba(0,0,0,0.25) !important}.ant-spin{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#343a40;transition:transform .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{text-shadow:0 1px 2px #fff}.ant-spin-container::after{background:#fff}.ant-spin-tip{color:rgba(0,0,0,0.45)}.ant-spin-dot{font-size:20px;width:1em;height:1em}.ant-spin-dot-item{background-color:#343a40;border-radius:100%}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-lg .ant-spin-dot{font-size:32px}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.ant-spin-blur{background:#fff}}.ant-statistic{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-statistic-title{color:rgba(0,0,0,0.45);font-size:14px}.ant-statistic-content{color:rgba(0,0,0,0.85);font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-statistic-content-value-decimal{font-size:16px}.ant-statistic-content-suffix{font-size:16px}.ant-steps{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-steps-item-icon{width:32px;height:32px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";line-height:32px;border:1px solid rgba(0,0,0,0.25);border-radius:32px;transition:background-color .3s,border-color .3s}.ant-steps-item-icon>.ant-steps-icon{color:#343a40}.ant-steps-item-tail::after{background:#e8e8e8;border-radius:1px}.ant-steps-item-title{color:rgba(0,0,0,0.65);font-size:16px;line-height:32px}.ant-steps-item-title::after{top:16px;background:#e8e8e8}.ant-steps-item-subtitle{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-item-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff;border-color:rgba(0,0,0,0.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:rgba(0,0,0,0.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:rgba(0,0,0,0.25)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item-process .ant-steps-item-icon{background-color:#fff;border-color:#343a40}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#343a40}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#343a40}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.65)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item-process .ant-steps-item-icon{background:#343a40}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#fff}.ant-steps-item-finish .ant-steps-item-icon{background-color:#fff;border-color:#343a40}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#343a40}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#343a40}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.65)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#343a40}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.45)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#343a40}.ant-steps-item-error .ant-steps-item-icon{background-color:#fff;border-color:#f5222d}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon{color:#f5222d}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item.ant-steps-next-error .ant-steps-item-title::after{background:#f5222d}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-title,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-description{color:#343a40}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-icon{border-color:#343a40}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-icon .ant-steps-icon{color:#343a40}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description{max-width:140px}.ant-switch{color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";box-sizing:border-box;height:22px;line-height:20px;background-color:rgba(0,0,0,0.25);border:1px solid transparent;border-radius:100px;transition:all .36s}.ant-switch-inner{color:#fff;font-size:12px}.ant-switch-loading-icon,.ant-switch::after{width:18px;height:18px;background-color:#fff;border-radius:18px;transition:all .36s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-switch::after{box-shadow:0 2px 4px 0 rgba(0,35,11,0.2)}.ant-switch-loading .ant-switch-loading-icon{color:rgba(0,0,0,0.65)}.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#343a40}.ant-switch:focus{box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-switch-small{height:16px;line-height:14px}.ant-switch-small .ant-switch-inner{font-size:12px}.ant-switch-small::after{width:12px;height:12px}.ant-switch-small .ant-switch-loading-icon{width:12px;height:12px}.ant-switch-checked{background-color:#343a40}.ant-switch-loading,.ant-switch-disabled{opacity:.4}.ant-table{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-table table{border-radius:4px 4px 0 0;border-collapse:separate;border-spacing:0}.ant-table-thead>tr>th{color:rgba(0,0,0,0.85);background:#fafafa;border-bottom:1px solid #e8e8e8}.ant-table-thead>tr>th .anticon-filter,.ant-table-thead>tr>th .ant-table-filter-icon{color:#bfbfbf;font-size:12px}.ant-table-thead>tr>th .ant-table-filter-selected.anticon-filter{color:#343a40}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner{color:#bfbfbf}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down{font-size:11px \9;transform:scale(0.91666667) rotate(0)}:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up,:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down{font-size:12px}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on{color:#343a40}.ant-table-thead>tr>th.ant-table-column-has-actions{-webkit-background-clip:border-box}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .anticon-filter.ant-table-filter-open,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .ant-table-filter-icon.ant-table-filter-open{color:rgba(0,0,0,0.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:hover,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:hover{color:rgba(0,0,0,0.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:active,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:active{color:rgba(0,0,0,0.65)}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .anticon-filter,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .ant-table-filter-icon{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-up:not(.on),.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-down:not(.on){color:rgba(0,0,0,0.45)}.ant-table-thead>tr:first-child>th:first-child{border-top-left-radius:4px}.ant-table-thead>tr:first-child>th:last-child{border-top-right-radius:4px}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #e8e8e8;transition:all .3s,border 0s}.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#787d80}.ant-table-thead>tr.ant-table-row-selected>td.ant-table-column-sort,.ant-table-tbody>tr.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-thead>tr:hover.ant-table-row-selected>td,.ant-table-tbody>tr:hover.ant-table-row-selected>td{background:#fafafa}.ant-table-thead>tr:hover.ant-table-row-selected>td.ant-table-column-sort,.ant-table-tbody>tr:hover.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-footer{color:rgba(0,0,0,0.85);background:#fafafa;border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-table-footer::before{background:#fafafa}.ant-table.ant-table-bordered .ant-table-footer{border:1px solid #e8e8e8}.ant-table-title{border-radius:4px 4px 0 0}.ant-table.ant-table-bordered .ant-table-title{border:1px solid #e8e8e8}.ant-table-title+.ant-table-content{border-radius:4px 4px 0 0}.ant-table-bordered .ant-table-title+.ant-table-content,.ant-table-bordered .ant-table-title+.ant-table-content table,.ant-table-bordered .ant-table-title+.ant-table-content .ant-table-thead>tr:first-child>th{border-radius:0}.ant-table-without-column-header .ant-table-title+.ant-table-content,.ant-table-without-column-header table{border-radius:0}.ant-table-without-column-header.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-top:1px solid #e8e8e8;border-radius:4px}.ant-table-tbody>tr.ant-table-row-selected td{color:inherit;background:#fafafa}.ant-table-thead>tr>th.ant-table-column-sort{background:#f5f5f5}.ant-table-tbody>tr>td.ant-table-column-sort{background:rgba(0,0,0,0.01)}.ant-table-header{background:#fafafa}.ant-table-header table{border-radius:4px 4px 0 0}.ant-table-loading .ant-table-body{background:#fff}.ant-table-bordered .ant-table-header>table,.ant-table-bordered .ant-table-body>table,.ant-table-bordered .ant-table-fixed-left table,.ant-table-bordered .ant-table-fixed-right table{border:1px solid #e8e8e8;border-right:0;border-bottom:0}.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-table-bordered.ant-table-fixed-header .ant-table-header>table{border-bottom:0}.ant-table-bordered.ant-table-fixed-header .ant-table-body>table{border-top-left-radius:0;border-top-right-radius:0}.ant-table-bordered.ant-table-fixed-header .ant-table-header+.ant-table-body>table,.ant-table-bordered.ant-table-fixed-header .ant-table-body-inner>table{border-top:0}.ant-table-bordered .ant-table-thead>tr:not(:last-child)>th{border-bottom:1px solid #e8e8e8}.ant-table-bordered .ant-table-thead>tr>th,.ant-table-bordered .ant-table-tbody>tr>td{border-right:1px solid #e8e8e8}.ant-table-placeholder{color:rgba(0,0,0,0.25);font-size:14px;background:#fff;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-table-filter-dropdown{background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-filter-dropdown .ant-dropdown-menu{border:0;border-radius:4px 4px 0 0}.ant-table-filter-dropdown .ant-dropdown-menu-sub{border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title::after{color:#343a40;text-shadow:0 0 2px #6c7073}.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-item:last-child,.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-submenu:last-child .ant-dropdown-menu-submenu-title{border-radius:0}.ant-table-filter-dropdown-btns{border-top:1px solid #e8e8e8}.ant-table-filter-dropdown-link{color:#343a40}.ant-table-filter-dropdown-link:hover{color:#484a4d}.ant-table-filter-dropdown-link:active{color:#13161a}.ant-table-selection .anticon-down{color:#bfbfbf}.ant-table-selection-menu{background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-selection-menu .ant-action-down{color:#bfbfbf}.ant-table-selection-down:hover .anticon-down{color:rgba(0,0,0,0.6)}.ant-table-row-expand-icon{color:#343a40;background:#fff;border:1px solid #e8e8e8;border-radius:2px}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#484a4d}.ant-table-row-expand-icon:active{color:#13161a}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover,.ant-table-row-expand-icon:active{border-color:currentColor}tr.ant-table-expanded-row,tr.ant-table-expanded-row:hover{background:#fbfbfb}.ant-table-fixed-header>.ant-table-content>.ant-table-scroll>.ant-table-body{background:#fff}.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-width:0 0 1px 0}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-width:1px 1px 1px 0}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header.ant-table-hide-scrollbar .ant-table-thead>tr:only-child>th:last-child{border-right-color:transparent}.ant-table-fixed-left,.ant-table-fixed-right{z-index:auto;border-radius:0}.ant-table-fixed-left table,.ant-table-fixed-right table{background:#fff}.ant-table-fixed-header .ant-table-fixed-left .ant-table-body-outer .ant-table-fixed,.ant-table-fixed-header .ant-table-fixed-right .ant-table-body-outer .ant-table-fixed{border-radius:0}.ant-table-fixed-left{box-shadow:6px 0 6px -4px rgba(0,0,0,0.15)}.ant-table-fixed-left,.ant-table-fixed-left table{border-radius:4px 0 0 0}.ant-table-fixed-left .ant-table-thead>tr>th:last-child{border-top-right-radius:0}.ant-table-fixed-right{box-shadow:-6px 0 6px -4px rgba(0,0,0,0.15)}.ant-table-fixed-right,.ant-table-fixed-right table{border-radius:0 4px 0 0}.ant-table-fixed-right .ant-table-thead>tr>th:first-child{border-top-left-radius:0}.ant-table colgroup>col.ant-table-selection-col{width:60px}.ant-tabs{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tabs-ink-bar{box-sizing:border-box;background-color:#343a40}.ant-tabs-bar{border-bottom:1px solid #e8e8e8}.ant-tabs-nav-container{box-sizing:border-box;font-size:14px;line-height:1.5}.ant-tabs-bottom .ant-tabs-bottom-bar{border-top:1px solid #e8e8e8;border-bottom:0}.ant-tabs-tab-prev,.ant-tabs-tab-next{color:rgba(0,0,0,0.45);border:0;transition:width .3s cubic-bezier(0.645,0.045,0.355,1),opacity .3s cubic-bezier(0.645,0.045,0.355,1),color .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-tab-prev.ant-tabs-tab-arrow-show,.ant-tabs-tab-next.ant-tabs-tab-arrow-show{width:32px}.ant-tabs-tab-prev:hover,.ant-tabs-tab-next:hover{color:rgba(0,0,0,0.65)}.ant-tabs-tab-prev-icon-target,.ant-tabs-tab-next-icon-target{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tabs-tab-prev-icon-target,:root .ant-tabs-tab-next-icon-target{font-size:12px}.ant-tabs-tab-btn-disabled,.ant-tabs-tab-btn-disabled:hover{color:rgba(0,0,0,0.25)}.ant-tabs-nav{box-sizing:border-box;transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-nav .ant-tabs-tab{box-sizing:border-box;transition:color .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-nav .ant-tabs-tab::before{border-top:2px solid transparent;border-radius:4px 4px 0 0}.ant-tabs-nav .ant-tabs-tab:hover{color:#484a4d}.ant-tabs-nav .ant-tabs-tab:active{color:#13161a}.ant-tabs-nav .ant-tabs-tab-active{color:#343a40}.ant-tabs-nav .ant-tabs-tab-disabled,.ant-tabs-nav .ant-tabs-tab-disabled:hover{color:rgba(0,0,0,0.25)}.ant-tabs .ant-tabs-large-bar .ant-tabs-nav-container{font-size:16px}.ant-tabs .ant-tabs-small-bar .ant-tabs-nav-container{font-size:14px}.ant-tabs .ant-tabs-left-bar,.ant-tabs .ant-tabs-right-bar{border-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show{height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-next,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-next{height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-prev,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-prev{height:32px}.ant-tabs .ant-tabs-left-bar{border-right:1px solid #e8e8e8}.ant-tabs .ant-tabs-left-content{border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-bar{border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-content{border-right:1px solid #e8e8e8}.ant-tabs-top .ant-tabs-ink-bar-animated,.ant-tabs-bottom .ant-tabs-ink-bar-animated{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1),left .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-left .ant-tabs-ink-bar-animated,.ant-tabs-right .ant-tabs-ink-bar-animated{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1),height .3s cubic-bezier(0.645,0.045,0.355,1),top .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tag{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";font-size:12px;background:#fafafa;border:1px solid #d9d9d9;border-radius:4px;transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,0.65)}.ant-tag .anticon-close{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45);transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}:root .ant-tag .anticon-close{font-size:12px}.ant-tag .anticon-close:hover{color:rgba(0,0,0,0.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color a,.ant-tag-has-color a:hover,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover{color:#fff}.ant-tag-checkable{border-color:transparent}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#343a40}.ant-tag-checkable:active,.ant-tag-checkable-checked{color:#fff}.ant-tag-checkable-checked{background-color:#343a40}.ant-tag-checkable:active{background-color:#13161a}.ant-tag-pink{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-magenta{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-red{color:#f5222d;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{color:#fff;background:#f5222d;border-color:#f5222d}.ant-tag-volcano{color:#fa541c;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{color:#fff;background:#fa541c;border-color:#fa541c}.ant-tag-orange{color:#fa8c16;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{color:#fff;background:#fa8c16;border-color:#fa8c16}.ant-tag-yellow{color:#fadb14;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{color:#fff;background:#fadb14;border-color:#fadb14}.ant-tag-gold{color:#faad14;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{color:#fff;background:#faad14;border-color:#faad14}.ant-tag-cyan{color:#13c2c2;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{color:#fff;background:#13c2c2;border-color:#13c2c2}.ant-tag-lime{color:#a0d911;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{color:#fff;background:#a0d911;border-color:#a0d911}.ant-tag-green{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{color:#fff;background:#52c41a;border-color:#52c41a}.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{color:#fff;background:#1890ff;border-color:#1890ff}.ant-tag-geekblue{color:#2f54eb;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-tag-purple{color:#722ed1;background:#f9f0ff;border-color:#d3adf7}.ant-tag-purple-inverse{color:#fff;background:#722ed1;border-color:#722ed1}.ant-time-picker-panel{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-time-picker-panel-inner{font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-time-picker-panel-input{border:0}.ant-time-picker-panel-input::-moz-placeholder{color:#bfbfbf}.ant-time-picker-panel-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input-wrap{border-bottom:1px solid #e8e8e8}.ant-time-picker-panel-input-invalid{border-color:#f5222d}.ant-time-picker-panel-narrow .ant-time-picker-panel-input-wrap{max-width:112px}.ant-time-picker-panel-select{width:56px;max-height:192px;font-size:14px;border-left:1px solid #e8e8e8}.ant-time-picker-panel-select:first-child{border-left:0}.ant-time-picker-panel-select:last-child{border-right:0}.ant-time-picker-panel-select ul{width:56px}.ant-time-picker-panel-select li{height:32px;line-height:32px}.ant-time-picker-panel-select li:focus{color:#343a40}.ant-time-picker-panel-select li:hover{background:#787d80}li.ant-time-picker-panel-select-option-selected{background:#f5f5f5}li.ant-time-picker-panel-select-option-selected:hover{background:#f5f5f5}li.ant-time-picker-panel-select-option-disabled{color:rgba(0,0,0,0.25)}.ant-time-picker-panel-addon{border-top:1px solid #e8e8e8}.ant-time-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-time-picker-input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-time-picker-input::-moz-placeholder{color:#bfbfbf}.ant-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-input:hover{border-color:#484a4d;border-right-width:1px !important}.ant-time-picker-input:focus{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-time-picker-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-time-picker-input{min-height:32px;line-height:1.5}.ant-time-picker-input-lg{height:40px;font-size:16px}.ant-time-picker-input-sm{height:24px}.ant-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-time-picker-icon,.ant-time-picker-clear{color:rgba(0,0,0,0.25);transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-time-picker-icon .ant-time-picker-clock-icon,.ant-time-picker-clear .ant-time-picker-clock-icon{color:rgba(0,0,0,0.25)}.ant-time-picker-clear{background:#fff}.ant-time-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-time-picker-large .ant-time-picker-input{height:40px;font-size:16px}.ant-time-picker-small .ant-time-picker-input{height:24px}@media not all and (min-resolution:.001dpcm){@supports(-webkit-appearance:none) and (stroke-color:transparent){.ant-input{line-height:1.5}}}.ant-timeline{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-timeline-item{font-size:14px}.ant-timeline-item-tail{border-left:2px solid #e8e8e8}.ant-timeline-item-pending .ant-timeline-item-head{font-size:12px}.ant-timeline-item-head{background-color:#fff;border:2px solid transparent;border-radius:100px}.ant-timeline-item-head-blue{color:#343a40;border-color:#343a40}.ant-timeline-item-head-red{color:#f5222d;border-color:#f5222d}.ant-timeline-item-head-green{color:#52c41a;border-color:#52c41a}.ant-timeline-item-head-gray{color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-timeline-item-head-custom{border:0;border-radius:0}.ant-timeline-item-content{top:-6px}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom{left:calc(100% - 4px - 2px)}.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail{border-left:2px dotted #e8e8e8}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-left:2px dotted #e8e8e8}.ant-tooltip{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1060;max-width:250px}.ant-tooltip-inner{color:#fff;background-color:rgba(0,0,0,0.75);border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-tooltip-arrow{width:13.07106781px;height:13.07106781px}.ant-tooltip-arrow::before{width:5px;height:5px;background-color:rgba(0,0,0,0.75)}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow::before,.ant-tooltip-placement-topLeft .ant-tooltip-arrow::before,.ant-tooltip-placement-topRight .ant-tooltip-arrow::before{box-shadow:3px 3px 7px rgba(0,0,0,0.07);transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow::before,.ant-tooltip-placement-rightTop .ant-tooltip-arrow::before,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow::before{box-shadow:-3px 3px 7px rgba(0,0,0,0.07);transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow::before,.ant-tooltip-placement-leftTop .ant-tooltip-arrow::before,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow::before{box-shadow:3px -3px 7px rgba(0,0,0,0.07);transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow::before,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow::before,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow::before{box-shadow:-3px -3px 7px rgba(0,0,0,0.07);transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-transfer{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-transfer-disabled .ant-transfer-list{background:#f5f5f5}.ant-transfer-list{height:200px;border:1px solid #d9d9d9;border-radius:4px}.ant-transfer-list-search-action{color:rgba(0,0,0,0.25);line-height:32px}.ant-transfer-list-search-action .anticon{color:rgba(0,0,0,0.25)}.ant-transfer-list-search-action .anticon:hover{color:rgba(0,0,0,0.45)}.ant-transfer-list-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-transfer-list-body{font-size:14px}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#787d80}.ant-transfer-list-content-item-disabled{color:rgba(0,0,0,0.25)}.ant-transfer-list-body-not-found{color:rgba(0,0,0,0.25)}.ant-transfer-list-footer{border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}@keyframes transferHighlightIn{0%{background:#6c7073}}.ant-select-tree-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner{border-color:#343a40}.ant-select-tree-checkbox-checked::after{border:1px solid #343a40;border-radius:2px}.ant-select-tree-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-select-tree-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#343a40;border-color:#343a40}.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-select-tree-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-select-tree-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after{width:8px;height:8px;background-color:#343a40;border:0}.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-select-tree{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree li .ant-select-tree-node-content-wrapper{color:rgba(0,0,0,0.65);border-radius:2px}.ant-select-tree li .ant-select-tree-node-content-wrapper:hover{background-color:#787d80}.ant-select-tree li .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:#6c7073}.ant-select-tree li span.ant-select-tree-switcher,.ant-select-tree li span.ant-select-tree-iconEle{border:0 none}.ant-select-tree li span.ant-select-icon_loading .ant-select-switcher-loading-icon{color:#343a40}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon,:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon{font-size:12px}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon,:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon{font-size:12px}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-loading-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-loading-icon{color:#343a40}li.ant-select-tree-treenode-disabled>span:not(.ant-select-tree-switcher),li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper,li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper span{color:rgba(0,0,0,0.25)}.ant-select-tree-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-dropdown .ant-select-dropdown-search{background:#fff}.ant-select-tree-dropdown .ant-select-dropdown-search .ant-select-search__field{box-sizing:border-box;border:1px solid #d9d9d9;border-radius:4px}.ant-select-tree-dropdown .ant-select-not-found{color:rgba(0,0,0,0.25)}.ant-tree-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner,.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner{border-color:#343a40}.ant-tree-checkbox-checked::after{border:1px solid #343a40;border-radius:2px}.ant-tree-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-tree-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#343a40;border-color:#343a40}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-tree-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-tree-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner::after{width:8px;height:8px;background-color:#343a40;border:0}.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-tree{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree li span[draggable],.ant-tree li span[draggable="true"]{line-height:20px;border-top:2px transparent solid;border-bottom:2px transparent solid}.ant-tree li.drag-over>span[draggable]{background-color:#343a40}.ant-tree li.drag-over-gap-top>span[draggable]{border-top-color:#343a40}.ant-tree li.drag-over-gap-bottom>span[draggable]{border-bottom-color:#343a40}.ant-tree li.filter-node>span{color:#f5222d !important}.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-loading-icon,.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-loading-icon{height:24px;color:#343a40}.ant-tree li .ant-tree-node-content-wrapper{height:24px;color:rgba(0,0,0,0.65);line-height:24px;border-radius:2px}.ant-tree li .ant-tree-node-content-wrapper:hover{background-color:#787d80}.ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:#6c7073}.ant-tree li span.ant-tree-checkbox{height:24px}.ant-tree li span.ant-tree-switcher,.ant-tree li span.ant-tree-iconEle{height:24px;line-height:24px;border:0 none}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon,:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon{font-size:12px}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon,:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon{font-size:12px}li.ant-tree-treenode-disabled>span:not(.ant-tree-switcher),li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper,li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper span{color:rgba(0,0,0,0.25)}.ant-tree.ant-tree-show-line li span.ant-tree-switcher{color:rgba(0,0,0,0.45);background:#fff}.ant-tree.ant-tree-show-line li:not(:last-child)::before{border-left:1px solid #d9d9d9}.ant-typography{color:rgba(0,0,0,0.65)}.ant-typography.ant-typography-secondary{color:rgba(0,0,0,0.45)}.ant-typography.ant-typography-warning{color:#faad14}.ant-typography.ant-typography-danger{color:#f5222d}.ant-typography.ant-typography-disabled{color:rgba(0,0,0,0.25)}h1.ant-typography,.ant-typography h1{color:rgba(0,0,0,0.85);font-weight:600;font-size:38px;line-height:1.23}h2.ant-typography,.ant-typography h2{color:rgba(0,0,0,0.85);font-weight:600;font-size:30px;line-height:1.35}h3.ant-typography,.ant-typography h3{color:rgba(0,0,0,0.85);font-weight:600;font-size:24px;line-height:1.35}h4.ant-typography,.ant-typography h4{color:rgba(0,0,0,0.85);font-weight:600;font-size:20px;line-height:1.4}.ant-typography a{color:#343a40}.ant-typography a:focus,.ant-typography a:hover{color:#484a4d}.ant-typography a:active{color:#13161a}.ant-typography a:active,.ant-typography a:hover{text-decoration:none}.ant-typography a[disabled]{color:rgba(0,0,0,0.25)}.ant-typography code{border:1px solid rgba(0,0,0,0.06);border-radius:3px}.ant-typography mark{background-color:#ffe58f}.ant-typography-expand,.ant-typography-edit,.ant-typography-copy{color:#343a40}.ant-typography-expand:focus,.ant-typography-edit:focus,.ant-typography-copy:focus,.ant-typography-expand:hover,.ant-typography-edit:hover,.ant-typography-copy:hover{color:#484a4d}.ant-typography-expand:active,.ant-typography-edit:active,.ant-typography-copy:active{color:#13161a}.ant-typography-copy-success,.ant-typography-copy-success:hover,.ant-typography-copy-success:focus{color:#52c41a}.ant-typography-edit-content-confirm{color:rgba(0,0,0,0.45)}.ant-upload{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-upload.ant-upload-select-picture-card{width:104px;height:104px;background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:4px;transition:border-color .3s ease}.ant-upload.ant-upload-select-picture-card:hover{border-color:#343a40}.ant-upload.ant-upload-drag{background:#fafafa;border:1px dashed #d9d9d9;border-radius:4px;transition:border-color .3s}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#13161a}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#484a4d}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#484a4d}.ant-upload.ant-upload-drag p.ant-upload-text{color:rgba(0,0,0,0.85);font-size:16px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,0.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,0.25)}.ant-upload.ant-upload-drag .anticon-plus:hover{color:rgba(0,0,0,0.45)}.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,0.45)}.ant-upload-list{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-upload-list-item{font-size:14px}.ant-upload-list-item-info .anticon-loading,.ant-upload-list-item-info .anticon-paper-clip{top:5px;color:rgba(0,0,0,0.45);font-size:14px}.ant-upload-list-item .anticon-close{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45)}:root .ant-upload-list-item .anticon-close{font-size:12px}.ant-upload-list-item .anticon-close:hover{color:rgba(0,0,0,0.65)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#787d80}.ant-upload-list-item-error,.ant-upload-list-item-error .anticon-paper-clip,.ant-upload-list-item-error .ant-upload-list-item-name{color:#f5222d}.ant-upload-list-item-error .anticon-close{color:#f5222d !important}.ant-upload-list-item-progress{font-size:14px}.ant-upload-list-picture .ant-upload-list-item,.ant-upload-list-picture-card .ant-upload-list-item{border:1px solid #d9d9d9;border-radius:4px}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:#f5222d}.ant-upload-list-picture .ant-upload-list-item-uploading,.ant-upload-list-picture-card .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-name{box-sizing:border-box}.ant-upload-list-picture-card .ant-upload-list-item{width:104px;height:104px}.ant-upload-list-picture-card .ant-upload-list-item-info::before{background-color:rgba(0,0,0,0.5)}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete{color:rgba(255,255,255,0.85)}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-name{line-height:1.5}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading-text{color:rgba(0,0,0,0.45)}.ant-upload-list .ant-upload-success-icon{color:#52c41a}.ant-upload-list .ant-upload-animate-enter,.ant-upload-list .ant-upload-animate-leave,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-fill-mode:cubic-bezier(0.78,0.14,0.15,0.86)}.ant-card-small>.ant-card-head{min-height:36px;font-size:14px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{font-size:14px}.ant-calendar{font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-calendar-input-wrap{border-bottom:1px solid #e8e8e8}.ant-calendar-input{color:rgba(0,0,0,0.65);background:#fff;border:0}.ant-calendar-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-header{border-bottom:1px solid #e8e8e8}.ant-calendar-header a:hover{color:#484a4d}.ant-calendar-header .ant-calendar-century-select,.ant-calendar-header .ant-calendar-decade-select,.ant-calendar-header .ant-calendar-year-select,.ant-calendar-header .ant-calendar-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-header .ant-calendar-prev-century-btn,.ant-calendar-header .ant-calendar-next-century-btn,.ant-calendar-header .ant-calendar-prev-decade-btn,.ant-calendar-header .ant-calendar-next-decade-btn,.ant-calendar-header .ant-calendar-prev-month-btn,.ant-calendar-header .ant-calendar-next-month-btn,.ant-calendar-header .ant-calendar-prev-year-btn,.ant-calendar-header .ant-calendar-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-header .ant-calendar-prev-century-btn::before,.ant-calendar-header .ant-calendar-prev-decade-btn::before,.ant-calendar-header .ant-calendar-prev-year-btn::before,.ant-calendar-header .ant-calendar-prev-century-btn::after,.ant-calendar-header .ant-calendar-prev-decade-btn::after,.ant-calendar-header .ant-calendar-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-prev-century-btn:hover::before,.ant-calendar-header .ant-calendar-prev-decade-btn:hover::before,.ant-calendar-header .ant-calendar-prev-year-btn:hover::before,.ant-calendar-header .ant-calendar-prev-century-btn:hover::after,.ant-calendar-header .ant-calendar-prev-decade-btn:hover::after,.ant-calendar-header .ant-calendar-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-next-century-btn::before,.ant-calendar-header .ant-calendar-next-decade-btn::before,.ant-calendar-header .ant-calendar-next-year-btn::before,.ant-calendar-header .ant-calendar-next-century-btn::after,.ant-calendar-header .ant-calendar-next-decade-btn::after,.ant-calendar-header .ant-calendar-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-next-century-btn:hover::before,.ant-calendar-header .ant-calendar-next-decade-btn:hover::before,.ant-calendar-header .ant-calendar-next-year-btn:hover::before,.ant-calendar-header .ant-calendar-next-century-btn:hover::after,.ant-calendar-header .ant-calendar-next-decade-btn:hover::after,.ant-calendar-header .ant-calendar-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-prev-month-btn::before,.ant-calendar-header .ant-calendar-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-prev-month-btn:hover::before,.ant-calendar-header .ant-calendar-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-next-month-btn::before,.ant-calendar-header .ant-calendar-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-next-month-btn:hover::before,.ant-calendar-header .ant-calendar-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar table{border-collapse:collapse}.ant-calendar table,.ant-calendar th,.ant-calendar td{border:0}.ant-calendar-calendar-table{border-spacing:0}.ant-calendar-date{color:rgba(0,0,0,0.65);border:1px solid transparent;border-radius:2px}.ant-calendar-date:hover{background:#787d80}.ant-calendar-date:active{color:#fff;background:#484a4d}.ant-calendar-today .ant-calendar-date{color:#343a40;border-color:#343a40}.ant-calendar-selected-day .ant-calendar-date{background:#6c7073}.ant-calendar-last-month-cell .ant-calendar-date,.ant-calendar-next-month-btn-day .ant-calendar-date,.ant-calendar-last-month-cell .ant-calendar-date:hover,.ant-calendar-next-month-btn-day .ant-calendar-date:hover{color:rgba(0,0,0,0.25);border-color:transparent}.ant-calendar-disabled-cell .ant-calendar-date{color:rgba(0,0,0,0.25);background:#f5f5f5;border:1px solid transparent;border-radius:0}.ant-calendar-disabled-cell .ant-calendar-date:hover{background:#f5f5f5}.ant-calendar-disabled-cell.ant-calendar-selected-day .ant-calendar-date::before{border-radius:2px}.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date::before{border:1px solid rgba(0,0,0,0.25);border-radius:2px}.ant-calendar-disabled-cell-first-of-row .ant-calendar-date{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-calendar-disabled-cell-last-of-row .ant-calendar-date{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-calendar-footer{border-top:1px solid #e8e8e8}.ant-calendar-footer:empty{border-top:0}.ant-calendar .ant-calendar-today-btn-disabled,.ant-calendar .ant-calendar-clear-btn-disabled{color:rgba(0,0,0,0.25)}.ant-calendar .ant-calendar-clear-btn::after{color:rgba(0,0,0,0.25);font-size:14px}.ant-calendar .ant-calendar-clear-btn:hover::after{color:rgba(0,0,0,0.45)}.ant-calendar .ant-calendar-ok-btn{font-weight:400;border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,0.015);transition:all .3s cubic-bezier(0.645,0.045,0.355,1);height:32px;color:#fff;background-color:#343a40;border-color:#343a40;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045);height:24px;font-size:14px;border-radius:4px;line-height:22px}.ant-calendar .ant-calendar-ok-btn-lg{height:40px;font-size:16px;border-radius:4px}.ant-calendar .ant-calendar-ok-btn-sm{height:24px;font-size:14px;border-radius:4px}.ant-calendar .ant-calendar-ok-btn:hover,.ant-calendar .ant-calendar-ok-btn:focus{color:#fff;background-color:#484a4d;border-color:#484a4d}.ant-calendar .ant-calendar-ok-btn:active,.ant-calendar .ant-calendar-ok-btn.active{color:#fff;background-color:#13161a;border-color:#13161a}.ant-calendar .ant-calendar-ok-btn-disabled,.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn[disabled],.ant-calendar .ant-calendar-ok-btn-disabled:hover,.ant-calendar .ant-calendar-ok-btn.disabled:hover,.ant-calendar .ant-calendar-ok-btn[disabled]:hover,.ant-calendar .ant-calendar-ok-btn-disabled:focus,.ant-calendar .ant-calendar-ok-btn.disabled:focus,.ant-calendar .ant-calendar-ok-btn[disabled]:focus,.ant-calendar .ant-calendar-ok-btn-disabled:active,.ant-calendar .ant-calendar-ok-btn.disabled:active,.ant-calendar .ant-calendar-ok-btn[disabled]:active,.ant-calendar .ant-calendar-ok-btn-disabled.active,.ant-calendar .ant-calendar-ok-btn.disabled.active,.ant-calendar .ant-calendar-ok-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-calendar .ant-calendar-ok-btn-disabled,.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn[disabled],.ant-calendar .ant-calendar-ok-btn-disabled:hover,.ant-calendar .ant-calendar-ok-btn.disabled:hover,.ant-calendar .ant-calendar-ok-btn[disabled]:hover,.ant-calendar .ant-calendar-ok-btn-disabled:focus,.ant-calendar .ant-calendar-ok-btn.disabled:focus,.ant-calendar .ant-calendar-ok-btn[disabled]:focus,.ant-calendar .ant-calendar-ok-btn-disabled:active,.ant-calendar .ant-calendar-ok-btn.disabled:active,.ant-calendar .ant-calendar-ok-btn[disabled]:active,.ant-calendar .ant-calendar-ok-btn-disabled.active,.ant-calendar .ant-calendar-ok-btn.disabled.active,.ant-calendar .ant-calendar-ok-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-calendar-decade-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-decade-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-decade-panel-header a:hover{color:#484a4d}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-decade-panel-table{border-collapse:separate}.ant-calendar-decade-panel-decade{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-decade-panel-decade:hover{background:#787d80}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade{color:#fff;background:#343a40}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{color:#fff;background:#343a40}.ant-calendar-decade-panel-last-century-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-next-century-cell .ant-calendar-decade-panel-decade{color:rgba(0,0,0,0.25)}.ant-calendar-month-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-month-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-month-panel-header a:hover{color:#484a4d}.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-month-panel-table{border-collapse:separate}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month{color:#fff;background:#343a40}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{color:#fff;background:#343a40}.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month,.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month:hover{color:rgba(0,0,0,0.25);background:#f5f5f5}.ant-calendar-month-panel-month{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-month-panel-month:hover{background:#787d80}.ant-calendar-picker-container{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-calendar-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-calendar-picker-input.ant-input{line-height:1.5}.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#484a4d}.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-calendar-picker-clear,.ant-calendar-picker-icon{font-size:12px}.ant-calendar-picker-clear{color:rgba(0,0,0,0.25);font-size:14px;background:#fff}.ant-calendar-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-calendar-picker-icon{color:rgba(0,0,0,0.25);font-size:14px}.ant-calendar-range-picker-input{border:0}.ant-calendar-range-picker-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-separator{color:rgba(0,0,0,0.45)}.ant-calendar-range-left .ant-calendar-time-picker-inner{border-right:1px solid #e8e8e8}.ant-calendar-range-right .ant-calendar-time-picker-inner{border-left:1px solid #e8e8e8}.ant-calendar-range-middle{height:34px;color:rgba(0,0,0,0.45);line-height:34px}.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#343a40;background:#6c7073;border-color:#343a40}.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date{color:#fff;background:#343a40;border:1px solid transparent}.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover{background:#343a40}.ant-calendar-range .ant-calendar-input-wrap{height:34px}.ant-calendar-range .ant-calendar-input,.ant-calendar-range .ant-calendar-time-picker-input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;height:24px;line-height:24px;border:0}.ant-calendar-range .ant-calendar-input::-moz-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input:-ms-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input::-webkit-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#484a4d;border-right-width:1px !important}.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#484a4d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(52,58,64,0.2)}.ant-calendar-range .ant-calendar-input-disabled,.ant-calendar-range .ant-calendar-time-picker-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-calendar-range .ant-calendar-input-disabled:hover,.ant-calendar-range .ant-calendar-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-calendar-range .ant-calendar-input[disabled],.ant-calendar-range .ant-calendar-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-calendar-range .ant-calendar-input[disabled]:hover,.ant-calendar-range .ant-calendar-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-calendar-range .ant-calendar-input,textarea.ant-calendar-range .ant-calendar-time-picker-input{min-height:32px;line-height:1.5}.ant-calendar-range .ant-calendar-input-lg,.ant-calendar-range .ant-calendar-time-picker-input-lg{height:40px;font-size:16px}.ant-calendar-range .ant-calendar-input-sm,.ant-calendar-range .ant-calendar-time-picker-input-sm{height:24px}.ant-calendar-range .ant-calendar-year-panel,.ant-calendar-range .ant-calendar-month-panel,.ant-calendar-range .ant-calendar-decade-panel{top:34px}.ant-calendar-range .ant-calendar-in-range-cell{border-radius:0}.ant-calendar-range .ant-calendar-in-range-cell::before{background:#787d80;border:0;border-radius:0}.ant-calendar-range .ant-calendar-header,.ant-calendar-range .ant-calendar-month-panel-header,.ant-calendar-range .ant-calendar-year-panel-header,.ant-calendar-range .ant-calendar-decade-panel-header{border-bottom:0}.ant-calendar-range .ant-calendar-body,.ant-calendar-range .ant-calendar-month-panel-body,.ant-calendar-range .ant-calendar-year-panel-body,.ant-calendar-range .ant-calendar-decade-panel-body{border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-combobox{background-color:#fff;border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-show-time-picker .ant-calendar-body{border-top-color:transparent}.ant-calendar-time-picker{background-color:#fff}.ant-calendar-time-picker-panel{z-index:1050}.ant-calendar-time-picker-inner{font-size:14px;background-color:#fff}.ant-calendar-time-picker-select{font-size:14px;border-right:1px solid #e8e8e8}.ant-calendar-time-picker-select:first-child{border-left:0}.ant-calendar-time-picker-select:last-child{border-right:0}.ant-calendar-time-picker-select li:hover{background:#787d80}.ant-calendar-time-picker-select li:focus{color:#343a40}li.ant-calendar-time-picker-select-option-selected{background:#f5f5f5}li.ant-calendar-time-picker-select-option-disabled{color:rgba(0,0,0,0.25)}.ant-calendar-time .ant-calendar-day-select{color:rgba(0,0,0,0.85)}.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn-disabled{color:rgba(0,0,0,0.25)}.ant-calendar-week-number .ant-calendar-body tr:hover{background:#787d80}.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#6c7073}.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day .ant-calendar-date,.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day:hover .ant-calendar-date{color:rgba(0,0,0,0.65)}.ant-calendar-year-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-year-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-year-panel-header a:hover{color:#484a4d}.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-year-panel-table{border-collapse:separate}.ant-calendar-year-panel-year{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-year-panel-year:hover{background:#787d80}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year{color:#fff;background:#343a40}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{color:#fff;background:#343a40}.ant-calendar-year-panel-last-decade-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-next-decade-cell .ant-calendar-year-panel-year{color:rgba(0,0,0,0.25)}.ant-drawer{z-index:1000;transition:transform .3s cubic-bezier(0.7,0.3,0.1,1),height 0s ease .3s,width 0s ease .3s}.ant-drawer>*{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1),box-shadow .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:2px 0 8px rgba(0,0,0,0.15)}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:-2px 0 8px rgba(0,0,0,0.15)}.ant-drawer-top.ant-drawer-open,.ant-drawer-bottom.ant-drawer-open{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 -2px 8px rgba(0,0,0,0.15)}.ant-drawer.ant-drawer-open .ant-drawer-mask{animation:antdDrawerFadeIn .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-drawer-content{background-color:#fff;border:0}.ant-drawer-close{z-index:10;color:rgba(0,0,0,0.45);font-size:16px;border:0;transition:color .3s}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,0.75)}.ant-drawer-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-drawer-header-no-title{color:rgba(0,0,0,0.65);background:#fff}.ant-drawer-body{font-size:14px;line-height:1.5}.ant-drawer-mask{background-color:rgba(0,0,0,0.45);transition:opacity .3s linear,height 0s ease .3s}.ant-drawer-open-content{box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-input-search-icon{color:rgba(0,0,0,0.45)}.ant-input-search-icon:hover{color:rgba(0,0,0,0.8)}.ant-input-search-enter-button input{border-right:0}.ant-input-search-enter-button+.ant-input-group-addon,.ant-input-search-enter-button input+.ant-input-group-addon{border:0}.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button,.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button{border-top-left-radius:0;border-bottom-left-radius:0}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger{color:rgba(0,0,0,0.65);background:#fff}.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{color:rgba(0,0,0,0.65);background:#fff}.ant-list-bordered{border:1px solid #d9d9d9;border-radius:4px}.ant-list-bordered .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-menu-dark,.ant-menu-dark .ant-menu-sub{color:rgba(255,255,255,0.65);background:#001529}.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before{background:#fff}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17;box-shadow:0 2px 8px rgba(0,0,0,0.45) inset}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{border-color:#001529;border-bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a{color:rgba(255,255,255,0.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item::after{border-right:0}.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff}.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-title:hover>a{color:#fff}.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:transparent}.ant-menu-dark .ant-menu-item-selected{color:#fff;border-right:0}.ant-menu-dark .ant-menu-item-selected::after{border-right:0}.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover{color:#fff}.ant-menu-dark .ant-menu-item-selected .anticon{color:#fff}.ant-menu-dark .ant-menu-item-selected span{color:#fff}.ant-menu.ant-menu-dark .ant-menu-item-selected,.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected{background-color:#343a40}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>a{color:rgba(255,255,255,0.35) !important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(255,255,255,0.35) !important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{background:rgba(255,255,255,0.35) !important}.ant-modal-confirm-body .ant-modal-confirm-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-modal-confirm-body .ant-modal-confirm-content{color:rgba(0,0,0,0.65);font-size:14px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#f5222d}.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon,.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-modal{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-modal-wrap{z-index:1000}.ant-modal-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-modal-content{background-color:#fff;border:0;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-modal-close{z-index:10;color:rgba(0,0,0,0.45);border:0}.ant-modal-close-x{font-size:16px}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,0.75)}.ant-modal-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-modal-body{font-size:14px;line-height:1.5}.ant-modal-footer{background:transparent;border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-modal.zoom-enter,.ant-modal.zoom-appear{animation-duration:.3s}.ant-modal-mask{z-index:1000;background-color:rgba(0,0,0,0.45)}.ant-steps-flex-not-supported.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item{background:#fff}.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot::before,.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot::after{background:#fff}.ant-steps-item-custom .ant-steps-item-icon{border:0}.ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{width:32px;height:32px;line-height:32px}.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#343a40}.ant-steps-label-vertical .ant-steps-item-content{width:104px}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content{max-width:140px}.ant-steps-navigation .ant-steps-item::after{border:1px solid rgba(0,0,0,0.25);border-bottom:0;border-left:0}.ant-steps-navigation .ant-steps-item::before{background-color:#343a40}.ant-steps-dot .ant-steps-item-title,.ant-steps-dot.ant-steps-small .ant-steps-item-title{line-height:1.5}.ant-steps-dot .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-icon{width:8px;height:8px;line-height:8px;border:0}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{border-radius:100px}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot::after,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot::after{background:rgba(0,0,0,0.001)}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon{width:10px;height:10px;line-height:10px}.ant-steps-small .ant-steps-item-icon{width:24px;height:24px;font-size:12px;line-height:24px;border-radius:24px}.ant-steps-small .ant-steps-item-title{font-size:14px;line-height:24px}.ant-steps-small .ant-steps-item-title::after{top:12px}.ant-steps-small .ant-steps-item-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon{border:0;border-radius:0}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:24px;line-height:24px}.ant-steps-vertical .ant-steps-item-title{line-height:32px}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}@media(max-width:480px){.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-title{line-height:32px}.ant-steps-horizontal.ant-steps-label-horizontal.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}}html,body{width:100%;height:100%}*,*::before,*::after{box-sizing:border-box}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}h1,h2,h3,h4,h5,h6{color:rgba(0,0,0,0.85)}abbr[title],abbr[data-original-title]{border-bottom:0}a{color:#343a40;text-decoration:none}a:hover{color:#484a4d}a:active{color:#13161a}a:active,a:hover{text-decoration:none}a[disabled]{color:rgba(0,0,0,0.25)}pre,code,kbd,samp{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}img{border-style:none}table{border-collapse:collapse}caption{color:rgba(0,0,0,0.45)}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box}fieldset{border:0}mark{background-color:#feffe6}::selection{color:#fff;background:#343a40}.anticon{color:inherit}.ant-motion-collapse-legacy-active{transition:height .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1) !important}.ant-motion-collapse{transition:height .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1) !important}.fade-enter,.fade-appear{animation-duration:.2s}.fade-leave{animation-duration:.2s}.fade-enter.fade-enter-active,.fade-appear.fade-appear-active{animation-name:antFadeIn}.fade-leave.fade-leave-active{animation-name:antFadeOut}.move-up-enter,.move-up-appear{animation-duration:.2s}.move-up-leave{animation-duration:.2s}.move-up-enter.move-up-enter-active,.move-up-appear.move-up-appear-active{animation-name:antMoveUpIn}.move-up-leave.move-up-leave-active{animation-name:antMoveUpOut}.move-up-enter,.move-up-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-up-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-down-enter,.move-down-appear{animation-duration:.2s}.move-down-leave{animation-duration:.2s}.move-down-enter.move-down-enter-active,.move-down-appear.move-down-appear-active{animation-name:antMoveDownIn}.move-down-leave.move-down-leave-active{animation-name:antMoveDownOut}.move-down-enter,.move-down-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-down-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-left-enter,.move-left-appear{animation-duration:.2s}.move-left-leave{animation-duration:.2s}.move-left-enter.move-left-enter-active,.move-left-appear.move-left-appear-active{animation-name:antMoveLeftIn}.move-left-leave.move-left-leave-active{animation-name:antMoveLeftOut}.move-left-enter,.move-left-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-left-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-right-enter,.move-right-appear{animation-duration:.2s}.move-right-leave{animation-duration:.2s}.move-right-enter.move-right-enter-active,.move-right-appear.move-right-appear-active{animation-name:antMoveRightIn}.move-right-leave.move-right-leave-active{animation-name:antMoveRightOut}.move-right-enter,.move-right-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-right-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}html{--antd-wave-shadow-color:#343a40}[ant-click-animating-without-extra-node="true"]::after,.ant-click-animating-node{border-radius:inherit;box-shadow:0 0 0 0 #343a40;animation:fadeEffect 2s cubic-bezier(0.08,0.82,0.17,1),waveEffect .4s cubic-bezier(0.08,0.82,0.17,1)}@keyframes waveEffect{100%{box-shadow:0 0 0 #343a40;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}.slide-up-enter,.slide-up-appear{animation-duration:.2s}.slide-up-leave{animation-duration:.2s}.slide-up-enter.slide-up-enter-active,.slide-up-appear.slide-up-appear-active{animation-name:antSlideUpIn}.slide-up-leave.slide-up-leave-active{animation-name:antSlideUpOut}.slide-up-enter,.slide-up-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-up-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-down-enter,.slide-down-appear{animation-duration:.2s}.slide-down-leave{animation-duration:.2s}.slide-down-enter.slide-down-enter-active,.slide-down-appear.slide-down-appear-active{animation-name:antSlideDownIn}.slide-down-leave.slide-down-leave-active{animation-name:antSlideDownOut}.slide-down-enter,.slide-down-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-down-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-left-enter,.slide-left-appear{animation-duration:.2s}.slide-left-leave{animation-duration:.2s}.slide-left-enter.slide-left-enter-active,.slide-left-appear.slide-left-appear-active{animation-name:antSlideLeftIn}.slide-left-leave.slide-left-leave-active{animation-name:antSlideLeftOut}.slide-left-enter,.slide-left-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-left-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-right-enter,.slide-right-appear{animation-duration:.2s}.slide-right-leave{animation-duration:.2s}.slide-right-enter.slide-right-enter-active,.slide-right-appear.slide-right-appear-active{animation-name:antSlideRightIn}.slide-right-leave.slide-right-leave-active{animation-name:antSlideRightOut}.slide-right-enter,.slide-right-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-right-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.swing-enter,.swing-appear{animation-duration:.2s}.swing-enter.swing-enter-active,.swing-appear.swing-appear-active{animation-name:antSwingIn}.zoom-enter,.zoom-appear{animation-duration:.2s}.zoom-leave{animation-duration:.2s}.zoom-enter.zoom-enter-active,.zoom-appear.zoom-appear-active{animation-name:antZoomIn}.zoom-leave.zoom-leave-active{animation-name:antZoomOut}.zoom-enter,.zoom-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-big-enter,.zoom-big-appear{animation-duration:.2s}.zoom-big-leave{animation-duration:.2s}.zoom-big-enter.zoom-big-enter-active,.zoom-big-appear.zoom-big-appear-active{animation-name:antZoomBigIn}.zoom-big-leave.zoom-big-leave-active{animation-name:antZoomBigOut}.zoom-big-enter,.zoom-big-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-big-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-big-fast-enter,.zoom-big-fast-appear{animation-duration:.1s}.zoom-big-fast-leave{animation-duration:.1s}.zoom-big-fast-enter.zoom-big-fast-enter-active,.zoom-big-fast-appear.zoom-big-fast-appear-active{animation-name:antZoomBigIn}.zoom-big-fast-leave.zoom-big-fast-leave-active{animation-name:antZoomBigOut}.zoom-big-fast-enter,.zoom-big-fast-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-big-fast-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-up-enter,.zoom-up-appear{animation-duration:.2s}.zoom-up-leave{animation-duration:.2s}.zoom-up-enter.zoom-up-enter-active,.zoom-up-appear.zoom-up-appear-active{animation-name:antZoomUpIn}.zoom-up-leave.zoom-up-leave-active{animation-name:antZoomUpOut}.zoom-up-enter,.zoom-up-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-up-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-down-enter,.zoom-down-appear{animation-duration:.2s}.zoom-down-leave{animation-duration:.2s}.zoom-down-enter.zoom-down-enter-active,.zoom-down-appear.zoom-down-appear-active{animation-name:antZoomDownIn}.zoom-down-leave.zoom-down-leave-active{animation-name:antZoomDownOut}.zoom-down-enter,.zoom-down-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-down-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-left-enter,.zoom-left-appear{animation-duration:.2s}.zoom-left-leave{animation-duration:.2s}.zoom-left-enter.zoom-left-enter-active,.zoom-left-appear.zoom-left-appear-active{animation-name:antZoomLeftIn}.zoom-left-leave.zoom-left-leave-active{animation-name:antZoomLeftOut}.zoom-left-enter,.zoom-left-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-left-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-right-enter,.zoom-right-appear{animation-duration:.2s}.zoom-right-leave{animation-duration:.2s}.zoom-right-enter.zoom-right-enter-active,.zoom-right-appear.zoom-right-appear-active{animation-name:antZoomRightIn}.zoom-right-leave.zoom-right-leave-active{animation-name:antZoomRightOut}.zoom-right-enter,.zoom-right-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-right-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.ant-table-small{border:1px solid #e8e8e8;border-radius:4px}.ant-table-small>.ant-table-title{border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table{border:0}.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr{border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort{background-color:rgba(0,0,0,0.01)}.ant-table-small>.ant-table-content .ant-table-header{background-color:#fff}.ant-table-small>.ant-table-content .ant-table-placeholder,.ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:0}.ant-table-small.ant-table-bordered{border-right:0}.ant-table-small.ant-table-bordered .ant-table-title{border:0;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-content{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-footer{border:0;border-top:1px solid #e8e8e8;border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-placeholder{border-right:0;border-bottom:0;border-left:0}.ant-table-small.ant-table-bordered .ant-table-thead>tr>th:last-child,.ant-table-small.ant-table-bordered .ant-table-tbody>tr>td:last-child{border-right:0}.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-thead>tr>th:last-child,.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-tbody>tr>td:last-child{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-fixed-right{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-container{height:40px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab{height:40px;line-height:38px;background:#fafafa;border:1px solid #e8e8e8;border-radius:4px 4px 0 0;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{height:40px;color:#343a40;background:#fff;border-color:#e8e8e8;border-bottom:1px solid #fff}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active::before{border-top:2px solid transparent}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#343a40;color:rgba(0,0,0,0.25)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x{height:14px;color:rgba(0,0,0,0.45);font-size:12px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x:hover{color:rgba(0,0,0,0.85)}.ant-tabs-extra-content .ant-tabs-new-tab{color:rgba(0,0,0,0.65);border:1px solid #e8e8e8;border-radius:2px}.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#343a40;border-color:#343a40}.ant-tabs.ant-tabs-card .ant-tabs-extra-content{line-height:40px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{border-bottom:1px solid #e8e8e8}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab{border-right:0;border-radius:4px 0 0 4px}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{border-left:0;border-radius:0 4px 4px 0}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab{border-top:0;border-bottom:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#343a40}.ant-transfer-customize-list .ant-transfer-list{min-height:200px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small{border:0;border-radius:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th{background:#fafafa}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #e8e8e8}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper{border-radius:0}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper:hover::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper:hover::before{background:#787d80}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper.ant-tree-node-selected,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper.ant-tree-node-selected{color:#fff}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper::before{height:24px}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-switcher,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-switcher{color:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox .ant-tree-checkbox-inner,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox .ant-tree-checkbox-inner{border-color:#343a40}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked::after,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked::after{border-color:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border-color:#343a40}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-node-content-wrapper::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-node-content-wrapper::before{background:#343a40}.ant-pro-global-footer-links a{color:rgba(0,0,0,0.45)}.ant-pro-global-footer-links a:hover{color:rgba(0,0,0,0.65)}.ant-pro-global-footer-copyright{color:rgba(0,0,0,0.45);font-size:14px}.ant-pro-global-header{height:64px;background:#fff;box-shadow:0 1px 4px rgba(0,21,41,0.08)}.ant-pro-global-header-logo{height:64px;line-height:64px}.ant-pro-global-header-trigger{height:64px}.ant-pro-global-header-trigger:hover{background:#fff}.ant-pro-global-header .dark{height:64px}.ant-pro-global-header .dark .action:hover,.ant-pro-global-header .dark .action.opened{background:#343a40}.ant-pro-page-header-wrap-page-header-warp{background-color:#fff}.ant-pro-setting-drawer-content{background:#fff}.ant-pro-setting-drawer-block-checbox{background:#fff}.ant-pro-setting-drawer-block-checbox-item{border-radius:4px}.ant-pro-setting-drawer-block-checbox-selectIcon{color:#343a40}.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#343a40}.ant-pro-setting-drawer-color_block{border-radius:4px}.ant-pro-setting-drawer-title{color:rgba(0,0,0,0.85)}.ant-pro-setting-drawer-handle{background:#343a40;border-radius:4px 0 0 4px}.ant-pro-sider-menu-logo{background:#001529}.ant-pro-sider-menu-sider.fix-sider-bar>.ant-menu-root :not(.ant-pro-sider-menu-link-menu){height:calc(100vh - 64px)}.ant-pro-sider-menu-sider.fix-sider-bar .ant-menu-inline{border-right:0}.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#343a40}.ant-pro-sider-menu-sider.light .ant-menu-light{border-right-color:transparent}.ant-pro-sider-menu .top-nav-menu li.ant-menu-item{height:64px;line-height:64px}.ant-pro-sider-menu .drawer .drawer-content{background:#001529}.ant-pro-sider-menu .ant-menu-item .sider-menu-item-img+span,.ant-pro-sider-menu .ant-menu-submenu-title .sider-menu-item-img+span{transition:opacity .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-pro-top-nav-header{height:64px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-pro-top-nav-header .ant-menu-submenu.ant-menu-submenu-horizontal{line-height:64px}.ant-pro-top-nav-header.light{background-color:#fff}.ant-pro-top-nav-header-main{height:64px}.ant-pro-top-nav-header-logo{height:64px;line-height:64px}.ant-pro-top-nav-header-logo h1{color:#fff}.ant-pro-top-nav-header-menu .ant-menu.ant-menu-horizontal{height:64px;line-height:64px;border:0}.ant-pro-basicLayout:not(".ant-pro-basicLayout-mobile") ::-webkit-scrollbar-track{border-radius:3px}.ant-pro-basicLayout:not(".ant-pro-basicLayout-mobile") ::-webkit-scrollbar-thumb{border-radius:3px}.ant-pro-basicLayout .ant-layout-header:not(.ant-pro-top-menu){background:#fff}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children{min-height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children.ant-pro-basicLayout-fix-siderbar{height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .tech-page-container{height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children.ant-pro-basicLayout-has-header .tech-page-container{height:calc(100vh - 64px - 64px)}.ant-pro-setting-drawer-content .theme-color .theme-color-block{border-radius:2px}.antd-pro-components-tutorial-tutorial-row{border-bottom:1px solid #eee}.antd-pro-components-tutorial-tutorial-img{border-radius:5px}.antd-pro-components-tutorial-tutorial-action_area{border-radius:5px;border:2px dashed #999} \ No newline at end of file diff --git a/public/assets/admin/theme/darkblue.css b/public/assets/admin/theme/darkblue.css deleted file mode 100644 index a95604b..0000000 --- a/public/assets/admin/theme/darkblue.css +++ /dev/null @@ -1,4 +0,0 @@ -body{color:#495057;background-color:#f5f6fa}a{color:#3b5998}a.link-fx::before{background-color:#3b5998}a:hover{color:#1e2e4f}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#212529}.content-heading{border-bottom-color:#e7eaf3}hr{border-top-color:#e7eaf3}.text-primary{color:#3b5998!important}a.text-primary.link-fx::before{background-color:#3b5998}a.text-primary:focus,a.text-primary:hover{color:#1e2e4f!important}.text-primary-dark{color:#2d4373!important}a.text-primary-dark.link-fx::before{background-color:#2d4373}a.text-primary-dark:focus,a.text-primary-dark:hover{color:#10182a!important}.text-primary-darker{color:#1e2e4f!important}a.text-primary-darker.link-fx::before{background-color:#1e2e4f}a.text-primary-darker:focus,a.text-primary-darker:hover{color:#020305!important}.text-primary-light{color:#5f7ec1!important}a.text-primary-light.link-fx::before{background-color:#5f7ec1}a.text-primary-light:focus,a.text-primary-light:hover{color:#344e86!important}.text-primary-lighter{color:#a8b9dd!important}a.text-primary-lighter.link-fx::before{background-color:#a8b9dd}a.text-primary-lighter:focus,a.text-primary-lighter:hover{color:#5f7ec1!important}.text-body-bg{color:#f5f6fa!important}a.text-body-bg.link-fx::before{background-color:#f5f6fa}a.text-body-bg:focus,a.text-body-bg:hover{color:#b1b9d8!important}.text-body-bg-light{color:#fcfcfd!important}a.text-body-bg-light.link-fx::before{background-color:#fcfcfd}a.text-body-bg-light:focus,a.text-body-bg-light:hover{color:#b8bfdb!important}.text-body-bg-dark{color:#e7eaf3!important}a.text-body-bg-dark.link-fx::before{background-color:#e7eaf3}a.text-body-bg-dark:focus,a.text-body-bg-dark:hover{color:#a3add1!important}.text-body-color{color:#495057!important}a.text-body-color.link-fx::before{background-color:#495057}a.text-body-color:focus,a.text-body-color:hover{color:#1a1d20!important}.text-body-color-dark{color:#212529!important}a.text-body-color-dark.link-fx::before{background-color:#212529}a.text-body-color-dark:focus,a.text-body-color-dark:hover{color:#000!important}.text-body-color-light{color:#e7eaf3!important}a.text-body-color-light.link-fx::before{background-color:#e7eaf3}a.text-body-color-light:focus,a.text-body-color-light:hover{color:#a3add1!important}.text-dual{color:#2d4373!important}a.text-dual.link-fx::before{background-color:#2d4373}a.text-dual:focus,a.text-dual:hover{color:#10182a!important}.page-header-dark #page-header .text-dual,.sidebar-dark #sidebar .text-dual{color:#e7eaf3!important}.page-header-dark #page-header a.text-dual.link-fx::before,.sidebar-dark #sidebar a.text-dual.link-fx::before{background-color:#e7eaf3}.page-header-dark #page-header a.text-dual:focus,.page-header-dark #page-header a.text-dual:hover,.sidebar-dark #sidebar a.text-dual:focus,.sidebar-dark #sidebar a.text-dual:hover{color:#a3add1!important}.bg-primary{background-color:#3b5998!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#2d4373!important}.bg-primary-op{background-color:rgba(59,89,152,.75)!important}a.bg-primary-op:focus,a.bg-primary-op:hover,button.bg-primary-op:focus,button.bg-primary-op:hover{background-color:rgba(45,67,115,.75)!important}.bg-primary-dark{background-color:#2d4373!important}a.bg-primary-dark:focus,a.bg-primary-dark:hover,button.bg-primary-dark:focus,button.bg-primary-dark:hover{background-color:#1e2e4f!important}.bg-primary-dark-op{background-color:rgba(45,67,115,.8)!important}a.bg-primary-dark-op:focus,a.bg-primary-dark-op:hover,button.bg-primary-dark-op:focus,button.bg-primary-dark-op:hover{background-color:rgba(30,46,79,.8)!important}.bg-primary-darker{background-color:#1e2e4f!important}a.bg-primary-darker:focus,a.bg-primary-darker:hover,button.bg-primary-darker:focus,button.bg-primary-darker:hover{background-color:#10182a!important}.bg-primary-light{background-color:#5f7ec1!important}a.bg-primary-light:focus,a.bg-primary-light:hover,button.bg-primary-light:focus,button.bg-primary-light:hover{background-color:#4264aa!important}.bg-primary-lighter{background-color:#a8b9dd!important}a.bg-primary-lighter:focus,a.bg-primary-lighter:hover,button.bg-primary-lighter:focus,button.bg-primary-lighter:hover{background-color:#839ccf!important}.bg-body{background-color:#f5f6fa!important}a.bg-body:focus,a.bg-body:hover,button.bg-body:focus,button.bg-body:hover{background-color:#d3d7e9!important}.bg-body-light{background-color:#fcfcfd!important}a.bg-body-light:focus,a.bg-body-light:hover,button.bg-body-light:focus,button.bg-body-light:hover{background-color:#dadeec!important}.bg-body-dark{background-color:#e7eaf3!important}a.bg-body-dark:focus,a.bg-body-dark:hover,button.bg-body-dark:focus,button.bg-body-dark:hover{background-color:#c5cbe2!important}.bg-header-light{background-color:#fff!important}a.bg-header-light:focus,a.bg-header-light:hover,button.bg-header-light:focus,button.bg-header-light:hover{background-color:#e6e6e6!important}.bg-header-dark{background-color:#3b5998!important}a.bg-header-dark:focus,a.bg-header-dark:hover,button.bg-header-dark:focus,button.bg-header-dark:hover{background-color:#2d4373!important}.bg-sidebar-light{background-color:#fff!important}a.bg-sidebar-light:focus,a.bg-sidebar-light:hover,button.bg-sidebar-light:focus,button.bg-sidebar-light:hover{background-color:#e6e6e6!important}.bg-sidebar-dark{background-color:#35383e!important}a.bg-sidebar-dark:focus,a.bg-sidebar-dark:hover,button.bg-sidebar-dark:focus,button.bg-sidebar-dark:hover{background-color:#1d1f23!important}.bg-gd-primary{background:#3b5998 linear-gradient(135deg,#3b5998 0,#5f7ec1 100%)!important}.btn-link{color:#3b5998}.btn-link:hover{color:#1e2e4f}.btn-primary{color:#fff;background-color:#3b5998;border-color:#3b5998}.btn-primary:hover{color:#fff;background-color:#30497c;border-color:#2d4373}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#30497c;border-color:#2d4373;box-shadow:0 0 0 .2rem rgba(88,114,167,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#3b5998;border-color:#3b5998}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#2d4373;border-color:#293e6a}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(88,114,167,.5)}.btn-outline-primary{color:#3b5998;border-color:#3b5998}.btn-outline-primary:hover{color:#fff;background-color:#3b5998;border-color:#3b5998}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(59,89,152,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#3b5998;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#3b5998;border-color:#3b5998}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(59,89,152,.5)}.btn-alt-primary{color:#1e2e4f;background-color:#bbc8e4;border-color:#bbc8e4}.btn-alt-primary:hover{color:#1e2e4f;background-color:#9fb2da;border-color:#9fb2da}.btn-alt-primary.focus,.btn-alt-primary:focus{color:#1e2e4f;background-color:#9fb2da;border-color:#9fb2da;box-shadow:0 0 0 .2rem rgba(142,165,211,.25)}.btn-alt-primary.disabled,.btn-alt-primary:disabled{color:#fff;background-color:#bbc8e4;border-color:#bbc8e4}.btn-alt-primary:not(:disabled):not(.disabled).active,.btn-alt-primary:not(:disabled):not(.disabled):active,.show>.btn-alt-primary.dropdown-toggle{color:#090e17;background-color:#8ea5d3;border-color:#8ea5d3}.btn-alt-primary:not(:disabled):not(.disabled).active:focus,.btn-alt-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(142,165,211,.25)}.btn-alt-secondary{color:#495057;background-color:#f5f6fa;border-color:#f5f6fa}.btn-alt-secondary:hover{color:#495057;background-color:#dcdfed;border-color:#dcdfed}.btn-alt-secondary.focus,.btn-alt-secondary:focus{color:#495057;background-color:#dcdfed;border-color:#dcdfed;box-shadow:0 0 0 .2rem rgba(204,209,230,.25)}.btn-alt-secondary.disabled,.btn-alt-secondary:disabled{color:#212529;background-color:#f5f6fa;border-color:#f5f6fa}.btn-alt-secondary:not(:disabled):not(.disabled).active,.btn-alt-secondary:not(:disabled):not(.disabled):active,.show>.btn-alt-secondary.dropdown-toggle{color:#262a2d;background-color:#ccd1e6;border-color:#ccd1e6}.btn-alt-secondary:not(:disabled):not(.disabled).active:focus,.btn-alt-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(204,209,230,.25)}.btn-hero-primary{color:#fff;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#3b5998;border:none;box-shadow:0 .125rem .75rem rgba(38,57,97,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .12s ease-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out,-webkit-transform .12s ease-out}.btn-hero-primary:hover{color:#fff;background-color:#4c70ba;box-shadow:0 .375rem .75rem rgba(38,57,97,.4);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.btn-hero-primary.focus,.btn-hero-primary:focus{color:#fff;background-color:#4c70ba;box-shadow:0 .125rem .75rem rgba(38,57,97,.25)}.btn-hero-primary.disabled,.btn-hero-primary:disabled{color:#fff;background-color:#3b5998;box-shadow:0 .125rem .75rem rgba(38,57,97,.25);-webkit-transform:translateY(0);transform:translateY(0)}.btn-hero-primary:not(:disabled):not(.disabled).active,.btn-hero-primary:not(:disabled):not(.disabled):active,.show>.btn-hero-primary.dropdown-toggle{color:#fff;background-color:#263961;box-shadow:0 .125rem .75rem rgba(38,57,97,.25);-webkit-transform:translateY(0);transform:translateY(0)}.btn-hero-primary:not(:disabled):not(.disabled).active:focus,.btn-hero-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-primary.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(38,57,97,.25)}.btn-hero-lg{padding:.875rem 2.25rem;font-size:.875rem;line-height:1.5;border-radius:.25rem}.btn-hero-sm{padding:.375rem 1.25rem;font-size:.875rem;line-height:1.5;border-radius:.25rem}.btn-dual{color:#16181a;background-color:transparent;border-color:transparent}.btn-dual.focus,.btn-dual:focus,.btn-dual:hover{color:#16181a;background-color:#d3d7e9;border-color:#d3d7e9;box-shadow:none}.btn-dual.disabled,.btn-dual:disabled{background-color:transparent;border-color:transparent}.btn-dual.active,.btn-dual:active{color:#16181a;background-color:transparent;border-color:transparent}.btn-dual:not(:disabled):not(.disabled).active,.btn-dual:not(:disabled):not(.disabled):active,.show>.btn-dual.dropdown-toggle{color:#16181a;background-color:#d3d7e9;border-color:#d3d7e9}.page-header-dark #page-header .btn-dual,.sidebar-dark #sidebar .btn-dual{color:#fff;background-color:transparent;border-color:transparent}.page-header-dark #page-header .btn-dual.focus,.page-header-dark #page-header .btn-dual:focus,.page-header-dark #page-header .btn-dual:hover,.sidebar-dark #sidebar .btn-dual.focus,.sidebar-dark #sidebar .btn-dual:focus,.sidebar-dark #sidebar .btn-dual:hover{color:#fff;background-color:#2d4373;border-color:#2d4373;box-shadow:none}.page-header-dark #page-header .btn-dual.disabled,.page-header-dark #page-header .btn-dual:disabled,.sidebar-dark #sidebar .btn-dual.disabled,.sidebar-dark #sidebar .btn-dual:disabled{background-color:transparent;border-color:transparent}.page-header-dark #page-header .btn-dual.active,.page-header-dark #page-header .btn-dual:active,.sidebar-dark #sidebar .btn-dual.active,.sidebar-dark #sidebar .btn-dual:active{color:#fff;background-color:transparent;border-color:transparent}.page-header-dark #page-header .btn-dual:not(:disabled):not(.disabled).active,.page-header-dark #page-header .btn-dual:not(:disabled):not(.disabled):active,.show>.page-header-dark #page-header .btn-dual.dropdown-toggle,.show>.sidebar-dark #sidebar .btn-dual.dropdown-toggle,.sidebar-dark #sidebar .btn-dual:not(:disabled):not(.disabled).active,.sidebar-dark #sidebar .btn-dual:not(:disabled):not(.disabled):active{color:#fff;background-color:#2d4373;border-color:#2d4373}.alert-primary{color:#2d4373;background-color:#a8b9dd;border-color:#a8b9dd}.alert-primary hr{border-top-color:#96abd6}.alert-primary .alert-link{color:#1e2e4f}.badge-primary{color:#fff;background-color:#3b5998}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#2d4373}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(59,89,152,.5)}.progress-bar{background-color:#3b5998}.nav-link{color:#495057}.nav-link:focus,.nav-link:hover{color:#3b5998}.nav-pills .nav-link:focus,.nav-pills .nav-link:hover{background-color:#f5f6fa}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:#3b5998}.nav-tabs{border-bottom-color:#e7eaf3}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e7eaf3 #e7eaf3 #e7eaf3}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{border-color:#e7eaf3 #e7eaf3 #fff}.nav-tabs-block{background-color:#fcfcfd}.nav-tabs-block .nav-link{border-color:transparent}.nav-tabs-block .nav-link:focus,.nav-tabs-block .nav-link:hover{color:#3b5998;background-color:#f5f6fa;border-color:transparent}.nav-tabs-block .nav-item.show .nav-link,.nav-tabs-block .nav-link.active{color:#495057;background-color:#fff;border-color:transparent}.nav-tabs-alt{border-bottom-color:#e7eaf3}.nav-tabs-alt .nav-link{background-color:transparent;border-color:transparent}.nav-tabs-alt .nav-link:focus,.nav-tabs-alt .nav-link:hover{color:#3b5998;background-color:transparent;border-color:transparent;box-shadow:inset 0 -3px #3b5998}.nav-tabs-alt .nav-item.show .nav-link,.nav-tabs-alt .nav-link.active{color:#495057;background-color:transparent;border-color:transparent;box-shadow:inset 0 -3px #3b5998}.nav-items a{border-bottom-color:#f5f6fa}.nav-items a:hover{background-color:#fcfcfd}.nav-items a:active{background-color:#f5f6fa}.nav-items>li:last-child>a{border-bottom:none}.page-item.active .page-link{background-color:#3b5998;border-color:#3b5998}.page-link{color:#495057;background-color:#f5f6fa;border-color:#f5f6fa}.page-link:hover{color:#495057;background-color:#c5cbe2;border-color:#c5cbe2}.page-link:focus{background-color:#e7eaf3;border-color:#e7eaf3}.list-group-item-action{color:#495057}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;background-color:#fcfcfd}.list-group-item-action:active{color:#495057;background-color:#e7eaf3}.list-group-item{border-color:#e7eaf3}.list-group-item.active{color:#fff;background-color:#3b5998;border-color:#3b5998}.popover{border-color:#e7eaf3}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{border-top-color:#e7eaf3}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{border-top-color:#fff}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{border-right-color:#e7eaf3}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{border-right-color:#fff}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{border-bottom-color:#e7eaf3}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{border-bottom-color:#fff}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{border-left-color:#e7eaf3}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{border-left-color:#fff}.modal-header{border-bottom-color:#e7eaf3}.modal-footer{border-top-color:#e7eaf3}.dropdown-menu{border-color:#e7eaf3}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #f5f6fa}.dropdown-item{color:#495057}.dropdown-item:focus,.dropdown-item:hover{color:#212529;background-color:#f5f6fa}.dropdown-item.active,.dropdown-item:active{color:#fff;background-color:#3b5998}.dropdown-header{color:#212529}.table td,.table th{border-top-color:#e7eaf3}.table thead th{border-bottom-color:#e7eaf3}.table tbody+tbody{border-top-color:#e7eaf3}.table-bordered,.table-bordered td,.table-bordered th{border-color:#e7eaf3}.table-striped tbody tr:nth-of-type(odd){background-color:#fafbfd}.table-hover tbody tr:hover{background-color:#f0f1f7}.table-active,.table-active>td,.table-active>th{background-color:#f0f1f7}.table-hover .table-active:hover{background-color:#dfe2ef}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#dfe2ef}.table-primary,.table-primary>td,.table-primary>th{background-color:#a8b9dd}.table-hover .table-primary:hover{background-color:#96abd6}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#96abd6}.table .thead-dark th{background-color:#2d4373;border-color:#2d4373}.table .thead-light th{background-color:#e7eaf3;border-color:#e7eaf3}.form-control{color:#495057;background-color:#fff;border-color:#dadeec}.form-control:focus{color:#212529;background-color:#fff;border-color:#839ccf;box-shadow:0 0 0 .2rem rgba(59,89,152,.25)}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.custom-control-primary .custom-control-input:checked~.custom-control-label::before{background-color:#3b5998}.custom-control-primary .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(59,89,152,.25)}.custom-control-primary .custom-control-input:not(:disabled):active~.custom-control-label::before{background-color:#718dc8}.custom-control-primary .custom-control-label::before{background-color:#e7eaf3}.custom-control-primary.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#3b5998}.custom-control-primary.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#3b5998}.custom-control-primary.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#3b5998}.custom-control-primary.custom-block .custom-block-indicator{background-color:#3b5998}.custom-control-primary.custom-block .custom-control-input:checked~.custom-control-label{background-color:#e7eaf3;border-color:#3b5998}.custom-control-primary.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .75rem rgba(59,89,152,.25)}.custom-control-input:checked~.custom-control-label::before{background-color:#3b5998;border-color:#3b5998}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(59,89,152,.25)}.custom-control-input:not(:disabled):active~.custom-control-label::before{background-color:#a8b9dd}.custom-select{border-color:#dadeec}.custom-select:focus{border-color:#839ccf;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .2rem rgba(131,156,207,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-file-input:focus~.custom-file-label{border-color:#839ccf;box-shadow:0 0 0 .2rem rgba(59,89,152,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#839ccf}.custom-file-label{color:#495057;background-color:#fff;border-color:#dadeec}.custom-file-label::after{color:#495057;background-color:#e7eaf3;border-left-color:#dadeec}.valid-feedback{display:none;width:100%;margin-top:.5rem;font-size:.875rem;color:#82b54b}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .75rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(130,181,75,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#82b54b}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#82b54b}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#82b54b}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#82b54b}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#82b54b}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#9bc46f;background-color:#9bc46f}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#82b54b}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#82b54b}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.invalid-feedback{display:none;width:100%;margin-top:.5rem;font-size:.875rem;color:#e04f1a}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .75rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(224,79,26,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#e04f1a}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#e04f1a}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#e04f1a}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#e04f1a}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#e04f1a}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e97044;background-color:#e97044}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#e04f1a}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#e04f1a}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.form-control.form-control-alt{border-color:#f5f6fa;background-color:#f5f6fa}.form-control.form-control-alt:focus{border-color:#e7eaf3;background-color:#e7eaf3;box-shadow:none}.form-control.form-control-alt.is-valid{border-color:#e4efd8;background-color:#e4efd8}.form-control.form-control-alt.is-valid:focus{border-color:#d7e8c6;background-color:#d7e8c6}.form-control.form-control-alt.is-invalid{border-color:#fdf1ed;background-color:#fdf1ed}.form-control.form-control-alt.is-invalid:focus{border-color:#fbe7df;background-color:#fbe7df}.input-group-text{color:#495057;background-color:#f5f6fa;border-color:#dadeec}.input-group-text.input-group-text-alt{background-color:#e7eaf3;border-color:#e7eaf3}.border{border-color:#e7eaf3!important}.border-top{border-top-color:#e7eaf3!important}.border-right{border-right-color:#e7eaf3!important}.border-bottom{border-bottom-color:#e7eaf3!important}.border-left{border-left-color:#e7eaf3!important}.border-primary-light{border-color:#2a8bf9!important}.border-primary-lighter{border-color:#74b3fb!important}.border-primary-dark{border-color:#054d9e!important}.border-primary-darker{border-color:#022954!important}.border-success-light{border-color:#bed9a2!important}.border-info-light{border-color:#a5ccf0!important}.border-warning-light{border-color:#ffdb93!important}.border-danger-light{border-color:#f1a184!important}.border-primary{border-color:#0665d0!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#82b54b!important}.border-info{border-color:#3c90df!important}.border-warning{border-color:#ffb119!important}.border-danger{border-color:#e04f1a!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-primary{border-color:#3b5998!important}.border-white{border-color:#fff!important}.border-white-op{border-color:rgba(255,255,255,.1)!important}.border-black-op{border-color:rgba(0,0,0,.1)!important}#page-header{background-color:#fff}#sidebar{background-color:#fff}#side-overlay{background-color:#fff}#page-container.page-header-dark #page-header{color:#ccd1e6;background-color:#3b5998}#page-container.page-header-glass #page-header{background-color:transparent}#page-container.page-header-glass.page-header-fixed.page-header-scroll #page-header{background-color:#fff}#page-container.page-header-glass.page-header-fixed.page-header-scroll.page-header-dark #page-header{background-color:#3b5998}#page-container.sidebar-dark #sidebar{color:#e7eaf3;background-color:#35383e}.block{box-shadow:0 2px 6px rgba(231,234,243,.4)}.block-header-default{background-color:#fcfcfd}.block.block-bordered{border-color:#e7eaf3}.block.block-themed>.block-header{background-color:#3b5998}.block.block-mode-loading::after{color:#2d4373;box-shadow:0 0 .75rem .75rem rgba(45,67,115,.05)}.block.block-mode-loading.block-mode-hidden::after{box-shadow:0 0 .5rem .5rem rgba(45,67,115,.05)}.block.block-mode-loading.block-mode-loading-dark::after{background-color:#2d4373}a.block{color:#495057}a.block:hover{color:#495057}a.block.block-link-pop:hover{box-shadow:0 .5rem 2rem #dadeec}a.block.block-link-pop:active{box-shadow:0 .25rem .75rem #f2f3f8}a.block.block-link-shadow:hover{box-shadow:0 0 2.25rem #dadeec}a.block.block-link-shadow:active{box-shadow:0 0 1.125rem #e7eaf3}.block.block-fx-shadow{box-shadow:0 0 2.25rem #dadeec}.block.block-fx-pop{box-shadow:0 .5rem 2rem #dadeec}.btn-block-option{color:#3b5998}.btn-block-option:hover{color:#5f7ec1}.active>a.btn-block-option,.show>button.btn-block-option,a.btn-block-option:focus{color:#5f7ec1}.btn-block-option:active{color:#a8b9dd}#page-loader{background-color:#3b5998}.nav-main-heading{color:#869099}.nav-main-link{color:#495057}.nav-main-link .nav-main-link-icon{color:#3b5998}.nav-main-link.active,.nav-main-link:hover{color:#000;background-color:#d8e0f0}.nav-main-submenu{background-color:#eef1f8}.nav-main-submenu .nav-main-link{color:rgba(73,80,87,.75)}.nav-main-submenu .nav-main-link.active,.nav-main-submenu .nav-main-link:hover{color:#000;background-color:transparent}.nav-main-item.open>.nav-main-link-submenu{color:#000;background-color:#d8e0f0}.nav-main-submenu .nav-main-item.open .nav-main-link{background-color:transparent}@media (min-width:992px){.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu{color:#000;background-color:#d8e0f0}}.nav-main-dark .nav-main-heading,.page-header-dark #page-header .nav-main-heading,.sidebar-dark #sidebar .nav-main-heading{color:#a3add1}.nav-main-dark .nav-main-link,.page-header-dark #page-header .nav-main-link,.sidebar-dark #sidebar .nav-main-link{color:#e7eaf3}.nav-main-dark .nav-main-link>.nav-main-link-icon,.page-header-dark #page-header .nav-main-link>.nav-main-link-icon,.sidebar-dark #sidebar .nav-main-link>.nav-main-link-icon{color:#a8b9dd}.nav-main-dark .nav-main-link.active,.nav-main-dark .nav-main-link:hover,.page-header-dark #page-header .nav-main-link.active,.page-header-dark #page-header .nav-main-link:hover,.sidebar-dark #sidebar .nav-main-link.active,.sidebar-dark #sidebar .nav-main-link:hover{color:#fff;background-color:#222428}.nav-main-dark .nav-main-submenu,.page-header-dark #page-header .nav-main-submenu,.sidebar-dark #sidebar .nav-main-submenu{background-color:#2e3136}.nav-main-dark .nav-main-submenu .nav-main-link,.page-header-dark #page-header .nav-main-submenu .nav-main-link,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link{color:rgba(231,234,243,.75)}.nav-main-dark .nav-main-submenu .nav-main-link.active,.nav-main-dark .nav-main-submenu .nav-main-link:hover,.page-header-dark #page-header .nav-main-submenu .nav-main-link.active,.page-header-dark #page-header .nav-main-submenu .nav-main-link:hover,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link.active,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link:hover{color:#fff;background-color:transparent}.nav-main-dark .nav-main-item.open>.nav-main-link-submenu,.page-header-dark #page-header .nav-main-item.open>.nav-main-link-submenu,.sidebar-dark #sidebar .nav-main-item.open>.nav-main-link-submenu{color:#fff;background-color:#222428}.nav-main-dark .nav-main-item.open>.nav-main-submenu,.page-header-dark #page-header .nav-main-item.open>.nav-main-submenu,.sidebar-dark #sidebar .nav-main-item.open>.nav-main-submenu{background-color:#2e3136}.nav-main-dark .nav-main-submenu .nav-main-item.open .nav-main-link,.page-header-dark #page-header .nav-main-submenu .nav-main-item.open .nav-main-link,.sidebar-dark #sidebar .nav-main-submenu .nav-main-item.open .nav-main-link{background-color:transparent}@media (min-width:992px){.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu{color:#fff;background-color:#222428}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu{background-color:#2e3136}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link{background-color:transparent}}.nav-items a{border-bottom-color:#f5f6fa}.nav-items a:hover{background-color:#fcfcfd}.list-activity>li{border-bottom-color:#f5f6fa}.timeline-event-icon{box-shadow:0 .375rem 1.5rem #dadeec}.ribbon-light .ribbon-box{color:#495057;background-color:#e7eaf3}.ribbon-light.ribbon-bookmark .ribbon-box::before{border-color:#e7eaf3;border-left-color:transparent}.ribbon-light.ribbon-bookmark.ribbon-left .ribbon-box::before{border-color:#e7eaf3;border-right-color:transparent}.ribbon-primary .ribbon-box{color:#fff;background-color:#3b5998}.ribbon-primary.ribbon-bookmark .ribbon-box::before{border-color:#3b5998;border-left-color:transparent}.ribbon-primary.ribbon-bookmark.ribbon-left .ribbon-box::before{border-color:#3b5998;border-right-color:transparent}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:active,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:focus,.datepicker table tr td span.active:hover:hover,.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:focus,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active:active,.datepicker table tr td.active:focus,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:focus,.datepicker table tr td.active:hover:hover,.open .dropdown-toggle.datepicker table tr td span.active,.open .dropdown-toggle.datepicker table tr td span.active.disabled,.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td span.active:hover,.open .dropdown-toggle.datepicker table tr td.active,.open .dropdown-toggle.datepicker table tr td.active.disabled,.open .dropdown-toggle.datepicker table tr td.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td.active:hover{background-color:#3b5998;border-color:#3b5998}.cke_chrome{border-color:#e7eaf3!important}.cke_top{border-bottom-color:#e7eaf3!important;background:#fcfcfd!important}.cke_bottom{border-top-color:#e7eaf3!important;background:#fcfcfd!important}.dropzone{background-color:#fcfcfd;border-color:#dadeec}.dropzone .dz-message{color:#495057}.dropzone:hover{background-color:#fff;border-color:#3b5998}.dropzone:hover .dz-message{color:#3b5998}.fc-bootstrap4 a.fc-event:not([href]):not([tabindex]){color:#212529}.fc-bootstrap4 .fc-event{color:#212529}.fc-bootstrap4 .fc-event:hover{color:#495057}.fc-bootstrap4 thead th.fc-day-header{background-color:#fcfcfd}.fc-bootstrap4 .fc-content,.fc-bootstrap4 .fc-divider,.fc-bootstrap4 .fc-list-heading td,.fc-bootstrap4 .fc-list-table.table,.fc-bootstrap4 .fc-list-view,.fc-bootstrap4 .fc-popover,.fc-bootstrap4 .fc-row,.fc-bootstrap4 tbody,.fc-bootstrap4 td,.fc-bootstrap4 th,.fc-bootstrap4 thead{border-color:#e7eaf3}.fc-bootstrap4 .fc-divider,.fc-bootstrap4 .fc-list-heading td,.fc-bootstrap4 .fc-popover .fc-header{background:#f5f6fa}.fc-bootstrap4 .fc-today{background:#fcfcfd}.irs.irs--round .irs-grid-pol,.irs.irs--round .irs-line,.irs.irs--round .irs-max,.irs.irs--round .irs-min{background:#f5f6fa}.irs.irs--round .irs-handle{border-color:#3b5998}.irs.irs--round .irs-from:before,.irs.irs--round .irs-single:before,.irs.irs--round .irs-to:before{border-top-color:#3b5998}.irs.irs--round .irs-bar,.irs.irs--round .irs-from,.irs.irs--round .irs-single,.irs.irs--round .irs-to{background:#3b5998}.select2-container--default .select2-selection--single{border-color:#dadeec}.select2-container--default .select2-selection--multiple{border-color:#dadeec}.select2-container--default.select2-container--focus .select2-selection--multiple,.select2-container--default.select2-container--focus .select2-selection--single,.select2-container--default.select2-container--open .select2-selection--multiple,.select2-container--default.select2-container--open .select2-selection--single{border-color:#839ccf;box-shadow:0 0 0 .2rem rgba(59,89,152,.25)}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#3b5998}.select2-container--default .select2-search--dropdown .select2-search__field{border-color:#dadeec}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#3b5998}.select2-container--default .select2-dropdown .select2-search__field:focus{border-color:#839ccf;box-shadow:0 0 0 .2rem rgba(59,89,152,.25)}.simplebar-scrollbar::before{background:#1e2e4f}.sidebar-dark #sidebar .simplebar-scrollbar::before{background:#a8b9dd}.slick-slider .slick-next::before,.slick-slider .slick-prev::before{color:#2d4373}.editor-toolbar{border-color:#e7eaf3;background-color:#fcfcfd}.CodeMirror{border-color:#e7eaf3}.note-editor.note-frame{border-color:#e7eaf3}.note-editor.note-frame .note-toolbar{background-color:#fcfcfd;border-bottom-color:#e7eaf3}.note-editor.note-frame .note-statusbar{border-top-color:#e7eaf3;background-color:#fcfcfd}.dd-handle{color:#495057;background:#fcfcfd;border-color:#e7eaf3}.dd-handle:hover{color:#212529}.dd-empty,.dd-placeholder{border-color:#1e2e4f;background:#a8b9dd}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{border-color:#3b5998;background:#3b5998}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#3b5998} - -/* antd */ -.ant-affix{z-index:10}.ant-alert{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-radius:4px}.ant-alert-icon{top:11.5px}.ant-alert-description{font-size:14px}.ant-alert-success{background-color:#f6ffed;border:1px solid #b7eb8f}.ant-alert-success .ant-alert-icon{color:#52c41a}.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}.ant-alert-info .ant-alert-icon{color:#1890ff}.ant-alert-warning{background-color:#fffbe6;border:1px solid #ffe58f}.ant-alert-warning .ant-alert-icon{color:#faad14}.ant-alert-error{background-color:#fff1f0;border:1px solid #ffa39e}.ant-alert-error .ant-alert-icon{color:#f5222d}.ant-alert-close-icon{font-size:12px}.ant-alert-close-icon .anticon-close{color:rgba(0,0,0,0.45)}.ant-alert-close-icon .anticon-close:hover{color:rgba(0,0,0,0.75)}.ant-alert-close-text{color:rgba(0,0,0,0.45)}.ant-alert-close-text:hover{color:rgba(0,0,0,0.75)}.ant-alert-with-description{color:rgba(0,0,0,0.65);line-height:1.5;border-radius:4px}.ant-alert-with-description .ant-alert-close-icon{font-size:14px}.ant-alert-with-description .ant-alert-message{color:rgba(0,0,0,0.85);font-size:16px}.ant-alert-message{color:rgba(0,0,0,0.85)}.ant-alert.ant-alert-close{transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-alert-slide-up-leave{animation:antAlertSlideUpOut .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-alert-banner{border:0;border-radius:0}.ant-anchor{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-anchor-wrapper{background-color:#fff}.ant-anchor-ink::before{width:2px;background-color:#e8e8e8}.ant-anchor-ink-ball{background-color:#fff;border:2px solid #3b5998;border-radius:8px}.ant-anchor-link-title{color:rgba(0,0,0,0.65)}.ant-anchor-link-active>.ant-anchor-link-title{color:#3b5998}.ant-select-auto-complete{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-auto-complete.ant-select .ant-select-selection{border:0}.ant-select-auto-complete.ant-select .ant-select-selection__rendered{line-height:32px}.ant-select-auto-complete.ant-select .ant-input{height:32px;line-height:1.5;border-width:1px}.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#5b75a6;border-right-width:1px !important}.ant-select-auto-complete.ant-select .ant-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-select-auto-complete.ant-select .ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-select-auto-complete.ant-select-lg .ant-select-selection__rendered{line-height:40px}.ant-select-auto-complete.ant-select-lg .ant-input{height:40px}.ant-select-auto-complete.ant-select-sm .ant-select-selection__rendered{line-height:24px}.ant-select-auto-complete.ant-select-sm .ant-input{height:24px}.ant-avatar{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#fff;background:#ccc;width:32px;height:32px;line-height:32px;border-radius:50%}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar-lg{width:40px;height:40px;line-height:40px;border-radius:50%}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-sm{width:24px;height:24px;line-height:24px;border-radius:50%}.ant-avatar-sm.ant-avatar-icon{font-size:14px}.ant-avatar-square{border-radius:4px}.ant-back-top{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:10}.ant-back-top-content{color:#fff;background-color:rgba(0,0,0,0.45);border-radius:20px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-back-top-content:hover{background-color:rgba(0,0,0,0.65);transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-badge{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-badge-count{z-index:10;min-width:20px;height:20px;color:#fff;font-weight:normal;font-size:12px;line-height:20px;background:#f5222d;border-radius:10px;box-shadow:0 0 0 1px #fff}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-dot{z-index:10;width:6px;height:6px;background:#f5222d;border-radius:100%;box-shadow:0 0 0 1px #fff}.ant-badge-status-dot{width:6px;height:6px;border-radius:50%}.ant-badge-status-success{background-color:#52c41a}.ant-badge-status-processing{background-color:#1890ff}.ant-badge-status-processing::after{border:1px solid #1890ff;border-radius:50%}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#f5222d}.ant-badge-status-warning{background-color:#faad14}.ant-badge-status-pink{background:#eb2f96}.ant-badge-status-magenta{background:#eb2f96}.ant-badge-status-red{background:#f5222d}.ant-badge-status-volcano{background:#fa541c}.ant-badge-status-orange{background:#fa8c16}.ant-badge-status-yellow{background:#fadb14}.ant-badge-status-gold{background:#faad14}.ant-badge-status-cyan{background:#13c2c2}.ant-badge-status-lime{background:#a0d911}.ant-badge-status-green{background:#52c41a}.ant-badge-status-blue{background:#1890ff}.ant-badge-status-geekblue{background:#2f54eb}.ant-badge-status-purple{background:#722ed1}.ant-badge-status-text{color:rgba(0,0,0,0.65);font-size:14px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{animation:antZoomBadgeIn .3s cubic-bezier(0.12,0.4,0.29,1.46)}.ant-badge-zoom-leave{animation:antZoomBadgeOut .3s cubic-bezier(0.71,-0.46,0.88,0.6)}.ant-scroll-number-only{height:20px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-scroll-number-only>p{height:20px}.ant-breadcrumb{box-sizing:border-box;color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:rgba(0,0,0,0.45);font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:rgba(0,0,0,0.45)}.ant-breadcrumb a:hover{color:#5b75a6}.ant-breadcrumb>span:last-child{color:rgba(0,0,0,0.65)}.ant-breadcrumb>span:last-child a{color:rgba(0,0,0,0.65)}.ant-breadcrumb-separator{color:rgba(0,0,0,0.45)}.ant-btn{line-height:1.5;font-weight:400;border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,0.015);transition:all .3s cubic-bezier(0.645,0.045,0.355,1);height:32px;font-size:14px;border-radius:4px;color:rgba(0,0,0,0.65);background-color:#fff;border-color:#d9d9d9}.ant-btn-lg{height:40px;font-size:16px;border-radius:4px}.ant-btn-sm{height:24px;font-size:14px;border-radius:4px}.ant-btn:hover,.ant-btn:focus{color:#5b75a6;background-color:#fff;border-color:#5b75a6}.ant-btn:active,.ant-btn.active{color:#273c73;background-color:#fff;border-color:#273c73}.ant-btn-disabled,.ant-btn.disabled,.ant-btn[disabled],.ant-btn-disabled:hover,.ant-btn.disabled:hover,.ant-btn[disabled]:hover,.ant-btn-disabled:focus,.ant-btn.disabled:focus,.ant-btn[disabled]:focus,.ant-btn-disabled:active,.ant-btn.disabled:active,.ant-btn[disabled]:active,.ant-btn-disabled.active,.ant-btn.disabled.active,.ant-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn:hover,.ant-btn:focus,.ant-btn:active,.ant-btn.active{background:#fff}.ant-btn-primary{color:#fff;background-color:#3b5998;border-color:#3b5998;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045)}.ant-btn-primary:hover,.ant-btn-primary:focus{color:#fff;background-color:#5b75a6;border-color:#5b75a6}.ant-btn-primary:active,.ant-btn-primary.active{color:#fff;background-color:#273c73;border-color:#273c73}.ant-btn-primary-disabled,.ant-btn-primary.disabled,.ant-btn-primary[disabled],.ant-btn-primary-disabled:hover,.ant-btn-primary.disabled:hover,.ant-btn-primary[disabled]:hover,.ant-btn-primary-disabled:focus,.ant-btn-primary.disabled:focus,.ant-btn-primary[disabled]:focus,.ant-btn-primary-disabled:active,.ant-btn-primary.disabled:active,.ant-btn-primary[disabled]:active,.ant-btn-primary-disabled.active,.ant-btn-primary.disabled.active,.ant-btn-primary[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#5b75a6;border-left-color:#5b75a6}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#5b75a6}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary:last-child:not(:first-child),.ant-btn-group .ant-btn-primary+.ant-btn-primary{border-left-color:#5b75a6}.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:rgba(0,0,0,0.65);background-color:transparent;border-color:#d9d9d9}.ant-btn-ghost:hover,.ant-btn-ghost:focus{color:#5b75a6;background-color:transparent;border-color:#5b75a6}.ant-btn-ghost:active,.ant-btn-ghost.active{color:#273c73;background-color:transparent;border-color:#273c73}.ant-btn-ghost-disabled,.ant-btn-ghost.disabled,.ant-btn-ghost[disabled],.ant-btn-ghost-disabled:hover,.ant-btn-ghost.disabled:hover,.ant-btn-ghost[disabled]:hover,.ant-btn-ghost-disabled:focus,.ant-btn-ghost.disabled:focus,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost-disabled:active,.ant-btn-ghost.disabled:active,.ant-btn-ghost[disabled]:active,.ant-btn-ghost-disabled.active,.ant-btn-ghost.disabled.active,.ant-btn-ghost[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-dashed{color:rgba(0,0,0,0.65);background-color:#fff;border-color:#d9d9d9;border-style:dashed}.ant-btn-dashed:hover,.ant-btn-dashed:focus{color:#5b75a6;background-color:#fff;border-color:#5b75a6}.ant-btn-dashed:active,.ant-btn-dashed.active{color:#273c73;background-color:#fff;border-color:#273c73}.ant-btn-dashed-disabled,.ant-btn-dashed.disabled,.ant-btn-dashed[disabled],.ant-btn-dashed-disabled:hover,.ant-btn-dashed.disabled:hover,.ant-btn-dashed[disabled]:hover,.ant-btn-dashed-disabled:focus,.ant-btn-dashed.disabled:focus,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed-disabled:active,.ant-btn-dashed.disabled:active,.ant-btn-dashed[disabled]:active,.ant-btn-dashed-disabled.active,.ant-btn-dashed.disabled.active,.ant-btn-dashed[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-danger{color:#fff;background-color:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045)}.ant-btn-danger:hover,.ant-btn-danger:focus{color:#fff;background-color:#ff7875;border-color:#ff7875}.ant-btn-danger:active,.ant-btn-danger.active{color:#fff;background-color:#d9363e;border-color:#d9363e}.ant-btn-danger-disabled,.ant-btn-danger.disabled,.ant-btn-danger[disabled],.ant-btn-danger-disabled:hover,.ant-btn-danger.disabled:hover,.ant-btn-danger[disabled]:hover,.ant-btn-danger-disabled:focus,.ant-btn-danger.disabled:focus,.ant-btn-danger[disabled]:focus,.ant-btn-danger-disabled:active,.ant-btn-danger.disabled:active,.ant-btn-danger[disabled]:active,.ant-btn-danger-disabled.active,.ant-btn-danger.disabled.active,.ant-btn-danger[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link{color:#3b5998;background-color:transparent;border-color:transparent}.ant-btn-link:hover,.ant-btn-link:focus{color:#5b75a6;background-color:transparent;border-color:#5b75a6}.ant-btn-link:active,.ant-btn-link.active{color:#273c73;background-color:transparent;border-color:#273c73}.ant-btn-link-disabled,.ant-btn-link.disabled,.ant-btn-link[disabled],.ant-btn-link-disabled:hover,.ant-btn-link.disabled:hover,.ant-btn-link[disabled]:hover,.ant-btn-link-disabled:focus,.ant-btn-link.disabled:focus,.ant-btn-link[disabled]:focus,.ant-btn-link-disabled:active,.ant-btn-link.disabled:active,.ant-btn-link[disabled]:active,.ant-btn-link-disabled.active,.ant-btn-link.disabled.active,.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:hover,.ant-btn-link:focus,.ant-btn-link:active{border-color:transparent}.ant-btn-link-disabled,.ant-btn-link.disabled,.ant-btn-link[disabled],.ant-btn-link-disabled:hover,.ant-btn-link.disabled:hover,.ant-btn-link[disabled]:hover,.ant-btn-link-disabled:focus,.ant-btn-link.disabled:focus,.ant-btn-link[disabled]:focus,.ant-btn-link-disabled:active,.ant-btn-link.disabled:active,.ant-btn-link[disabled]:active,.ant-btn-link-disabled.active,.ant-btn-link.disabled.active,.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:transparent;border-color:transparent}.ant-btn-icon-only{width:32px;height:32px;font-size:16px;border-radius:4px}.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px;font-size:18px;border-radius:4px}.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px;font-size:14px;border-radius:4px}.ant-btn-round{height:32px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-lg{height:40px;font-size:16px;border-radius:40px}.ant-btn-round.ant-btn-sm{height:24px;font-size:14px;border-radius:24px}.ant-btn-circle,.ant-btn-circle-outline{min-width:32px;border-radius:50%}.ant-btn-circle.ant-btn-lg,.ant-btn-circle-outline.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle.ant-btn-sm,.ant-btn-circle-outline.ant-btn-sm{min-width:24px;border-radius:50%}.ant-btn::before{background:#fff;border-radius:inherit}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{height:40px;font-size:16px;border-radius:0;line-height:38px}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{height:24px;font-size:14px;border-radius:0;line-height:22px}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:only-child{border-radius:4px}.ant-btn-group>span:only-child>.ant-btn{border-radius:4px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-btn-group-sm>.ant-btn:only-child{border-radius:4px}.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:4px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.ant-btn-background-ghost{color:#fff;border-color:#fff}.ant-btn-background-ghost.ant-btn-primary{color:#3b5998;background-color:transparent;border-color:#3b5998}.ant-btn-background-ghost.ant-btn-primary:hover,.ant-btn-background-ghost.ant-btn-primary:focus{color:#5b75a6;background-color:transparent;border-color:#5b75a6}.ant-btn-background-ghost.ant-btn-primary:active,.ant-btn-background-ghost.ant-btn-primary.active{color:#273c73;background-color:transparent;border-color:#273c73}.ant-btn-background-ghost.ant-btn-primary-disabled,.ant-btn-background-ghost.ant-btn-primary.disabled,.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary-disabled:hover,.ant-btn-background-ghost.ant-btn-primary.disabled:hover,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover,.ant-btn-background-ghost.ant-btn-primary-disabled:focus,.ant-btn-background-ghost.ant-btn-primary.disabled:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary-disabled:active,.ant-btn-background-ghost.ant-btn-primary.disabled:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary-disabled.active,.ant-btn-background-ghost.ant-btn-primary.disabled.active,.ant-btn-background-ghost.ant-btn-primary[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;background-color:transparent;border-color:#ff4d4f}.ant-btn-background-ghost.ant-btn-danger:hover,.ant-btn-background-ghost.ant-btn-danger:focus{color:#ff7875;background-color:transparent;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:active,.ant-btn-background-ghost.ant-btn-danger.active{color:#d9363e;background-color:transparent;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-danger-disabled,.ant-btn-background-ghost.ant-btn-danger.disabled,.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger-disabled:hover,.ant-btn-background-ghost.ant-btn-danger.disabled:hover,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover,.ant-btn-background-ghost.ant-btn-danger-disabled:focus,.ant-btn-background-ghost.ant-btn-danger.disabled:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger-disabled:active,.ant-btn-background-ghost.ant-btn-danger.disabled:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger-disabled.active,.ant-btn-background-ghost.ant-btn-danger.disabled.active,.ant-btn-background-ghost.ant-btn-danger[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-background-ghost.ant-btn-link{color:#3b5998;background-color:transparent;border-color:transparent;color:#fff}.ant-btn-background-ghost.ant-btn-link:hover,.ant-btn-background-ghost.ant-btn-link:focus{color:#5b75a6;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link:active,.ant-btn-background-ghost.ant-btn-link.active{color:#273c73;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link-disabled,.ant-btn-background-ghost.ant-btn-link.disabled,.ant-btn-background-ghost.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-link-disabled:hover,.ant-btn-background-ghost.ant-btn-link.disabled:hover,.ant-btn-background-ghost.ant-btn-link[disabled]:hover,.ant-btn-background-ghost.ant-btn-link-disabled:focus,.ant-btn-background-ghost.ant-btn-link.disabled:focus,.ant-btn-background-ghost.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-link-disabled:active,.ant-btn-background-ghost.ant-btn-link.disabled:active,.ant-btn-background-ghost.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-link-disabled.active,.ant-btn-background-ghost.ant-btn-link.disabled.active,.ant-btn-background-ghost.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}a.ant-btn{line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-fullcalendar{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-top:1px solid #d9d9d9}.ant-fullcalendar table{border-collapse:collapse}.ant-fullcalendar table,.ant-fullcalendar th,.ant-fullcalendar td{border:0}.ant-fullcalendar-calendar-table{border-spacing:0}.ant-fullcalendar-value{color:rgba(0,0,0,0.65);border-radius:2px}.ant-fullcalendar-value:hover{background:#ccd2d9}.ant-fullcalendar-value:active{color:#fff;background:#3b5998}.ant-fullcalendar-today .ant-fullcalendar-value,.ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-value{box-shadow:0 0 0 1px #3b5998 inset}.ant-fullcalendar-selected-day .ant-fullcalendar-value,.ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value{color:#fff;background:#3b5998}.ant-fullcalendar-disabled-cell-first-of-row .ant-fullcalendar-value{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-fullcalendar-disabled-cell-last-of-row .ant-fullcalendar-value{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-fullcalendar-last-month-cell .ant-fullcalendar-value,.ant-fullcalendar-next-month-btn-day .ant-fullcalendar-value{color:rgba(0,0,0,0.25)}.ant-fullcalendar-month-panel-table{border-collapse:separate}.ant-fullcalendar-fullscreen{border-top:0}.ant-fullcalendar-fullscreen .ant-fullcalendar-header label.ant-radio-button{height:32px;line-height:30px}.ant-fullcalendar-fullscreen .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-date{color:rgba(0,0,0,0.65);border-top:2px solid #e8e8e8}.ant-fullcalendar-fullscreen .ant-fullcalendar-month:hover,.ant-fullcalendar-fullscreen .ant-fullcalendar-date:hover{background:#ccd2d9}.ant-fullcalendar-fullscreen .ant-fullcalendar-month:active,.ant-fullcalendar-fullscreen .ant-fullcalendar-date:active{background:#c0c5cc}.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-value{color:rgba(0,0,0,0.65)}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-date{border-top-color:#3b5998}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-date{background:#ccd2d9}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value,.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-value{color:#3b5998}.ant-fullcalendar-fullscreen .ant-fullcalendar-last-month-cell .ant-fullcalendar-date,.ant-fullcalendar-fullscreen .ant-fullcalendar-next-month-btn-day .ant-fullcalendar-date{color:rgba(0,0,0,0.25)}.ant-fullcalendar-disabled-cell .ant-fullcalendar-value{color:rgba(0,0,0,0.25);border-radius:0}.ant-card{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background:#fff;border-radius:2px}.ant-card-hoverable:hover{border-color:rgba(0,0,0,0.09);box-shadow:0 2px 8px rgba(0,0,0,0.09)}.ant-card-bordered{border:1px solid #e8e8e8}.ant-card-head{min-height:48px;color:rgba(0,0,0,0.85);font-size:16px;background:transparent;border-bottom:1px solid #e8e8e8;border-radius:2px 2px 0 0}.ant-card-head .ant-tabs{color:rgba(0,0,0,0.65);font-size:14px}.ant-card-head .ant-tabs-bar{border-bottom:1px solid #e8e8e8}.ant-card-extra{color:rgba(0,0,0,0.65);font-size:14px}.ant-card-grid{border:0;border-radius:0;box-shadow:1px 0 0 0 #e8e8e8,0 1px 0 0 #e8e8e8,1px 1px 0 0 #e8e8e8,1px 0 0 0 #e8e8e8 inset,0 1px 0 0 #e8e8e8 inset}.ant-card-grid-hoverable:hover{box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{background:#fafafa;border-top:1px solid #e8e8e8}.ant-card-actions>li{color:rgba(0,0,0,0.45)}.ant-card-actions>li>span:hover{color:#3b5998}.ant-card-actions>li>span a:not(.ant-btn),.ant-card-actions>li>span>.anticon{color:rgba(0,0,0,0.45)}.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#3b5998}.ant-card-actions>li>span>.anticon{font-size:16px}.ant-card-actions>li:not(:last-child){border-right:1px solid #e8e8e8}.ant-card-type-inner .ant-card-head{background:#fafafa}.ant-card-type-inner .ant-card-head-title{font-size:14px}.ant-card-meta-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-card-meta-description{color:rgba(0,0,0,0.45)}.ant-card-loading-block{background:linear-gradient(90deg,rgba(207,216,220,0.2),rgba(207,216,220,0.4),rgba(207,216,220,0.2));border-radius:2px}.ant-carousel{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-carousel .slick-slider{box-sizing:border-box}.ant-carousel .slick-vertical .slick-slide{border:1px solid transparent}.ant-carousel .slick-prev,.ant-carousel .slick-next{border:0}.ant-carousel .slick-dots{height:3px}.ant-carousel .slick-dots li button{width:16px;height:3px;background:#fff;border:0;border-radius:1px}.ant-carousel .slick-dots li.slick-active button{width:24px;background:#fff}.ant-carousel-vertical .slick-dots{width:3px}.ant-carousel-vertical .slick-dots li button{width:3px;height:16px}.ant-carousel-vertical .slick-dots li.slick-active button{width:3px;height:24px}.ant-cascader{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-cascader-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background-color:#fff;border-radius:4px}.ant-cascader-picker-disabled{color:rgba(0,0,0,0.25);background:#f5f5f5}.ant-cascader-picker:focus .ant-cascader-input{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-cascader-picker-show-search.ant-cascader-picker-focused{color:rgba(0,0,0,0.25)}.ant-cascader-picker-clear{color:rgba(0,0,0,0.25);font-size:12px;background:#fff}.ant-cascader-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-cascader-picker-arrow{color:rgba(0,0,0,0.25)}.ant-cascader-picker-label:hover+.ant-cascader-input{border-color:#5b75a6;border-right-width:1px !important}.ant-cascader-menus{z-index:1050;font-size:14px;background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-cascader-menu{border-right:1px solid #e8e8e8}.ant-cascader-menu:first-child{border-radius:4px 0 0 4px}.ant-cascader-menu:last-child{border-right-color:transparent;border-radius:0 4px 4px 0}.ant-cascader-menu:only-child{border-radius:4px}.ant-cascader-menu-item:hover{background:#ccd2d9}.ant-cascader-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover{font-weight:600;background-color:#fafafa}.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-loading-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45)}:root .ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,:root .ant-cascader-menu-item-loading-icon{font-size:12px}.ant-cascader-menu-item .ant-cascader-menu-item-keyword{color:#f5222d}.ant-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner,.ant-checkbox-input:focus+.ant-checkbox-inner{border-color:#3b5998}.ant-checkbox-checked::after{border:1px solid #3b5998;border-radius:2px}.ant-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-checkbox-checked .ant-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-checkbox-checked .ant-checkbox-inner{background-color:#3b5998;border-color:#3b5998}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-checkbox-disabled .ant-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner::after{width:8px;height:8px;background-color:#3b5998;border:0}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-collapse{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:4px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 4px 4px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{color:rgba(0,0,0,0.85)}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{color:inherit;font-size:12px}.ant-collapse-anim-active{transition:height .2s cubic-bezier(0.215,0.61,0.355,1)}.ant-collapse-content{color:rgba(0,0,0,0.65);background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 4px 4px}.ant-collapse-borderless{background-color:#fff;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{border-top:0}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:rgba(0,0,0,0.25)}.ant-comment-avatar img{border-radius:50%}.ant-comment-content{font-size:14px}.ant-comment-content-author{font-size:14px}.ant-comment-content-author>a,.ant-comment-content-author>span{font-size:12px}.ant-comment-content-author-name{color:rgba(0,0,0,0.45);font-size:14px}.ant-comment-content-author-name>*{color:rgba(0,0,0,0.45)}.ant-comment-content-author-name>*:hover{color:rgba(0,0,0,0.45)}.ant-comment-content-author-time{color:#ccc}.ant-comment-actions>li{color:rgba(0,0,0,0.45)}.ant-comment-actions>li>span{color:rgba(0,0,0,0.45);font-size:12px}.ant-comment-actions>li>span:hover{color:#595959}.ant-descriptions-title{color:rgba(0,0,0,0.85);font-size:16px;line-height:1.5}.ant-descriptions-view{border-radius:4px}.ant-descriptions-row:last-child{border-bottom:0}.ant-descriptions-item-label{color:rgba(0,0,0,0.85);font-size:14px;line-height:1.5}.ant-descriptions-item-content{color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-item-label,.ant-descriptions-bordered .ant-descriptions-item-content{border-right:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-item-label:last-child,.ant-descriptions-bordered .ant-descriptions-item-content:last-child{border-right:0}.ant-descriptions-bordered .ant-descriptions-item-label{background-color:#fafafa}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:0}.ant-divider{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background:#e8e8e8}.ant-divider-horizontal.ant-divider-with-text-center,.ant-divider-horizontal.ant-divider-with-text-left,.ant-divider-horizontal.ant-divider-with-text-right{color:rgba(0,0,0,0.85);font-size:16px}.ant-divider-horizontal.ant-divider-with-text-center::before,.ant-divider-horizontal.ant-divider-with-text-left::before,.ant-divider-horizontal.ant-divider-with-text-right::before,.ant-divider-horizontal.ant-divider-with-text-center::after,.ant-divider-horizontal.ant-divider-with-text-left::after,.ant-divider-horizontal.ant-divider-with-text-right::after{border-top:1px solid #e8e8e8}.ant-divider-dashed{border-color:#e8e8e8;border-style:dashed;border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed{border-top:0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed::after,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed::after,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed::after{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px}.ant-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-wrap .ant-btn>.anticon-down{font-size:12px}.ant-dropdown-menu{background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-dropdown-menu-item-group-title{color:rgba(0,0,0,0.45)}.ant-dropdown-menu-submenu-popup{z-index:1050}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{color:rgba(0,0,0,0.65);font-size:14px;line-height:22px}.ant-dropdown-menu-item>a,.ant-dropdown-menu-submenu-title>a{color:rgba(0,0,0,0.65)}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected>a{color:#3b5998;background-color:#ccd2d9}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#ccd2d9}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,0.25)}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{background-color:#e8e8e8}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,0.45);font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,:root .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{font-size:12px}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,0.25);background-color:#fff}.ant-dropdown-trigger>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-trigger>.anticon.anticon-down,:root .ant-dropdown-link>.anticon.anticon-down{font-size:12px}.ant-dropdown-button .anticon.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-button .anticon.anticon-down{font-size:12px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a{color:rgba(255,255,255,0.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow::after{color:rgba(255,255,255,0.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover{color:#fff}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{color:#fff;background:#3b5998}.ant-empty{font-size:14px}.ant-empty-normal{color:rgba(0,0,0,0.25)}.ant-empty-small{color:rgba(0,0,0,0.25)}.ant-form{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-form legend{color:rgba(0,0,0,0.45);font-size:16px;border:0;border-bottom:1px solid #d9d9d9}.ant-form label{font-size:14px}.ant-form input[type="search"]{box-sizing:border-box}.ant-form output{color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5}.ant-form-item-required::before{color:#f5222d;font-size:14px}.ant-form-item-label>label{color:rgba(0,0,0,0.85)}.ant-form-item{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-form-item label>.anticon{font-size:14px}.ant-form-item-control{line-height:40px}.ant-form-item-label{line-height:39.9999px}.ant-form-explain,.ant-form-extra{min-height:22px;color:rgba(0,0,0,0.45);font-size:14px;line-height:1.5;transition:color .3s cubic-bezier(0.215,0.61,0.355,1)}.ant-form-vertical .ant-form-item-label,.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label{line-height:1.5}.ant-form-vertical .ant-form-item-control{line-height:1.5}@media(max-width:575px){.ant-form-item-label{line-height:1.5}.ant-col-xs-24.ant-form-item-label{line-height:1.5}}@media(max-width:767px){.ant-col-sm-24.ant-form-item-label{line-height:1.5}}@media(max-width:991px){.ant-col-md-24.ant-form-item-label{line-height:1.5}}@media(max-width:1199px){.ant-col-lg-24.ant-form-item-label{line-height:1.5}}@media(max-width:1599px){.ant-col-xl-24.ant-form-item-label{line-height:1.5}}.has-success.has-feedback .ant-form-item-children-icon,.has-warning.has-feedback .ant-form-item-children-icon,.has-error.has-feedback .ant-form-item-children-icon,.is-validating.has-feedback .ant-form-item-children-icon{width:32px;font-size:14px;animation:zoomIn .3s cubic-bezier(0.12,0.4,0.29,1.46)}.has-success.has-feedback .ant-form-item-children-icon{color:#52c41a}.has-warning .ant-form-explain,.has-warning .ant-form-split{color:#faad14}.has-warning .ant-input,.has-warning .ant-input:hover{background-color:#fff;border-color:#faad14}.has-warning .ant-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input:not([disabled]):hover{border-color:#faad14}.has-warning .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-affix-wrapper .ant-input,.has-warning .ant-input-affix-wrapper .ant-input:hover{background-color:#fff;border-color:#faad14}.has-warning .ant-input-affix-wrapper .ant-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#faad14}.has-warning .ant-input-prefix{color:#faad14}.has-warning .ant-input-group-addon{color:#faad14;background-color:#fff;border-color:#faad14}.has-warning .has-feedback{color:#faad14}.has-warning.has-feedback .ant-form-item-children-icon{color:#faad14}.has-warning .ant-select-selection{border-color:#faad14}.has-warning .ant-select-selection:hover{border-color:#faad14}.has-warning .ant-select-open .ant-select-selection,.has-warning .ant-select-focused .ant-select-selection{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-calendar-picker-icon::after,.has-warning .ant-time-picker-icon::after,.has-warning .ant-picker-icon::after,.has-warning .ant-select-arrow,.has-warning .ant-cascader-picker-arrow{color:#faad14}.has-warning .ant-input-number,.has-warning .ant-time-picker-input{border-color:#faad14}.has-warning .ant-input-number-focused,.has-warning .ant-time-picker-input-focused,.has-warning .ant-input-number:focus,.has-warning .ant-time-picker-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-number:not([disabled]):hover,.has-warning .ant-time-picker-input:not([disabled]):hover{border-color:#faad14}.has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-error .ant-form-explain,.has-error .ant-form-split{color:#f5222d}.has-error .ant-input,.has-error .ant-input:hover{background-color:#fff;border-color:#f5222d}.has-error .ant-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input:not([disabled]):hover{border-color:#f5222d}.has-error .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-affix-wrapper .ant-input,.has-error .ant-input-affix-wrapper .ant-input:hover{background-color:#fff;border-color:#f5222d}.has-error .ant-input-affix-wrapper .ant-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#f5222d}.has-error .ant-input-prefix{color:#f5222d}.has-error .ant-input-group-addon{color:#f5222d;background-color:#fff;border-color:#f5222d}.has-error .has-feedback{color:#f5222d}.has-error.has-feedback .ant-form-item-children-icon{color:#f5222d}.has-error .ant-select-selection{border-color:#f5222d}.has-error .ant-select-selection:hover{border-color:#f5222d}.has-error .ant-select-open .ant-select-selection,.has-error .ant-select-focused .ant-select-selection{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:#f5222d}.has-error .ant-input-group-addon .ant-select-selection{border-color:transparent}.has-error .ant-calendar-picker-icon::after,.has-error .ant-time-picker-icon::after,.has-error .ant-picker-icon::after,.has-error .ant-select-arrow,.has-error .ant-cascader-picker-arrow{color:#f5222d}.has-error .ant-input-number,.has-error .ant-time-picker-input{border-color:#f5222d}.has-error .ant-input-number-focused,.has-error .ant-time-picker-input-focused,.has-error .ant-input-number:focus,.has-error .ant-time-picker-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-number:not([disabled]):hover,.has-error .ant-time-picker-input:not([disabled]):hover{border-color:#f5222d}.has-error .ant-mention-wrapper .ant-mention-editor,.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover{border-color:#f5222d}.has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-cascader-picker:focus .ant-cascader-input{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-transfer-list{border-color:#f5222d}.has-error .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#5b75a6;border-right-width:1px !important}.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.is-validating.has-feedback .ant-form-item-children-icon{color:#3b5998}.show-help-enter,.show-help-appear{animation-duration:.3s}.show-help-leave{animation-duration:.3s}.show-help-enter.show-help-enter-active,.show-help-appear.show-help-appear-active{animation-name:antShowHelpIn}.show-help-leave.show-help-leave-active{animation-name:antShowHelpOut}.show-help-enter,.show-help-appear{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.show-help-leave{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-row{box-sizing:border-box}.ant-col-24{box-sizing:border-box;width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-order-24{order:24}.ant-col-23{box-sizing:border-box;width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-order-23{order:23}.ant-col-22{box-sizing:border-box;width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-order-22{order:22}.ant-col-21{box-sizing:border-box;width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-order-21{order:21}.ant-col-20{box-sizing:border-box;width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-order-20{order:20}.ant-col-19{box-sizing:border-box;width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-order-19{order:19}.ant-col-18{box-sizing:border-box;width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-order-18{order:18}.ant-col-17{box-sizing:border-box;width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-order-17{order:17}.ant-col-16{box-sizing:border-box;width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-order-16{order:16}.ant-col-15{box-sizing:border-box;width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-order-15{order:15}.ant-col-14{box-sizing:border-box;width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-order-14{order:14}.ant-col-13{box-sizing:border-box;width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-order-13{order:13}.ant-col-12{box-sizing:border-box;width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-order-12{order:12}.ant-col-11{box-sizing:border-box;width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-order-11{order:11}.ant-col-10{box-sizing:border-box;width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-order-10{order:10}.ant-col-9{box-sizing:border-box;width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-order-9{order:9}.ant-col-8{box-sizing:border-box;width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-order-8{order:8}.ant-col-7{box-sizing:border-box;width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-order-7{order:7}.ant-col-6{box-sizing:border-box;width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-order-6{order:6}.ant-col-5{box-sizing:border-box;width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-order-5{order:5}.ant-col-4{box-sizing:border-box;width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-order-4{order:4}.ant-col-3{box-sizing:border-box;width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-order-3{order:3}.ant-col-2{box-sizing:border-box;width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-order-2{order:2}.ant-col-1{box-sizing:border-box;width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-order-1{order:1}.ant-col-xs-24{box-sizing:border-box;width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-order-24{order:24}.ant-col-xs-23{box-sizing:border-box;width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-order-23{order:23}.ant-col-xs-22{box-sizing:border-box;width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-order-22{order:22}.ant-col-xs-21{box-sizing:border-box;width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-order-21{order:21}.ant-col-xs-20{box-sizing:border-box;width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-order-20{order:20}.ant-col-xs-19{box-sizing:border-box;width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-order-19{order:19}.ant-col-xs-18{box-sizing:border-box;width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-order-18{order:18}.ant-col-xs-17{box-sizing:border-box;width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-order-17{order:17}.ant-col-xs-16{box-sizing:border-box;width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-order-16{order:16}.ant-col-xs-15{box-sizing:border-box;width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-order-15{order:15}.ant-col-xs-14{box-sizing:border-box;width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-order-14{order:14}.ant-col-xs-13{box-sizing:border-box;width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-order-13{order:13}.ant-col-xs-12{box-sizing:border-box;width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-order-12{order:12}.ant-col-xs-11{box-sizing:border-box;width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-order-11{order:11}.ant-col-xs-10{box-sizing:border-box;width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-order-10{order:10}.ant-col-xs-9{box-sizing:border-box;width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-order-9{order:9}.ant-col-xs-8{box-sizing:border-box;width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-order-8{order:8}.ant-col-xs-7{box-sizing:border-box;width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-order-7{order:7}.ant-col-xs-6{box-sizing:border-box;width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-order-6{order:6}.ant-col-xs-5{box-sizing:border-box;width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-order-5{order:5}.ant-col-xs-4{box-sizing:border-box;width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-order-4{order:4}.ant-col-xs-3{box-sizing:border-box;width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-order-3{order:3}.ant-col-xs-2{box-sizing:border-box;width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-order-2{order:2}.ant-col-xs-1{box-sizing:border-box;width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-order-1{order:1}@media(min-width:576px){.ant-col-sm-24{box-sizing:border-box;width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-order-24{order:24}.ant-col-sm-23{box-sizing:border-box;width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-order-23{order:23}.ant-col-sm-22{box-sizing:border-box;width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-order-22{order:22}.ant-col-sm-21{box-sizing:border-box;width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-order-21{order:21}.ant-col-sm-20{box-sizing:border-box;width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-order-20{order:20}.ant-col-sm-19{box-sizing:border-box;width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-order-19{order:19}.ant-col-sm-18{box-sizing:border-box;width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-order-18{order:18}.ant-col-sm-17{box-sizing:border-box;width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-order-17{order:17}.ant-col-sm-16{box-sizing:border-box;width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-order-16{order:16}.ant-col-sm-15{box-sizing:border-box;width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-order-15{order:15}.ant-col-sm-14{box-sizing:border-box;width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-order-14{order:14}.ant-col-sm-13{box-sizing:border-box;width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-order-13{order:13}.ant-col-sm-12{box-sizing:border-box;width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-order-12{order:12}.ant-col-sm-11{box-sizing:border-box;width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-order-11{order:11}.ant-col-sm-10{box-sizing:border-box;width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-order-10{order:10}.ant-col-sm-9{box-sizing:border-box;width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-order-9{order:9}.ant-col-sm-8{box-sizing:border-box;width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-order-8{order:8}.ant-col-sm-7{box-sizing:border-box;width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-order-7{order:7}.ant-col-sm-6{box-sizing:border-box;width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-order-6{order:6}.ant-col-sm-5{box-sizing:border-box;width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-order-5{order:5}.ant-col-sm-4{box-sizing:border-box;width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-order-4{order:4}.ant-col-sm-3{box-sizing:border-box;width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-order-3{order:3}.ant-col-sm-2{box-sizing:border-box;width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-order-2{order:2}.ant-col-sm-1{box-sizing:border-box;width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-order-1{order:1}}@media(min-width:768px){.ant-col-md-24{box-sizing:border-box;width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-order-24{order:24}.ant-col-md-23{box-sizing:border-box;width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-order-23{order:23}.ant-col-md-22{box-sizing:border-box;width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-order-22{order:22}.ant-col-md-21{box-sizing:border-box;width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-order-21{order:21}.ant-col-md-20{box-sizing:border-box;width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-order-20{order:20}.ant-col-md-19{box-sizing:border-box;width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-order-19{order:19}.ant-col-md-18{box-sizing:border-box;width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-order-18{order:18}.ant-col-md-17{box-sizing:border-box;width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-order-17{order:17}.ant-col-md-16{box-sizing:border-box;width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-order-16{order:16}.ant-col-md-15{box-sizing:border-box;width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-order-15{order:15}.ant-col-md-14{box-sizing:border-box;width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-order-14{order:14}.ant-col-md-13{box-sizing:border-box;width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-order-13{order:13}.ant-col-md-12{box-sizing:border-box;width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-order-12{order:12}.ant-col-md-11{box-sizing:border-box;width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-order-11{order:11}.ant-col-md-10{box-sizing:border-box;width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-order-10{order:10}.ant-col-md-9{box-sizing:border-box;width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-order-9{order:9}.ant-col-md-8{box-sizing:border-box;width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-order-8{order:8}.ant-col-md-7{box-sizing:border-box;width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-order-7{order:7}.ant-col-md-6{box-sizing:border-box;width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-order-6{order:6}.ant-col-md-5{box-sizing:border-box;width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-order-5{order:5}.ant-col-md-4{box-sizing:border-box;width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-order-4{order:4}.ant-col-md-3{box-sizing:border-box;width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-order-3{order:3}.ant-col-md-2{box-sizing:border-box;width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-order-2{order:2}.ant-col-md-1{box-sizing:border-box;width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-order-1{order:1}}@media(min-width:992px){.ant-col-lg-24{box-sizing:border-box;width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-order-24{order:24}.ant-col-lg-23{box-sizing:border-box;width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-order-23{order:23}.ant-col-lg-22{box-sizing:border-box;width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-order-22{order:22}.ant-col-lg-21{box-sizing:border-box;width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-order-21{order:21}.ant-col-lg-20{box-sizing:border-box;width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-order-20{order:20}.ant-col-lg-19{box-sizing:border-box;width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-order-19{order:19}.ant-col-lg-18{box-sizing:border-box;width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-order-18{order:18}.ant-col-lg-17{box-sizing:border-box;width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-order-17{order:17}.ant-col-lg-16{box-sizing:border-box;width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-order-16{order:16}.ant-col-lg-15{box-sizing:border-box;width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-order-15{order:15}.ant-col-lg-14{box-sizing:border-box;width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-order-14{order:14}.ant-col-lg-13{box-sizing:border-box;width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-order-13{order:13}.ant-col-lg-12{box-sizing:border-box;width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-order-12{order:12}.ant-col-lg-11{box-sizing:border-box;width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-order-11{order:11}.ant-col-lg-10{box-sizing:border-box;width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-order-10{order:10}.ant-col-lg-9{box-sizing:border-box;width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-order-9{order:9}.ant-col-lg-8{box-sizing:border-box;width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-order-8{order:8}.ant-col-lg-7{box-sizing:border-box;width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-order-7{order:7}.ant-col-lg-6{box-sizing:border-box;width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-order-6{order:6}.ant-col-lg-5{box-sizing:border-box;width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-order-5{order:5}.ant-col-lg-4{box-sizing:border-box;width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-order-4{order:4}.ant-col-lg-3{box-sizing:border-box;width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-order-3{order:3}.ant-col-lg-2{box-sizing:border-box;width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-order-2{order:2}.ant-col-lg-1{box-sizing:border-box;width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-order-1{order:1}}@media(min-width:1200px){.ant-col-xl-24{box-sizing:border-box;width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-order-24{order:24}.ant-col-xl-23{box-sizing:border-box;width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-order-23{order:23}.ant-col-xl-22{box-sizing:border-box;width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-order-22{order:22}.ant-col-xl-21{box-sizing:border-box;width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-order-21{order:21}.ant-col-xl-20{box-sizing:border-box;width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-order-20{order:20}.ant-col-xl-19{box-sizing:border-box;width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-order-19{order:19}.ant-col-xl-18{box-sizing:border-box;width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-order-18{order:18}.ant-col-xl-17{box-sizing:border-box;width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-order-17{order:17}.ant-col-xl-16{box-sizing:border-box;width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-order-16{order:16}.ant-col-xl-15{box-sizing:border-box;width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-order-15{order:15}.ant-col-xl-14{box-sizing:border-box;width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-order-14{order:14}.ant-col-xl-13{box-sizing:border-box;width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-order-13{order:13}.ant-col-xl-12{box-sizing:border-box;width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-order-12{order:12}.ant-col-xl-11{box-sizing:border-box;width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-order-11{order:11}.ant-col-xl-10{box-sizing:border-box;width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-order-10{order:10}.ant-col-xl-9{box-sizing:border-box;width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-order-9{order:9}.ant-col-xl-8{box-sizing:border-box;width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-order-8{order:8}.ant-col-xl-7{box-sizing:border-box;width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-order-7{order:7}.ant-col-xl-6{box-sizing:border-box;width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-order-6{order:6}.ant-col-xl-5{box-sizing:border-box;width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-order-5{order:5}.ant-col-xl-4{box-sizing:border-box;width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-order-4{order:4}.ant-col-xl-3{box-sizing:border-box;width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-order-3{order:3}.ant-col-xl-2{box-sizing:border-box;width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-order-2{order:2}.ant-col-xl-1{box-sizing:border-box;width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-order-1{order:1}}@media(min-width:1600px){.ant-col-xxl-24{box-sizing:border-box;width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-order-24{order:24}.ant-col-xxl-23{box-sizing:border-box;width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-order-23{order:23}.ant-col-xxl-22{box-sizing:border-box;width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-order-22{order:22}.ant-col-xxl-21{box-sizing:border-box;width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-order-21{order:21}.ant-col-xxl-20{box-sizing:border-box;width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-order-20{order:20}.ant-col-xxl-19{box-sizing:border-box;width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-order-19{order:19}.ant-col-xxl-18{box-sizing:border-box;width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-order-18{order:18}.ant-col-xxl-17{box-sizing:border-box;width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-order-17{order:17}.ant-col-xxl-16{box-sizing:border-box;width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-order-16{order:16}.ant-col-xxl-15{box-sizing:border-box;width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-order-15{order:15}.ant-col-xxl-14{box-sizing:border-box;width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-order-14{order:14}.ant-col-xxl-13{box-sizing:border-box;width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-order-13{order:13}.ant-col-xxl-12{box-sizing:border-box;width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-order-12{order:12}.ant-col-xxl-11{box-sizing:border-box;width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-order-11{order:11}.ant-col-xxl-10{box-sizing:border-box;width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-order-10{order:10}.ant-col-xxl-9{box-sizing:border-box;width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-order-9{order:9}.ant-col-xxl-8{box-sizing:border-box;width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-order-8{order:8}.ant-col-xxl-7{box-sizing:border-box;width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-order-7{order:7}.ant-col-xxl-6{box-sizing:border-box;width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-order-6{order:6}.ant-col-xxl-5{box-sizing:border-box;width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-order-5{order:5}.ant-col-xxl-4{box-sizing:border-box;width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-order-4{order:4}.ant-col-xxl-3{box-sizing:border-box;width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-order-3{order:3}.ant-col-xxl-2{box-sizing:border-box;width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-order-2{order:2}.ant-col-xxl-1{box-sizing:border-box;width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-order-1{order:1}}.ant-input-number{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-input-number::-moz-placeholder{color:#bfbfbf}.ant-input-number:-ms-input-placeholder{color:#bfbfbf}.ant-input-number::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number:hover{border-color:#5b75a6;border-right-width:1px !important}.ant-input-number:focus{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-input-number-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input-number[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-input-number{min-height:32px;line-height:1.5}.ant-input-number-lg{height:40px;font-size:16px}.ant-input-number-sm{height:24px}.ant-input-number-handler{color:rgba(0,0,0,0.45)}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-up-inner,.ant-input-number-handler:hover .ant-input-number-handler-down-inner{color:#5b75a6}.ant-input-number-handler-up-inner,.ant-input-number-handler-down-inner{color:inherit;color:rgba(0,0,0,0.45)}.ant-input-number:hover{border-color:#5b75a6;border-right-width:1px !important}.ant-input-number-focused{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-input-number-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input-number-input{height:30px;border:0;border-radius:4px}.ant-input-number-input::-moz-placeholder{color:#bfbfbf}.ant-input-number-input:-ms-input-placeholder{color:#bfbfbf}.ant-input-number-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number-lg{font-size:16px}.ant-input-number-lg input{height:38px}.ant-input-number-sm input{height:22px}.ant-input-number-handler-wrap{background:#fff;border-left:1px solid #d9d9d9;border-radius:0 4px 4px 0}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner{font-size:7px \9;transform:scale(0.58333333) rotate(0)}:root .ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,:root .ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner{font-size:12px}.ant-input-number-handler-down{border-top:1px solid #d9d9d9}.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner,.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner{color:rgba(0,0,0,0.25)}.ant-input{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-input::-moz-placeholder{color:#bfbfbf}.ant-input:-ms-input-placeholder{color:#bfbfbf}.ant-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input:hover{border-color:#5b75a6;border-right-width:1px !important}.ant-input:focus{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-input{min-height:32px;line-height:1.5}.ant-input-lg{height:40px;font-size:16px}.ant-input-sm{height:24px}.ant-input-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-collapse:separate;border-spacing:0}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group .ant-input:focus{border-right-width:1px}.ant-input-group .ant-input:hover{border-right-width:1px}.ant-input-group-addon{color:rgba(0,0,0,0.65);font-size:14px;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:4px}.ant-input-group-addon .ant-select .ant-select-selection{border:1px solid transparent}.ant-input-group-addon .ant-select-open .ant-select-selection,.ant-input-group-addon .ant-select-focused .ant-select-selection{color:#3b5998}.ant-input-group>.ant-input:first-child,.ant-input-group-addon:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input:first-child .ant-select .ant-select-selection,.ant-input-group-addon:first-child .ant-select .ant-select-selection{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group>.ant-input:last-child,.ant-input-group-addon:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input:last-child .ant-select .ant-select-selection,.ant-input-group-addon:last-child .ant-select .ant-select-selection{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{height:40px;font-size:16px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{height:24px}.ant-input-group-lg .ant-select-selection--single{height:40px}.ant-input-group-sm .ant-select-selection--single{height:24px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact>*{border-radius:0}.ant-input-group.ant-input-group-compact>*:not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>*:first-child,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:first-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker:first-child .ant-time-picker-input{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-input-group.ant-input-group-compact>*:last-child,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:last-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker:last-child .ant-time-picker-input{border-right-width:1px;border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-input-affix-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#5b75a6;border-right-width:1px !important}.ant-input-affix-wrapper .ant-input-prefix,.ant-input-affix-wrapper .ant-input-suffix{color:rgba(0,0,0,0.65)}.ant-input-affix-wrapper .ant-input-prefix :not(.anticon),.ant-input-affix-wrapper .ant-input-suffix :not(.anticon){line-height:1.5}.ant-input-password-icon{color:rgba(0,0,0,0.45)}.ant-input-clear-icon{color:rgba(0,0,0,0.25);font-size:12px}.ant-input-clear-icon:hover{color:rgba(0,0,0,0.45)}.ant-input-clear-icon:active{color:rgba(0,0,0,0.65)}.ant-layout{background:#f0f2f5}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout-header{height:64px;line-height:64px;background:#001529}.ant-layout-footer{color:rgba(0,0,0,0.65);font-size:14px;background:#f0f2f5}.ant-layout-sider{background:#001529}.ant-layout-sider-trigger{height:48px;color:#fff;line-height:48px;background:#002140}.ant-layout-sider-zero-width-trigger{top:64px;right:-36px;width:36px;height:42px;color:#fff;font-size:18px;line-height:42px;background:#001529;border-radius:0 4px 4px 0}.ant-layout-sider-zero-width-trigger:hover{background:#192c3e}.ant-layout-sider-zero-width-trigger-right{left:-36px;border-radius:4px 0 0 4px}.ant-list{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-list-empty-text{color:rgba(0,0,0,0.25);font-size:14px}.ant-list-item-content{color:rgba(0,0,0,0.65)}.ant-list-item-meta-title{color:rgba(0,0,0,0.65);font-size:14px}.ant-list-item-meta-title>a{color:rgba(0,0,0,0.65)}.ant-list-item-meta-title>a:hover{color:#3b5998}.ant-list-item-meta-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-list-item-action>li{color:rgba(0,0,0,0.45);font-size:14px}.ant-list-item-action-split{background-color:#e8e8e8}.ant-list-header{background:transparent}.ant-list-footer{background:transparent}.ant-list-empty{color:rgba(0,0,0,0.45)}.ant-list-split .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-list-split .ant-list-item:last-child{border-bottom:0}.ant-list-split .ant-list-header{border-bottom:1px solid #e8e8e8}.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #e8e8e8}.ant-list-vertical .ant-list-item-meta-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-list-grid .ant-col>.ant-list-item{border-bottom:0}.ant-mentions-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-mentions-wrapper .ant-mentions-editor{height:32px;color:rgba(0,0,0,0.65);font-size:14px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;min-height:32px;line-height:1.5}.ant-mentions-wrapper .ant-mentions-editor::-moz-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor:-ms-input-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor:hover{border-color:#5b75a6;border-right-width:1px !important}.ant-mentions-wrapper .ant-mentions-editor:focus{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-mentions-wrapper .ant-mentions-editor-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper .ant-mentions-editor-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-wrapper .ant-mentions-editor[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper .ant-mentions-editor[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-mentions-wrapper .ant-mentions-editor{min-height:32px;line-height:1.5}.ant-mentions-wrapper .ant-mentions-editor-lg{height:40px;font-size:16px}.ant-mentions-wrapper .ant-mentions-editor-sm{height:24px}.ant-mentions-wrapper.ant-mentions-active:not(.disabled) .ant-mentions-editor{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-mentions-wrapper.disabled .ant-mentions-editor{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper.disabled .ant-mentions-editor:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-wrapper .public-DraftEditorPlaceholder-root .public-DraftEditorPlaceholder-inner{color:#bfbfbf}.ant-mentions-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-mentions-dropdown-notfound.ant-mentions-dropdown-item{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-notfound.ant-mentions-dropdown-item .anticon-loading{color:#3b5998}.ant-mentions-dropdown-item{color:rgba(0,0,0,0.65)}.ant-mentions-dropdown-item:hover{background-color:#ccd2d9}.ant-mentions-dropdown-item.focus,.ant-mentions-dropdown-item-active{background-color:#ccd2d9}.ant-mentions-dropdown-item-disabled{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-item-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-mentions-dropdown-item-selected,.ant-mentions-dropdown-item-selected:hover{color:rgba(0,0,0,0.65);background-color:#f5f5f5}.ant-mentions-dropdown-item-divider{background-color:#e8e8e8}.ant-mentions{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;line-height:1.5}.ant-mentions::-moz-placeholder{color:#bfbfbf}.ant-mentions:-ms-input-placeholder{color:#bfbfbf}.ant-mentions::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions:hover{border-color:#5b75a6;border-right-width:1px !important}.ant-mentions:focus{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-mentions-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-mentions{min-height:32px;line-height:1.5}.ant-mentions-lg{height:40px;font-size:16px}.ant-mentions-sm{height:24px}.ant-mentions-disabled>textarea{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-disabled>textarea:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-focused{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-mentions>textarea,.ant-mentions-measure{min-height:30px}.ant-mentions>textarea{border:0}.ant-mentions>textarea::-moz-placeholder{color:#bfbfbf}.ant-mentions>textarea:-ms-input-placeholder{color:#bfbfbf}.ant-mentions>textarea::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions-dropdown{color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;box-sizing:border-box;font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-mentions-dropdown-menu-item{color:rgba(0,0,0,0.65)}.ant-mentions-dropdown-menu-item:hover{background-color:#ccd2d9}.ant-mentions-dropdown-menu-item:first-child{border-radius:4px 4px 0 0}.ant-mentions-dropdown-menu-item:last-child{border-radius:0 0 4px 4px}.ant-mentions-dropdown-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-mentions-dropdown-menu-item-selected{color:rgba(0,0,0,0.65);font-weight:600;background-color:#fafafa}.ant-mentions-dropdown-menu-item-active{background-color:#ccd2d9}.ant-menu{box-sizing:border-box;font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:rgba(0,0,0,0.65);background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-menu-item-group-title{color:rgba(0,0,0,0.45);font-size:14px;line-height:1.5}.ant-menu-submenu-selected{color:#3b5998}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#ccd2d9}.ant-menu-item>a{color:rgba(0,0,0,0.65)}.ant-menu-item>a:hover{color:#3b5998}.ant-menu-item-divider{background-color:#e8e8e8}.ant-menu-item:hover,.ant-menu-item-active,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,.ant-menu-submenu-active,.ant-menu-submenu-title:hover{color:#3b5998}.ant-menu-item-selected{color:#3b5998}.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#3b5998}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#ccd2d9}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #e8e8e8}.ant-menu-vertical-right{border-left:1px solid #e8e8e8}.ant-menu-vertical.ant-menu-sub,.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub{border-right:0}.ant-menu-vertical.ant-menu-sub .ant-menu-item,.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item{border-right:0}.ant-menu-vertical.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after{border-right:0}.ant-menu-item .anticon,.ant-menu-submenu-title .anticon{font-size:14px}.ant-menu-item .anticon+span,.ant-menu-submenu-title .anticon+span{transition:opacity .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu>.ant-menu-item-divider{background-color:#e8e8e8}.ant-menu-submenu-popup{z-index:1050;background:#fff;border-radius:4px}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:4px}.ant-menu-submenu>.ant-menu-submenu-title::after{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow::after{background:#fff;background:rgba(0,0,0,0.65) \9;background-image:linear-gradient(to right,rgba(0,0,0,0.65),rgba(0,0,0,0.65));border-radius:2px;transition:background .3s cubic-bezier(0.645,0.045,0.355,1),transform .3s cubic-bezier(0.645,0.045,0.355,1),top .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before{background:linear-gradient(to right,#3b5998,#3b5998)}.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected{color:#3b5998}.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#3b5998}.ant-menu-horizontal{border:0;border-bottom:1px solid #e8e8e8}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{border-bottom:2px solid transparent}.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu:hover,.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-submenu-selected{color:#3b5998;border-bottom:2px solid #3b5998}.ant-menu-horizontal>.ant-menu-item>a{color:rgba(0,0,0,0.65)}.ant-menu-horizontal>.ant-menu-item>a:hover{color:#3b5998}.ant-menu-horizontal>.ant-menu-item-selected>a{color:#3b5998}.ant-menu-vertical .ant-menu-item::after,.ant-menu-vertical-left .ant-menu-item::after,.ant-menu-vertical-right .ant-menu-item::after,.ant-menu-inline .ant-menu-item::after{border-right:3px solid #3b5998;transition:transform .15s cubic-bezier(0.215,0.61,0.355,1),opacity .15s cubic-bezier(0.215,0.61,0.355,1)}.ant-menu-vertical .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item,.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title{height:40px;font-size:14px;line-height:40px}.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-inline>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-inline .ant-menu-selected::after,.ant-menu-inline .ant-menu-item-selected::after{transition:transform .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-inline-collapsed{width:80px}.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{line-height:40px}.ant-menu-inline-collapsed-tooltip a{color:rgba(255,255,255,0.85)}.ant-menu-sub.ant-menu-inline{border:0;border-radius:0}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{color:rgba(0,0,0,0.25) !important;border-color:transparent !important}.ant-menu-item-disabled>a,.ant-menu-submenu-disabled>a{color:rgba(0,0,0,0.25) !important}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,0.25) !important}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{background:rgba(0,0,0,0.25) !important}.ant-message{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1010}.ant-message-notice-content{background:#fff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-message-success .anticon{color:#52c41a}.ant-message-error .anticon{color:#f5222d}.ant-message-warning .anticon{color:#faad14}.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}.ant-message .anticon{font-size:16px}.ant-notification{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1010;width:384px}.ant-notification-close-icon{font-size:14px}.ant-notification-notice{background:#fff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-notification-notice-message{color:rgba(0,0,0,0.85);font-size:16px}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-with-icon .ant-notification-notice-message{font-size:16px}.ant-notification-notice-with-icon .ant-notification-notice-description{font-size:14px}.anticon.ant-notification-notice-icon-success{color:#52c41a}.anticon.ant-notification-notice-icon-info{color:#1890ff}.anticon.ant-notification-notice-icon-warning{color:#faad14}.anticon.ant-notification-notice-icon-error{color:#f5222d}.ant-notification-notice-close{color:rgba(0,0,0,0.45)}.ant-notification-notice-close:hover{color:rgba(0,0,0,0.67)}.ant-notification .notification-fade-effect{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-notification-fade-enter,.ant-notification-fade-appear{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-notification-fade-leave{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}@keyframes NotificationFadeIn{0%{left:384px}}@keyframes NotificationLeftFadeIn{0%{right:384px}}.ant-page-header{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-page-header-back-button{color:#3b5998}.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#5b75a6}.ant-page-header-back-button:active{color:#273c73}.ant-page-header-heading-title{color:rgba(0,0,0,0.85);font-size:24px}.ant-page-header-heading-sub-title{color:rgba(0,0,0,0.45)}.ant-page-header-footer .ant-tabs-bar{border-bottom:0}.ant-pagination{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-pagination-total-text{height:32px;line-height:30px}.ant-pagination-item{min-width:32px;height:32px;font-family:Arial;line-height:30px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-item a{color:rgba(0,0,0,0.65)}.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#3b5998}.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#3b5998}.ant-pagination-item-active{font-weight:500;background:#fff;border-color:#3b5998}.ant-pagination-item-active a{color:#3b5998}.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#5b75a6}.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#5b75a6}.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon{font-size:12px \9;transform:scale(1) rotate(0);color:#3b5998}:root .ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,:root .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon{font-size:12px}.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis{color:rgba(0,0,0,0.25)}.ant-pagination-prev,.ant-pagination-next,.ant-pagination-jump-prev,.ant-pagination-jump-next{min-width:32px;height:32px;color:rgba(0,0,0,0.65);font-family:Arial;line-height:32px;border-radius:4px}.ant-pagination-prev a,.ant-pagination-next a{color:rgba(0,0,0,0.65)}.ant-pagination-prev:hover a,.ant-pagination-next:hover a{border-color:#5b75a6}.ant-pagination-prev .ant-pagination-item-link,.ant-pagination-next .ant-pagination-item-link{background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link{color:#3b5998;border-color:#3b5998}.ant-pagination-disabled a,.ant-pagination-disabled:hover a,.ant-pagination-disabled:focus a,.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link,.ant-pagination-disabled:focus .ant-pagination-item-link{color:rgba(0,0,0,0.25);border-color:#d9d9d9}.ant-pagination-options-quick-jumper{height:32px;line-height:32px}.ant-pagination-options-quick-jumper input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-options-quick-jumper input::-moz-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input::-webkit-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:hover{border-color:#5b75a6;border-right-width:1px !important}.ant-pagination-options-quick-jumper input:focus{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-pagination-options-quick-jumper input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-pagination-options-quick-jumper input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-pagination-options-quick-jumper input{min-height:32px;line-height:1.5}.ant-pagination-options-quick-jumper input-lg{height:40px;font-size:16px}.ant-pagination-options-quick-jumper input-sm{height:24px}.ant-pagination-simple .ant-pagination-prev,.ant-pagination-simple .ant-pagination-next{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link{height:24px;border:0}.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link::after,.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link::after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{height:24px}.ant-pagination-simple .ant-pagination-simple-pager input{box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#3b5998}.ant-pagination.mini .ant-pagination-total-text,.ant-pagination.mini .ant-pagination-simple-pager{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{min-width:24px;height:24px;line-height:22px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){border-color:transparent}.ant-pagination.mini .ant-pagination-prev,.ant-pagination.mini .ant-pagination-next{min-width:24px;height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link{border-color:transparent}.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link::after,.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link::after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-prev,.ant-pagination.mini .ant-pagination-jump-next{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{height:24px}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{color:rgba(0,0,0,0.25);border:0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#dbdbdb;border-color:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:hover,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:focus{color:rgba(0,0,0,0.45);background:#f5f5f5;border-color:#d9d9d9}.ant-popover{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1030}.ant-popover::after{background:rgba(255,255,255,0.01)}.ant-popover-inner{background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15);box-shadow:0 0 8px rgba(0,0,0,0.15) \9}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-popover-inner{box-shadow:0 2px 8px rgba(0,0,0,0.15)}}.ant-popover-title{min-width:177px;color:rgba(0,0,0,0.85);border-bottom:1px solid #e8e8e8}.ant-popover-inner-content{color:rgba(0,0,0,0.65)}.ant-popover-message{color:rgba(0,0,0,0.65);font-size:14px}.ant-popover-message>.anticon{color:#faad14;font-size:14px}.ant-popover-arrow{width:8.48528137px;height:8.48528137px;border-style:solid;border-width:4.24264069px}.ant-popover-placement-top>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topRight>.ant-popover-content>.ant-popover-arrow{bottom:6.2px;border-top-color:transparent;border-right-color:#fff;border-bottom-color:#fff;border-left-color:transparent;box-shadow:3px 3px 7px rgba(0,0,0,0.07)}.ant-popover-placement-right>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightTop>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightBottom>.ant-popover-content>.ant-popover-arrow{left:6px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#fff;border-left-color:#fff;box-shadow:-3px 3px 7px rgba(0,0,0,0.07)}.ant-popover-placement-bottom>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomRight>.ant-popover-content>.ant-popover-arrow{top:6px;border-top-color:#fff;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#fff;box-shadow:-2px -2px 5px rgba(0,0,0,0.06)}.ant-popover-placement-left>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftTop>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftBottom>.ant-popover-content>.ant-popover-arrow{right:6px;border-top-color:#fff;border-right-color:#fff;border-bottom-color:transparent;border-left-color:transparent;box-shadow:3px -3px 7px rgba(0,0,0,0.07)}.ant-progress{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-progress-line{font-size:14px}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-inner{background-color:#f5f5f5;border-radius:100px}.ant-progress-circle-trail{stroke:#f5f5f5}.ant-progress-circle-path{animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}.ant-progress-success-bg,.ant-progress-bg{background-color:#1890ff;border-radius:100px;transition:all .4s cubic-bezier(0.08,0.82,0.17,1) 0s}.ant-progress-success-bg{background-color:#52c41a}.ant-progress-text{color:rgba(0,0,0,0.45)}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg::before{background:#fff;border-radius:10px;animation:ant-progress-active 2.4s cubic-bezier(0.23,1,0.32,1) infinite}.ant-progress-status-exception .ant-progress-bg{background-color:#f5222d}.ant-progress-status-exception .ant-progress-text{color:#f5222d}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#f5222d}.ant-progress-status-success .ant-progress-bg{background-color:#52c41a}.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#52c41a}.ant-progress-circle .ant-progress-text{color:rgba(0,0,0,0.65)}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:#f5222d}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-radio-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner,.ant-radio-input:focus+.ant-radio-inner{border-color:#3b5998}.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px rgba(59,89,152,0.08)}.ant-radio-checked::after{border:1px solid #3b5998;border-radius:50%}.ant-radio-inner{width:16px;height:16px;background-color:#fff;border-color:#d9d9d9;border-style:solid;border-width:1px;border-radius:100px;transition:all .3s}.ant-radio-inner::after{top:3px;left:3px;width:8px;height:8px;background-color:#3b5998;border-top:0;border-left:0;border-radius:8px;transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-radio-checked .ant-radio-inner{border-color:#3b5998}.ant-radio-checked .ant-radio-inner::after{transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-radio-disabled .ant-radio-inner::after{background-color:rgba(0,0,0,0.2)}.ant-radio-disabled+span{color:rgba(0,0,0,0.25)}.ant-radio-button-wrapper{height:32px;color:rgba(0,0,0,0.65);line-height:30px;background:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-left:0;transition:color .3s,background .3s,border-color .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,0.65)}.ant-radio-group-large .ant-radio-button-wrapper{height:40px;font-size:16px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;line-height:22px}.ant-radio-button-wrapper:not(:first-child)::before{background-color:#d9d9d9}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:4px 0 0 4px}.ant-radio-button-wrapper:last-child{border-radius:0 4px 4px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:4px}.ant-radio-button-wrapper:hover{color:#3b5998}.ant-radio-button-wrapper:focus-within{outline:3px solid rgba(59,89,152,0.06)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#3b5998;background:#fff;border-color:#3b5998;box-shadow:-1px 0 0 0 #3b5998}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before{background-color:#3b5998 !important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#3b5998}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#5b75a6;border-color:#5b75a6;box-shadow:-1px 0 0 0 #5b75a6}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#273c73;border-color:#273c73;box-shadow:-1px 0 0 0 #273c73}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(59,89,152,0.06)}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff;background:#3b5998;border-color:#3b5998}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#fff;background:#5b75a6;border-color:#5b75a6}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#fff;background:#273c73;border-color:#273c73}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(59,89,152,0.06)}.ant-radio-button-wrapper-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:#fff;background-color:#e6e6e6;border-color:#d9d9d9}.ant-rate{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#fadb14}.ant-rate-star-first,.ant-rate-star-second{color:#e8e8e8}.ant-rate-text{font-size:14px}.ant-result-success .ant-result-icon>.anticon{color:#52c41a}.ant-result-error .ant-result-icon>.anticon{color:#f5222d}.ant-result-info .ant-result-icon>.anticon{color:#1890ff}.ant-result-warning .ant-result-icon>.anticon{color:#faad14}.ant-result-title{color:rgba(0,0,0,0.85)}.ant-result-subtitle{color:rgba(0,0,0,0.45)}.ant-result-content{background-color:#fafafa}.ant-select{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select>ul>li>a{background-color:#fff}.ant-select-arrow{color:inherit;color:rgba(0,0,0,0.25);font-size:12px}.ant-select-selection{box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-radius:4px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-select-selection:hover{border-color:#5b75a6;border-right-width:1px !important}.ant-select-focused .ant-select-selection,.ant-select-selection:focus,.ant-select-selection:active{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-select-selection__clear{color:rgba(0,0,0,0.25);font-size:12px;background:#fff}.ant-select-selection__clear:hover{color:rgba(0,0,0,0.45)}.ant-select-disabled{color:rgba(0,0,0,0.25)}.ant-select-disabled .ant-select-selection{background:#f5f5f5}.ant-select-disabled .ant-select-selection:hover,.ant-select-disabled .ant-select-selection:focus,.ant-select-disabled .ant-select-selection:active{border-color:#d9d9d9}.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice{color:rgba(0,0,0,0.33);background:#f5f5f5}.ant-select-selection--single{height:32px}.ant-select-selection__rendered{line-height:30px}.ant-select-lg{font-size:16px}.ant-select-lg .ant-select-selection--single{height:40px}.ant-select-lg .ant-select-selection__rendered{line-height:38px}.ant-select-lg .ant-select-selection--multiple{min-height:40px}.ant-select-lg .ant-select-selection--multiple .ant-select-selection__rendered li{height:32px;line-height:32px}.ant-select-lg .ant-select-selection--multiple .ant-select-selection__clear,.ant-select-lg .ant-select-selection--multiple .ant-select-arrow{top:20px}.ant-select-sm .ant-select-selection--single{height:24px}.ant-select-sm .ant-select-selection__rendered{line-height:22px}.ant-select-sm .ant-select-selection--multiple{min-height:24px}.ant-select-sm .ant-select-selection--multiple .ant-select-selection__rendered li{height:16px;line-height:14px}.ant-select-sm .ant-select-selection--multiple .ant-select-selection__clear,.ant-select-sm .ant-select-selection--multiple .ant-select-arrow{top:12px}.ant-select-disabled .ant-select-selection__choice__remove{color:rgba(0,0,0,0.25)}.ant-select-disabled .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,0.25)}.ant-select-selection__placeholder,.ant-select-search__field__placeholder{color:#bfbfbf}.ant-select-search--inline .ant-select-search__field{border-width:0;border-radius:4px}.ant-select-selection--multiple{min-height:32px}.ant-select-selection--multiple>ul>li,.ant-select-selection--multiple .ant-select-selection__rendered>ul>li{height:24px;line-height:22px}.ant-select-selection--multiple .ant-select-selection__choice{color:rgba(0,0,0,0.65);background-color:#fafafa;border:1px solid #e8e8e8;border-radius:2px}.ant-select-selection--multiple .ant-select-selection__choice__remove{color:inherit;color:rgba(0,0,0,0.45);font-size:12px;font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-selection--multiple .ant-select-selection__choice__remove{font-size:12px}.ant-select-selection--multiple .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,0.75)}.ant-select-selection--multiple .ant-select-selection__clear,.ant-select-selection--multiple .ant-select-arrow{top:16px}.ant-select-open .ant-select-selection{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-select-combobox .ant-select-search__field{transition:all .3s cubic-bezier(0.645,0.045,0.355,1),height 0s}.ant-select-dropdown{color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;box-sizing:border-box;font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-select-dropdown-menu-item-group-title{color:rgba(0,0,0,0.45);font-size:12px}.ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:first-child:not(:last-child),.ant-select-dropdown-menu-item-group:not(:last-child) .ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:last-child{border-radius:0}.ant-select-dropdown-menu-item{color:rgba(0,0,0,0.65)}.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#ccd2d9}.ant-select-dropdown-menu-item:first-child{border-radius:4px 4px 0 0}.ant-select-dropdown-menu-item:last-child{border-radius:0 0 4px 4px}.ant-select-dropdown-menu-item-selected{color:rgba(0,0,0,0.65);font-weight:600;background-color:#fafafa}.ant-select-dropdown-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-select-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,0.25)}.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#ccd2d9}.ant-select-dropdown-menu-item-divider{background-color:#e8e8e8}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item:hover .ant-select-selected-icon{color:rgba(0,0,0,0.87)}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#3b5998}.ant-skeleton-header .ant-skeleton-avatar{background:#f2f2f2;width:32px;height:32px;line-height:32px}.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-content .ant-skeleton-title{background:#f2f2f2}.ant-skeleton-content .ant-skeleton-paragraph>li{background:#f2f2f2}.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);animation:ant-skeleton-loading 1.4s ease infinite}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);animation:ant-skeleton-loading 1.4s ease infinite}.ant-slider{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-slider-rail{background-color:#f5f5f5;border-radius:2px}.ant-slider-track{background-color:#a6b1bf;border-radius:4px}.ant-slider-handle{background-color:#fff;border:solid 2px #a6b1bf;border-radius:50%;box-shadow:0 0;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(0.18,0.89,0.32,1.28)}.ant-slider-handle:focus{border-color:#627aad;box-shadow:0 0 0 5px rgba(59,89,152,0.2)}.ant-slider-handle.ant-tooltip-open{border-color:#3b5998}.ant-slider:hover .ant-slider-rail{background-color:#e1e1e1}.ant-slider:hover .ant-slider-track{background-color:#7f93b3}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#7f93b3}.ant-slider-mark{font-size:14px}.ant-slider-mark-text{color:rgba(0,0,0,0.45)}.ant-slider-mark-text-active{color:rgba(0,0,0,0.65)}.ant-slider-dot{background-color:#fff;border:2px solid #e8e8e8;border-radius:50%}.ant-slider-dot-active{border-color:#9daccc}.ant-slider-disabled .ant-slider-track{background-color:rgba(0,0,0,0.25) !important}.ant-slider-disabled .ant-slider-handle,.ant-slider-disabled .ant-slider-dot{background-color:#fff;border-color:rgba(0,0,0,0.25) !important}.ant-spin{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#3b5998;transition:transform .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{text-shadow:0 1px 2px #fff}.ant-spin-container::after{background:#fff}.ant-spin-tip{color:rgba(0,0,0,0.45)}.ant-spin-dot{font-size:20px;width:1em;height:1em}.ant-spin-dot-item{background-color:#3b5998;border-radius:100%}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-lg .ant-spin-dot{font-size:32px}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.ant-spin-blur{background:#fff}}.ant-statistic{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-statistic-title{color:rgba(0,0,0,0.45);font-size:14px}.ant-statistic-content{color:rgba(0,0,0,0.85);font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-statistic-content-value-decimal{font-size:16px}.ant-statistic-content-suffix{font-size:16px}.ant-steps{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-steps-item-icon{width:32px;height:32px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";line-height:32px;border:1px solid rgba(0,0,0,0.25);border-radius:32px;transition:background-color .3s,border-color .3s}.ant-steps-item-icon>.ant-steps-icon{color:#3b5998}.ant-steps-item-tail::after{background:#e8e8e8;border-radius:1px}.ant-steps-item-title{color:rgba(0,0,0,0.65);font-size:16px;line-height:32px}.ant-steps-item-title::after{top:16px;background:#e8e8e8}.ant-steps-item-subtitle{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-item-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff;border-color:rgba(0,0,0,0.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:rgba(0,0,0,0.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:rgba(0,0,0,0.25)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item-process .ant-steps-item-icon{background-color:#fff;border-color:#3b5998}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#3b5998}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#3b5998}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.65)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item-process .ant-steps-item-icon{background:#3b5998}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#fff}.ant-steps-item-finish .ant-steps-item-icon{background-color:#fff;border-color:#3b5998}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#3b5998}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#3b5998}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.65)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#3b5998}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.45)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#3b5998}.ant-steps-item-error .ant-steps-item-icon{background-color:#fff;border-color:#f5222d}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon{color:#f5222d}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item.ant-steps-next-error .ant-steps-item-title::after{background:#f5222d}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-title,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-description{color:#3b5998}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-icon{border-color:#3b5998}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-icon .ant-steps-icon{color:#3b5998}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description{max-width:140px}.ant-switch{color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";box-sizing:border-box;height:22px;line-height:20px;background-color:rgba(0,0,0,0.25);border:1px solid transparent;border-radius:100px;transition:all .36s}.ant-switch-inner{color:#fff;font-size:12px}.ant-switch-loading-icon,.ant-switch::after{width:18px;height:18px;background-color:#fff;border-radius:18px;transition:all .36s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-switch::after{box-shadow:0 2px 4px 0 rgba(0,35,11,0.2)}.ant-switch-loading .ant-switch-loading-icon{color:rgba(0,0,0,0.65)}.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#3b5998}.ant-switch:focus{box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-switch-small{height:16px;line-height:14px}.ant-switch-small .ant-switch-inner{font-size:12px}.ant-switch-small::after{width:12px;height:12px}.ant-switch-small .ant-switch-loading-icon{width:12px;height:12px}.ant-switch-checked{background-color:#3b5998}.ant-switch-loading,.ant-switch-disabled{opacity:.4}.ant-table{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-table table{border-radius:4px 4px 0 0;border-collapse:separate;border-spacing:0}.ant-table-thead>tr>th{color:rgba(0,0,0,0.85);background:#fafafa;border-bottom:1px solid #e8e8e8}.ant-table-thead>tr>th .anticon-filter,.ant-table-thead>tr>th .ant-table-filter-icon{color:#bfbfbf;font-size:12px}.ant-table-thead>tr>th .ant-table-filter-selected.anticon-filter{color:#3b5998}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner{color:#bfbfbf}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down{font-size:11px \9;transform:scale(0.91666667) rotate(0)}:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up,:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down{font-size:12px}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on{color:#3b5998}.ant-table-thead>tr>th.ant-table-column-has-actions{-webkit-background-clip:border-box}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .anticon-filter.ant-table-filter-open,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .ant-table-filter-icon.ant-table-filter-open{color:rgba(0,0,0,0.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:hover,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:hover{color:rgba(0,0,0,0.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:active,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:active{color:rgba(0,0,0,0.65)}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .anticon-filter,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .ant-table-filter-icon{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-up:not(.on),.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-down:not(.on){color:rgba(0,0,0,0.45)}.ant-table-thead>tr:first-child>th:first-child{border-top-left-radius:4px}.ant-table-thead>tr:first-child>th:last-child{border-top-right-radius:4px}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #e8e8e8;transition:all .3s,border 0s}.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#ccd2d9}.ant-table-thead>tr.ant-table-row-selected>td.ant-table-column-sort,.ant-table-tbody>tr.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-thead>tr:hover.ant-table-row-selected>td,.ant-table-tbody>tr:hover.ant-table-row-selected>td{background:#fafafa}.ant-table-thead>tr:hover.ant-table-row-selected>td.ant-table-column-sort,.ant-table-tbody>tr:hover.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-footer{color:rgba(0,0,0,0.85);background:#fafafa;border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-table-footer::before{background:#fafafa}.ant-table.ant-table-bordered .ant-table-footer{border:1px solid #e8e8e8}.ant-table-title{border-radius:4px 4px 0 0}.ant-table.ant-table-bordered .ant-table-title{border:1px solid #e8e8e8}.ant-table-title+.ant-table-content{border-radius:4px 4px 0 0}.ant-table-bordered .ant-table-title+.ant-table-content,.ant-table-bordered .ant-table-title+.ant-table-content table,.ant-table-bordered .ant-table-title+.ant-table-content .ant-table-thead>tr:first-child>th{border-radius:0}.ant-table-without-column-header .ant-table-title+.ant-table-content,.ant-table-without-column-header table{border-radius:0}.ant-table-without-column-header.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-top:1px solid #e8e8e8;border-radius:4px}.ant-table-tbody>tr.ant-table-row-selected td{color:inherit;background:#fafafa}.ant-table-thead>tr>th.ant-table-column-sort{background:#f5f5f5}.ant-table-tbody>tr>td.ant-table-column-sort{background:rgba(0,0,0,0.01)}.ant-table-header{background:#fafafa}.ant-table-header table{border-radius:4px 4px 0 0}.ant-table-loading .ant-table-body{background:#fff}.ant-table-bordered .ant-table-header>table,.ant-table-bordered .ant-table-body>table,.ant-table-bordered .ant-table-fixed-left table,.ant-table-bordered .ant-table-fixed-right table{border:1px solid #e8e8e8;border-right:0;border-bottom:0}.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-table-bordered.ant-table-fixed-header .ant-table-header>table{border-bottom:0}.ant-table-bordered.ant-table-fixed-header .ant-table-body>table{border-top-left-radius:0;border-top-right-radius:0}.ant-table-bordered.ant-table-fixed-header .ant-table-header+.ant-table-body>table,.ant-table-bordered.ant-table-fixed-header .ant-table-body-inner>table{border-top:0}.ant-table-bordered .ant-table-thead>tr:not(:last-child)>th{border-bottom:1px solid #e8e8e8}.ant-table-bordered .ant-table-thead>tr>th,.ant-table-bordered .ant-table-tbody>tr>td{border-right:1px solid #e8e8e8}.ant-table-placeholder{color:rgba(0,0,0,0.25);font-size:14px;background:#fff;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-table-filter-dropdown{background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-filter-dropdown .ant-dropdown-menu{border:0;border-radius:4px 4px 0 0}.ant-table-filter-dropdown .ant-dropdown-menu-sub{border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title::after{color:#3b5998;text-shadow:0 0 2px #c0c5cc}.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-item:last-child,.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-submenu:last-child .ant-dropdown-menu-submenu-title{border-radius:0}.ant-table-filter-dropdown-btns{border-top:1px solid #e8e8e8}.ant-table-filter-dropdown-link{color:#3b5998}.ant-table-filter-dropdown-link:hover{color:#5b75a6}.ant-table-filter-dropdown-link:active{color:#273c73}.ant-table-selection .anticon-down{color:#bfbfbf}.ant-table-selection-menu{background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-selection-menu .ant-action-down{color:#bfbfbf}.ant-table-selection-down:hover .anticon-down{color:rgba(0,0,0,0.6)}.ant-table-row-expand-icon{color:#3b5998;background:#fff;border:1px solid #e8e8e8;border-radius:2px}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#5b75a6}.ant-table-row-expand-icon:active{color:#273c73}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover,.ant-table-row-expand-icon:active{border-color:currentColor}tr.ant-table-expanded-row,tr.ant-table-expanded-row:hover{background:#fbfbfb}.ant-table-fixed-header>.ant-table-content>.ant-table-scroll>.ant-table-body{background:#fff}.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-width:0 0 1px 0}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-width:1px 1px 1px 0}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header.ant-table-hide-scrollbar .ant-table-thead>tr:only-child>th:last-child{border-right-color:transparent}.ant-table-fixed-left,.ant-table-fixed-right{z-index:auto;border-radius:0}.ant-table-fixed-left table,.ant-table-fixed-right table{background:#fff}.ant-table-fixed-header .ant-table-fixed-left .ant-table-body-outer .ant-table-fixed,.ant-table-fixed-header .ant-table-fixed-right .ant-table-body-outer .ant-table-fixed{border-radius:0}.ant-table-fixed-left{box-shadow:6px 0 6px -4px rgba(0,0,0,0.15)}.ant-table-fixed-left,.ant-table-fixed-left table{border-radius:4px 0 0 0}.ant-table-fixed-left .ant-table-thead>tr>th:last-child{border-top-right-radius:0}.ant-table-fixed-right{box-shadow:-6px 0 6px -4px rgba(0,0,0,0.15)}.ant-table-fixed-right,.ant-table-fixed-right table{border-radius:0 4px 0 0}.ant-table-fixed-right .ant-table-thead>tr>th:first-child{border-top-left-radius:0}.ant-table colgroup>col.ant-table-selection-col{width:60px}.ant-tabs{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tabs-ink-bar{box-sizing:border-box;background-color:#3b5998}.ant-tabs-bar{border-bottom:1px solid #e8e8e8}.ant-tabs-nav-container{box-sizing:border-box;font-size:14px;line-height:1.5}.ant-tabs-bottom .ant-tabs-bottom-bar{border-top:1px solid #e8e8e8;border-bottom:0}.ant-tabs-tab-prev,.ant-tabs-tab-next{color:rgba(0,0,0,0.45);border:0;transition:width .3s cubic-bezier(0.645,0.045,0.355,1),opacity .3s cubic-bezier(0.645,0.045,0.355,1),color .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-tab-prev.ant-tabs-tab-arrow-show,.ant-tabs-tab-next.ant-tabs-tab-arrow-show{width:32px}.ant-tabs-tab-prev:hover,.ant-tabs-tab-next:hover{color:rgba(0,0,0,0.65)}.ant-tabs-tab-prev-icon-target,.ant-tabs-tab-next-icon-target{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tabs-tab-prev-icon-target,:root .ant-tabs-tab-next-icon-target{font-size:12px}.ant-tabs-tab-btn-disabled,.ant-tabs-tab-btn-disabled:hover{color:rgba(0,0,0,0.25)}.ant-tabs-nav{box-sizing:border-box;transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-nav .ant-tabs-tab{box-sizing:border-box;transition:color .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-nav .ant-tabs-tab::before{border-top:2px solid transparent;border-radius:4px 4px 0 0}.ant-tabs-nav .ant-tabs-tab:hover{color:#5b75a6}.ant-tabs-nav .ant-tabs-tab:active{color:#273c73}.ant-tabs-nav .ant-tabs-tab-active{color:#3b5998}.ant-tabs-nav .ant-tabs-tab-disabled,.ant-tabs-nav .ant-tabs-tab-disabled:hover{color:rgba(0,0,0,0.25)}.ant-tabs .ant-tabs-large-bar .ant-tabs-nav-container{font-size:16px}.ant-tabs .ant-tabs-small-bar .ant-tabs-nav-container{font-size:14px}.ant-tabs .ant-tabs-left-bar,.ant-tabs .ant-tabs-right-bar{border-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show{height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-next,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-next{height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-prev,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-prev{height:32px}.ant-tabs .ant-tabs-left-bar{border-right:1px solid #e8e8e8}.ant-tabs .ant-tabs-left-content{border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-bar{border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-content{border-right:1px solid #e8e8e8}.ant-tabs-top .ant-tabs-ink-bar-animated,.ant-tabs-bottom .ant-tabs-ink-bar-animated{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1),left .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-left .ant-tabs-ink-bar-animated,.ant-tabs-right .ant-tabs-ink-bar-animated{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1),height .3s cubic-bezier(0.645,0.045,0.355,1),top .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tag{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";font-size:12px;background:#fafafa;border:1px solid #d9d9d9;border-radius:4px;transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,0.65)}.ant-tag .anticon-close{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45);transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}:root .ant-tag .anticon-close{font-size:12px}.ant-tag .anticon-close:hover{color:rgba(0,0,0,0.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color a,.ant-tag-has-color a:hover,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover{color:#fff}.ant-tag-checkable{border-color:transparent}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#3b5998}.ant-tag-checkable:active,.ant-tag-checkable-checked{color:#fff}.ant-tag-checkable-checked{background-color:#3b5998}.ant-tag-checkable:active{background-color:#273c73}.ant-tag-pink{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-magenta{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-red{color:#f5222d;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{color:#fff;background:#f5222d;border-color:#f5222d}.ant-tag-volcano{color:#fa541c;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{color:#fff;background:#fa541c;border-color:#fa541c}.ant-tag-orange{color:#fa8c16;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{color:#fff;background:#fa8c16;border-color:#fa8c16}.ant-tag-yellow{color:#fadb14;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{color:#fff;background:#fadb14;border-color:#fadb14}.ant-tag-gold{color:#faad14;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{color:#fff;background:#faad14;border-color:#faad14}.ant-tag-cyan{color:#13c2c2;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{color:#fff;background:#13c2c2;border-color:#13c2c2}.ant-tag-lime{color:#a0d911;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{color:#fff;background:#a0d911;border-color:#a0d911}.ant-tag-green{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{color:#fff;background:#52c41a;border-color:#52c41a}.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{color:#fff;background:#1890ff;border-color:#1890ff}.ant-tag-geekblue{color:#2f54eb;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-tag-purple{color:#722ed1;background:#f9f0ff;border-color:#d3adf7}.ant-tag-purple-inverse{color:#fff;background:#722ed1;border-color:#722ed1}.ant-time-picker-panel{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-time-picker-panel-inner{font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-time-picker-panel-input{border:0}.ant-time-picker-panel-input::-moz-placeholder{color:#bfbfbf}.ant-time-picker-panel-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input-wrap{border-bottom:1px solid #e8e8e8}.ant-time-picker-panel-input-invalid{border-color:#f5222d}.ant-time-picker-panel-narrow .ant-time-picker-panel-input-wrap{max-width:112px}.ant-time-picker-panel-select{width:56px;max-height:192px;font-size:14px;border-left:1px solid #e8e8e8}.ant-time-picker-panel-select:first-child{border-left:0}.ant-time-picker-panel-select:last-child{border-right:0}.ant-time-picker-panel-select ul{width:56px}.ant-time-picker-panel-select li{height:32px;line-height:32px}.ant-time-picker-panel-select li:focus{color:#3b5998}.ant-time-picker-panel-select li:hover{background:#ccd2d9}li.ant-time-picker-panel-select-option-selected{background:#f5f5f5}li.ant-time-picker-panel-select-option-selected:hover{background:#f5f5f5}li.ant-time-picker-panel-select-option-disabled{color:rgba(0,0,0,0.25)}.ant-time-picker-panel-addon{border-top:1px solid #e8e8e8}.ant-time-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-time-picker-input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-time-picker-input::-moz-placeholder{color:#bfbfbf}.ant-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-input:hover{border-color:#5b75a6;border-right-width:1px !important}.ant-time-picker-input:focus{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-time-picker-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-time-picker-input{min-height:32px;line-height:1.5}.ant-time-picker-input-lg{height:40px;font-size:16px}.ant-time-picker-input-sm{height:24px}.ant-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-time-picker-icon,.ant-time-picker-clear{color:rgba(0,0,0,0.25);transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-time-picker-icon .ant-time-picker-clock-icon,.ant-time-picker-clear .ant-time-picker-clock-icon{color:rgba(0,0,0,0.25)}.ant-time-picker-clear{background:#fff}.ant-time-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-time-picker-large .ant-time-picker-input{height:40px;font-size:16px}.ant-time-picker-small .ant-time-picker-input{height:24px}@media not all and (min-resolution:.001dpcm){@supports(-webkit-appearance:none) and (stroke-color:transparent){.ant-input{line-height:1.5}}}.ant-timeline{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-timeline-item{font-size:14px}.ant-timeline-item-tail{border-left:2px solid #e8e8e8}.ant-timeline-item-pending .ant-timeline-item-head{font-size:12px}.ant-timeline-item-head{background-color:#fff;border:2px solid transparent;border-radius:100px}.ant-timeline-item-head-blue{color:#3b5998;border-color:#3b5998}.ant-timeline-item-head-red{color:#f5222d;border-color:#f5222d}.ant-timeline-item-head-green{color:#52c41a;border-color:#52c41a}.ant-timeline-item-head-gray{color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-timeline-item-head-custom{border:0;border-radius:0}.ant-timeline-item-content{top:-6px}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom{left:calc(100% - 4px - 2px)}.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail{border-left:2px dotted #e8e8e8}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-left:2px dotted #e8e8e8}.ant-tooltip{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1060;max-width:250px}.ant-tooltip-inner{color:#fff;background-color:rgba(0,0,0,0.75);border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-tooltip-arrow{width:13.07106781px;height:13.07106781px}.ant-tooltip-arrow::before{width:5px;height:5px;background-color:rgba(0,0,0,0.75)}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow::before,.ant-tooltip-placement-topLeft .ant-tooltip-arrow::before,.ant-tooltip-placement-topRight .ant-tooltip-arrow::before{box-shadow:3px 3px 7px rgba(0,0,0,0.07);transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow::before,.ant-tooltip-placement-rightTop .ant-tooltip-arrow::before,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow::before{box-shadow:-3px 3px 7px rgba(0,0,0,0.07);transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow::before,.ant-tooltip-placement-leftTop .ant-tooltip-arrow::before,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow::before{box-shadow:3px -3px 7px rgba(0,0,0,0.07);transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow::before,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow::before,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow::before{box-shadow:-3px -3px 7px rgba(0,0,0,0.07);transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-transfer{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-transfer-disabled .ant-transfer-list{background:#f5f5f5}.ant-transfer-list{height:200px;border:1px solid #d9d9d9;border-radius:4px}.ant-transfer-list-search-action{color:rgba(0,0,0,0.25);line-height:32px}.ant-transfer-list-search-action .anticon{color:rgba(0,0,0,0.25)}.ant-transfer-list-search-action .anticon:hover{color:rgba(0,0,0,0.45)}.ant-transfer-list-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-transfer-list-body{font-size:14px}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#ccd2d9}.ant-transfer-list-content-item-disabled{color:rgba(0,0,0,0.25)}.ant-transfer-list-body-not-found{color:rgba(0,0,0,0.25)}.ant-transfer-list-footer{border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}@keyframes transferHighlightIn{0%{background:#c0c5cc}}.ant-select-tree-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner{border-color:#3b5998}.ant-select-tree-checkbox-checked::after{border:1px solid #3b5998;border-radius:2px}.ant-select-tree-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-select-tree-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#3b5998;border-color:#3b5998}.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-select-tree-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-select-tree-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after{width:8px;height:8px;background-color:#3b5998;border:0}.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-select-tree{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree li .ant-select-tree-node-content-wrapper{color:rgba(0,0,0,0.65);border-radius:2px}.ant-select-tree li .ant-select-tree-node-content-wrapper:hover{background-color:#ccd2d9}.ant-select-tree li .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:#c0c5cc}.ant-select-tree li span.ant-select-tree-switcher,.ant-select-tree li span.ant-select-tree-iconEle{border:0 none}.ant-select-tree li span.ant-select-icon_loading .ant-select-switcher-loading-icon{color:#3b5998}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon,:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon{font-size:12px}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon,:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon{font-size:12px}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-loading-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-loading-icon{color:#3b5998}li.ant-select-tree-treenode-disabled>span:not(.ant-select-tree-switcher),li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper,li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper span{color:rgba(0,0,0,0.25)}.ant-select-tree-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-dropdown .ant-select-dropdown-search{background:#fff}.ant-select-tree-dropdown .ant-select-dropdown-search .ant-select-search__field{box-sizing:border-box;border:1px solid #d9d9d9;border-radius:4px}.ant-select-tree-dropdown .ant-select-not-found{color:rgba(0,0,0,0.25)}.ant-tree-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner,.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner{border-color:#3b5998}.ant-tree-checkbox-checked::after{border:1px solid #3b5998;border-radius:2px}.ant-tree-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-tree-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#3b5998;border-color:#3b5998}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-tree-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-tree-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner::after{width:8px;height:8px;background-color:#3b5998;border:0}.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-tree{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree li span[draggable],.ant-tree li span[draggable="true"]{line-height:20px;border-top:2px transparent solid;border-bottom:2px transparent solid}.ant-tree li.drag-over>span[draggable]{background-color:#3b5998}.ant-tree li.drag-over-gap-top>span[draggable]{border-top-color:#3b5998}.ant-tree li.drag-over-gap-bottom>span[draggable]{border-bottom-color:#3b5998}.ant-tree li.filter-node>span{color:#f5222d !important}.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-loading-icon,.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-loading-icon{height:24px;color:#3b5998}.ant-tree li .ant-tree-node-content-wrapper{height:24px;color:rgba(0,0,0,0.65);line-height:24px;border-radius:2px}.ant-tree li .ant-tree-node-content-wrapper:hover{background-color:#ccd2d9}.ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:#c0c5cc}.ant-tree li span.ant-tree-checkbox{height:24px}.ant-tree li span.ant-tree-switcher,.ant-tree li span.ant-tree-iconEle{height:24px;line-height:24px;border:0 none}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon,:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon{font-size:12px}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon,:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon{font-size:12px}li.ant-tree-treenode-disabled>span:not(.ant-tree-switcher),li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper,li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper span{color:rgba(0,0,0,0.25)}.ant-tree.ant-tree-show-line li span.ant-tree-switcher{color:rgba(0,0,0,0.45);background:#fff}.ant-tree.ant-tree-show-line li:not(:last-child)::before{border-left:1px solid #d9d9d9}.ant-typography{color:rgba(0,0,0,0.65)}.ant-typography.ant-typography-secondary{color:rgba(0,0,0,0.45)}.ant-typography.ant-typography-warning{color:#faad14}.ant-typography.ant-typography-danger{color:#f5222d}.ant-typography.ant-typography-disabled{color:rgba(0,0,0,0.25)}h1.ant-typography,.ant-typography h1{color:rgba(0,0,0,0.85);font-weight:600;font-size:38px;line-height:1.23}h2.ant-typography,.ant-typography h2{color:rgba(0,0,0,0.85);font-weight:600;font-size:30px;line-height:1.35}h3.ant-typography,.ant-typography h3{color:rgba(0,0,0,0.85);font-weight:600;font-size:24px;line-height:1.35}h4.ant-typography,.ant-typography h4{color:rgba(0,0,0,0.85);font-weight:600;font-size:20px;line-height:1.4}.ant-typography a{color:#3b5998}.ant-typography a:focus,.ant-typography a:hover{color:#5b75a6}.ant-typography a:active{color:#273c73}.ant-typography a:active,.ant-typography a:hover{text-decoration:none}.ant-typography a[disabled]{color:rgba(0,0,0,0.25)}.ant-typography code{border:1px solid rgba(0,0,0,0.06);border-radius:3px}.ant-typography mark{background-color:#ffe58f}.ant-typography-expand,.ant-typography-edit,.ant-typography-copy{color:#3b5998}.ant-typography-expand:focus,.ant-typography-edit:focus,.ant-typography-copy:focus,.ant-typography-expand:hover,.ant-typography-edit:hover,.ant-typography-copy:hover{color:#5b75a6}.ant-typography-expand:active,.ant-typography-edit:active,.ant-typography-copy:active{color:#273c73}.ant-typography-copy-success,.ant-typography-copy-success:hover,.ant-typography-copy-success:focus{color:#52c41a}.ant-typography-edit-content-confirm{color:rgba(0,0,0,0.45)}.ant-upload{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-upload.ant-upload-select-picture-card{width:104px;height:104px;background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:4px;transition:border-color .3s ease}.ant-upload.ant-upload-select-picture-card:hover{border-color:#3b5998}.ant-upload.ant-upload-drag{background:#fafafa;border:1px dashed #d9d9d9;border-radius:4px;transition:border-color .3s}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#273c73}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#5b75a6}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#5b75a6}.ant-upload.ant-upload-drag p.ant-upload-text{color:rgba(0,0,0,0.85);font-size:16px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,0.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,0.25)}.ant-upload.ant-upload-drag .anticon-plus:hover{color:rgba(0,0,0,0.45)}.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,0.45)}.ant-upload-list{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-upload-list-item{font-size:14px}.ant-upload-list-item-info .anticon-loading,.ant-upload-list-item-info .anticon-paper-clip{top:5px;color:rgba(0,0,0,0.45);font-size:14px}.ant-upload-list-item .anticon-close{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45)}:root .ant-upload-list-item .anticon-close{font-size:12px}.ant-upload-list-item .anticon-close:hover{color:rgba(0,0,0,0.65)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#ccd2d9}.ant-upload-list-item-error,.ant-upload-list-item-error .anticon-paper-clip,.ant-upload-list-item-error .ant-upload-list-item-name{color:#f5222d}.ant-upload-list-item-error .anticon-close{color:#f5222d !important}.ant-upload-list-item-progress{font-size:14px}.ant-upload-list-picture .ant-upload-list-item,.ant-upload-list-picture-card .ant-upload-list-item{border:1px solid #d9d9d9;border-radius:4px}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:#f5222d}.ant-upload-list-picture .ant-upload-list-item-uploading,.ant-upload-list-picture-card .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-name{box-sizing:border-box}.ant-upload-list-picture-card .ant-upload-list-item{width:104px;height:104px}.ant-upload-list-picture-card .ant-upload-list-item-info::before{background-color:rgba(0,0,0,0.5)}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete{color:rgba(255,255,255,0.85)}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-name{line-height:1.5}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading-text{color:rgba(0,0,0,0.45)}.ant-upload-list .ant-upload-success-icon{color:#52c41a}.ant-upload-list .ant-upload-animate-enter,.ant-upload-list .ant-upload-animate-leave,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-fill-mode:cubic-bezier(0.78,0.14,0.15,0.86)}.ant-card-small>.ant-card-head{min-height:36px;font-size:14px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{font-size:14px}.ant-calendar{font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-calendar-input-wrap{border-bottom:1px solid #e8e8e8}.ant-calendar-input{color:rgba(0,0,0,0.65);background:#fff;border:0}.ant-calendar-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-header{border-bottom:1px solid #e8e8e8}.ant-calendar-header a:hover{color:#5b75a6}.ant-calendar-header .ant-calendar-century-select,.ant-calendar-header .ant-calendar-decade-select,.ant-calendar-header .ant-calendar-year-select,.ant-calendar-header .ant-calendar-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-header .ant-calendar-prev-century-btn,.ant-calendar-header .ant-calendar-next-century-btn,.ant-calendar-header .ant-calendar-prev-decade-btn,.ant-calendar-header .ant-calendar-next-decade-btn,.ant-calendar-header .ant-calendar-prev-month-btn,.ant-calendar-header .ant-calendar-next-month-btn,.ant-calendar-header .ant-calendar-prev-year-btn,.ant-calendar-header .ant-calendar-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-header .ant-calendar-prev-century-btn::before,.ant-calendar-header .ant-calendar-prev-decade-btn::before,.ant-calendar-header .ant-calendar-prev-year-btn::before,.ant-calendar-header .ant-calendar-prev-century-btn::after,.ant-calendar-header .ant-calendar-prev-decade-btn::after,.ant-calendar-header .ant-calendar-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-prev-century-btn:hover::before,.ant-calendar-header .ant-calendar-prev-decade-btn:hover::before,.ant-calendar-header .ant-calendar-prev-year-btn:hover::before,.ant-calendar-header .ant-calendar-prev-century-btn:hover::after,.ant-calendar-header .ant-calendar-prev-decade-btn:hover::after,.ant-calendar-header .ant-calendar-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-next-century-btn::before,.ant-calendar-header .ant-calendar-next-decade-btn::before,.ant-calendar-header .ant-calendar-next-year-btn::before,.ant-calendar-header .ant-calendar-next-century-btn::after,.ant-calendar-header .ant-calendar-next-decade-btn::after,.ant-calendar-header .ant-calendar-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-next-century-btn:hover::before,.ant-calendar-header .ant-calendar-next-decade-btn:hover::before,.ant-calendar-header .ant-calendar-next-year-btn:hover::before,.ant-calendar-header .ant-calendar-next-century-btn:hover::after,.ant-calendar-header .ant-calendar-next-decade-btn:hover::after,.ant-calendar-header .ant-calendar-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-prev-month-btn::before,.ant-calendar-header .ant-calendar-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-prev-month-btn:hover::before,.ant-calendar-header .ant-calendar-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-next-month-btn::before,.ant-calendar-header .ant-calendar-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-next-month-btn:hover::before,.ant-calendar-header .ant-calendar-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar table{border-collapse:collapse}.ant-calendar table,.ant-calendar th,.ant-calendar td{border:0}.ant-calendar-calendar-table{border-spacing:0}.ant-calendar-date{color:rgba(0,0,0,0.65);border:1px solid transparent;border-radius:2px}.ant-calendar-date:hover{background:#ccd2d9}.ant-calendar-date:active{color:#fff;background:#5b75a6}.ant-calendar-today .ant-calendar-date{color:#3b5998;border-color:#3b5998}.ant-calendar-selected-day .ant-calendar-date{background:#c0c5cc}.ant-calendar-last-month-cell .ant-calendar-date,.ant-calendar-next-month-btn-day .ant-calendar-date,.ant-calendar-last-month-cell .ant-calendar-date:hover,.ant-calendar-next-month-btn-day .ant-calendar-date:hover{color:rgba(0,0,0,0.25);border-color:transparent}.ant-calendar-disabled-cell .ant-calendar-date{color:rgba(0,0,0,0.25);background:#f5f5f5;border:1px solid transparent;border-radius:0}.ant-calendar-disabled-cell .ant-calendar-date:hover{background:#f5f5f5}.ant-calendar-disabled-cell.ant-calendar-selected-day .ant-calendar-date::before{border-radius:2px}.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date::before{border:1px solid rgba(0,0,0,0.25);border-radius:2px}.ant-calendar-disabled-cell-first-of-row .ant-calendar-date{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-calendar-disabled-cell-last-of-row .ant-calendar-date{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-calendar-footer{border-top:1px solid #e8e8e8}.ant-calendar-footer:empty{border-top:0}.ant-calendar .ant-calendar-today-btn-disabled,.ant-calendar .ant-calendar-clear-btn-disabled{color:rgba(0,0,0,0.25)}.ant-calendar .ant-calendar-clear-btn::after{color:rgba(0,0,0,0.25);font-size:14px}.ant-calendar .ant-calendar-clear-btn:hover::after{color:rgba(0,0,0,0.45)}.ant-calendar .ant-calendar-ok-btn{font-weight:400;border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,0.015);transition:all .3s cubic-bezier(0.645,0.045,0.355,1);height:32px;color:#fff;background-color:#3b5998;border-color:#3b5998;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045);height:24px;font-size:14px;border-radius:4px;line-height:22px}.ant-calendar .ant-calendar-ok-btn-lg{height:40px;font-size:16px;border-radius:4px}.ant-calendar .ant-calendar-ok-btn-sm{height:24px;font-size:14px;border-radius:4px}.ant-calendar .ant-calendar-ok-btn:hover,.ant-calendar .ant-calendar-ok-btn:focus{color:#fff;background-color:#5b75a6;border-color:#5b75a6}.ant-calendar .ant-calendar-ok-btn:active,.ant-calendar .ant-calendar-ok-btn.active{color:#fff;background-color:#273c73;border-color:#273c73}.ant-calendar .ant-calendar-ok-btn-disabled,.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn[disabled],.ant-calendar .ant-calendar-ok-btn-disabled:hover,.ant-calendar .ant-calendar-ok-btn.disabled:hover,.ant-calendar .ant-calendar-ok-btn[disabled]:hover,.ant-calendar .ant-calendar-ok-btn-disabled:focus,.ant-calendar .ant-calendar-ok-btn.disabled:focus,.ant-calendar .ant-calendar-ok-btn[disabled]:focus,.ant-calendar .ant-calendar-ok-btn-disabled:active,.ant-calendar .ant-calendar-ok-btn.disabled:active,.ant-calendar .ant-calendar-ok-btn[disabled]:active,.ant-calendar .ant-calendar-ok-btn-disabled.active,.ant-calendar .ant-calendar-ok-btn.disabled.active,.ant-calendar .ant-calendar-ok-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-calendar .ant-calendar-ok-btn-disabled,.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn[disabled],.ant-calendar .ant-calendar-ok-btn-disabled:hover,.ant-calendar .ant-calendar-ok-btn.disabled:hover,.ant-calendar .ant-calendar-ok-btn[disabled]:hover,.ant-calendar .ant-calendar-ok-btn-disabled:focus,.ant-calendar .ant-calendar-ok-btn.disabled:focus,.ant-calendar .ant-calendar-ok-btn[disabled]:focus,.ant-calendar .ant-calendar-ok-btn-disabled:active,.ant-calendar .ant-calendar-ok-btn.disabled:active,.ant-calendar .ant-calendar-ok-btn[disabled]:active,.ant-calendar .ant-calendar-ok-btn-disabled.active,.ant-calendar .ant-calendar-ok-btn.disabled.active,.ant-calendar .ant-calendar-ok-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-calendar-decade-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-decade-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-decade-panel-header a:hover{color:#5b75a6}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-decade-panel-table{border-collapse:separate}.ant-calendar-decade-panel-decade{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-decade-panel-decade:hover{background:#ccd2d9}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade{color:#fff;background:#3b5998}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{color:#fff;background:#3b5998}.ant-calendar-decade-panel-last-century-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-next-century-cell .ant-calendar-decade-panel-decade{color:rgba(0,0,0,0.25)}.ant-calendar-month-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-month-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-month-panel-header a:hover{color:#5b75a6}.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-month-panel-table{border-collapse:separate}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month{color:#fff;background:#3b5998}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{color:#fff;background:#3b5998}.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month,.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month:hover{color:rgba(0,0,0,0.25);background:#f5f5f5}.ant-calendar-month-panel-month{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-month-panel-month:hover{background:#ccd2d9}.ant-calendar-picker-container{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-calendar-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-calendar-picker-input.ant-input{line-height:1.5}.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#5b75a6}.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-calendar-picker-clear,.ant-calendar-picker-icon{font-size:12px}.ant-calendar-picker-clear{color:rgba(0,0,0,0.25);font-size:14px;background:#fff}.ant-calendar-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-calendar-picker-icon{color:rgba(0,0,0,0.25);font-size:14px}.ant-calendar-range-picker-input{border:0}.ant-calendar-range-picker-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-separator{color:rgba(0,0,0,0.45)}.ant-calendar-range-left .ant-calendar-time-picker-inner{border-right:1px solid #e8e8e8}.ant-calendar-range-right .ant-calendar-time-picker-inner{border-left:1px solid #e8e8e8}.ant-calendar-range-middle{height:34px;color:rgba(0,0,0,0.45);line-height:34px}.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#3b5998;background:#c0c5cc;border-color:#3b5998}.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date{color:#fff;background:#3b5998;border:1px solid transparent}.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover{background:#3b5998}.ant-calendar-range .ant-calendar-input-wrap{height:34px}.ant-calendar-range .ant-calendar-input,.ant-calendar-range .ant-calendar-time-picker-input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;height:24px;line-height:24px;border:0}.ant-calendar-range .ant-calendar-input::-moz-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input:-ms-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input::-webkit-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#5b75a6;border-right-width:1px !important}.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#5b75a6;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(59,89,152,0.2)}.ant-calendar-range .ant-calendar-input-disabled,.ant-calendar-range .ant-calendar-time-picker-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-calendar-range .ant-calendar-input-disabled:hover,.ant-calendar-range .ant-calendar-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-calendar-range .ant-calendar-input[disabled],.ant-calendar-range .ant-calendar-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-calendar-range .ant-calendar-input[disabled]:hover,.ant-calendar-range .ant-calendar-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-calendar-range .ant-calendar-input,textarea.ant-calendar-range .ant-calendar-time-picker-input{min-height:32px;line-height:1.5}.ant-calendar-range .ant-calendar-input-lg,.ant-calendar-range .ant-calendar-time-picker-input-lg{height:40px;font-size:16px}.ant-calendar-range .ant-calendar-input-sm,.ant-calendar-range .ant-calendar-time-picker-input-sm{height:24px}.ant-calendar-range .ant-calendar-year-panel,.ant-calendar-range .ant-calendar-month-panel,.ant-calendar-range .ant-calendar-decade-panel{top:34px}.ant-calendar-range .ant-calendar-in-range-cell{border-radius:0}.ant-calendar-range .ant-calendar-in-range-cell::before{background:#ccd2d9;border:0;border-radius:0}.ant-calendar-range .ant-calendar-header,.ant-calendar-range .ant-calendar-month-panel-header,.ant-calendar-range .ant-calendar-year-panel-header,.ant-calendar-range .ant-calendar-decade-panel-header{border-bottom:0}.ant-calendar-range .ant-calendar-body,.ant-calendar-range .ant-calendar-month-panel-body,.ant-calendar-range .ant-calendar-year-panel-body,.ant-calendar-range .ant-calendar-decade-panel-body{border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-combobox{background-color:#fff;border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-show-time-picker .ant-calendar-body{border-top-color:transparent}.ant-calendar-time-picker{background-color:#fff}.ant-calendar-time-picker-panel{z-index:1050}.ant-calendar-time-picker-inner{font-size:14px;background-color:#fff}.ant-calendar-time-picker-select{font-size:14px;border-right:1px solid #e8e8e8}.ant-calendar-time-picker-select:first-child{border-left:0}.ant-calendar-time-picker-select:last-child{border-right:0}.ant-calendar-time-picker-select li:hover{background:#ccd2d9}.ant-calendar-time-picker-select li:focus{color:#3b5998}li.ant-calendar-time-picker-select-option-selected{background:#f5f5f5}li.ant-calendar-time-picker-select-option-disabled{color:rgba(0,0,0,0.25)}.ant-calendar-time .ant-calendar-day-select{color:rgba(0,0,0,0.85)}.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn-disabled{color:rgba(0,0,0,0.25)}.ant-calendar-week-number .ant-calendar-body tr:hover{background:#ccd2d9}.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#c0c5cc}.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day .ant-calendar-date,.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day:hover .ant-calendar-date{color:rgba(0,0,0,0.65)}.ant-calendar-year-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-year-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-year-panel-header a:hover{color:#5b75a6}.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-year-panel-table{border-collapse:separate}.ant-calendar-year-panel-year{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-year-panel-year:hover{background:#ccd2d9}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year{color:#fff;background:#3b5998}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{color:#fff;background:#3b5998}.ant-calendar-year-panel-last-decade-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-next-decade-cell .ant-calendar-year-panel-year{color:rgba(0,0,0,0.25)}.ant-drawer{z-index:1000;transition:transform .3s cubic-bezier(0.7,0.3,0.1,1),height 0s ease .3s,width 0s ease .3s}.ant-drawer>*{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1),box-shadow .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:2px 0 8px rgba(0,0,0,0.15)}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:-2px 0 8px rgba(0,0,0,0.15)}.ant-drawer-top.ant-drawer-open,.ant-drawer-bottom.ant-drawer-open{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 -2px 8px rgba(0,0,0,0.15)}.ant-drawer.ant-drawer-open .ant-drawer-mask{animation:antdDrawerFadeIn .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-drawer-content{background-color:#fff;border:0}.ant-drawer-close{z-index:10;color:rgba(0,0,0,0.45);font-size:16px;border:0;transition:color .3s}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,0.75)}.ant-drawer-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-drawer-header-no-title{color:rgba(0,0,0,0.65);background:#fff}.ant-drawer-body{font-size:14px;line-height:1.5}.ant-drawer-mask{background-color:rgba(0,0,0,0.45);transition:opacity .3s linear,height 0s ease .3s}.ant-drawer-open-content{box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-input-search-icon{color:rgba(0,0,0,0.45)}.ant-input-search-icon:hover{color:rgba(0,0,0,0.8)}.ant-input-search-enter-button input{border-right:0}.ant-input-search-enter-button+.ant-input-group-addon,.ant-input-search-enter-button input+.ant-input-group-addon{border:0}.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button,.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button{border-top-left-radius:0;border-bottom-left-radius:0}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger{color:rgba(0,0,0,0.65);background:#fff}.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{color:rgba(0,0,0,0.65);background:#fff}.ant-list-bordered{border:1px solid #d9d9d9;border-radius:4px}.ant-list-bordered .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-menu-dark,.ant-menu-dark .ant-menu-sub{color:rgba(255,255,255,0.65);background:#001529}.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before{background:#fff}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17;box-shadow:0 2px 8px rgba(0,0,0,0.45) inset}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{border-color:#001529;border-bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a{color:rgba(255,255,255,0.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item::after{border-right:0}.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff}.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-title:hover>a{color:#fff}.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:transparent}.ant-menu-dark .ant-menu-item-selected{color:#fff;border-right:0}.ant-menu-dark .ant-menu-item-selected::after{border-right:0}.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover{color:#fff}.ant-menu-dark .ant-menu-item-selected .anticon{color:#fff}.ant-menu-dark .ant-menu-item-selected span{color:#fff}.ant-menu.ant-menu-dark .ant-menu-item-selected,.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected{background-color:#3b5998}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>a{color:rgba(255,255,255,0.35) !important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(255,255,255,0.35) !important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{background:rgba(255,255,255,0.35) !important}.ant-modal-confirm-body .ant-modal-confirm-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-modal-confirm-body .ant-modal-confirm-content{color:rgba(0,0,0,0.65);font-size:14px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#f5222d}.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon,.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-modal{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-modal-wrap{z-index:1000}.ant-modal-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-modal-content{background-color:#fff;border:0;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-modal-close{z-index:10;color:rgba(0,0,0,0.45);border:0}.ant-modal-close-x{font-size:16px}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,0.75)}.ant-modal-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-modal-body{font-size:14px;line-height:1.5}.ant-modal-footer{background:transparent;border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-modal.zoom-enter,.ant-modal.zoom-appear{animation-duration:.3s}.ant-modal-mask{z-index:1000;background-color:rgba(0,0,0,0.45)}.ant-steps-flex-not-supported.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item{background:#fff}.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot::before,.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot::after{background:#fff}.ant-steps-item-custom .ant-steps-item-icon{border:0}.ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{width:32px;height:32px;line-height:32px}.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#3b5998}.ant-steps-label-vertical .ant-steps-item-content{width:104px}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content{max-width:140px}.ant-steps-navigation .ant-steps-item::after{border:1px solid rgba(0,0,0,0.25);border-bottom:0;border-left:0}.ant-steps-navigation .ant-steps-item::before{background-color:#3b5998}.ant-steps-dot .ant-steps-item-title,.ant-steps-dot.ant-steps-small .ant-steps-item-title{line-height:1.5}.ant-steps-dot .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-icon{width:8px;height:8px;line-height:8px;border:0}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{border-radius:100px}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot::after,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot::after{background:rgba(0,0,0,0.001)}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon{width:10px;height:10px;line-height:10px}.ant-steps-small .ant-steps-item-icon{width:24px;height:24px;font-size:12px;line-height:24px;border-radius:24px}.ant-steps-small .ant-steps-item-title{font-size:14px;line-height:24px}.ant-steps-small .ant-steps-item-title::after{top:12px}.ant-steps-small .ant-steps-item-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon{border:0;border-radius:0}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:24px;line-height:24px}.ant-steps-vertical .ant-steps-item-title{line-height:32px}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}@media(max-width:480px){.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-title{line-height:32px}.ant-steps-horizontal.ant-steps-label-horizontal.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}}html,body{width:100%;height:100%}*,*::before,*::after{box-sizing:border-box}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}h1,h2,h3,h4,h5,h6{color:rgba(0,0,0,0.85)}abbr[title],abbr[data-original-title]{border-bottom:0}a{color:#3b5998;text-decoration:none}a:hover{color:#5b75a6}a:active{color:#273c73}a:active,a:hover{text-decoration:none}a[disabled]{color:rgba(0,0,0,0.25)}pre,code,kbd,samp{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}img{border-style:none}table{border-collapse:collapse}caption{color:rgba(0,0,0,0.45)}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box}fieldset{border:0}mark{background-color:#feffe6}::selection{color:#fff;background:#3b5998}.anticon{color:inherit}.ant-motion-collapse-legacy-active{transition:height .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1) !important}.ant-motion-collapse{transition:height .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1) !important}.fade-enter,.fade-appear{animation-duration:.2s}.fade-leave{animation-duration:.2s}.fade-enter.fade-enter-active,.fade-appear.fade-appear-active{animation-name:antFadeIn}.fade-leave.fade-leave-active{animation-name:antFadeOut}.move-up-enter,.move-up-appear{animation-duration:.2s}.move-up-leave{animation-duration:.2s}.move-up-enter.move-up-enter-active,.move-up-appear.move-up-appear-active{animation-name:antMoveUpIn}.move-up-leave.move-up-leave-active{animation-name:antMoveUpOut}.move-up-enter,.move-up-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-up-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-down-enter,.move-down-appear{animation-duration:.2s}.move-down-leave{animation-duration:.2s}.move-down-enter.move-down-enter-active,.move-down-appear.move-down-appear-active{animation-name:antMoveDownIn}.move-down-leave.move-down-leave-active{animation-name:antMoveDownOut}.move-down-enter,.move-down-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-down-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-left-enter,.move-left-appear{animation-duration:.2s}.move-left-leave{animation-duration:.2s}.move-left-enter.move-left-enter-active,.move-left-appear.move-left-appear-active{animation-name:antMoveLeftIn}.move-left-leave.move-left-leave-active{animation-name:antMoveLeftOut}.move-left-enter,.move-left-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-left-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-right-enter,.move-right-appear{animation-duration:.2s}.move-right-leave{animation-duration:.2s}.move-right-enter.move-right-enter-active,.move-right-appear.move-right-appear-active{animation-name:antMoveRightIn}.move-right-leave.move-right-leave-active{animation-name:antMoveRightOut}.move-right-enter,.move-right-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-right-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}html{--antd-wave-shadow-color:#3b5998}[ant-click-animating-without-extra-node="true"]::after,.ant-click-animating-node{border-radius:inherit;box-shadow:0 0 0 0 #3b5998;animation:fadeEffect 2s cubic-bezier(0.08,0.82,0.17,1),waveEffect .4s cubic-bezier(0.08,0.82,0.17,1)}@keyframes waveEffect{100%{box-shadow:0 0 0 #3b5998;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}.slide-up-enter,.slide-up-appear{animation-duration:.2s}.slide-up-leave{animation-duration:.2s}.slide-up-enter.slide-up-enter-active,.slide-up-appear.slide-up-appear-active{animation-name:antSlideUpIn}.slide-up-leave.slide-up-leave-active{animation-name:antSlideUpOut}.slide-up-enter,.slide-up-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-up-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-down-enter,.slide-down-appear{animation-duration:.2s}.slide-down-leave{animation-duration:.2s}.slide-down-enter.slide-down-enter-active,.slide-down-appear.slide-down-appear-active{animation-name:antSlideDownIn}.slide-down-leave.slide-down-leave-active{animation-name:antSlideDownOut}.slide-down-enter,.slide-down-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-down-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-left-enter,.slide-left-appear{animation-duration:.2s}.slide-left-leave{animation-duration:.2s}.slide-left-enter.slide-left-enter-active,.slide-left-appear.slide-left-appear-active{animation-name:antSlideLeftIn}.slide-left-leave.slide-left-leave-active{animation-name:antSlideLeftOut}.slide-left-enter,.slide-left-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-left-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-right-enter,.slide-right-appear{animation-duration:.2s}.slide-right-leave{animation-duration:.2s}.slide-right-enter.slide-right-enter-active,.slide-right-appear.slide-right-appear-active{animation-name:antSlideRightIn}.slide-right-leave.slide-right-leave-active{animation-name:antSlideRightOut}.slide-right-enter,.slide-right-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-right-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.swing-enter,.swing-appear{animation-duration:.2s}.swing-enter.swing-enter-active,.swing-appear.swing-appear-active{animation-name:antSwingIn}.zoom-enter,.zoom-appear{animation-duration:.2s}.zoom-leave{animation-duration:.2s}.zoom-enter.zoom-enter-active,.zoom-appear.zoom-appear-active{animation-name:antZoomIn}.zoom-leave.zoom-leave-active{animation-name:antZoomOut}.zoom-enter,.zoom-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-big-enter,.zoom-big-appear{animation-duration:.2s}.zoom-big-leave{animation-duration:.2s}.zoom-big-enter.zoom-big-enter-active,.zoom-big-appear.zoom-big-appear-active{animation-name:antZoomBigIn}.zoom-big-leave.zoom-big-leave-active{animation-name:antZoomBigOut}.zoom-big-enter,.zoom-big-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-big-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-big-fast-enter,.zoom-big-fast-appear{animation-duration:.1s}.zoom-big-fast-leave{animation-duration:.1s}.zoom-big-fast-enter.zoom-big-fast-enter-active,.zoom-big-fast-appear.zoom-big-fast-appear-active{animation-name:antZoomBigIn}.zoom-big-fast-leave.zoom-big-fast-leave-active{animation-name:antZoomBigOut}.zoom-big-fast-enter,.zoom-big-fast-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-big-fast-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-up-enter,.zoom-up-appear{animation-duration:.2s}.zoom-up-leave{animation-duration:.2s}.zoom-up-enter.zoom-up-enter-active,.zoom-up-appear.zoom-up-appear-active{animation-name:antZoomUpIn}.zoom-up-leave.zoom-up-leave-active{animation-name:antZoomUpOut}.zoom-up-enter,.zoom-up-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-up-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-down-enter,.zoom-down-appear{animation-duration:.2s}.zoom-down-leave{animation-duration:.2s}.zoom-down-enter.zoom-down-enter-active,.zoom-down-appear.zoom-down-appear-active{animation-name:antZoomDownIn}.zoom-down-leave.zoom-down-leave-active{animation-name:antZoomDownOut}.zoom-down-enter,.zoom-down-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-down-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-left-enter,.zoom-left-appear{animation-duration:.2s}.zoom-left-leave{animation-duration:.2s}.zoom-left-enter.zoom-left-enter-active,.zoom-left-appear.zoom-left-appear-active{animation-name:antZoomLeftIn}.zoom-left-leave.zoom-left-leave-active{animation-name:antZoomLeftOut}.zoom-left-enter,.zoom-left-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-left-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-right-enter,.zoom-right-appear{animation-duration:.2s}.zoom-right-leave{animation-duration:.2s}.zoom-right-enter.zoom-right-enter-active,.zoom-right-appear.zoom-right-appear-active{animation-name:antZoomRightIn}.zoom-right-leave.zoom-right-leave-active{animation-name:antZoomRightOut}.zoom-right-enter,.zoom-right-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-right-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.ant-table-small{border:1px solid #e8e8e8;border-radius:4px}.ant-table-small>.ant-table-title{border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table{border:0}.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr{border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort{background-color:rgba(0,0,0,0.01)}.ant-table-small>.ant-table-content .ant-table-header{background-color:#fff}.ant-table-small>.ant-table-content .ant-table-placeholder,.ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:0}.ant-table-small.ant-table-bordered{border-right:0}.ant-table-small.ant-table-bordered .ant-table-title{border:0;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-content{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-footer{border:0;border-top:1px solid #e8e8e8;border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-placeholder{border-right:0;border-bottom:0;border-left:0}.ant-table-small.ant-table-bordered .ant-table-thead>tr>th:last-child,.ant-table-small.ant-table-bordered .ant-table-tbody>tr>td:last-child{border-right:0}.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-thead>tr>th:last-child,.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-tbody>tr>td:last-child{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-fixed-right{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-container{height:40px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab{height:40px;line-height:38px;background:#fafafa;border:1px solid #e8e8e8;border-radius:4px 4px 0 0;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{height:40px;color:#3b5998;background:#fff;border-color:#e8e8e8;border-bottom:1px solid #fff}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active::before{border-top:2px solid transparent}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#3b5998;color:rgba(0,0,0,0.25)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x{height:14px;color:rgba(0,0,0,0.45);font-size:12px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x:hover{color:rgba(0,0,0,0.85)}.ant-tabs-extra-content .ant-tabs-new-tab{color:rgba(0,0,0,0.65);border:1px solid #e8e8e8;border-radius:2px}.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#3b5998;border-color:#3b5998}.ant-tabs.ant-tabs-card .ant-tabs-extra-content{line-height:40px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{border-bottom:1px solid #e8e8e8}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab{border-right:0;border-radius:4px 0 0 4px}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{border-left:0;border-radius:0 4px 4px 0}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab{border-top:0;border-bottom:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#3b5998}.ant-transfer-customize-list .ant-transfer-list{min-height:200px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small{border:0;border-radius:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th{background:#fafafa}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #e8e8e8}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper{border-radius:0}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper:hover::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper:hover::before{background:#ccd2d9}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper.ant-tree-node-selected,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper.ant-tree-node-selected{color:#fff}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper::before{height:24px}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-switcher,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-switcher{color:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox .ant-tree-checkbox-inner,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox .ant-tree-checkbox-inner{border-color:#3b5998}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked::after,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked::after{border-color:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border-color:#3b5998}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-node-content-wrapper::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-node-content-wrapper::before{background:#3b5998}.ant-pro-global-footer-links a{color:rgba(0,0,0,0.45)}.ant-pro-global-footer-links a:hover{color:rgba(0,0,0,0.65)}.ant-pro-global-footer-copyright{color:rgba(0,0,0,0.45);font-size:14px}.ant-pro-global-header{height:64px;background:#fff;box-shadow:0 1px 4px rgba(0,21,41,0.08)}.ant-pro-global-header-logo{height:64px;line-height:64px}.ant-pro-global-header-trigger{height:64px}.ant-pro-global-header-trigger:hover{background:#fff}.ant-pro-global-header .dark{height:64px}.ant-pro-global-header .dark .action:hover,.ant-pro-global-header .dark .action.opened{background:#3b5998}.ant-pro-page-header-wrap-page-header-warp{background-color:#fff}.ant-pro-setting-drawer-content{background:#fff}.ant-pro-setting-drawer-block-checbox{background:#fff}.ant-pro-setting-drawer-block-checbox-item{border-radius:4px}.ant-pro-setting-drawer-block-checbox-selectIcon{color:#3b5998}.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#3b5998}.ant-pro-setting-drawer-color_block{border-radius:4px}.ant-pro-setting-drawer-title{color:rgba(0,0,0,0.85)}.ant-pro-setting-drawer-handle{background:#3b5998;border-radius:4px 0 0 4px}.ant-pro-sider-menu-logo{background:#001529}.ant-pro-sider-menu-sider.fix-sider-bar>.ant-menu-root :not(.ant-pro-sider-menu-link-menu){height:calc(100vh - 64px)}.ant-pro-sider-menu-sider.fix-sider-bar .ant-menu-inline{border-right:0}.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#3b5998}.ant-pro-sider-menu-sider.light .ant-menu-light{border-right-color:transparent}.ant-pro-sider-menu .top-nav-menu li.ant-menu-item{height:64px;line-height:64px}.ant-pro-sider-menu .drawer .drawer-content{background:#001529}.ant-pro-sider-menu .ant-menu-item .sider-menu-item-img+span,.ant-pro-sider-menu .ant-menu-submenu-title .sider-menu-item-img+span{transition:opacity .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-pro-top-nav-header{height:64px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-pro-top-nav-header .ant-menu-submenu.ant-menu-submenu-horizontal{line-height:64px}.ant-pro-top-nav-header.light{background-color:#fff}.ant-pro-top-nav-header-main{height:64px}.ant-pro-top-nav-header-logo{height:64px;line-height:64px}.ant-pro-top-nav-header-logo h1{color:#fff}.ant-pro-top-nav-header-menu .ant-menu.ant-menu-horizontal{height:64px;line-height:64px;border:0}.ant-pro-basicLayout:not(".ant-pro-basicLayout-mobile") ::-webkit-scrollbar-track{border-radius:3px}.ant-pro-basicLayout:not(".ant-pro-basicLayout-mobile") ::-webkit-scrollbar-thumb{border-radius:3px}.ant-pro-basicLayout .ant-layout-header:not(.ant-pro-top-menu){background:#fff}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children{min-height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children.ant-pro-basicLayout-fix-siderbar{height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .tech-page-container{height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children.ant-pro-basicLayout-has-header .tech-page-container{height:calc(100vh - 64px - 64px)}.ant-pro-setting-drawer-content .theme-color .theme-color-block{border-radius:2px}.antd-pro-components-tutorial-tutorial-row{border-bottom:1px solid #eee}.antd-pro-components-tutorial-tutorial-img{border-radius:5px}.antd-pro-components-tutorial-tutorial-action_area{border-radius:5px;border:2px dashed #999} \ No newline at end of file diff --git a/public/assets/admin/theme/default.css b/public/assets/admin/theme/default.css deleted file mode 100644 index 626cd95..0000000 --- a/public/assets/admin/theme/default.css +++ /dev/null @@ -1,2 +0,0 @@ -/* antd */ -.ant-affix{z-index:10}.ant-alert{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-radius:4px}.ant-alert-icon{top:11.5px}.ant-alert-description{font-size:14px}.ant-alert-success{background-color:#f6ffed;border:1px solid #b7eb8f}.ant-alert-success .ant-alert-icon{color:#52c41a}.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}.ant-alert-info .ant-alert-icon{color:#1890ff}.ant-alert-warning{background-color:#fffbe6;border:1px solid #ffe58f}.ant-alert-warning .ant-alert-icon{color:#faad14}.ant-alert-error{background-color:#fff1f0;border:1px solid #ffa39e}.ant-alert-error .ant-alert-icon{color:#f5222d}.ant-alert-close-icon{font-size:12px}.ant-alert-close-icon .anticon-close{color:rgba(0,0,0,0.45)}.ant-alert-close-icon .anticon-close:hover{color:rgba(0,0,0,0.75)}.ant-alert-close-text{color:rgba(0,0,0,0.45)}.ant-alert-close-text:hover{color:rgba(0,0,0,0.75)}.ant-alert-with-description{color:rgba(0,0,0,0.65);line-height:1.5;border-radius:4px}.ant-alert-with-description .ant-alert-close-icon{font-size:14px}.ant-alert-with-description .ant-alert-message{color:rgba(0,0,0,0.85);font-size:16px}.ant-alert-message{color:rgba(0,0,0,0.85)}.ant-alert.ant-alert-close{transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-alert-slide-up-leave{animation:antAlertSlideUpOut .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-alert-banner{border:0;border-radius:0}.ant-anchor{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-anchor-wrapper{background-color:#fff}.ant-anchor-ink::before{width:2px;background-color:#e8e8e8}.ant-anchor-ink-ball{background-color:#fff;border:2px solid #0665d0;border-radius:8px}.ant-anchor-link-title{color:rgba(0,0,0,0.65)}.ant-anchor-link-active>.ant-anchor-link-title{color:#0665d0}.ant-select-auto-complete{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-auto-complete.ant-select .ant-select-selection{border:0}.ant-select-auto-complete.ant-select .ant-select-selection__rendered{line-height:32px}.ant-select-auto-complete.ant-select .ant-input{height:32px;line-height:1.5;border-width:1px}.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#2a84de;border-right-width:1px !important}.ant-select-auto-complete.ant-select .ant-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-select-auto-complete.ant-select .ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-select-auto-complete.ant-select-lg .ant-select-selection__rendered{line-height:40px}.ant-select-auto-complete.ant-select-lg .ant-input{height:40px}.ant-select-auto-complete.ant-select-sm .ant-select-selection__rendered{line-height:24px}.ant-select-auto-complete.ant-select-sm .ant-input{height:24px}.ant-avatar{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#fff;background:#ccc;width:32px;height:32px;line-height:32px;border-radius:50%}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar-lg{width:40px;height:40px;line-height:40px;border-radius:50%}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-sm{width:24px;height:24px;line-height:24px;border-radius:50%}.ant-avatar-sm.ant-avatar-icon{font-size:14px}.ant-avatar-square{border-radius:4px}.ant-back-top{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:10}.ant-back-top-content{color:#fff;background-color:rgba(0,0,0,0.45);border-radius:20px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-back-top-content:hover{background-color:rgba(0,0,0,0.65);transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-badge{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-badge-count{z-index:10;min-width:20px;height:20px;color:#fff;font-weight:normal;font-size:12px;line-height:20px;background:#f5222d;border-radius:10px;box-shadow:0 0 0 1px #fff}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-dot{z-index:10;width:6px;height:6px;background:#f5222d;border-radius:100%;box-shadow:0 0 0 1px #fff}.ant-badge-status-dot{width:6px;height:6px;border-radius:50%}.ant-badge-status-success{background-color:#52c41a}.ant-badge-status-processing{background-color:#1890ff}.ant-badge-status-processing::after{border:1px solid #1890ff;border-radius:50%}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#f5222d}.ant-badge-status-warning{background-color:#faad14}.ant-badge-status-pink{background:#eb2f96}.ant-badge-status-magenta{background:#eb2f96}.ant-badge-status-red{background:#f5222d}.ant-badge-status-volcano{background:#fa541c}.ant-badge-status-orange{background:#fa8c16}.ant-badge-status-yellow{background:#fadb14}.ant-badge-status-gold{background:#faad14}.ant-badge-status-cyan{background:#13c2c2}.ant-badge-status-lime{background:#a0d911}.ant-badge-status-green{background:#52c41a}.ant-badge-status-blue{background:#1890ff}.ant-badge-status-geekblue{background:#2f54eb}.ant-badge-status-purple{background:#722ed1}.ant-badge-status-text{color:rgba(0,0,0,0.65);font-size:14px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{animation:antZoomBadgeIn .3s cubic-bezier(0.12,0.4,0.29,1.46)}.ant-badge-zoom-leave{animation:antZoomBadgeOut .3s cubic-bezier(0.71,-0.46,0.88,0.6)}.ant-scroll-number-only{height:20px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-scroll-number-only>p{height:20px}.ant-breadcrumb{box-sizing:border-box;color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:rgba(0,0,0,0.45);font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:rgba(0,0,0,0.45)}.ant-breadcrumb a:hover{color:#2a84de}.ant-breadcrumb>span:last-child{color:rgba(0,0,0,0.65)}.ant-breadcrumb>span:last-child a{color:rgba(0,0,0,0.65)}.ant-breadcrumb-separator{color:rgba(0,0,0,0.45)}.ant-btn{line-height:1.5;font-weight:400;border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,0.015);transition:all .3s cubic-bezier(0.645,0.045,0.355,1);height:32px;font-size:14px;border-radius:4px;color:rgba(0,0,0,0.65);background-color:#fff;border-color:#d9d9d9}.ant-btn-lg{height:40px;font-size:16px;border-radius:4px}.ant-btn-sm{height:24px;font-size:14px;border-radius:4px}.ant-btn:hover,.ant-btn:focus{color:#2a84de;background-color:#fff;border-color:#2a84de}.ant-btn:active,.ant-btn.active{color:#004aab;background-color:#fff;border-color:#004aab}.ant-btn-disabled,.ant-btn.disabled,.ant-btn[disabled],.ant-btn-disabled:hover,.ant-btn.disabled:hover,.ant-btn[disabled]:hover,.ant-btn-disabled:focus,.ant-btn.disabled:focus,.ant-btn[disabled]:focus,.ant-btn-disabled:active,.ant-btn.disabled:active,.ant-btn[disabled]:active,.ant-btn-disabled.active,.ant-btn.disabled.active,.ant-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn:hover,.ant-btn:focus,.ant-btn:active,.ant-btn.active{background:#fff}.ant-btn-primary{color:#fff;background-color:#0665d0;border-color:#0665d0;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045)}.ant-btn-primary:hover,.ant-btn-primary:focus{color:#fff;background-color:#2a84de;border-color:#2a84de}.ant-btn-primary:active,.ant-btn-primary.active{color:#fff;background-color:#004aab;border-color:#004aab}.ant-btn-primary-disabled,.ant-btn-primary.disabled,.ant-btn-primary[disabled],.ant-btn-primary-disabled:hover,.ant-btn-primary.disabled:hover,.ant-btn-primary[disabled]:hover,.ant-btn-primary-disabled:focus,.ant-btn-primary.disabled:focus,.ant-btn-primary[disabled]:focus,.ant-btn-primary-disabled:active,.ant-btn-primary.disabled:active,.ant-btn-primary[disabled]:active,.ant-btn-primary-disabled.active,.ant-btn-primary.disabled.active,.ant-btn-primary[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#2a84de;border-left-color:#2a84de}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#2a84de}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary:last-child:not(:first-child),.ant-btn-group .ant-btn-primary+.ant-btn-primary{border-left-color:#2a84de}.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:rgba(0,0,0,0.65);background-color:transparent;border-color:#d9d9d9}.ant-btn-ghost:hover,.ant-btn-ghost:focus{color:#2a84de;background-color:transparent;border-color:#2a84de}.ant-btn-ghost:active,.ant-btn-ghost.active{color:#004aab;background-color:transparent;border-color:#004aab}.ant-btn-ghost-disabled,.ant-btn-ghost.disabled,.ant-btn-ghost[disabled],.ant-btn-ghost-disabled:hover,.ant-btn-ghost.disabled:hover,.ant-btn-ghost[disabled]:hover,.ant-btn-ghost-disabled:focus,.ant-btn-ghost.disabled:focus,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost-disabled:active,.ant-btn-ghost.disabled:active,.ant-btn-ghost[disabled]:active,.ant-btn-ghost-disabled.active,.ant-btn-ghost.disabled.active,.ant-btn-ghost[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-dashed{color:rgba(0,0,0,0.65);background-color:#fff;border-color:#d9d9d9;border-style:dashed}.ant-btn-dashed:hover,.ant-btn-dashed:focus{color:#2a84de;background-color:#fff;border-color:#2a84de}.ant-btn-dashed:active,.ant-btn-dashed.active{color:#004aab;background-color:#fff;border-color:#004aab}.ant-btn-dashed-disabled,.ant-btn-dashed.disabled,.ant-btn-dashed[disabled],.ant-btn-dashed-disabled:hover,.ant-btn-dashed.disabled:hover,.ant-btn-dashed[disabled]:hover,.ant-btn-dashed-disabled:focus,.ant-btn-dashed.disabled:focus,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed-disabled:active,.ant-btn-dashed.disabled:active,.ant-btn-dashed[disabled]:active,.ant-btn-dashed-disabled.active,.ant-btn-dashed.disabled.active,.ant-btn-dashed[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-danger{color:#fff;background-color:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045)}.ant-btn-danger:hover,.ant-btn-danger:focus{color:#fff;background-color:#ff7875;border-color:#ff7875}.ant-btn-danger:active,.ant-btn-danger.active{color:#fff;background-color:#d9363e;border-color:#d9363e}.ant-btn-danger-disabled,.ant-btn-danger.disabled,.ant-btn-danger[disabled],.ant-btn-danger-disabled:hover,.ant-btn-danger.disabled:hover,.ant-btn-danger[disabled]:hover,.ant-btn-danger-disabled:focus,.ant-btn-danger.disabled:focus,.ant-btn-danger[disabled]:focus,.ant-btn-danger-disabled:active,.ant-btn-danger.disabled:active,.ant-btn-danger[disabled]:active,.ant-btn-danger-disabled.active,.ant-btn-danger.disabled.active,.ant-btn-danger[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link{color:#0665d0;background-color:transparent;border-color:transparent}.ant-btn-link:hover,.ant-btn-link:focus{color:#2a84de;background-color:transparent;border-color:#2a84de}.ant-btn-link:active,.ant-btn-link.active{color:#004aab;background-color:transparent;border-color:#004aab}.ant-btn-link-disabled,.ant-btn-link.disabled,.ant-btn-link[disabled],.ant-btn-link-disabled:hover,.ant-btn-link.disabled:hover,.ant-btn-link[disabled]:hover,.ant-btn-link-disabled:focus,.ant-btn-link.disabled:focus,.ant-btn-link[disabled]:focus,.ant-btn-link-disabled:active,.ant-btn-link.disabled:active,.ant-btn-link[disabled]:active,.ant-btn-link-disabled.active,.ant-btn-link.disabled.active,.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:hover,.ant-btn-link:focus,.ant-btn-link:active{border-color:transparent}.ant-btn-link-disabled,.ant-btn-link.disabled,.ant-btn-link[disabled],.ant-btn-link-disabled:hover,.ant-btn-link.disabled:hover,.ant-btn-link[disabled]:hover,.ant-btn-link-disabled:focus,.ant-btn-link.disabled:focus,.ant-btn-link[disabled]:focus,.ant-btn-link-disabled:active,.ant-btn-link.disabled:active,.ant-btn-link[disabled]:active,.ant-btn-link-disabled.active,.ant-btn-link.disabled.active,.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:transparent;border-color:transparent}.ant-btn-icon-only{width:32px;height:32px;font-size:16px;border-radius:4px}.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px;font-size:18px;border-radius:4px}.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px;font-size:14px;border-radius:4px}.ant-btn-round{height:32px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-lg{height:40px;font-size:16px;border-radius:40px}.ant-btn-round.ant-btn-sm{height:24px;font-size:14px;border-radius:24px}.ant-btn-circle,.ant-btn-circle-outline{min-width:32px;border-radius:50%}.ant-btn-circle.ant-btn-lg,.ant-btn-circle-outline.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle.ant-btn-sm,.ant-btn-circle-outline.ant-btn-sm{min-width:24px;border-radius:50%}.ant-btn::before{background:#fff;border-radius:inherit}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{height:40px;font-size:16px;border-radius:0;line-height:38px}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{height:24px;font-size:14px;border-radius:0;line-height:22px}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:only-child{border-radius:4px}.ant-btn-group>span:only-child>.ant-btn{border-radius:4px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-btn-group-sm>.ant-btn:only-child{border-radius:4px}.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:4px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.ant-btn-background-ghost{color:#fff;border-color:#fff}.ant-btn-background-ghost.ant-btn-primary{color:#0665d0;background-color:transparent;border-color:#0665d0}.ant-btn-background-ghost.ant-btn-primary:hover,.ant-btn-background-ghost.ant-btn-primary:focus{color:#2a84de;background-color:transparent;border-color:#2a84de}.ant-btn-background-ghost.ant-btn-primary:active,.ant-btn-background-ghost.ant-btn-primary.active{color:#004aab;background-color:transparent;border-color:#004aab}.ant-btn-background-ghost.ant-btn-primary-disabled,.ant-btn-background-ghost.ant-btn-primary.disabled,.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary-disabled:hover,.ant-btn-background-ghost.ant-btn-primary.disabled:hover,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover,.ant-btn-background-ghost.ant-btn-primary-disabled:focus,.ant-btn-background-ghost.ant-btn-primary.disabled:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary-disabled:active,.ant-btn-background-ghost.ant-btn-primary.disabled:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary-disabled.active,.ant-btn-background-ghost.ant-btn-primary.disabled.active,.ant-btn-background-ghost.ant-btn-primary[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;background-color:transparent;border-color:#ff4d4f}.ant-btn-background-ghost.ant-btn-danger:hover,.ant-btn-background-ghost.ant-btn-danger:focus{color:#ff7875;background-color:transparent;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:active,.ant-btn-background-ghost.ant-btn-danger.active{color:#d9363e;background-color:transparent;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-danger-disabled,.ant-btn-background-ghost.ant-btn-danger.disabled,.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger-disabled:hover,.ant-btn-background-ghost.ant-btn-danger.disabled:hover,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover,.ant-btn-background-ghost.ant-btn-danger-disabled:focus,.ant-btn-background-ghost.ant-btn-danger.disabled:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger-disabled:active,.ant-btn-background-ghost.ant-btn-danger.disabled:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger-disabled.active,.ant-btn-background-ghost.ant-btn-danger.disabled.active,.ant-btn-background-ghost.ant-btn-danger[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-background-ghost.ant-btn-link{color:#0665d0;background-color:transparent;border-color:transparent;color:#fff}.ant-btn-background-ghost.ant-btn-link:hover,.ant-btn-background-ghost.ant-btn-link:focus{color:#2a84de;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link:active,.ant-btn-background-ghost.ant-btn-link.active{color:#004aab;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link-disabled,.ant-btn-background-ghost.ant-btn-link.disabled,.ant-btn-background-ghost.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-link-disabled:hover,.ant-btn-background-ghost.ant-btn-link.disabled:hover,.ant-btn-background-ghost.ant-btn-link[disabled]:hover,.ant-btn-background-ghost.ant-btn-link-disabled:focus,.ant-btn-background-ghost.ant-btn-link.disabled:focus,.ant-btn-background-ghost.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-link-disabled:active,.ant-btn-background-ghost.ant-btn-link.disabled:active,.ant-btn-background-ghost.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-link-disabled.active,.ant-btn-background-ghost.ant-btn-link.disabled.active,.ant-btn-background-ghost.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}a.ant-btn{line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-fullcalendar{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-top:1px solid #d9d9d9}.ant-fullcalendar table{border-collapse:collapse}.ant-fullcalendar table,.ant-fullcalendar th,.ant-fullcalendar td{border:0}.ant-fullcalendar-calendar-table{border-spacing:0}.ant-fullcalendar-value{color:rgba(0,0,0,0.65);border-radius:2px}.ant-fullcalendar-value:hover{background:#e6f6ff}.ant-fullcalendar-value:active{color:#fff;background:#0665d0}.ant-fullcalendar-today .ant-fullcalendar-value,.ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-value{box-shadow:0 0 0 1px #0665d0 inset}.ant-fullcalendar-selected-day .ant-fullcalendar-value,.ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value{color:#fff;background:#0665d0}.ant-fullcalendar-disabled-cell-first-of-row .ant-fullcalendar-value{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-fullcalendar-disabled-cell-last-of-row .ant-fullcalendar-value{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-fullcalendar-last-month-cell .ant-fullcalendar-value,.ant-fullcalendar-next-month-btn-day .ant-fullcalendar-value{color:rgba(0,0,0,0.25)}.ant-fullcalendar-month-panel-table{border-collapse:separate}.ant-fullcalendar-fullscreen{border-top:0}.ant-fullcalendar-fullscreen .ant-fullcalendar-header label.ant-radio-button{height:32px;line-height:30px}.ant-fullcalendar-fullscreen .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-date{color:rgba(0,0,0,0.65);border-top:2px solid #e8e8e8}.ant-fullcalendar-fullscreen .ant-fullcalendar-month:hover,.ant-fullcalendar-fullscreen .ant-fullcalendar-date:hover{background:#e6f6ff}.ant-fullcalendar-fullscreen .ant-fullcalendar-month:active,.ant-fullcalendar-fullscreen .ant-fullcalendar-date:active{background:#abddff}.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-value{color:rgba(0,0,0,0.65)}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-date{border-top-color:#0665d0}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-date{background:#e6f6ff}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value,.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-value{color:#0665d0}.ant-fullcalendar-fullscreen .ant-fullcalendar-last-month-cell .ant-fullcalendar-date,.ant-fullcalendar-fullscreen .ant-fullcalendar-next-month-btn-day .ant-fullcalendar-date{color:rgba(0,0,0,0.25)}.ant-fullcalendar-disabled-cell .ant-fullcalendar-value{color:rgba(0,0,0,0.25);border-radius:0}.ant-card{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background:#fff;border-radius:2px}.ant-card-hoverable:hover{border-color:rgba(0,0,0,0.09);box-shadow:0 2px 8px rgba(0,0,0,0.09)}.ant-card-bordered{border:1px solid #e8e8e8}.ant-card-head{min-height:48px;color:rgba(0,0,0,0.85);font-size:16px;background:transparent;border-bottom:1px solid #e8e8e8;border-radius:2px 2px 0 0}.ant-card-head .ant-tabs{color:rgba(0,0,0,0.65);font-size:14px}.ant-card-head .ant-tabs-bar{border-bottom:1px solid #e8e8e8}.ant-card-extra{color:rgba(0,0,0,0.65);font-size:14px}.ant-card-grid{border:0;border-radius:0;box-shadow:1px 0 0 0 #e8e8e8,0 1px 0 0 #e8e8e8,1px 1px 0 0 #e8e8e8,1px 0 0 0 #e8e8e8 inset,0 1px 0 0 #e8e8e8 inset}.ant-card-grid-hoverable:hover{box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{background:#fafafa;border-top:1px solid #e8e8e8}.ant-card-actions>li{color:rgba(0,0,0,0.45)}.ant-card-actions>li>span:hover{color:#0665d0}.ant-card-actions>li>span a:not(.ant-btn),.ant-card-actions>li>span>.anticon{color:rgba(0,0,0,0.45)}.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#0665d0}.ant-card-actions>li>span>.anticon{font-size:16px}.ant-card-actions>li:not(:last-child){border-right:1px solid #e8e8e8}.ant-card-type-inner .ant-card-head{background:#fafafa}.ant-card-type-inner .ant-card-head-title{font-size:14px}.ant-card-meta-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-card-meta-description{color:rgba(0,0,0,0.45)}.ant-card-loading-block{background:linear-gradient(90deg,rgba(207,216,220,0.2),rgba(207,216,220,0.4),rgba(207,216,220,0.2));border-radius:2px}.ant-carousel{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-carousel .slick-slider{box-sizing:border-box}.ant-carousel .slick-vertical .slick-slide{border:1px solid transparent}.ant-carousel .slick-prev,.ant-carousel .slick-next{border:0}.ant-carousel .slick-dots{height:3px}.ant-carousel .slick-dots li button{width:16px;height:3px;background:#fff;border:0;border-radius:1px}.ant-carousel .slick-dots li.slick-active button{width:24px;background:#fff}.ant-carousel-vertical .slick-dots{width:3px}.ant-carousel-vertical .slick-dots li button{width:3px;height:16px}.ant-carousel-vertical .slick-dots li.slick-active button{width:3px;height:24px}.ant-cascader{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-cascader-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background-color:#fff;border-radius:4px}.ant-cascader-picker-disabled{color:rgba(0,0,0,0.25);background:#f5f5f5}.ant-cascader-picker:focus .ant-cascader-input{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-cascader-picker-show-search.ant-cascader-picker-focused{color:rgba(0,0,0,0.25)}.ant-cascader-picker-clear{color:rgba(0,0,0,0.25);font-size:12px;background:#fff}.ant-cascader-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-cascader-picker-arrow{color:rgba(0,0,0,0.25)}.ant-cascader-picker-label:hover+.ant-cascader-input{border-color:#2a84de;border-right-width:1px !important}.ant-cascader-menus{z-index:1050;font-size:14px;background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-cascader-menu{border-right:1px solid #e8e8e8}.ant-cascader-menu:first-child{border-radius:4px 0 0 4px}.ant-cascader-menu:last-child{border-right-color:transparent;border-radius:0 4px 4px 0}.ant-cascader-menu:only-child{border-radius:4px}.ant-cascader-menu-item:hover{background:#e6f6ff}.ant-cascader-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover{font-weight:600;background-color:#fafafa}.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-loading-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45)}:root .ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,:root .ant-cascader-menu-item-loading-icon{font-size:12px}.ant-cascader-menu-item .ant-cascader-menu-item-keyword{color:#f5222d}.ant-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner,.ant-checkbox-input:focus+.ant-checkbox-inner{border-color:#0665d0}.ant-checkbox-checked::after{border:1px solid #0665d0;border-radius:2px}.ant-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-checkbox-checked .ant-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-checkbox-checked .ant-checkbox-inner{background-color:#0665d0;border-color:#0665d0}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-checkbox-disabled .ant-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner::after{width:8px;height:8px;background-color:#0665d0;border:0}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-collapse{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:4px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 4px 4px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{color:rgba(0,0,0,0.85)}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{color:inherit;font-size:12px}.ant-collapse-anim-active{transition:height .2s cubic-bezier(0.215,0.61,0.355,1)}.ant-collapse-content{color:rgba(0,0,0,0.65);background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 4px 4px}.ant-collapse-borderless{background-color:#fff;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{border-top:0}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:rgba(0,0,0,0.25)}.ant-comment-avatar img{border-radius:50%}.ant-comment-content{font-size:14px}.ant-comment-content-author{font-size:14px}.ant-comment-content-author>a,.ant-comment-content-author>span{font-size:12px}.ant-comment-content-author-name{color:rgba(0,0,0,0.45);font-size:14px}.ant-comment-content-author-name>*{color:rgba(0,0,0,0.45)}.ant-comment-content-author-name>*:hover{color:rgba(0,0,0,0.45)}.ant-comment-content-author-time{color:#ccc}.ant-comment-actions>li{color:rgba(0,0,0,0.45)}.ant-comment-actions>li>span{color:rgba(0,0,0,0.45);font-size:12px}.ant-comment-actions>li>span:hover{color:#595959}.ant-descriptions-title{color:rgba(0,0,0,0.85);font-size:16px;line-height:1.5}.ant-descriptions-view{border-radius:4px}.ant-descriptions-row:last-child{border-bottom:0}.ant-descriptions-item-label{color:rgba(0,0,0,0.85);font-size:14px;line-height:1.5}.ant-descriptions-item-content{color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-item-label,.ant-descriptions-bordered .ant-descriptions-item-content{border-right:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-item-label:last-child,.ant-descriptions-bordered .ant-descriptions-item-content:last-child{border-right:0}.ant-descriptions-bordered .ant-descriptions-item-label{background-color:#fafafa}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:0}.ant-divider{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background:#e8e8e8}.ant-divider-horizontal.ant-divider-with-text-center,.ant-divider-horizontal.ant-divider-with-text-left,.ant-divider-horizontal.ant-divider-with-text-right{color:rgba(0,0,0,0.85);font-size:16px}.ant-divider-horizontal.ant-divider-with-text-center::before,.ant-divider-horizontal.ant-divider-with-text-left::before,.ant-divider-horizontal.ant-divider-with-text-right::before,.ant-divider-horizontal.ant-divider-with-text-center::after,.ant-divider-horizontal.ant-divider-with-text-left::after,.ant-divider-horizontal.ant-divider-with-text-right::after{border-top:1px solid #e8e8e8}.ant-divider-dashed{border-color:#e8e8e8;border-style:dashed;border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed{border-top:0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed::after,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed::after,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed::after{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px}.ant-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-wrap .ant-btn>.anticon-down{font-size:12px}.ant-dropdown-menu{background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-dropdown-menu-item-group-title{color:rgba(0,0,0,0.45)}.ant-dropdown-menu-submenu-popup{z-index:1050}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{color:rgba(0,0,0,0.65);font-size:14px;line-height:22px}.ant-dropdown-menu-item>a,.ant-dropdown-menu-submenu-title>a{color:rgba(0,0,0,0.65)}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected>a{color:#0665d0;background-color:#e6f6ff}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#e6f6ff}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,0.25)}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{background-color:#e8e8e8}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,0.45);font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,:root .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{font-size:12px}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,0.25);background-color:#fff}.ant-dropdown-trigger>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-trigger>.anticon.anticon-down,:root .ant-dropdown-link>.anticon.anticon-down{font-size:12px}.ant-dropdown-button .anticon.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-button .anticon.anticon-down{font-size:12px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a{color:rgba(255,255,255,0.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow::after{color:rgba(255,255,255,0.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover{color:#fff}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{color:#fff;background:#0665d0}.ant-empty{font-size:14px}.ant-empty-normal{color:rgba(0,0,0,0.25)}.ant-empty-small{color:rgba(0,0,0,0.25)}.ant-form{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-form legend{color:rgba(0,0,0,0.45);font-size:16px;border:0;border-bottom:1px solid #d9d9d9}.ant-form label{font-size:14px}.ant-form input[type="search"]{box-sizing:border-box}.ant-form output{color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5}.ant-form-item-required::before{color:#f5222d;font-size:14px}.ant-form-item-label>label{color:rgba(0,0,0,0.85)}.ant-form-item{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-form-item label>.anticon{font-size:14px}.ant-form-item-control{line-height:40px}.ant-form-item-label{line-height:39.9999px}.ant-form-explain,.ant-form-extra{min-height:22px;color:rgba(0,0,0,0.45);font-size:14px;line-height:1.5;transition:color .3s cubic-bezier(0.215,0.61,0.355,1)}.ant-form-vertical .ant-form-item-label,.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label{line-height:1.5}.ant-form-vertical .ant-form-item-control{line-height:1.5}@media(max-width:575px){.ant-form-item-label{line-height:1.5}.ant-col-xs-24.ant-form-item-label{line-height:1.5}}@media(max-width:767px){.ant-col-sm-24.ant-form-item-label{line-height:1.5}}@media(max-width:991px){.ant-col-md-24.ant-form-item-label{line-height:1.5}}@media(max-width:1199px){.ant-col-lg-24.ant-form-item-label{line-height:1.5}}@media(max-width:1599px){.ant-col-xl-24.ant-form-item-label{line-height:1.5}}.has-success.has-feedback .ant-form-item-children-icon,.has-warning.has-feedback .ant-form-item-children-icon,.has-error.has-feedback .ant-form-item-children-icon,.is-validating.has-feedback .ant-form-item-children-icon{width:32px;font-size:14px;animation:zoomIn .3s cubic-bezier(0.12,0.4,0.29,1.46)}.has-success.has-feedback .ant-form-item-children-icon{color:#52c41a}.has-warning .ant-form-explain,.has-warning .ant-form-split{color:#faad14}.has-warning .ant-input,.has-warning .ant-input:hover{background-color:#fff;border-color:#faad14}.has-warning .ant-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input:not([disabled]):hover{border-color:#faad14}.has-warning .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-affix-wrapper .ant-input,.has-warning .ant-input-affix-wrapper .ant-input:hover{background-color:#fff;border-color:#faad14}.has-warning .ant-input-affix-wrapper .ant-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#faad14}.has-warning .ant-input-prefix{color:#faad14}.has-warning .ant-input-group-addon{color:#faad14;background-color:#fff;border-color:#faad14}.has-warning .has-feedback{color:#faad14}.has-warning.has-feedback .ant-form-item-children-icon{color:#faad14}.has-warning .ant-select-selection{border-color:#faad14}.has-warning .ant-select-selection:hover{border-color:#faad14}.has-warning .ant-select-open .ant-select-selection,.has-warning .ant-select-focused .ant-select-selection{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-calendar-picker-icon::after,.has-warning .ant-time-picker-icon::after,.has-warning .ant-picker-icon::after,.has-warning .ant-select-arrow,.has-warning .ant-cascader-picker-arrow{color:#faad14}.has-warning .ant-input-number,.has-warning .ant-time-picker-input{border-color:#faad14}.has-warning .ant-input-number-focused,.has-warning .ant-time-picker-input-focused,.has-warning .ant-input-number:focus,.has-warning .ant-time-picker-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-number:not([disabled]):hover,.has-warning .ant-time-picker-input:not([disabled]):hover{border-color:#faad14}.has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-error .ant-form-explain,.has-error .ant-form-split{color:#f5222d}.has-error .ant-input,.has-error .ant-input:hover{background-color:#fff;border-color:#f5222d}.has-error .ant-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input:not([disabled]):hover{border-color:#f5222d}.has-error .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-affix-wrapper .ant-input,.has-error .ant-input-affix-wrapper .ant-input:hover{background-color:#fff;border-color:#f5222d}.has-error .ant-input-affix-wrapper .ant-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#f5222d}.has-error .ant-input-prefix{color:#f5222d}.has-error .ant-input-group-addon{color:#f5222d;background-color:#fff;border-color:#f5222d}.has-error .has-feedback{color:#f5222d}.has-error.has-feedback .ant-form-item-children-icon{color:#f5222d}.has-error .ant-select-selection{border-color:#f5222d}.has-error .ant-select-selection:hover{border-color:#f5222d}.has-error .ant-select-open .ant-select-selection,.has-error .ant-select-focused .ant-select-selection{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:#f5222d}.has-error .ant-input-group-addon .ant-select-selection{border-color:transparent}.has-error .ant-calendar-picker-icon::after,.has-error .ant-time-picker-icon::after,.has-error .ant-picker-icon::after,.has-error .ant-select-arrow,.has-error .ant-cascader-picker-arrow{color:#f5222d}.has-error .ant-input-number,.has-error .ant-time-picker-input{border-color:#f5222d}.has-error .ant-input-number-focused,.has-error .ant-time-picker-input-focused,.has-error .ant-input-number:focus,.has-error .ant-time-picker-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-number:not([disabled]):hover,.has-error .ant-time-picker-input:not([disabled]):hover{border-color:#f5222d}.has-error .ant-mention-wrapper .ant-mention-editor,.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover{border-color:#f5222d}.has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-cascader-picker:focus .ant-cascader-input{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-transfer-list{border-color:#f5222d}.has-error .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#2a84de;border-right-width:1px !important}.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.is-validating.has-feedback .ant-form-item-children-icon{color:#0665d0}.show-help-enter,.show-help-appear{animation-duration:.3s}.show-help-leave{animation-duration:.3s}.show-help-enter.show-help-enter-active,.show-help-appear.show-help-appear-active{animation-name:antShowHelpIn}.show-help-leave.show-help-leave-active{animation-name:antShowHelpOut}.show-help-enter,.show-help-appear{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.show-help-leave{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-row{box-sizing:border-box}.ant-col-24{box-sizing:border-box;width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-order-24{order:24}.ant-col-23{box-sizing:border-box;width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-order-23{order:23}.ant-col-22{box-sizing:border-box;width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-order-22{order:22}.ant-col-21{box-sizing:border-box;width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-order-21{order:21}.ant-col-20{box-sizing:border-box;width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-order-20{order:20}.ant-col-19{box-sizing:border-box;width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-order-19{order:19}.ant-col-18{box-sizing:border-box;width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-order-18{order:18}.ant-col-17{box-sizing:border-box;width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-order-17{order:17}.ant-col-16{box-sizing:border-box;width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-order-16{order:16}.ant-col-15{box-sizing:border-box;width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-order-15{order:15}.ant-col-14{box-sizing:border-box;width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-order-14{order:14}.ant-col-13{box-sizing:border-box;width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-order-13{order:13}.ant-col-12{box-sizing:border-box;width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-order-12{order:12}.ant-col-11{box-sizing:border-box;width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-order-11{order:11}.ant-col-10{box-sizing:border-box;width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-order-10{order:10}.ant-col-9{box-sizing:border-box;width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-order-9{order:9}.ant-col-8{box-sizing:border-box;width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-order-8{order:8}.ant-col-7{box-sizing:border-box;width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-order-7{order:7}.ant-col-6{box-sizing:border-box;width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-order-6{order:6}.ant-col-5{box-sizing:border-box;width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-order-5{order:5}.ant-col-4{box-sizing:border-box;width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-order-4{order:4}.ant-col-3{box-sizing:border-box;width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-order-3{order:3}.ant-col-2{box-sizing:border-box;width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-order-2{order:2}.ant-col-1{box-sizing:border-box;width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-order-1{order:1}.ant-col-xs-24{box-sizing:border-box;width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-order-24{order:24}.ant-col-xs-23{box-sizing:border-box;width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-order-23{order:23}.ant-col-xs-22{box-sizing:border-box;width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-order-22{order:22}.ant-col-xs-21{box-sizing:border-box;width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-order-21{order:21}.ant-col-xs-20{box-sizing:border-box;width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-order-20{order:20}.ant-col-xs-19{box-sizing:border-box;width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-order-19{order:19}.ant-col-xs-18{box-sizing:border-box;width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-order-18{order:18}.ant-col-xs-17{box-sizing:border-box;width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-order-17{order:17}.ant-col-xs-16{box-sizing:border-box;width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-order-16{order:16}.ant-col-xs-15{box-sizing:border-box;width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-order-15{order:15}.ant-col-xs-14{box-sizing:border-box;width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-order-14{order:14}.ant-col-xs-13{box-sizing:border-box;width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-order-13{order:13}.ant-col-xs-12{box-sizing:border-box;width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-order-12{order:12}.ant-col-xs-11{box-sizing:border-box;width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-order-11{order:11}.ant-col-xs-10{box-sizing:border-box;width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-order-10{order:10}.ant-col-xs-9{box-sizing:border-box;width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-order-9{order:9}.ant-col-xs-8{box-sizing:border-box;width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-order-8{order:8}.ant-col-xs-7{box-sizing:border-box;width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-order-7{order:7}.ant-col-xs-6{box-sizing:border-box;width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-order-6{order:6}.ant-col-xs-5{box-sizing:border-box;width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-order-5{order:5}.ant-col-xs-4{box-sizing:border-box;width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-order-4{order:4}.ant-col-xs-3{box-sizing:border-box;width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-order-3{order:3}.ant-col-xs-2{box-sizing:border-box;width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-order-2{order:2}.ant-col-xs-1{box-sizing:border-box;width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-order-1{order:1}@media(min-width:576px){.ant-col-sm-24{box-sizing:border-box;width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-order-24{order:24}.ant-col-sm-23{box-sizing:border-box;width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-order-23{order:23}.ant-col-sm-22{box-sizing:border-box;width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-order-22{order:22}.ant-col-sm-21{box-sizing:border-box;width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-order-21{order:21}.ant-col-sm-20{box-sizing:border-box;width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-order-20{order:20}.ant-col-sm-19{box-sizing:border-box;width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-order-19{order:19}.ant-col-sm-18{box-sizing:border-box;width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-order-18{order:18}.ant-col-sm-17{box-sizing:border-box;width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-order-17{order:17}.ant-col-sm-16{box-sizing:border-box;width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-order-16{order:16}.ant-col-sm-15{box-sizing:border-box;width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-order-15{order:15}.ant-col-sm-14{box-sizing:border-box;width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-order-14{order:14}.ant-col-sm-13{box-sizing:border-box;width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-order-13{order:13}.ant-col-sm-12{box-sizing:border-box;width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-order-12{order:12}.ant-col-sm-11{box-sizing:border-box;width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-order-11{order:11}.ant-col-sm-10{box-sizing:border-box;width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-order-10{order:10}.ant-col-sm-9{box-sizing:border-box;width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-order-9{order:9}.ant-col-sm-8{box-sizing:border-box;width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-order-8{order:8}.ant-col-sm-7{box-sizing:border-box;width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-order-7{order:7}.ant-col-sm-6{box-sizing:border-box;width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-order-6{order:6}.ant-col-sm-5{box-sizing:border-box;width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-order-5{order:5}.ant-col-sm-4{box-sizing:border-box;width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-order-4{order:4}.ant-col-sm-3{box-sizing:border-box;width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-order-3{order:3}.ant-col-sm-2{box-sizing:border-box;width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-order-2{order:2}.ant-col-sm-1{box-sizing:border-box;width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-order-1{order:1}}@media(min-width:768px){.ant-col-md-24{box-sizing:border-box;width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-order-24{order:24}.ant-col-md-23{box-sizing:border-box;width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-order-23{order:23}.ant-col-md-22{box-sizing:border-box;width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-order-22{order:22}.ant-col-md-21{box-sizing:border-box;width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-order-21{order:21}.ant-col-md-20{box-sizing:border-box;width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-order-20{order:20}.ant-col-md-19{box-sizing:border-box;width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-order-19{order:19}.ant-col-md-18{box-sizing:border-box;width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-order-18{order:18}.ant-col-md-17{box-sizing:border-box;width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-order-17{order:17}.ant-col-md-16{box-sizing:border-box;width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-order-16{order:16}.ant-col-md-15{box-sizing:border-box;width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-order-15{order:15}.ant-col-md-14{box-sizing:border-box;width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-order-14{order:14}.ant-col-md-13{box-sizing:border-box;width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-order-13{order:13}.ant-col-md-12{box-sizing:border-box;width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-order-12{order:12}.ant-col-md-11{box-sizing:border-box;width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-order-11{order:11}.ant-col-md-10{box-sizing:border-box;width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-order-10{order:10}.ant-col-md-9{box-sizing:border-box;width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-order-9{order:9}.ant-col-md-8{box-sizing:border-box;width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-order-8{order:8}.ant-col-md-7{box-sizing:border-box;width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-order-7{order:7}.ant-col-md-6{box-sizing:border-box;width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-order-6{order:6}.ant-col-md-5{box-sizing:border-box;width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-order-5{order:5}.ant-col-md-4{box-sizing:border-box;width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-order-4{order:4}.ant-col-md-3{box-sizing:border-box;width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-order-3{order:3}.ant-col-md-2{box-sizing:border-box;width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-order-2{order:2}.ant-col-md-1{box-sizing:border-box;width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-order-1{order:1}}@media(min-width:992px){.ant-col-lg-24{box-sizing:border-box;width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-order-24{order:24}.ant-col-lg-23{box-sizing:border-box;width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-order-23{order:23}.ant-col-lg-22{box-sizing:border-box;width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-order-22{order:22}.ant-col-lg-21{box-sizing:border-box;width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-order-21{order:21}.ant-col-lg-20{box-sizing:border-box;width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-order-20{order:20}.ant-col-lg-19{box-sizing:border-box;width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-order-19{order:19}.ant-col-lg-18{box-sizing:border-box;width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-order-18{order:18}.ant-col-lg-17{box-sizing:border-box;width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-order-17{order:17}.ant-col-lg-16{box-sizing:border-box;width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-order-16{order:16}.ant-col-lg-15{box-sizing:border-box;width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-order-15{order:15}.ant-col-lg-14{box-sizing:border-box;width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-order-14{order:14}.ant-col-lg-13{box-sizing:border-box;width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-order-13{order:13}.ant-col-lg-12{box-sizing:border-box;width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-order-12{order:12}.ant-col-lg-11{box-sizing:border-box;width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-order-11{order:11}.ant-col-lg-10{box-sizing:border-box;width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-order-10{order:10}.ant-col-lg-9{box-sizing:border-box;width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-order-9{order:9}.ant-col-lg-8{box-sizing:border-box;width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-order-8{order:8}.ant-col-lg-7{box-sizing:border-box;width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-order-7{order:7}.ant-col-lg-6{box-sizing:border-box;width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-order-6{order:6}.ant-col-lg-5{box-sizing:border-box;width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-order-5{order:5}.ant-col-lg-4{box-sizing:border-box;width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-order-4{order:4}.ant-col-lg-3{box-sizing:border-box;width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-order-3{order:3}.ant-col-lg-2{box-sizing:border-box;width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-order-2{order:2}.ant-col-lg-1{box-sizing:border-box;width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-order-1{order:1}}@media(min-width:1200px){.ant-col-xl-24{box-sizing:border-box;width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-order-24{order:24}.ant-col-xl-23{box-sizing:border-box;width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-order-23{order:23}.ant-col-xl-22{box-sizing:border-box;width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-order-22{order:22}.ant-col-xl-21{box-sizing:border-box;width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-order-21{order:21}.ant-col-xl-20{box-sizing:border-box;width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-order-20{order:20}.ant-col-xl-19{box-sizing:border-box;width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-order-19{order:19}.ant-col-xl-18{box-sizing:border-box;width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-order-18{order:18}.ant-col-xl-17{box-sizing:border-box;width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-order-17{order:17}.ant-col-xl-16{box-sizing:border-box;width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-order-16{order:16}.ant-col-xl-15{box-sizing:border-box;width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-order-15{order:15}.ant-col-xl-14{box-sizing:border-box;width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-order-14{order:14}.ant-col-xl-13{box-sizing:border-box;width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-order-13{order:13}.ant-col-xl-12{box-sizing:border-box;width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-order-12{order:12}.ant-col-xl-11{box-sizing:border-box;width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-order-11{order:11}.ant-col-xl-10{box-sizing:border-box;width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-order-10{order:10}.ant-col-xl-9{box-sizing:border-box;width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-order-9{order:9}.ant-col-xl-8{box-sizing:border-box;width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-order-8{order:8}.ant-col-xl-7{box-sizing:border-box;width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-order-7{order:7}.ant-col-xl-6{box-sizing:border-box;width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-order-6{order:6}.ant-col-xl-5{box-sizing:border-box;width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-order-5{order:5}.ant-col-xl-4{box-sizing:border-box;width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-order-4{order:4}.ant-col-xl-3{box-sizing:border-box;width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-order-3{order:3}.ant-col-xl-2{box-sizing:border-box;width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-order-2{order:2}.ant-col-xl-1{box-sizing:border-box;width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-order-1{order:1}}@media(min-width:1600px){.ant-col-xxl-24{box-sizing:border-box;width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-order-24{order:24}.ant-col-xxl-23{box-sizing:border-box;width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-order-23{order:23}.ant-col-xxl-22{box-sizing:border-box;width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-order-22{order:22}.ant-col-xxl-21{box-sizing:border-box;width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-order-21{order:21}.ant-col-xxl-20{box-sizing:border-box;width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-order-20{order:20}.ant-col-xxl-19{box-sizing:border-box;width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-order-19{order:19}.ant-col-xxl-18{box-sizing:border-box;width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-order-18{order:18}.ant-col-xxl-17{box-sizing:border-box;width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-order-17{order:17}.ant-col-xxl-16{box-sizing:border-box;width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-order-16{order:16}.ant-col-xxl-15{box-sizing:border-box;width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-order-15{order:15}.ant-col-xxl-14{box-sizing:border-box;width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-order-14{order:14}.ant-col-xxl-13{box-sizing:border-box;width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-order-13{order:13}.ant-col-xxl-12{box-sizing:border-box;width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-order-12{order:12}.ant-col-xxl-11{box-sizing:border-box;width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-order-11{order:11}.ant-col-xxl-10{box-sizing:border-box;width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-order-10{order:10}.ant-col-xxl-9{box-sizing:border-box;width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-order-9{order:9}.ant-col-xxl-8{box-sizing:border-box;width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-order-8{order:8}.ant-col-xxl-7{box-sizing:border-box;width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-order-7{order:7}.ant-col-xxl-6{box-sizing:border-box;width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-order-6{order:6}.ant-col-xxl-5{box-sizing:border-box;width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-order-5{order:5}.ant-col-xxl-4{box-sizing:border-box;width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-order-4{order:4}.ant-col-xxl-3{box-sizing:border-box;width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-order-3{order:3}.ant-col-xxl-2{box-sizing:border-box;width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-order-2{order:2}.ant-col-xxl-1{box-sizing:border-box;width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-order-1{order:1}}.ant-input-number{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-input-number::-moz-placeholder{color:#bfbfbf}.ant-input-number:-ms-input-placeholder{color:#bfbfbf}.ant-input-number::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number:hover{border-color:#2a84de;border-right-width:1px !important}.ant-input-number:focus{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-input-number-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input-number[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-input-number{min-height:32px;line-height:1.5}.ant-input-number-lg{height:40px;font-size:16px}.ant-input-number-sm{height:24px}.ant-input-number-handler{color:rgba(0,0,0,0.45)}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-up-inner,.ant-input-number-handler:hover .ant-input-number-handler-down-inner{color:#2a84de}.ant-input-number-handler-up-inner,.ant-input-number-handler-down-inner{color:inherit;color:rgba(0,0,0,0.45)}.ant-input-number:hover{border-color:#2a84de;border-right-width:1px !important}.ant-input-number-focused{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-input-number-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input-number-input{height:30px;border:0;border-radius:4px}.ant-input-number-input::-moz-placeholder{color:#bfbfbf}.ant-input-number-input:-ms-input-placeholder{color:#bfbfbf}.ant-input-number-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number-lg{font-size:16px}.ant-input-number-lg input{height:38px}.ant-input-number-sm input{height:22px}.ant-input-number-handler-wrap{background:#fff;border-left:1px solid #d9d9d9;border-radius:0 4px 4px 0}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner{font-size:7px \9;transform:scale(0.58333333) rotate(0)}:root .ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,:root .ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner{font-size:12px}.ant-input-number-handler-down{border-top:1px solid #d9d9d9}.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner,.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner{color:rgba(0,0,0,0.25)}.ant-input{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-input::-moz-placeholder{color:#bfbfbf}.ant-input:-ms-input-placeholder{color:#bfbfbf}.ant-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input:hover{border-color:#2a84de;border-right-width:1px !important}.ant-input:focus{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-input{min-height:32px;line-height:1.5}.ant-input-lg{height:40px;font-size:16px}.ant-input-sm{height:24px}.ant-input-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-collapse:separate;border-spacing:0}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group .ant-input:focus{border-right-width:1px}.ant-input-group .ant-input:hover{border-right-width:1px}.ant-input-group-addon{color:rgba(0,0,0,0.65);font-size:14px;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:4px}.ant-input-group-addon .ant-select .ant-select-selection{border:1px solid transparent}.ant-input-group-addon .ant-select-open .ant-select-selection,.ant-input-group-addon .ant-select-focused .ant-select-selection{color:#0665d0}.ant-input-group>.ant-input:first-child,.ant-input-group-addon:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input:first-child .ant-select .ant-select-selection,.ant-input-group-addon:first-child .ant-select .ant-select-selection{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group>.ant-input:last-child,.ant-input-group-addon:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input:last-child .ant-select .ant-select-selection,.ant-input-group-addon:last-child .ant-select .ant-select-selection{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{height:40px;font-size:16px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{height:24px}.ant-input-group-lg .ant-select-selection--single{height:40px}.ant-input-group-sm .ant-select-selection--single{height:24px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact>*{border-radius:0}.ant-input-group.ant-input-group-compact>*:not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>*:first-child,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:first-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker:first-child .ant-time-picker-input{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-input-group.ant-input-group-compact>*:last-child,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:last-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker:last-child .ant-time-picker-input{border-right-width:1px;border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-input-affix-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#2a84de;border-right-width:1px !important}.ant-input-affix-wrapper .ant-input-prefix,.ant-input-affix-wrapper .ant-input-suffix{color:rgba(0,0,0,0.65)}.ant-input-affix-wrapper .ant-input-prefix :not(.anticon),.ant-input-affix-wrapper .ant-input-suffix :not(.anticon){line-height:1.5}.ant-input-password-icon{color:rgba(0,0,0,0.45)}.ant-input-clear-icon{color:rgba(0,0,0,0.25);font-size:12px}.ant-input-clear-icon:hover{color:rgba(0,0,0,0.45)}.ant-input-clear-icon:active{color:rgba(0,0,0,0.65)}.ant-layout{background:#f0f2f5}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout-header{height:64px;line-height:64px;background:#001529}.ant-layout-footer{color:rgba(0,0,0,0.65);font-size:14px;background:#f0f2f5}.ant-layout-sider{background:#001529}.ant-layout-sider-trigger{height:48px;color:#fff;line-height:48px;background:#002140}.ant-layout-sider-zero-width-trigger{top:64px;right:-36px;width:36px;height:42px;color:#fff;font-size:18px;line-height:42px;background:#001529;border-radius:0 4px 4px 0}.ant-layout-sider-zero-width-trigger:hover{background:#192c3e}.ant-layout-sider-zero-width-trigger-right{left:-36px;border-radius:4px 0 0 4px}.ant-list{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-list-empty-text{color:rgba(0,0,0,0.25);font-size:14px}.ant-list-item-content{color:rgba(0,0,0,0.65)}.ant-list-item-meta-title{color:rgba(0,0,0,0.65);font-size:14px}.ant-list-item-meta-title>a{color:rgba(0,0,0,0.65)}.ant-list-item-meta-title>a:hover{color:#0665d0}.ant-list-item-meta-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-list-item-action>li{color:rgba(0,0,0,0.45);font-size:14px}.ant-list-item-action-split{background-color:#e8e8e8}.ant-list-header{background:transparent}.ant-list-footer{background:transparent}.ant-list-empty{color:rgba(0,0,0,0.45)}.ant-list-split .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-list-split .ant-list-item:last-child{border-bottom:0}.ant-list-split .ant-list-header{border-bottom:1px solid #e8e8e8}.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #e8e8e8}.ant-list-vertical .ant-list-item-meta-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-list-grid .ant-col>.ant-list-item{border-bottom:0}.ant-mentions-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-mentions-wrapper .ant-mentions-editor{height:32px;color:rgba(0,0,0,0.65);font-size:14px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;min-height:32px;line-height:1.5}.ant-mentions-wrapper .ant-mentions-editor::-moz-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor:-ms-input-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor:hover{border-color:#2a84de;border-right-width:1px !important}.ant-mentions-wrapper .ant-mentions-editor:focus{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-mentions-wrapper .ant-mentions-editor-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper .ant-mentions-editor-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-wrapper .ant-mentions-editor[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper .ant-mentions-editor[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-mentions-wrapper .ant-mentions-editor{min-height:32px;line-height:1.5}.ant-mentions-wrapper .ant-mentions-editor-lg{height:40px;font-size:16px}.ant-mentions-wrapper .ant-mentions-editor-sm{height:24px}.ant-mentions-wrapper.ant-mentions-active:not(.disabled) .ant-mentions-editor{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-mentions-wrapper.disabled .ant-mentions-editor{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper.disabled .ant-mentions-editor:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-wrapper .public-DraftEditorPlaceholder-root .public-DraftEditorPlaceholder-inner{color:#bfbfbf}.ant-mentions-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-mentions-dropdown-notfound.ant-mentions-dropdown-item{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-notfound.ant-mentions-dropdown-item .anticon-loading{color:#0665d0}.ant-mentions-dropdown-item{color:rgba(0,0,0,0.65)}.ant-mentions-dropdown-item:hover{background-color:#e6f6ff}.ant-mentions-dropdown-item.focus,.ant-mentions-dropdown-item-active{background-color:#e6f6ff}.ant-mentions-dropdown-item-disabled{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-item-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-mentions-dropdown-item-selected,.ant-mentions-dropdown-item-selected:hover{color:rgba(0,0,0,0.65);background-color:#f5f5f5}.ant-mentions-dropdown-item-divider{background-color:#e8e8e8}.ant-mentions{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;line-height:1.5}.ant-mentions::-moz-placeholder{color:#bfbfbf}.ant-mentions:-ms-input-placeholder{color:#bfbfbf}.ant-mentions::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions:hover{border-color:#2a84de;border-right-width:1px !important}.ant-mentions:focus{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-mentions-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-mentions{min-height:32px;line-height:1.5}.ant-mentions-lg{height:40px;font-size:16px}.ant-mentions-sm{height:24px}.ant-mentions-disabled>textarea{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-disabled>textarea:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-focused{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-mentions>textarea,.ant-mentions-measure{min-height:30px}.ant-mentions>textarea{border:0}.ant-mentions>textarea::-moz-placeholder{color:#bfbfbf}.ant-mentions>textarea:-ms-input-placeholder{color:#bfbfbf}.ant-mentions>textarea::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions-dropdown{color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;box-sizing:border-box;font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-mentions-dropdown-menu-item{color:rgba(0,0,0,0.65)}.ant-mentions-dropdown-menu-item:hover{background-color:#e6f6ff}.ant-mentions-dropdown-menu-item:first-child{border-radius:4px 4px 0 0}.ant-mentions-dropdown-menu-item:last-child{border-radius:0 0 4px 4px}.ant-mentions-dropdown-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-mentions-dropdown-menu-item-selected{color:rgba(0,0,0,0.65);font-weight:600;background-color:#fafafa}.ant-mentions-dropdown-menu-item-active{background-color:#e6f6ff}.ant-menu{box-sizing:border-box;font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:rgba(0,0,0,0.65);background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-menu-item-group-title{color:rgba(0,0,0,0.45);font-size:14px;line-height:1.5}.ant-menu-submenu-selected{color:#0665d0}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f6ff}.ant-menu-item>a{color:rgba(0,0,0,0.65)}.ant-menu-item>a:hover{color:#0665d0}.ant-menu-item-divider{background-color:#e8e8e8}.ant-menu-item:hover,.ant-menu-item-active,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,.ant-menu-submenu-active,.ant-menu-submenu-title:hover{color:#0665d0}.ant-menu-item-selected{color:#0665d0}.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#0665d0}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f6ff}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #e8e8e8}.ant-menu-vertical-right{border-left:1px solid #e8e8e8}.ant-menu-vertical.ant-menu-sub,.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub{border-right:0}.ant-menu-vertical.ant-menu-sub .ant-menu-item,.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item{border-right:0}.ant-menu-vertical.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after{border-right:0}.ant-menu-item .anticon,.ant-menu-submenu-title .anticon{font-size:14px}.ant-menu-item .anticon+span,.ant-menu-submenu-title .anticon+span{transition:opacity .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu>.ant-menu-item-divider{background-color:#e8e8e8}.ant-menu-submenu-popup{z-index:1050;background:#fff;border-radius:4px}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:4px}.ant-menu-submenu>.ant-menu-submenu-title::after{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow::after{background:#fff;background:rgba(0,0,0,0.65) \9;background-image:linear-gradient(to right,rgba(0,0,0,0.65),rgba(0,0,0,0.65));border-radius:2px;transition:background .3s cubic-bezier(0.645,0.045,0.355,1),transform .3s cubic-bezier(0.645,0.045,0.355,1),top .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before{background:linear-gradient(to right,#0665d0,#0665d0)}.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected{color:#0665d0}.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#0665d0}.ant-menu-horizontal{border:0;border-bottom:1px solid #e8e8e8}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{border-bottom:2px solid transparent}.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu:hover,.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-submenu-selected{color:#0665d0;border-bottom:2px solid #0665d0}.ant-menu-horizontal>.ant-menu-item>a{color:rgba(0,0,0,0.65)}.ant-menu-horizontal>.ant-menu-item>a:hover{color:#0665d0}.ant-menu-horizontal>.ant-menu-item-selected>a{color:#0665d0}.ant-menu-vertical .ant-menu-item::after,.ant-menu-vertical-left .ant-menu-item::after,.ant-menu-vertical-right .ant-menu-item::after,.ant-menu-inline .ant-menu-item::after{border-right:3px solid #0665d0;transition:transform .15s cubic-bezier(0.215,0.61,0.355,1),opacity .15s cubic-bezier(0.215,0.61,0.355,1)}.ant-menu-vertical .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item,.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title{height:40px;font-size:14px;line-height:40px}.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-inline>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-inline .ant-menu-selected::after,.ant-menu-inline .ant-menu-item-selected::after{transition:transform .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-inline-collapsed{width:80px}.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{line-height:40px}.ant-menu-inline-collapsed-tooltip a{color:rgba(255,255,255,0.85)}.ant-menu-sub.ant-menu-inline{border:0;border-radius:0}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{color:rgba(0,0,0,0.25) !important;border-color:transparent !important}.ant-menu-item-disabled>a,.ant-menu-submenu-disabled>a{color:rgba(0,0,0,0.25) !important}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,0.25) !important}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{background:rgba(0,0,0,0.25) !important}.ant-message{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1010}.ant-message-notice-content{background:#fff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-message-success .anticon{color:#52c41a}.ant-message-error .anticon{color:#f5222d}.ant-message-warning .anticon{color:#faad14}.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}.ant-message .anticon{font-size:16px}.ant-notification{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1010;width:384px}.ant-notification-close-icon{font-size:14px}.ant-notification-notice{background:#fff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-notification-notice-message{color:rgba(0,0,0,0.85);font-size:16px}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-with-icon .ant-notification-notice-message{font-size:16px}.ant-notification-notice-with-icon .ant-notification-notice-description{font-size:14px}.anticon.ant-notification-notice-icon-success{color:#52c41a}.anticon.ant-notification-notice-icon-info{color:#1890ff}.anticon.ant-notification-notice-icon-warning{color:#faad14}.anticon.ant-notification-notice-icon-error{color:#f5222d}.ant-notification-notice-close{color:rgba(0,0,0,0.45)}.ant-notification-notice-close:hover{color:rgba(0,0,0,0.67)}.ant-notification .notification-fade-effect{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-notification-fade-enter,.ant-notification-fade-appear{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-notification-fade-leave{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}@keyframes NotificationFadeIn{0%{left:384px}}@keyframes NotificationLeftFadeIn{0%{right:384px}}.ant-page-header{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-page-header-back-button{color:#0665d0}.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#2a84de}.ant-page-header-back-button:active{color:#004aab}.ant-page-header-heading-title{color:rgba(0,0,0,0.85);font-size:24px}.ant-page-header-heading-sub-title{color:rgba(0,0,0,0.45)}.ant-page-header-footer .ant-tabs-bar{border-bottom:0}.ant-pagination{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-pagination-total-text{height:32px;line-height:30px}.ant-pagination-item{min-width:32px;height:32px;font-family:Arial;line-height:30px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-item a{color:rgba(0,0,0,0.65)}.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#0665d0}.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#0665d0}.ant-pagination-item-active{font-weight:500;background:#fff;border-color:#0665d0}.ant-pagination-item-active a{color:#0665d0}.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#2a84de}.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#2a84de}.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon{font-size:12px \9;transform:scale(1) rotate(0);color:#0665d0}:root .ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,:root .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon{font-size:12px}.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis{color:rgba(0,0,0,0.25)}.ant-pagination-prev,.ant-pagination-next,.ant-pagination-jump-prev,.ant-pagination-jump-next{min-width:32px;height:32px;color:rgba(0,0,0,0.65);font-family:Arial;line-height:32px;border-radius:4px}.ant-pagination-prev a,.ant-pagination-next a{color:rgba(0,0,0,0.65)}.ant-pagination-prev:hover a,.ant-pagination-next:hover a{border-color:#2a84de}.ant-pagination-prev .ant-pagination-item-link,.ant-pagination-next .ant-pagination-item-link{background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link{color:#0665d0;border-color:#0665d0}.ant-pagination-disabled a,.ant-pagination-disabled:hover a,.ant-pagination-disabled:focus a,.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link,.ant-pagination-disabled:focus .ant-pagination-item-link{color:rgba(0,0,0,0.25);border-color:#d9d9d9}.ant-pagination-options-quick-jumper{height:32px;line-height:32px}.ant-pagination-options-quick-jumper input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-options-quick-jumper input::-moz-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input::-webkit-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:hover{border-color:#2a84de;border-right-width:1px !important}.ant-pagination-options-quick-jumper input:focus{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-pagination-options-quick-jumper input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-pagination-options-quick-jumper input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-pagination-options-quick-jumper input{min-height:32px;line-height:1.5}.ant-pagination-options-quick-jumper input-lg{height:40px;font-size:16px}.ant-pagination-options-quick-jumper input-sm{height:24px}.ant-pagination-simple .ant-pagination-prev,.ant-pagination-simple .ant-pagination-next{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link{height:24px;border:0}.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link::after,.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link::after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{height:24px}.ant-pagination-simple .ant-pagination-simple-pager input{box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#0665d0}.ant-pagination.mini .ant-pagination-total-text,.ant-pagination.mini .ant-pagination-simple-pager{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{min-width:24px;height:24px;line-height:22px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){border-color:transparent}.ant-pagination.mini .ant-pagination-prev,.ant-pagination.mini .ant-pagination-next{min-width:24px;height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link{border-color:transparent}.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link::after,.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link::after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-prev,.ant-pagination.mini .ant-pagination-jump-next{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{height:24px}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{color:rgba(0,0,0,0.25);border:0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#dbdbdb;border-color:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:hover,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:focus{color:rgba(0,0,0,0.45);background:#f5f5f5;border-color:#d9d9d9}.ant-popover{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1030}.ant-popover::after{background:rgba(255,255,255,0.01)}.ant-popover-inner{background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15);box-shadow:0 0 8px rgba(0,0,0,0.15) \9}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-popover-inner{box-shadow:0 2px 8px rgba(0,0,0,0.15)}}.ant-popover-title{min-width:177px;color:rgba(0,0,0,0.85);border-bottom:1px solid #e8e8e8}.ant-popover-inner-content{color:rgba(0,0,0,0.65)}.ant-popover-message{color:rgba(0,0,0,0.65);font-size:14px}.ant-popover-message>.anticon{color:#faad14;font-size:14px}.ant-popover-arrow{width:8.48528137px;height:8.48528137px;border-style:solid;border-width:4.24264069px}.ant-popover-placement-top>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topRight>.ant-popover-content>.ant-popover-arrow{bottom:6.2px;border-top-color:transparent;border-right-color:#fff;border-bottom-color:#fff;border-left-color:transparent;box-shadow:3px 3px 7px rgba(0,0,0,0.07)}.ant-popover-placement-right>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightTop>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightBottom>.ant-popover-content>.ant-popover-arrow{left:6px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#fff;border-left-color:#fff;box-shadow:-3px 3px 7px rgba(0,0,0,0.07)}.ant-popover-placement-bottom>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomRight>.ant-popover-content>.ant-popover-arrow{top:6px;border-top-color:#fff;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#fff;box-shadow:-2px -2px 5px rgba(0,0,0,0.06)}.ant-popover-placement-left>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftTop>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftBottom>.ant-popover-content>.ant-popover-arrow{right:6px;border-top-color:#fff;border-right-color:#fff;border-bottom-color:transparent;border-left-color:transparent;box-shadow:3px -3px 7px rgba(0,0,0,0.07)}.ant-progress{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-progress-line{font-size:14px}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-inner{background-color:#f5f5f5;border-radius:100px}.ant-progress-circle-trail{stroke:#f5f5f5}.ant-progress-circle-path{animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}.ant-progress-success-bg,.ant-progress-bg{background-color:#1890ff;border-radius:100px;transition:all .4s cubic-bezier(0.08,0.82,0.17,1) 0s}.ant-progress-success-bg{background-color:#52c41a}.ant-progress-text{color:rgba(0,0,0,0.45)}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg::before{background:#fff;border-radius:10px;animation:ant-progress-active 2.4s cubic-bezier(0.23,1,0.32,1) infinite}.ant-progress-status-exception .ant-progress-bg{background-color:#f5222d}.ant-progress-status-exception .ant-progress-text{color:#f5222d}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#f5222d}.ant-progress-status-success .ant-progress-bg{background-color:#52c41a}.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#52c41a}.ant-progress-circle .ant-progress-text{color:rgba(0,0,0,0.65)}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:#f5222d}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-radio-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner,.ant-radio-input:focus+.ant-radio-inner{border-color:#0665d0}.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px rgba(6,101,208,0.08)}.ant-radio-checked::after{border:1px solid #0665d0;border-radius:50%}.ant-radio-inner{width:16px;height:16px;background-color:#fff;border-color:#d9d9d9;border-style:solid;border-width:1px;border-radius:100px;transition:all .3s}.ant-radio-inner::after{top:3px;left:3px;width:8px;height:8px;background-color:#0665d0;border-top:0;border-left:0;border-radius:8px;transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-radio-checked .ant-radio-inner{border-color:#0665d0}.ant-radio-checked .ant-radio-inner::after{transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-radio-disabled .ant-radio-inner::after{background-color:rgba(0,0,0,0.2)}.ant-radio-disabled+span{color:rgba(0,0,0,0.25)}.ant-radio-button-wrapper{height:32px;color:rgba(0,0,0,0.65);line-height:30px;background:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-left:0;transition:color .3s,background .3s,border-color .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,0.65)}.ant-radio-group-large .ant-radio-button-wrapper{height:40px;font-size:16px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;line-height:22px}.ant-radio-button-wrapper:not(:first-child)::before{background-color:#d9d9d9}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:4px 0 0 4px}.ant-radio-button-wrapper:last-child{border-radius:0 4px 4px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:4px}.ant-radio-button-wrapper:hover{color:#0665d0}.ant-radio-button-wrapper:focus-within{outline:3px solid rgba(6,101,208,0.06)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#0665d0;background:#fff;border-color:#0665d0;box-shadow:-1px 0 0 0 #0665d0}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before{background-color:#0665d0 !important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#0665d0}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#2a84de;border-color:#2a84de;box-shadow:-1px 0 0 0 #2a84de}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#004aab;border-color:#004aab;box-shadow:-1px 0 0 0 #004aab}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(6,101,208,0.06)}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff;background:#0665d0;border-color:#0665d0}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#fff;background:#2a84de;border-color:#2a84de}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#fff;background:#004aab;border-color:#004aab}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(6,101,208,0.06)}.ant-radio-button-wrapper-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:#fff;background-color:#e6e6e6;border-color:#d9d9d9}.ant-rate{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#fadb14}.ant-rate-star-first,.ant-rate-star-second{color:#e8e8e8}.ant-rate-text{font-size:14px}.ant-result-success .ant-result-icon>.anticon{color:#52c41a}.ant-result-error .ant-result-icon>.anticon{color:#f5222d}.ant-result-info .ant-result-icon>.anticon{color:#1890ff}.ant-result-warning .ant-result-icon>.anticon{color:#faad14}.ant-result-title{color:rgba(0,0,0,0.85)}.ant-result-subtitle{color:rgba(0,0,0,0.45)}.ant-result-content{background-color:#fafafa}.ant-select{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select>ul>li>a{background-color:#fff}.ant-select-arrow{color:inherit;color:rgba(0,0,0,0.25);font-size:12px}.ant-select-selection{box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-radius:4px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-select-selection:hover{border-color:#2a84de;border-right-width:1px !important}.ant-select-focused .ant-select-selection,.ant-select-selection:focus,.ant-select-selection:active{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-select-selection__clear{color:rgba(0,0,0,0.25);font-size:12px;background:#fff}.ant-select-selection__clear:hover{color:rgba(0,0,0,0.45)}.ant-select-disabled{color:rgba(0,0,0,0.25)}.ant-select-disabled .ant-select-selection{background:#f5f5f5}.ant-select-disabled .ant-select-selection:hover,.ant-select-disabled .ant-select-selection:focus,.ant-select-disabled .ant-select-selection:active{border-color:#d9d9d9}.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice{color:rgba(0,0,0,0.33);background:#f5f5f5}.ant-select-selection--single{height:32px}.ant-select-selection__rendered{line-height:30px}.ant-select-lg{font-size:16px}.ant-select-lg .ant-select-selection--single{height:40px}.ant-select-lg .ant-select-selection__rendered{line-height:38px}.ant-select-lg .ant-select-selection--multiple{min-height:40px}.ant-select-lg .ant-select-selection--multiple .ant-select-selection__rendered li{height:32px;line-height:32px}.ant-select-lg .ant-select-selection--multiple .ant-select-selection__clear,.ant-select-lg .ant-select-selection--multiple .ant-select-arrow{top:20px}.ant-select-sm .ant-select-selection--single{height:24px}.ant-select-sm .ant-select-selection__rendered{line-height:22px}.ant-select-sm .ant-select-selection--multiple{min-height:24px}.ant-select-sm .ant-select-selection--multiple .ant-select-selection__rendered li{height:16px;line-height:14px}.ant-select-sm .ant-select-selection--multiple .ant-select-selection__clear,.ant-select-sm .ant-select-selection--multiple .ant-select-arrow{top:12px}.ant-select-disabled .ant-select-selection__choice__remove{color:rgba(0,0,0,0.25)}.ant-select-disabled .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,0.25)}.ant-select-selection__placeholder,.ant-select-search__field__placeholder{color:#bfbfbf}.ant-select-search--inline .ant-select-search__field{border-width:0;border-radius:4px}.ant-select-selection--multiple{min-height:32px}.ant-select-selection--multiple>ul>li,.ant-select-selection--multiple .ant-select-selection__rendered>ul>li{height:24px;line-height:22px}.ant-select-selection--multiple .ant-select-selection__choice{color:rgba(0,0,0,0.65);background-color:#fafafa;border:1px solid #e8e8e8;border-radius:2px}.ant-select-selection--multiple .ant-select-selection__choice__remove{color:inherit;color:rgba(0,0,0,0.45);font-size:12px;font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-selection--multiple .ant-select-selection__choice__remove{font-size:12px}.ant-select-selection--multiple .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,0.75)}.ant-select-selection--multiple .ant-select-selection__clear,.ant-select-selection--multiple .ant-select-arrow{top:16px}.ant-select-open .ant-select-selection{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-select-combobox .ant-select-search__field{transition:all .3s cubic-bezier(0.645,0.045,0.355,1),height 0s}.ant-select-dropdown{color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;box-sizing:border-box;font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-select-dropdown-menu-item-group-title{color:rgba(0,0,0,0.45);font-size:12px}.ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:first-child:not(:last-child),.ant-select-dropdown-menu-item-group:not(:last-child) .ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:last-child{border-radius:0}.ant-select-dropdown-menu-item{color:rgba(0,0,0,0.65)}.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f6ff}.ant-select-dropdown-menu-item:first-child{border-radius:4px 4px 0 0}.ant-select-dropdown-menu-item:last-child{border-radius:0 0 4px 4px}.ant-select-dropdown-menu-item-selected{color:rgba(0,0,0,0.65);font-weight:600;background-color:#fafafa}.ant-select-dropdown-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-select-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,0.25)}.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#e6f6ff}.ant-select-dropdown-menu-item-divider{background-color:#e8e8e8}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item:hover .ant-select-selected-icon{color:rgba(0,0,0,0.87)}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#0665d0}.ant-skeleton-header .ant-skeleton-avatar{background:#f2f2f2;width:32px;height:32px;line-height:32px}.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-content .ant-skeleton-title{background:#f2f2f2}.ant-skeleton-content .ant-skeleton-paragraph>li{background:#f2f2f2}.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);animation:ant-skeleton-loading 1.4s ease infinite}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);animation:ant-skeleton-loading 1.4s ease infinite}.ant-slider{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-slider-rail{background-color:#f5f5f5;border-radius:2px}.ant-slider-track{background-color:#7ec3f7;border-radius:4px}.ant-slider-handle{background-color:#fff;border:solid 2px #7ec3f7;border-radius:50%;box-shadow:0 0;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(0.18,0.89,0.32,1.28)}.ant-slider-handle:focus{border-color:#3884d9;box-shadow:0 0 0 5px rgba(6,101,208,0.2)}.ant-slider-handle.ant-tooltip-open{border-color:#0665d0}.ant-slider:hover .ant-slider-rail{background-color:#e1e1e1}.ant-slider:hover .ant-slider-track{background-color:#52a3eb}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#52a3eb}.ant-slider-mark{font-size:14px}.ant-slider-mark-text{color:rgba(0,0,0,0.45)}.ant-slider-mark-text-active{color:rgba(0,0,0,0.65)}.ant-slider-dot{background-color:#fff;border:2px solid #e8e8e8;border-radius:50%}.ant-slider-dot-active{border-color:#83b2e8}.ant-slider-disabled .ant-slider-track{background-color:rgba(0,0,0,0.25) !important}.ant-slider-disabled .ant-slider-handle,.ant-slider-disabled .ant-slider-dot{background-color:#fff;border-color:rgba(0,0,0,0.25) !important}.ant-spin{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#0665d0;transition:transform .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{text-shadow:0 1px 2px #fff}.ant-spin-container::after{background:#fff}.ant-spin-tip{color:rgba(0,0,0,0.45)}.ant-spin-dot{font-size:20px;width:1em;height:1em}.ant-spin-dot-item{background-color:#0665d0;border-radius:100%}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-lg .ant-spin-dot{font-size:32px}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.ant-spin-blur{background:#fff}}.ant-statistic{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-statistic-title{color:rgba(0,0,0,0.45);font-size:14px}.ant-statistic-content{color:rgba(0,0,0,0.85);font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-statistic-content-value-decimal{font-size:16px}.ant-statistic-content-suffix{font-size:16px}.ant-steps{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-steps-item-icon{width:32px;height:32px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";line-height:32px;border:1px solid rgba(0,0,0,0.25);border-radius:32px;transition:background-color .3s,border-color .3s}.ant-steps-item-icon>.ant-steps-icon{color:#0665d0}.ant-steps-item-tail::after{background:#e8e8e8;border-radius:1px}.ant-steps-item-title{color:rgba(0,0,0,0.65);font-size:16px;line-height:32px}.ant-steps-item-title::after{top:16px;background:#e8e8e8}.ant-steps-item-subtitle{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-item-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff;border-color:rgba(0,0,0,0.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:rgba(0,0,0,0.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:rgba(0,0,0,0.25)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item-process .ant-steps-item-icon{background-color:#fff;border-color:#0665d0}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#0665d0}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#0665d0}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.65)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item-process .ant-steps-item-icon{background:#0665d0}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#fff}.ant-steps-item-finish .ant-steps-item-icon{background-color:#fff;border-color:#0665d0}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#0665d0}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#0665d0}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.65)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#0665d0}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.45)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#0665d0}.ant-steps-item-error .ant-steps-item-icon{background-color:#fff;border-color:#f5222d}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon{color:#f5222d}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item.ant-steps-next-error .ant-steps-item-title::after{background:#f5222d}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-title,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-description{color:#0665d0}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-icon{border-color:#0665d0}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-icon .ant-steps-icon{color:#0665d0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description{max-width:140px}.ant-switch{color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";box-sizing:border-box;height:22px;line-height:20px;background-color:rgba(0,0,0,0.25);border:1px solid transparent;border-radius:100px;transition:all .36s}.ant-switch-inner{color:#fff;font-size:12px}.ant-switch-loading-icon,.ant-switch::after{width:18px;height:18px;background-color:#fff;border-radius:18px;transition:all .36s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-switch::after{box-shadow:0 2px 4px 0 rgba(0,35,11,0.2)}.ant-switch-loading .ant-switch-loading-icon{color:rgba(0,0,0,0.65)}.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#0665d0}.ant-switch:focus{box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-switch-small{height:16px;line-height:14px}.ant-switch-small .ant-switch-inner{font-size:12px}.ant-switch-small::after{width:12px;height:12px}.ant-switch-small .ant-switch-loading-icon{width:12px;height:12px}.ant-switch-checked{background-color:#0665d0}.ant-switch-loading,.ant-switch-disabled{opacity:.4}.ant-table{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-table table{border-radius:4px 4px 0 0;border-collapse:separate;border-spacing:0}.ant-table-thead>tr>th{color:rgba(0,0,0,0.85);background:#fafafa;border-bottom:1px solid #e8e8e8}.ant-table-thead>tr>th .anticon-filter,.ant-table-thead>tr>th .ant-table-filter-icon{color:#bfbfbf;font-size:12px}.ant-table-thead>tr>th .ant-table-filter-selected.anticon-filter{color:#0665d0}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner{color:#bfbfbf}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down{font-size:11px \9;transform:scale(0.91666667) rotate(0)}:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up,:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down{font-size:12px}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on{color:#0665d0}.ant-table-thead>tr>th.ant-table-column-has-actions{-webkit-background-clip:border-box}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .anticon-filter.ant-table-filter-open,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .ant-table-filter-icon.ant-table-filter-open{color:rgba(0,0,0,0.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:hover,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:hover{color:rgba(0,0,0,0.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:active,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:active{color:rgba(0,0,0,0.65)}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .anticon-filter,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .ant-table-filter-icon{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-up:not(.on),.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-down:not(.on){color:rgba(0,0,0,0.45)}.ant-table-thead>tr:first-child>th:first-child{border-top-left-radius:4px}.ant-table-thead>tr:first-child>th:last-child{border-top-right-radius:4px}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #e8e8e8;transition:all .3s,border 0s}.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#e6f6ff}.ant-table-thead>tr.ant-table-row-selected>td.ant-table-column-sort,.ant-table-tbody>tr.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-thead>tr:hover.ant-table-row-selected>td,.ant-table-tbody>tr:hover.ant-table-row-selected>td{background:#fafafa}.ant-table-thead>tr:hover.ant-table-row-selected>td.ant-table-column-sort,.ant-table-tbody>tr:hover.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-footer{color:rgba(0,0,0,0.85);background:#fafafa;border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-table-footer::before{background:#fafafa}.ant-table.ant-table-bordered .ant-table-footer{border:1px solid #e8e8e8}.ant-table-title{border-radius:4px 4px 0 0}.ant-table.ant-table-bordered .ant-table-title{border:1px solid #e8e8e8}.ant-table-title+.ant-table-content{border-radius:4px 4px 0 0}.ant-table-bordered .ant-table-title+.ant-table-content,.ant-table-bordered .ant-table-title+.ant-table-content table,.ant-table-bordered .ant-table-title+.ant-table-content .ant-table-thead>tr:first-child>th{border-radius:0}.ant-table-without-column-header .ant-table-title+.ant-table-content,.ant-table-without-column-header table{border-radius:0}.ant-table-without-column-header.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-top:1px solid #e8e8e8;border-radius:4px}.ant-table-tbody>tr.ant-table-row-selected td{color:inherit;background:#fafafa}.ant-table-thead>tr>th.ant-table-column-sort{background:#f5f5f5}.ant-table-tbody>tr>td.ant-table-column-sort{background:rgba(0,0,0,0.01)}.ant-table-header{background:#fafafa}.ant-table-header table{border-radius:4px 4px 0 0}.ant-table-loading .ant-table-body{background:#fff}.ant-table-bordered .ant-table-header>table,.ant-table-bordered .ant-table-body>table,.ant-table-bordered .ant-table-fixed-left table,.ant-table-bordered .ant-table-fixed-right table{border:1px solid #e8e8e8;border-right:0;border-bottom:0}.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-table-bordered.ant-table-fixed-header .ant-table-header>table{border-bottom:0}.ant-table-bordered.ant-table-fixed-header .ant-table-body>table{border-top-left-radius:0;border-top-right-radius:0}.ant-table-bordered.ant-table-fixed-header .ant-table-header+.ant-table-body>table,.ant-table-bordered.ant-table-fixed-header .ant-table-body-inner>table{border-top:0}.ant-table-bordered .ant-table-thead>tr:not(:last-child)>th{border-bottom:1px solid #e8e8e8}.ant-table-bordered .ant-table-thead>tr>th,.ant-table-bordered .ant-table-tbody>tr>td{border-right:1px solid #e8e8e8}.ant-table-placeholder{color:rgba(0,0,0,0.25);font-size:14px;background:#fff;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-table-filter-dropdown{background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-filter-dropdown .ant-dropdown-menu{border:0;border-radius:4px 4px 0 0}.ant-table-filter-dropdown .ant-dropdown-menu-sub{border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title::after{color:#0665d0;text-shadow:0 0 2px #abddff}.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-item:last-child,.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-submenu:last-child .ant-dropdown-menu-submenu-title{border-radius:0}.ant-table-filter-dropdown-btns{border-top:1px solid #e8e8e8}.ant-table-filter-dropdown-link{color:#0665d0}.ant-table-filter-dropdown-link:hover{color:#2a84de}.ant-table-filter-dropdown-link:active{color:#004aab}.ant-table-selection .anticon-down{color:#bfbfbf}.ant-table-selection-menu{background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-selection-menu .ant-action-down{color:#bfbfbf}.ant-table-selection-down:hover .anticon-down{color:rgba(0,0,0,0.6)}.ant-table-row-expand-icon{color:#0665d0;background:#fff;border:1px solid #e8e8e8;border-radius:2px}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#2a84de}.ant-table-row-expand-icon:active{color:#004aab}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover,.ant-table-row-expand-icon:active{border-color:currentColor}tr.ant-table-expanded-row,tr.ant-table-expanded-row:hover{background:#fbfbfb}.ant-table-fixed-header>.ant-table-content>.ant-table-scroll>.ant-table-body{background:#fff}.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-width:0 0 1px 0}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-width:1px 1px 1px 0}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header.ant-table-hide-scrollbar .ant-table-thead>tr:only-child>th:last-child{border-right-color:transparent}.ant-table-fixed-left,.ant-table-fixed-right{z-index:auto;border-radius:0}.ant-table-fixed-left table,.ant-table-fixed-right table{background:#fff}.ant-table-fixed-header .ant-table-fixed-left .ant-table-body-outer .ant-table-fixed,.ant-table-fixed-header .ant-table-fixed-right .ant-table-body-outer .ant-table-fixed{border-radius:0}.ant-table-fixed-left{box-shadow:6px 0 6px -4px rgba(0,0,0,0.15)}.ant-table-fixed-left,.ant-table-fixed-left table{border-radius:4px 0 0 0}.ant-table-fixed-left .ant-table-thead>tr>th:last-child{border-top-right-radius:0}.ant-table-fixed-right{box-shadow:-6px 0 6px -4px rgba(0,0,0,0.15)}.ant-table-fixed-right,.ant-table-fixed-right table{border-radius:0 4px 0 0}.ant-table-fixed-right .ant-table-thead>tr>th:first-child{border-top-left-radius:0}.ant-table colgroup>col.ant-table-selection-col{width:60px}.ant-tabs{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tabs-ink-bar{box-sizing:border-box;background-color:#0665d0}.ant-tabs-bar{border-bottom:1px solid #e8e8e8}.ant-tabs-nav-container{box-sizing:border-box;font-size:14px;line-height:1.5}.ant-tabs-bottom .ant-tabs-bottom-bar{border-top:1px solid #e8e8e8;border-bottom:0}.ant-tabs-tab-prev,.ant-tabs-tab-next{color:rgba(0,0,0,0.45);border:0;transition:width .3s cubic-bezier(0.645,0.045,0.355,1),opacity .3s cubic-bezier(0.645,0.045,0.355,1),color .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-tab-prev.ant-tabs-tab-arrow-show,.ant-tabs-tab-next.ant-tabs-tab-arrow-show{width:32px}.ant-tabs-tab-prev:hover,.ant-tabs-tab-next:hover{color:rgba(0,0,0,0.65)}.ant-tabs-tab-prev-icon-target,.ant-tabs-tab-next-icon-target{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tabs-tab-prev-icon-target,:root .ant-tabs-tab-next-icon-target{font-size:12px}.ant-tabs-tab-btn-disabled,.ant-tabs-tab-btn-disabled:hover{color:rgba(0,0,0,0.25)}.ant-tabs-nav{box-sizing:border-box;transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-nav .ant-tabs-tab{box-sizing:border-box;transition:color .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-nav .ant-tabs-tab::before{border-top:2px solid transparent;border-radius:4px 4px 0 0}.ant-tabs-nav .ant-tabs-tab:hover{color:#2a84de}.ant-tabs-nav .ant-tabs-tab:active{color:#004aab}.ant-tabs-nav .ant-tabs-tab-active{color:#0665d0}.ant-tabs-nav .ant-tabs-tab-disabled,.ant-tabs-nav .ant-tabs-tab-disabled:hover{color:rgba(0,0,0,0.25)}.ant-tabs .ant-tabs-large-bar .ant-tabs-nav-container{font-size:16px}.ant-tabs .ant-tabs-small-bar .ant-tabs-nav-container{font-size:14px}.ant-tabs .ant-tabs-left-bar,.ant-tabs .ant-tabs-right-bar{border-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show{height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-next,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-next{height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-prev,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-prev{height:32px}.ant-tabs .ant-tabs-left-bar{border-right:1px solid #e8e8e8}.ant-tabs .ant-tabs-left-content{border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-bar{border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-content{border-right:1px solid #e8e8e8}.ant-tabs-top .ant-tabs-ink-bar-animated,.ant-tabs-bottom .ant-tabs-ink-bar-animated{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1),left .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-left .ant-tabs-ink-bar-animated,.ant-tabs-right .ant-tabs-ink-bar-animated{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1),height .3s cubic-bezier(0.645,0.045,0.355,1),top .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tag{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";font-size:12px;background:#fafafa;border:1px solid #d9d9d9;border-radius:4px;transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,0.65)}.ant-tag .anticon-close{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45);transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}:root .ant-tag .anticon-close{font-size:12px}.ant-tag .anticon-close:hover{color:rgba(0,0,0,0.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color a,.ant-tag-has-color a:hover,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover{color:#fff}.ant-tag-checkable{border-color:transparent}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#0665d0}.ant-tag-checkable:active,.ant-tag-checkable-checked{color:#fff}.ant-tag-checkable-checked{background-color:#0665d0}.ant-tag-checkable:active{background-color:#004aab}.ant-tag-pink{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-magenta{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-red{color:#f5222d;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{color:#fff;background:#f5222d;border-color:#f5222d}.ant-tag-volcano{color:#fa541c;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{color:#fff;background:#fa541c;border-color:#fa541c}.ant-tag-orange{color:#fa8c16;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{color:#fff;background:#fa8c16;border-color:#fa8c16}.ant-tag-yellow{color:#fadb14;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{color:#fff;background:#fadb14;border-color:#fadb14}.ant-tag-gold{color:#faad14;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{color:#fff;background:#faad14;border-color:#faad14}.ant-tag-cyan{color:#13c2c2;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{color:#fff;background:#13c2c2;border-color:#13c2c2}.ant-tag-lime{color:#a0d911;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{color:#fff;background:#a0d911;border-color:#a0d911}.ant-tag-green{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{color:#fff;background:#52c41a;border-color:#52c41a}.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{color:#fff;background:#1890ff;border-color:#1890ff}.ant-tag-geekblue{color:#2f54eb;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-tag-purple{color:#722ed1;background:#f9f0ff;border-color:#d3adf7}.ant-tag-purple-inverse{color:#fff;background:#722ed1;border-color:#722ed1}.ant-time-picker-panel{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-time-picker-panel-inner{font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-time-picker-panel-input{border:0}.ant-time-picker-panel-input::-moz-placeholder{color:#bfbfbf}.ant-time-picker-panel-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input-wrap{border-bottom:1px solid #e8e8e8}.ant-time-picker-panel-input-invalid{border-color:#f5222d}.ant-time-picker-panel-narrow .ant-time-picker-panel-input-wrap{max-width:112px}.ant-time-picker-panel-select{width:56px;max-height:192px;font-size:14px;border-left:1px solid #e8e8e8}.ant-time-picker-panel-select:first-child{border-left:0}.ant-time-picker-panel-select:last-child{border-right:0}.ant-time-picker-panel-select ul{width:56px}.ant-time-picker-panel-select li{height:32px;line-height:32px}.ant-time-picker-panel-select li:focus{color:#0665d0}.ant-time-picker-panel-select li:hover{background:#e6f6ff}li.ant-time-picker-panel-select-option-selected{background:#f5f5f5}li.ant-time-picker-panel-select-option-selected:hover{background:#f5f5f5}li.ant-time-picker-panel-select-option-disabled{color:rgba(0,0,0,0.25)}.ant-time-picker-panel-addon{border-top:1px solid #e8e8e8}.ant-time-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-time-picker-input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-time-picker-input::-moz-placeholder{color:#bfbfbf}.ant-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-input:hover{border-color:#2a84de;border-right-width:1px !important}.ant-time-picker-input:focus{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-time-picker-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-time-picker-input{min-height:32px;line-height:1.5}.ant-time-picker-input-lg{height:40px;font-size:16px}.ant-time-picker-input-sm{height:24px}.ant-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-time-picker-icon,.ant-time-picker-clear{color:rgba(0,0,0,0.25);transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-time-picker-icon .ant-time-picker-clock-icon,.ant-time-picker-clear .ant-time-picker-clock-icon{color:rgba(0,0,0,0.25)}.ant-time-picker-clear{background:#fff}.ant-time-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-time-picker-large .ant-time-picker-input{height:40px;font-size:16px}.ant-time-picker-small .ant-time-picker-input{height:24px}@media not all and (min-resolution:.001dpcm){@supports(-webkit-appearance:none) and (stroke-color:transparent){.ant-input{line-height:1.5}}}.ant-timeline{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-timeline-item{font-size:14px}.ant-timeline-item-tail{border-left:2px solid #e8e8e8}.ant-timeline-item-pending .ant-timeline-item-head{font-size:12px}.ant-timeline-item-head{background-color:#fff;border:2px solid transparent;border-radius:100px}.ant-timeline-item-head-blue{color:#0665d0;border-color:#0665d0}.ant-timeline-item-head-red{color:#f5222d;border-color:#f5222d}.ant-timeline-item-head-green{color:#52c41a;border-color:#52c41a}.ant-timeline-item-head-gray{color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-timeline-item-head-custom{border:0;border-radius:0}.ant-timeline-item-content{top:-6px}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom{left:calc(100% - 4px - 2px)}.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail{border-left:2px dotted #e8e8e8}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-left:2px dotted #e8e8e8}.ant-tooltip{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1060;max-width:250px}.ant-tooltip-inner{color:#fff;background-color:rgba(0,0,0,0.75);border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-tooltip-arrow{width:13.07106781px;height:13.07106781px}.ant-tooltip-arrow::before{width:5px;height:5px;background-color:rgba(0,0,0,0.75)}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow::before,.ant-tooltip-placement-topLeft .ant-tooltip-arrow::before,.ant-tooltip-placement-topRight .ant-tooltip-arrow::before{box-shadow:3px 3px 7px rgba(0,0,0,0.07);transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow::before,.ant-tooltip-placement-rightTop .ant-tooltip-arrow::before,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow::before{box-shadow:-3px 3px 7px rgba(0,0,0,0.07);transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow::before,.ant-tooltip-placement-leftTop .ant-tooltip-arrow::before,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow::before{box-shadow:3px -3px 7px rgba(0,0,0,0.07);transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow::before,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow::before,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow::before{box-shadow:-3px -3px 7px rgba(0,0,0,0.07);transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-transfer{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-transfer-disabled .ant-transfer-list{background:#f5f5f5}.ant-transfer-list{height:200px;border:1px solid #d9d9d9;border-radius:4px}.ant-transfer-list-search-action{color:rgba(0,0,0,0.25);line-height:32px}.ant-transfer-list-search-action .anticon{color:rgba(0,0,0,0.25)}.ant-transfer-list-search-action .anticon:hover{color:rgba(0,0,0,0.45)}.ant-transfer-list-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-transfer-list-body{font-size:14px}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#e6f6ff}.ant-transfer-list-content-item-disabled{color:rgba(0,0,0,0.25)}.ant-transfer-list-body-not-found{color:rgba(0,0,0,0.25)}.ant-transfer-list-footer{border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}@keyframes transferHighlightIn{0%{background:#abddff}}.ant-select-tree-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner{border-color:#0665d0}.ant-select-tree-checkbox-checked::after{border:1px solid #0665d0;border-radius:2px}.ant-select-tree-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-select-tree-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#0665d0;border-color:#0665d0}.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-select-tree-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-select-tree-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after{width:8px;height:8px;background-color:#0665d0;border:0}.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-select-tree{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree li .ant-select-tree-node-content-wrapper{color:rgba(0,0,0,0.65);border-radius:2px}.ant-select-tree li .ant-select-tree-node-content-wrapper:hover{background-color:#e6f6ff}.ant-select-tree li .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:#abddff}.ant-select-tree li span.ant-select-tree-switcher,.ant-select-tree li span.ant-select-tree-iconEle{border:0 none}.ant-select-tree li span.ant-select-icon_loading .ant-select-switcher-loading-icon{color:#0665d0}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon,:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon{font-size:12px}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon,:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon{font-size:12px}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-loading-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-loading-icon{color:#0665d0}li.ant-select-tree-treenode-disabled>span:not(.ant-select-tree-switcher),li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper,li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper span{color:rgba(0,0,0,0.25)}.ant-select-tree-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-dropdown .ant-select-dropdown-search{background:#fff}.ant-select-tree-dropdown .ant-select-dropdown-search .ant-select-search__field{box-sizing:border-box;border:1px solid #d9d9d9;border-radius:4px}.ant-select-tree-dropdown .ant-select-not-found{color:rgba(0,0,0,0.25)}.ant-tree-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner,.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner{border-color:#0665d0}.ant-tree-checkbox-checked::after{border:1px solid #0665d0;border-radius:2px}.ant-tree-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-tree-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#0665d0;border-color:#0665d0}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-tree-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-tree-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner::after{width:8px;height:8px;background-color:#0665d0;border:0}.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-tree{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree li span[draggable],.ant-tree li span[draggable="true"]{line-height:20px;border-top:2px transparent solid;border-bottom:2px transparent solid}.ant-tree li.drag-over>span[draggable]{background-color:#0665d0}.ant-tree li.drag-over-gap-top>span[draggable]{border-top-color:#0665d0}.ant-tree li.drag-over-gap-bottom>span[draggable]{border-bottom-color:#0665d0}.ant-tree li.filter-node>span{color:#f5222d !important}.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-loading-icon,.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-loading-icon{height:24px;color:#0665d0}.ant-tree li .ant-tree-node-content-wrapper{height:24px;color:rgba(0,0,0,0.65);line-height:24px;border-radius:2px}.ant-tree li .ant-tree-node-content-wrapper:hover{background-color:#e6f6ff}.ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:#abddff}.ant-tree li span.ant-tree-checkbox{height:24px}.ant-tree li span.ant-tree-switcher,.ant-tree li span.ant-tree-iconEle{height:24px;line-height:24px;border:0 none}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon,:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon{font-size:12px}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon,:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon{font-size:12px}li.ant-tree-treenode-disabled>span:not(.ant-tree-switcher),li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper,li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper span{color:rgba(0,0,0,0.25)}.ant-tree.ant-tree-show-line li span.ant-tree-switcher{color:rgba(0,0,0,0.45);background:#fff}.ant-tree.ant-tree-show-line li:not(:last-child)::before{border-left:1px solid #d9d9d9}.ant-typography{color:rgba(0,0,0,0.65)}.ant-typography.ant-typography-secondary{color:rgba(0,0,0,0.45)}.ant-typography.ant-typography-warning{color:#faad14}.ant-typography.ant-typography-danger{color:#f5222d}.ant-typography.ant-typography-disabled{color:rgba(0,0,0,0.25)}h1.ant-typography,.ant-typography h1{color:rgba(0,0,0,0.85);font-weight:600;font-size:38px;line-height:1.23}h2.ant-typography,.ant-typography h2{color:rgba(0,0,0,0.85);font-weight:600;font-size:30px;line-height:1.35}h3.ant-typography,.ant-typography h3{color:rgba(0,0,0,0.85);font-weight:600;font-size:24px;line-height:1.35}h4.ant-typography,.ant-typography h4{color:rgba(0,0,0,0.85);font-weight:600;font-size:20px;line-height:1.4}.ant-typography a{color:#0665d0}.ant-typography a:focus,.ant-typography a:hover{color:#2a84de}.ant-typography a:active{color:#004aab}.ant-typography a:active,.ant-typography a:hover{text-decoration:none}.ant-typography a[disabled]{color:rgba(0,0,0,0.25)}.ant-typography code{border:1px solid rgba(0,0,0,0.06);border-radius:3px}.ant-typography mark{background-color:#ffe58f}.ant-typography-expand,.ant-typography-edit,.ant-typography-copy{color:#0665d0}.ant-typography-expand:focus,.ant-typography-edit:focus,.ant-typography-copy:focus,.ant-typography-expand:hover,.ant-typography-edit:hover,.ant-typography-copy:hover{color:#2a84de}.ant-typography-expand:active,.ant-typography-edit:active,.ant-typography-copy:active{color:#004aab}.ant-typography-copy-success,.ant-typography-copy-success:hover,.ant-typography-copy-success:focus{color:#52c41a}.ant-typography-edit-content-confirm{color:rgba(0,0,0,0.45)}.ant-upload{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-upload.ant-upload-select-picture-card{width:104px;height:104px;background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:4px;transition:border-color .3s ease}.ant-upload.ant-upload-select-picture-card:hover{border-color:#0665d0}.ant-upload.ant-upload-drag{background:#fafafa;border:1px dashed #d9d9d9;border-radius:4px;transition:border-color .3s}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#004aab}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#2a84de}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#2a84de}.ant-upload.ant-upload-drag p.ant-upload-text{color:rgba(0,0,0,0.85);font-size:16px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,0.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,0.25)}.ant-upload.ant-upload-drag .anticon-plus:hover{color:rgba(0,0,0,0.45)}.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,0.45)}.ant-upload-list{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-upload-list-item{font-size:14px}.ant-upload-list-item-info .anticon-loading,.ant-upload-list-item-info .anticon-paper-clip{top:5px;color:rgba(0,0,0,0.45);font-size:14px}.ant-upload-list-item .anticon-close{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45)}:root .ant-upload-list-item .anticon-close{font-size:12px}.ant-upload-list-item .anticon-close:hover{color:rgba(0,0,0,0.65)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#e6f6ff}.ant-upload-list-item-error,.ant-upload-list-item-error .anticon-paper-clip,.ant-upload-list-item-error .ant-upload-list-item-name{color:#f5222d}.ant-upload-list-item-error .anticon-close{color:#f5222d !important}.ant-upload-list-item-progress{font-size:14px}.ant-upload-list-picture .ant-upload-list-item,.ant-upload-list-picture-card .ant-upload-list-item{border:1px solid #d9d9d9;border-radius:4px}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:#f5222d}.ant-upload-list-picture .ant-upload-list-item-uploading,.ant-upload-list-picture-card .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-name{box-sizing:border-box}.ant-upload-list-picture-card .ant-upload-list-item{width:104px;height:104px}.ant-upload-list-picture-card .ant-upload-list-item-info::before{background-color:rgba(0,0,0,0.5)}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete{color:rgba(255,255,255,0.85)}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-name{line-height:1.5}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading-text{color:rgba(0,0,0,0.45)}.ant-upload-list .ant-upload-success-icon{color:#52c41a}.ant-upload-list .ant-upload-animate-enter,.ant-upload-list .ant-upload-animate-leave,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-fill-mode:cubic-bezier(0.78,0.14,0.15,0.86)}.ant-card-small>.ant-card-head{min-height:36px;font-size:14px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{font-size:14px}.ant-calendar{font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-calendar-input-wrap{border-bottom:1px solid #e8e8e8}.ant-calendar-input{color:rgba(0,0,0,0.65);background:#fff;border:0}.ant-calendar-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-header{border-bottom:1px solid #e8e8e8}.ant-calendar-header a:hover{color:#2a84de}.ant-calendar-header .ant-calendar-century-select,.ant-calendar-header .ant-calendar-decade-select,.ant-calendar-header .ant-calendar-year-select,.ant-calendar-header .ant-calendar-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-header .ant-calendar-prev-century-btn,.ant-calendar-header .ant-calendar-next-century-btn,.ant-calendar-header .ant-calendar-prev-decade-btn,.ant-calendar-header .ant-calendar-next-decade-btn,.ant-calendar-header .ant-calendar-prev-month-btn,.ant-calendar-header .ant-calendar-next-month-btn,.ant-calendar-header .ant-calendar-prev-year-btn,.ant-calendar-header .ant-calendar-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-header .ant-calendar-prev-century-btn::before,.ant-calendar-header .ant-calendar-prev-decade-btn::before,.ant-calendar-header .ant-calendar-prev-year-btn::before,.ant-calendar-header .ant-calendar-prev-century-btn::after,.ant-calendar-header .ant-calendar-prev-decade-btn::after,.ant-calendar-header .ant-calendar-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-prev-century-btn:hover::before,.ant-calendar-header .ant-calendar-prev-decade-btn:hover::before,.ant-calendar-header .ant-calendar-prev-year-btn:hover::before,.ant-calendar-header .ant-calendar-prev-century-btn:hover::after,.ant-calendar-header .ant-calendar-prev-decade-btn:hover::after,.ant-calendar-header .ant-calendar-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-next-century-btn::before,.ant-calendar-header .ant-calendar-next-decade-btn::before,.ant-calendar-header .ant-calendar-next-year-btn::before,.ant-calendar-header .ant-calendar-next-century-btn::after,.ant-calendar-header .ant-calendar-next-decade-btn::after,.ant-calendar-header .ant-calendar-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-next-century-btn:hover::before,.ant-calendar-header .ant-calendar-next-decade-btn:hover::before,.ant-calendar-header .ant-calendar-next-year-btn:hover::before,.ant-calendar-header .ant-calendar-next-century-btn:hover::after,.ant-calendar-header .ant-calendar-next-decade-btn:hover::after,.ant-calendar-header .ant-calendar-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-prev-month-btn::before,.ant-calendar-header .ant-calendar-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-prev-month-btn:hover::before,.ant-calendar-header .ant-calendar-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-next-month-btn::before,.ant-calendar-header .ant-calendar-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-next-month-btn:hover::before,.ant-calendar-header .ant-calendar-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar table{border-collapse:collapse}.ant-calendar table,.ant-calendar th,.ant-calendar td{border:0}.ant-calendar-calendar-table{border-spacing:0}.ant-calendar-date{color:rgba(0,0,0,0.65);border:1px solid transparent;border-radius:2px}.ant-calendar-date:hover{background:#e6f6ff}.ant-calendar-date:active{color:#fff;background:#2a84de}.ant-calendar-today .ant-calendar-date{color:#0665d0;border-color:#0665d0}.ant-calendar-selected-day .ant-calendar-date{background:#abddff}.ant-calendar-last-month-cell .ant-calendar-date,.ant-calendar-next-month-btn-day .ant-calendar-date,.ant-calendar-last-month-cell .ant-calendar-date:hover,.ant-calendar-next-month-btn-day .ant-calendar-date:hover{color:rgba(0,0,0,0.25);border-color:transparent}.ant-calendar-disabled-cell .ant-calendar-date{color:rgba(0,0,0,0.25);background:#f5f5f5;border:1px solid transparent;border-radius:0}.ant-calendar-disabled-cell .ant-calendar-date:hover{background:#f5f5f5}.ant-calendar-disabled-cell.ant-calendar-selected-day .ant-calendar-date::before{border-radius:2px}.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date::before{border:1px solid rgba(0,0,0,0.25);border-radius:2px}.ant-calendar-disabled-cell-first-of-row .ant-calendar-date{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-calendar-disabled-cell-last-of-row .ant-calendar-date{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-calendar-footer{border-top:1px solid #e8e8e8}.ant-calendar-footer:empty{border-top:0}.ant-calendar .ant-calendar-today-btn-disabled,.ant-calendar .ant-calendar-clear-btn-disabled{color:rgba(0,0,0,0.25)}.ant-calendar .ant-calendar-clear-btn::after{color:rgba(0,0,0,0.25);font-size:14px}.ant-calendar .ant-calendar-clear-btn:hover::after{color:rgba(0,0,0,0.45)}.ant-calendar .ant-calendar-ok-btn{font-weight:400;border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,0.015);transition:all .3s cubic-bezier(0.645,0.045,0.355,1);height:32px;color:#fff;background-color:#0665d0;border-color:#0665d0;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045);height:24px;font-size:14px;border-radius:4px;line-height:22px}.ant-calendar .ant-calendar-ok-btn-lg{height:40px;font-size:16px;border-radius:4px}.ant-calendar .ant-calendar-ok-btn-sm{height:24px;font-size:14px;border-radius:4px}.ant-calendar .ant-calendar-ok-btn:hover,.ant-calendar .ant-calendar-ok-btn:focus{color:#fff;background-color:#2a84de;border-color:#2a84de}.ant-calendar .ant-calendar-ok-btn:active,.ant-calendar .ant-calendar-ok-btn.active{color:#fff;background-color:#004aab;border-color:#004aab}.ant-calendar .ant-calendar-ok-btn-disabled,.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn[disabled],.ant-calendar .ant-calendar-ok-btn-disabled:hover,.ant-calendar .ant-calendar-ok-btn.disabled:hover,.ant-calendar .ant-calendar-ok-btn[disabled]:hover,.ant-calendar .ant-calendar-ok-btn-disabled:focus,.ant-calendar .ant-calendar-ok-btn.disabled:focus,.ant-calendar .ant-calendar-ok-btn[disabled]:focus,.ant-calendar .ant-calendar-ok-btn-disabled:active,.ant-calendar .ant-calendar-ok-btn.disabled:active,.ant-calendar .ant-calendar-ok-btn[disabled]:active,.ant-calendar .ant-calendar-ok-btn-disabled.active,.ant-calendar .ant-calendar-ok-btn.disabled.active,.ant-calendar .ant-calendar-ok-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-calendar .ant-calendar-ok-btn-disabled,.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn[disabled],.ant-calendar .ant-calendar-ok-btn-disabled:hover,.ant-calendar .ant-calendar-ok-btn.disabled:hover,.ant-calendar .ant-calendar-ok-btn[disabled]:hover,.ant-calendar .ant-calendar-ok-btn-disabled:focus,.ant-calendar .ant-calendar-ok-btn.disabled:focus,.ant-calendar .ant-calendar-ok-btn[disabled]:focus,.ant-calendar .ant-calendar-ok-btn-disabled:active,.ant-calendar .ant-calendar-ok-btn.disabled:active,.ant-calendar .ant-calendar-ok-btn[disabled]:active,.ant-calendar .ant-calendar-ok-btn-disabled.active,.ant-calendar .ant-calendar-ok-btn.disabled.active,.ant-calendar .ant-calendar-ok-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-calendar-decade-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-decade-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-decade-panel-header a:hover{color:#2a84de}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-decade-panel-table{border-collapse:separate}.ant-calendar-decade-panel-decade{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-decade-panel-decade:hover{background:#e6f6ff}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade{color:#fff;background:#0665d0}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{color:#fff;background:#0665d0}.ant-calendar-decade-panel-last-century-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-next-century-cell .ant-calendar-decade-panel-decade{color:rgba(0,0,0,0.25)}.ant-calendar-month-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-month-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-month-panel-header a:hover{color:#2a84de}.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-month-panel-table{border-collapse:separate}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month{color:#fff;background:#0665d0}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{color:#fff;background:#0665d0}.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month,.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month:hover{color:rgba(0,0,0,0.25);background:#f5f5f5}.ant-calendar-month-panel-month{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-month-panel-month:hover{background:#e6f6ff}.ant-calendar-picker-container{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-calendar-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-calendar-picker-input.ant-input{line-height:1.5}.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#2a84de}.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-calendar-picker-clear,.ant-calendar-picker-icon{font-size:12px}.ant-calendar-picker-clear{color:rgba(0,0,0,0.25);font-size:14px;background:#fff}.ant-calendar-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-calendar-picker-icon{color:rgba(0,0,0,0.25);font-size:14px}.ant-calendar-range-picker-input{border:0}.ant-calendar-range-picker-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-separator{color:rgba(0,0,0,0.45)}.ant-calendar-range-left .ant-calendar-time-picker-inner{border-right:1px solid #e8e8e8}.ant-calendar-range-right .ant-calendar-time-picker-inner{border-left:1px solid #e8e8e8}.ant-calendar-range-middle{height:34px;color:rgba(0,0,0,0.45);line-height:34px}.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#0665d0;background:#abddff;border-color:#0665d0}.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date{color:#fff;background:#0665d0;border:1px solid transparent}.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover{background:#0665d0}.ant-calendar-range .ant-calendar-input-wrap{height:34px}.ant-calendar-range .ant-calendar-input,.ant-calendar-range .ant-calendar-time-picker-input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;height:24px;line-height:24px;border:0}.ant-calendar-range .ant-calendar-input::-moz-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input:-ms-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input::-webkit-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#2a84de;border-right-width:1px !important}.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#2a84de;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(6,101,208,0.2)}.ant-calendar-range .ant-calendar-input-disabled,.ant-calendar-range .ant-calendar-time-picker-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-calendar-range .ant-calendar-input-disabled:hover,.ant-calendar-range .ant-calendar-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-calendar-range .ant-calendar-input[disabled],.ant-calendar-range .ant-calendar-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-calendar-range .ant-calendar-input[disabled]:hover,.ant-calendar-range .ant-calendar-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-calendar-range .ant-calendar-input,textarea.ant-calendar-range .ant-calendar-time-picker-input{min-height:32px;line-height:1.5}.ant-calendar-range .ant-calendar-input-lg,.ant-calendar-range .ant-calendar-time-picker-input-lg{height:40px;font-size:16px}.ant-calendar-range .ant-calendar-input-sm,.ant-calendar-range .ant-calendar-time-picker-input-sm{height:24px}.ant-calendar-range .ant-calendar-year-panel,.ant-calendar-range .ant-calendar-month-panel,.ant-calendar-range .ant-calendar-decade-panel{top:34px}.ant-calendar-range .ant-calendar-in-range-cell{border-radius:0}.ant-calendar-range .ant-calendar-in-range-cell::before{background:#e6f6ff;border:0;border-radius:0}.ant-calendar-range .ant-calendar-header,.ant-calendar-range .ant-calendar-month-panel-header,.ant-calendar-range .ant-calendar-year-panel-header,.ant-calendar-range .ant-calendar-decade-panel-header{border-bottom:0}.ant-calendar-range .ant-calendar-body,.ant-calendar-range .ant-calendar-month-panel-body,.ant-calendar-range .ant-calendar-year-panel-body,.ant-calendar-range .ant-calendar-decade-panel-body{border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-combobox{background-color:#fff;border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-show-time-picker .ant-calendar-body{border-top-color:transparent}.ant-calendar-time-picker{background-color:#fff}.ant-calendar-time-picker-panel{z-index:1050}.ant-calendar-time-picker-inner{font-size:14px;background-color:#fff}.ant-calendar-time-picker-select{font-size:14px;border-right:1px solid #e8e8e8}.ant-calendar-time-picker-select:first-child{border-left:0}.ant-calendar-time-picker-select:last-child{border-right:0}.ant-calendar-time-picker-select li:hover{background:#e6f6ff}.ant-calendar-time-picker-select li:focus{color:#0665d0}li.ant-calendar-time-picker-select-option-selected{background:#f5f5f5}li.ant-calendar-time-picker-select-option-disabled{color:rgba(0,0,0,0.25)}.ant-calendar-time .ant-calendar-day-select{color:rgba(0,0,0,0.85)}.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn-disabled{color:rgba(0,0,0,0.25)}.ant-calendar-week-number .ant-calendar-body tr:hover{background:#e6f6ff}.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#abddff}.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day .ant-calendar-date,.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day:hover .ant-calendar-date{color:rgba(0,0,0,0.65)}.ant-calendar-year-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-year-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-year-panel-header a:hover{color:#2a84de}.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-year-panel-table{border-collapse:separate}.ant-calendar-year-panel-year{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-year-panel-year:hover{background:#e6f6ff}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year{color:#fff;background:#0665d0}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{color:#fff;background:#0665d0}.ant-calendar-year-panel-last-decade-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-next-decade-cell .ant-calendar-year-panel-year{color:rgba(0,0,0,0.25)}.ant-drawer{z-index:1000;transition:transform .3s cubic-bezier(0.7,0.3,0.1,1),height 0s ease .3s,width 0s ease .3s}.ant-drawer>*{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1),box-shadow .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:2px 0 8px rgba(0,0,0,0.15)}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:-2px 0 8px rgba(0,0,0,0.15)}.ant-drawer-top.ant-drawer-open,.ant-drawer-bottom.ant-drawer-open{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 -2px 8px rgba(0,0,0,0.15)}.ant-drawer.ant-drawer-open .ant-drawer-mask{animation:antdDrawerFadeIn .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-drawer-content{background-color:#fff;border:0}.ant-drawer-close{z-index:10;color:rgba(0,0,0,0.45);font-size:16px;border:0;transition:color .3s}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,0.75)}.ant-drawer-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-drawer-header-no-title{color:rgba(0,0,0,0.65);background:#fff}.ant-drawer-body{font-size:14px;line-height:1.5}.ant-drawer-mask{background-color:rgba(0,0,0,0.45);transition:opacity .3s linear,height 0s ease .3s}.ant-drawer-open-content{box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-input-search-icon{color:rgba(0,0,0,0.45)}.ant-input-search-icon:hover{color:rgba(0,0,0,0.8)}.ant-input-search-enter-button input{border-right:0}.ant-input-search-enter-button+.ant-input-group-addon,.ant-input-search-enter-button input+.ant-input-group-addon{border:0}.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button,.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button{border-top-left-radius:0;border-bottom-left-radius:0}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger{color:rgba(0,0,0,0.65);background:#fff}.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{color:rgba(0,0,0,0.65);background:#fff}.ant-list-bordered{border:1px solid #d9d9d9;border-radius:4px}.ant-list-bordered .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-menu-dark,.ant-menu-dark .ant-menu-sub{color:rgba(255,255,255,0.65);background:#001529}.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before{background:#fff}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17;box-shadow:0 2px 8px rgba(0,0,0,0.45) inset}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{border-color:#001529;border-bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a{color:rgba(255,255,255,0.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item::after{border-right:0}.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff}.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-title:hover>a{color:#fff}.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:transparent}.ant-menu-dark .ant-menu-item-selected{color:#fff;border-right:0}.ant-menu-dark .ant-menu-item-selected::after{border-right:0}.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover{color:#fff}.ant-menu-dark .ant-menu-item-selected .anticon{color:#fff}.ant-menu-dark .ant-menu-item-selected span{color:#fff}.ant-menu.ant-menu-dark .ant-menu-item-selected,.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected{background-color:#0665d0}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>a{color:rgba(255,255,255,0.35) !important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(255,255,255,0.35) !important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{background:rgba(255,255,255,0.35) !important}.ant-modal-confirm-body .ant-modal-confirm-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-modal-confirm-body .ant-modal-confirm-content{color:rgba(0,0,0,0.65);font-size:14px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#f5222d}.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon,.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-modal{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-modal-wrap{z-index:1000}.ant-modal-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-modal-content{background-color:#fff;border:0;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-modal-close{z-index:10;color:rgba(0,0,0,0.45);border:0}.ant-modal-close-x{font-size:16px}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,0.75)}.ant-modal-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-modal-body{font-size:14px;line-height:1.5}.ant-modal-footer{background:transparent;border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-modal.zoom-enter,.ant-modal.zoom-appear{animation-duration:.3s}.ant-modal-mask{z-index:1000;background-color:rgba(0,0,0,0.45)}.ant-steps-flex-not-supported.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item{background:#fff}.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot::before,.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot::after{background:#fff}.ant-steps-item-custom .ant-steps-item-icon{border:0}.ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{width:32px;height:32px;line-height:32px}.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#0665d0}.ant-steps-label-vertical .ant-steps-item-content{width:104px}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content{max-width:140px}.ant-steps-navigation .ant-steps-item::after{border:1px solid rgba(0,0,0,0.25);border-bottom:0;border-left:0}.ant-steps-navigation .ant-steps-item::before{background-color:#0665d0}.ant-steps-dot .ant-steps-item-title,.ant-steps-dot.ant-steps-small .ant-steps-item-title{line-height:1.5}.ant-steps-dot .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-icon{width:8px;height:8px;line-height:8px;border:0}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{border-radius:100px}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot::after,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot::after{background:rgba(0,0,0,0.001)}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon{width:10px;height:10px;line-height:10px}.ant-steps-small .ant-steps-item-icon{width:24px;height:24px;font-size:12px;line-height:24px;border-radius:24px}.ant-steps-small .ant-steps-item-title{font-size:14px;line-height:24px}.ant-steps-small .ant-steps-item-title::after{top:12px}.ant-steps-small .ant-steps-item-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon{border:0;border-radius:0}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:24px;line-height:24px}.ant-steps-vertical .ant-steps-item-title{line-height:32px}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}@media(max-width:480px){.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-title{line-height:32px}.ant-steps-horizontal.ant-steps-label-horizontal.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}}html,body{width:100%;height:100%}*,*::before,*::after{box-sizing:border-box}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}h1,h2,h3,h4,h5,h6{color:rgba(0,0,0,0.85)}abbr[title],abbr[data-original-title]{border-bottom:0}a{color:#0665d0;text-decoration:none}a:hover{color:#2a84de}a:active{color:#004aab}a:active,a:hover{text-decoration:none}a[disabled]{color:rgba(0,0,0,0.25)}pre,code,kbd,samp{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}img{border-style:none}table{border-collapse:collapse}caption{color:rgba(0,0,0,0.45)}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box}fieldset{border:0}mark{background-color:#feffe6}::selection{color:#fff;background:#0665d0}.anticon{color:inherit}.ant-motion-collapse-legacy-active{transition:height .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1) !important}.ant-motion-collapse{transition:height .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1) !important}.fade-enter,.fade-appear{animation-duration:.2s}.fade-leave{animation-duration:.2s}.fade-enter.fade-enter-active,.fade-appear.fade-appear-active{animation-name:antFadeIn}.fade-leave.fade-leave-active{animation-name:antFadeOut}.move-up-enter,.move-up-appear{animation-duration:.2s}.move-up-leave{animation-duration:.2s}.move-up-enter.move-up-enter-active,.move-up-appear.move-up-appear-active{animation-name:antMoveUpIn}.move-up-leave.move-up-leave-active{animation-name:antMoveUpOut}.move-up-enter,.move-up-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-up-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-down-enter,.move-down-appear{animation-duration:.2s}.move-down-leave{animation-duration:.2s}.move-down-enter.move-down-enter-active,.move-down-appear.move-down-appear-active{animation-name:antMoveDownIn}.move-down-leave.move-down-leave-active{animation-name:antMoveDownOut}.move-down-enter,.move-down-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-down-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-left-enter,.move-left-appear{animation-duration:.2s}.move-left-leave{animation-duration:.2s}.move-left-enter.move-left-enter-active,.move-left-appear.move-left-appear-active{animation-name:antMoveLeftIn}.move-left-leave.move-left-leave-active{animation-name:antMoveLeftOut}.move-left-enter,.move-left-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-left-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-right-enter,.move-right-appear{animation-duration:.2s}.move-right-leave{animation-duration:.2s}.move-right-enter.move-right-enter-active,.move-right-appear.move-right-appear-active{animation-name:antMoveRightIn}.move-right-leave.move-right-leave-active{animation-name:antMoveRightOut}.move-right-enter,.move-right-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-right-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}html{--antd-wave-shadow-color:#0665d0}[ant-click-animating-without-extra-node="true"]::after,.ant-click-animating-node{border-radius:inherit;box-shadow:0 0 0 0 #0665d0;animation:fadeEffect 2s cubic-bezier(0.08,0.82,0.17,1),waveEffect .4s cubic-bezier(0.08,0.82,0.17,1)}@keyframes waveEffect{100%{box-shadow:0 0 0 #0665d0;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}.slide-up-enter,.slide-up-appear{animation-duration:.2s}.slide-up-leave{animation-duration:.2s}.slide-up-enter.slide-up-enter-active,.slide-up-appear.slide-up-appear-active{animation-name:antSlideUpIn}.slide-up-leave.slide-up-leave-active{animation-name:antSlideUpOut}.slide-up-enter,.slide-up-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-up-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-down-enter,.slide-down-appear{animation-duration:.2s}.slide-down-leave{animation-duration:.2s}.slide-down-enter.slide-down-enter-active,.slide-down-appear.slide-down-appear-active{animation-name:antSlideDownIn}.slide-down-leave.slide-down-leave-active{animation-name:antSlideDownOut}.slide-down-enter,.slide-down-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-down-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-left-enter,.slide-left-appear{animation-duration:.2s}.slide-left-leave{animation-duration:.2s}.slide-left-enter.slide-left-enter-active,.slide-left-appear.slide-left-appear-active{animation-name:antSlideLeftIn}.slide-left-leave.slide-left-leave-active{animation-name:antSlideLeftOut}.slide-left-enter,.slide-left-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-left-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-right-enter,.slide-right-appear{animation-duration:.2s}.slide-right-leave{animation-duration:.2s}.slide-right-enter.slide-right-enter-active,.slide-right-appear.slide-right-appear-active{animation-name:antSlideRightIn}.slide-right-leave.slide-right-leave-active{animation-name:antSlideRightOut}.slide-right-enter,.slide-right-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-right-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.swing-enter,.swing-appear{animation-duration:.2s}.swing-enter.swing-enter-active,.swing-appear.swing-appear-active{animation-name:antSwingIn}.zoom-enter,.zoom-appear{animation-duration:.2s}.zoom-leave{animation-duration:.2s}.zoom-enter.zoom-enter-active,.zoom-appear.zoom-appear-active{animation-name:antZoomIn}.zoom-leave.zoom-leave-active{animation-name:antZoomOut}.zoom-enter,.zoom-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-big-enter,.zoom-big-appear{animation-duration:.2s}.zoom-big-leave{animation-duration:.2s}.zoom-big-enter.zoom-big-enter-active,.zoom-big-appear.zoom-big-appear-active{animation-name:antZoomBigIn}.zoom-big-leave.zoom-big-leave-active{animation-name:antZoomBigOut}.zoom-big-enter,.zoom-big-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-big-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-big-fast-enter,.zoom-big-fast-appear{animation-duration:.1s}.zoom-big-fast-leave{animation-duration:.1s}.zoom-big-fast-enter.zoom-big-fast-enter-active,.zoom-big-fast-appear.zoom-big-fast-appear-active{animation-name:antZoomBigIn}.zoom-big-fast-leave.zoom-big-fast-leave-active{animation-name:antZoomBigOut}.zoom-big-fast-enter,.zoom-big-fast-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-big-fast-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-up-enter,.zoom-up-appear{animation-duration:.2s}.zoom-up-leave{animation-duration:.2s}.zoom-up-enter.zoom-up-enter-active,.zoom-up-appear.zoom-up-appear-active{animation-name:antZoomUpIn}.zoom-up-leave.zoom-up-leave-active{animation-name:antZoomUpOut}.zoom-up-enter,.zoom-up-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-up-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-down-enter,.zoom-down-appear{animation-duration:.2s}.zoom-down-leave{animation-duration:.2s}.zoom-down-enter.zoom-down-enter-active,.zoom-down-appear.zoom-down-appear-active{animation-name:antZoomDownIn}.zoom-down-leave.zoom-down-leave-active{animation-name:antZoomDownOut}.zoom-down-enter,.zoom-down-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-down-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-left-enter,.zoom-left-appear{animation-duration:.2s}.zoom-left-leave{animation-duration:.2s}.zoom-left-enter.zoom-left-enter-active,.zoom-left-appear.zoom-left-appear-active{animation-name:antZoomLeftIn}.zoom-left-leave.zoom-left-leave-active{animation-name:antZoomLeftOut}.zoom-left-enter,.zoom-left-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-left-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-right-enter,.zoom-right-appear{animation-duration:.2s}.zoom-right-leave{animation-duration:.2s}.zoom-right-enter.zoom-right-enter-active,.zoom-right-appear.zoom-right-appear-active{animation-name:antZoomRightIn}.zoom-right-leave.zoom-right-leave-active{animation-name:antZoomRightOut}.zoom-right-enter,.zoom-right-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-right-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.ant-table-small{border:1px solid #e8e8e8;border-radius:4px}.ant-table-small>.ant-table-title{border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table{border:0}.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr{border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort{background-color:rgba(0,0,0,0.01)}.ant-table-small>.ant-table-content .ant-table-header{background-color:#fff}.ant-table-small>.ant-table-content .ant-table-placeholder,.ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:0}.ant-table-small.ant-table-bordered{border-right:0}.ant-table-small.ant-table-bordered .ant-table-title{border:0;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-content{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-footer{border:0;border-top:1px solid #e8e8e8;border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-placeholder{border-right:0;border-bottom:0;border-left:0}.ant-table-small.ant-table-bordered .ant-table-thead>tr>th:last-child,.ant-table-small.ant-table-bordered .ant-table-tbody>tr>td:last-child{border-right:0}.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-thead>tr>th:last-child,.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-tbody>tr>td:last-child{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-fixed-right{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-container{height:40px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab{height:40px;line-height:38px;background:#fafafa;border:1px solid #e8e8e8;border-radius:4px 4px 0 0;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{height:40px;color:#0665d0;background:#fff;border-color:#e8e8e8;border-bottom:1px solid #fff}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active::before{border-top:2px solid transparent}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#0665d0;color:rgba(0,0,0,0.25)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x{height:14px;color:rgba(0,0,0,0.45);font-size:12px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x:hover{color:rgba(0,0,0,0.85)}.ant-tabs-extra-content .ant-tabs-new-tab{color:rgba(0,0,0,0.65);border:1px solid #e8e8e8;border-radius:2px}.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#0665d0;border-color:#0665d0}.ant-tabs.ant-tabs-card .ant-tabs-extra-content{line-height:40px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{border-bottom:1px solid #e8e8e8}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab{border-right:0;border-radius:4px 0 0 4px}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{border-left:0;border-radius:0 4px 4px 0}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab{border-top:0;border-bottom:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#0665d0}.ant-transfer-customize-list .ant-transfer-list{min-height:200px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small{border:0;border-radius:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th{background:#fafafa}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #e8e8e8}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper{border-radius:0}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper:hover::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper:hover::before{background:#e6f6ff}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper.ant-tree-node-selected,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper.ant-tree-node-selected{color:#fff}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper::before{height:24px}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-switcher,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-switcher{color:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox .ant-tree-checkbox-inner,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox .ant-tree-checkbox-inner{border-color:#0665d0}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked::after,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked::after{border-color:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border-color:#0665d0}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-node-content-wrapper::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-node-content-wrapper::before{background:#0665d0}.ant-pro-global-footer-links a{color:rgba(0,0,0,0.45)}.ant-pro-global-footer-links a:hover{color:rgba(0,0,0,0.65)}.ant-pro-global-footer-copyright{color:rgba(0,0,0,0.45);font-size:14px}.ant-pro-global-header{height:64px;background:#fff;box-shadow:0 1px 4px rgba(0,21,41,0.08)}.ant-pro-global-header-logo{height:64px;line-height:64px}.ant-pro-global-header-trigger{height:64px}.ant-pro-global-header-trigger:hover{background:#fff}.ant-pro-global-header .dark{height:64px}.ant-pro-global-header .dark .action:hover,.ant-pro-global-header .dark .action.opened{background:#0665d0}.ant-pro-page-header-wrap-page-header-warp{background-color:#fff}.ant-pro-setting-drawer-content{background:#fff}.ant-pro-setting-drawer-block-checbox{background:#fff}.ant-pro-setting-drawer-block-checbox-item{border-radius:4px}.ant-pro-setting-drawer-block-checbox-selectIcon{color:#0665d0}.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#0665d0}.ant-pro-setting-drawer-color_block{border-radius:4px}.ant-pro-setting-drawer-title{color:rgba(0,0,0,0.85)}.ant-pro-setting-drawer-handle{background:#0665d0;border-radius:4px 0 0 4px}.ant-pro-sider-menu-logo{background:#001529}.ant-pro-sider-menu-sider.fix-sider-bar>.ant-menu-root :not(.ant-pro-sider-menu-link-menu){height:calc(100vh - 64px)}.ant-pro-sider-menu-sider.fix-sider-bar .ant-menu-inline{border-right:0}.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#0665d0}.ant-pro-sider-menu-sider.light .ant-menu-light{border-right-color:transparent}.ant-pro-sider-menu .top-nav-menu li.ant-menu-item{height:64px;line-height:64px}.ant-pro-sider-menu .drawer .drawer-content{background:#001529}.ant-pro-sider-menu .ant-menu-item .sider-menu-item-img+span,.ant-pro-sider-menu .ant-menu-submenu-title .sider-menu-item-img+span{transition:opacity .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-pro-top-nav-header{height:64px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-pro-top-nav-header .ant-menu-submenu.ant-menu-submenu-horizontal{line-height:64px}.ant-pro-top-nav-header.light{background-color:#fff}.ant-pro-top-nav-header-main{height:64px}.ant-pro-top-nav-header-logo{height:64px;line-height:64px}.ant-pro-top-nav-header-logo h1{color:#fff}.ant-pro-top-nav-header-menu .ant-menu.ant-menu-horizontal{height:64px;line-height:64px;border:0}.ant-pro-basicLayout:not(".ant-pro-basicLayout-mobile") ::-webkit-scrollbar-track{border-radius:3px}.ant-pro-basicLayout:not(".ant-pro-basicLayout-mobile") ::-webkit-scrollbar-thumb{border-radius:3px}.ant-pro-basicLayout .ant-layout-header:not(.ant-pro-top-menu){background:#fff}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children{min-height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children.ant-pro-basicLayout-fix-siderbar{height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .tech-page-container{height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children.ant-pro-basicLayout-has-header .tech-page-container{height:calc(100vh - 64px - 64px)}.ant-pro-setting-drawer-content .theme-color .theme-color-block{border-radius:2px}.antd-pro-components-tutorial-tutorial-row{border-bottom:1px solid #eee}.antd-pro-components-tutorial-tutorial-img{border-radius:5px}.antd-pro-components-tutorial-tutorial-action_area{border-radius:5px;border:2px dashed #999} \ No newline at end of file diff --git a/public/assets/admin/umi.css b/public/assets/admin/umi.css deleted file mode 100644 index cceba23..0000000 --- a/public/assets/admin/umi.css +++ /dev/null @@ -1,3 +0,0 @@ - -.content___DW5w1{position:absolute;bottom:0;top:0;margin-top:60px!important;margin-bottom:55px!important}.input___1j_ND{position:fixed;bottom:0}.tag___12_9H{color:#000;padding:5px 10px;font-size:18px}.bubble___3NP2-{background:#f2f5fb;border-radius:5px;font-size:14px;padding:10px 10px 30px}.time___1yWOE{position:absolute}.ctrl___UqDJ7{float:right;font-size:18px} -#root,body,html{height:100%}html[data-darkreader-scheme=dark]{color-scheme:dark}.ant-table{font-family:menlo!important}.ant-spin-blur{overflow:unset;opacity:unset}.ant-spin-blur:after{opacity:.7}.ant-spin{max-height:unset!important}.ant-drawer-header,.ant-modal-header{padding:15px}.ant-drawer-body,.ant-modal-body{padding:15px}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:left;background-color:#f0f3f8}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:1.375rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0665d0;text-decoration:none;background-color:transparent}a:hover{color:#03356d;text-decoration:none}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{font-weight:600;text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.375rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:1.375rem;font-weight:600;line-height:1.25;color:#171717}.h1,h1{font-size:2.25rem}.h2,h2{font-size:1.875rem}.h3,h3{font-size:1.5rem}.h4,h4{font-size:1.25rem}.h5,h5{font-size:1.125rem}.h6,h6{font-size:1rem}.lead{font-size:1.5rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.25}.display-2{font-size:5.5rem;font-weight:300;line-height:1.25}.display-3{font-size:4.5rem;font-weight:300;line-height:1.25}.display-4{font-size:3.5rem;font-weight:300;line-height:1.25}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid #e2e8f2}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#f0f3f8;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:600}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:14px;padding-left:14px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-14px;margin-left:-14px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:14px;padding-left:14px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#495057;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #e2e8f2}.table thead th{vertical-align:bottom;border-bottom:2px solid #e2e8f2}.table tbody+tbody{border-top:2px solid #e2e8f2}.table-sm td,.table-sm th{padding:.25rem}.table-bordered{border:1px solid #e2e8f2}.table-bordered td,.table-bordered th{border:1px solid #e2e8f2}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:#f6f7fb}.table-hover tbody tr:hover{color:#495057;background-color:#ebeff6}.table-primary,.table-primary>td,.table-primary>th{background-color:#b9d4f2}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7eafe7}.table-hover .table-primary:hover{background-color:#a3c7ee}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a3c7ee}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#dceacd}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#bed9a1}.table-hover .table-success:hover{background-color:#cfe2bb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#cfe2bb}.table-info,.table-info>td,.table-info>th{background-color:#c8e0f6}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#9ac5ee}.table-hover .table-info:hover{background-color:#b2d4f2}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#b2d4f2}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffe9bf}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffd687}.table-hover .table-warning:hover{background-color:#ffe0a6}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe0a6}.table-danger,.table-danger>td,.table-danger>th{background-color:#f6cebf}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#efa388}.table-hover .table-danger:hover{background-color:#f3bda9}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f3bda9}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:#ebeff6}.table-hover .table-active:hover{background-color:#dae0ee}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#dae0ee}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#343a40}.table .thead-light th{color:#495057;background-color:#e2e8f2;border-color:#e2e8f2}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#343a40}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #d4dcec;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#5ba6fa;outline:0;box-shadow:0 0 0 .2rem rgba(6,101,208,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#495057;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1.25rem}.form-text{display:block;margin-top:.5rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.5rem;font-size:.875rem;color:#82b54b}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .75rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(130,181,75,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#82b54b}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#82b54b}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#82b54b}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#82b54b}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#82b54b}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#9bc46f;background-color:#9bc46f}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before{border-color:#82b54b}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#82b54b}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.invalid-feedback{display:none;width:100%;margin-top:.5rem;font-size:.875rem;color:#e04f1a}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .75rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(224,79,26,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#e04f1a}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#e04f1a}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#e04f1a}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#e04f1a}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#e04f1a}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e97044;background-color:#e97044}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before{border-color:#e04f1a}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#e04f1a}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:600;color:#495057;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#495057;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(6,101,208,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#0665d0;border-color:#0665d0}.btn-primary:hover{color:#fff;background-color:#0553ab;border-color:#054d9e}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0553ab;border-color:#054d9e;box-shadow:0 0 0 .2rem rgba(43,124,215,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0665d0;border-color:#0665d0}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#054d9e;border-color:#044792}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(43,124,215,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#82b54b;border-color:#82b54b}.btn-success:hover{color:#fff;background-color:#6f9a3f;border-color:#68913c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#6f9a3f;border-color:#68913c;box-shadow:0 0 0 .2rem rgba(149,192,102,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#82b54b;border-color:#82b54b}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#68913c;border-color:#628838}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(149,192,102,.5)}.btn-info{color:#fff;background-color:#3c90df;border-color:#3c90df}.btn-info:hover{color:#fff;background-color:#237dd2;border-color:#2177c7}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#237dd2;border-color:#2177c7;box-shadow:0 0 0 .2rem rgba(89,161,228,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#3c90df;border-color:#3c90df}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#2177c7;border-color:#1f70bc}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(89,161,228,.5)}.btn-warning{color:#fff;background-color:#ffb119;border-color:#ffb119}.btn-warning:hover{color:#fff;background-color:#f2a000;border-color:#e59700}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#f2a000;border-color:#e59700;box-shadow:0 0 0 .2rem rgba(255,189,60,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#ffb119;border-color:#ffb119}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#e59700;border-color:#d88f00}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,189,60,.5)}.btn-danger{color:#fff;background-color:#e04f1a;border-color:#e04f1a}.btn-danger:hover{color:#fff;background-color:#be4316;border-color:#b23f15}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#be4316;border-color:#b23f15;box-shadow:0 0 0 .2rem rgba(229,105,60,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#e04f1a;border-color:#e04f1a}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b23f15;border-color:#a73b13}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(229,105,60,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#0665d0;border-color:#0665d0}.btn-outline-primary:hover{color:#fff;background-color:#0665d0;border-color:#0665d0}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(6,101,208,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0665d0;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#0665d0;border-color:#0665d0}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(6,101,208,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#82b54b;border-color:#82b54b}.btn-outline-success:hover{color:#fff;background-color:#82b54b;border-color:#82b54b}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(130,181,75,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#82b54b;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#82b54b;border-color:#82b54b}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,181,75,.5)}.btn-outline-info{color:#3c90df;border-color:#3c90df}.btn-outline-info:hover{color:#fff;background-color:#3c90df;border-color:#3c90df}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(60,144,223,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#3c90df;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#3c90df;border-color:#3c90df}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,144,223,.5)}.btn-outline-warning{color:#ffb119;border-color:#ffb119}.btn-outline-warning:hover{color:#fff;background-color:#ffb119;border-color:#ffb119}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,177,25,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffb119;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#ffb119;border-color:#ffb119}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,177,25,.5)}.btn-outline-danger{color:#e04f1a;border-color:#e04f1a}.btn-outline-danger:hover{color:#fff;background-color:#e04f1a;border-color:#e04f1a}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(224,79,26,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#e04f1a;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#e04f1a;border-color:#e04f1a}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(224,79,26,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#0665d0;text-decoration:none}.btn-link:hover{color:#03356d;text-decoration:none}.btn-link.focus,.btn-link:focus{text-decoration:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:12rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#495057;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:0 solid #e2e8f2;border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle:after{display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e2e8f2}.dropdown-item{display:block;width:100%;padding:.375rem .75rem;clear:both;font-weight:400;color:#495057;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#495057;text-decoration:none;background-color:#f0f3f8}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0665d0}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem .75rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.375rem .75rem;color:#495057}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label:after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label:after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#f0f3f8;border:1px solid #d4dcec;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#0665d0;background-color:#0665d0}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(6,101,208,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#5ba6fa}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#8dc1fc;border-color:#8dc1fc}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#e2e8f2;border:1px solid #adb5bd}.custom-control-label:after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:1% 50% no-repeat}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#0665d0;background-color:#0665d0}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(6,101,208,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(6,101,208,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(6,101,208,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#e2e8f2}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(6,101,208,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat;border:1px solid #d4dcec;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#5ba6fa;outline:0;box-shadow:0 0 0 .2rem rgba(6,101,208,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#5ba6fa;box-shadow:0 0 0 .2rem rgba(6,101,208,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #d4dcec;border-radius:.25rem}.custom-file-label:after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#f0f3f8;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f0f3f8,0 0 0 .2rem rgba(6,101,208,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f0f3f8,0 0 0 .2rem rgba(6,101,208,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #f0f3f8,0 0 0 .2rem rgba(6,101,208,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0665d0;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#8dc1fc}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0665d0;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#8dc1fc}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#0665d0;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#8dc1fc}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #e2e8f2}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e2e8f2}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#e2e8f2}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:14px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-14px;margin-left:-14px}.card-deck .card{flex:1 0;margin-right:14px;margin-bottom:0;margin-left:14px}}.card-group>.card{margin-bottom:14px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;column-count:3;-webkit-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 0;margin-bottom:0;list-style:none;background-color:transparent;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#495057;background-color:#f0f3f8;border:1px solid #f0f3f8}.page-link:hover{z-index:2;color:#495057;text-decoration:none;background-color:#cdd6e8;border-color:#cdd6e8}.page-link:focus{z-index:3;outline:0;box-shadow:none}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0665d0;border-color:#0665d0}.page-item.disabled .page-link{color:#adb5bd;pointer-events:none;cursor:auto;background-color:#fff;border-color:#fff}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:600;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#0665d0}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#054d9e}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(6,101,208,.5)}.badge-secondary{background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#82b54b}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#68913c}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(130,181,75,.5)}.badge-info{color:#fff;background-color:#3c90df}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#2177c7}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(60,144,223,.5)}.badge-warning{color:#fff;background-color:#ffb119}a.badge-warning:focus,a.badge-warning:hover{color:#fff;background-color:#e59700}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,177,25,.5)}.badge-danger{color:#fff;background-color:#e04f1a}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#b23f15}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(224,79,26,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:0 solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:600}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#03356c;background-color:#cde0f6;border-color:#b9d4f2}.alert-primary hr{border-top-color:#a3c7ee}.alert-primary .alert-link{color:#021d3a}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#445e27;background-color:#e6f0db;border-color:#dceacd}.alert-success hr{border-top-color:#cfe2bb}.alert-success .alert-link{color:#2a3a18}.alert-info{color:#1f4b74;background-color:#d8e9f9;border-color:#c8e0f6}.alert-info hr{border-top-color:#b2d4f2}.alert-info .alert-link{color:#14314c}.alert-warning{color:#855c0d;background-color:#ffefd1;border-color:#ffe9bf}.alert-warning hr{border-top-color:#ffe0a6}.alert-warning .alert-link{color:#573c08}.alert-danger{color:#74290e;background-color:#f9dcd1;border-color:#f6cebf}.alert-danger hr{border-top-color:#f3bda9}.alert-danger .alert-link{color:#461909}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1.25rem 0}to{background-position:0 0}}.progress{display:flex;height:1.25rem;overflow:hidden;line-height:0;font-size:1rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0665d0;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1.25rem 1.25rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1 1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f6f7fb}.list-group-item-action:active{color:#495057;background-color:#e2e8f2}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid #e2e8f2}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0665d0;border-color:#0665d0}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#03356c;background-color:#b9d4f2}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#03356c;background-color:#a3c7ee}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#03356c;border-color:#03356c}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#445e27;background-color:#dceacd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#445e27;background-color:#cfe2bb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#445e27;border-color:#445e27}.list-group-item-info{color:#1f4b74;background-color:#c8e0f6}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#1f4b74;background-color:#b2d4f2}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#1f4b74;border-color:#1f4b74}.list-group-item-warning{color:#855c0d;background-color:#ffe9bf}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#855c0d;background-color:#ffe0a6}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#855c0d;border-color:#855c0d}.list-group-item-danger{color:#74290e;background-color:#f6cebf}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#74290e;background-color:#f3bda9}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#74290e;border-color:#74290e}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:600;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.8}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #e2e8f2;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #e2e8f2;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .75rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid #e2e8f2;border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:#e2e8f2}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:#e2e8f2}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:#e2e8f2}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #fff}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:#e2e8f2}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.75rem .625rem;margin-bottom:0;font-size:1rem;color:#171717;background-color:#fff;border-bottom:1px solid #f2f2f2;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.625rem;color:#495057}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#0665d0!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#054d9e!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#82b54b!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#68913c!important}.bg-info{background-color:#3c90df!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#2177c7!important}.bg-warning{background-color:#ffb119!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#e59700!important}.bg-danger{background-color:#e04f1a!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#b23f15!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #e2e8f2!important}.border-top{border-top:1px solid #e2e8f2!important}.border-right{border-right:1px solid #e2e8f2!important}.border-bottom{border-bottom:1px solid #e2e8f2!important}.border-left{border-left:1px solid #e2e8f2!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#0665d0!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#82b54b!important}.border-info{border-color:#3c90df!important}.border-warning{border-color:#ffb119!important}.border-danger{border-color:#e04f1a!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{white-space:nowrap}.sr-only-focusable:active,.sr-only-focusable:focus{white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.m-6{margin:4.5rem!important}.mt-6,.my-6{margin-top:4.5rem!important}.mr-6,.mx-6{margin-right:4.5rem!important}.mb-6,.my-6{margin-bottom:4.5rem!important}.ml-6,.mx-6{margin-left:4.5rem!important}.m-7{margin:6rem!important}.mt-7,.my-7{margin-top:6rem!important}.mr-7,.mx-7{margin-right:6rem!important}.mb-7,.my-7{margin-bottom:6rem!important}.ml-7,.mx-7{margin-left:6rem!important}.m-8{margin:9rem!important}.mt-8,.my-8{margin-top:9rem!important}.mr-8,.mx-8{margin-right:9rem!important}.mb-8,.my-8{margin-bottom:9rem!important}.ml-8,.mx-8{margin-left:9rem!important}.m-9{margin:12rem!important}.mt-9,.my-9{margin-top:12rem!important}.mr-9,.mx-9{margin-right:12rem!important}.mb-9,.my-9{margin-bottom:12rem!important}.ml-9,.mx-9{margin-left:12rem!important}.m-10{margin:18rem!important}.mt-10,.my-10{margin-top:18rem!important}.mr-10,.mx-10{margin-right:18rem!important}.mb-10,.my-10{margin-bottom:18rem!important}.ml-10,.mx-10{margin-left:18rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.p-6{padding:4.5rem!important}.pt-6,.py-6{padding-top:4.5rem!important}.pr-6,.px-6{padding-right:4.5rem!important}.pb-6,.py-6{padding-bottom:4.5rem!important}.pl-6,.px-6{padding-left:4.5rem!important}.p-7{padding:6rem!important}.pt-7,.py-7{padding-top:6rem!important}.pr-7,.px-7{padding-right:6rem!important}.pb-7,.py-7{padding-bottom:6rem!important}.pl-7,.px-7{padding-left:6rem!important}.p-8{padding:9rem!important}.pt-8,.py-8{padding-top:9rem!important}.pr-8,.px-8{padding-right:9rem!important}.pb-8,.py-8{padding-bottom:9rem!important}.pl-8,.px-8{padding-left:9rem!important}.p-9{padding:12rem!important}.pt-9,.py-9{padding-top:12rem!important}.pr-9,.px-9{padding-right:12rem!important}.pb-9,.py-9{padding-bottom:12rem!important}.pl-9,.px-9{padding-left:12rem!important}.p-10{padding:18rem!important}.pt-10,.py-10{padding-top:18rem!important}.pr-10,.px-10{padding-right:18rem!important}.pb-10,.py-10{padding-bottom:18rem!important}.pl-10,.px-10{padding-left:18rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-n6{margin:-4.5rem!important}.mt-n6,.my-n6{margin-top:-4.5rem!important}.mr-n6,.mx-n6{margin-right:-4.5rem!important}.mb-n6,.my-n6{margin-bottom:-4.5rem!important}.ml-n6,.mx-n6{margin-left:-4.5rem!important}.m-n7{margin:-6rem!important}.mt-n7,.my-n7{margin-top:-6rem!important}.mr-n7,.mx-n7{margin-right:-6rem!important}.mb-n7,.my-n7{margin-bottom:-6rem!important}.ml-n7,.mx-n7{margin-left:-6rem!important}.m-n8{margin:-9rem!important}.mt-n8,.my-n8{margin-top:-9rem!important}.mr-n8,.mx-n8{margin-right:-9rem!important}.mb-n8,.my-n8{margin-bottom:-9rem!important}.ml-n8,.mx-n8{margin-left:-9rem!important}.m-n9{margin:-12rem!important}.mt-n9,.my-n9{margin-top:-12rem!important}.mr-n9,.mx-n9{margin-right:-12rem!important}.mb-n9,.my-n9{margin-bottom:-12rem!important}.ml-n9,.mx-n9{margin-left:-12rem!important}.m-n10{margin:-18rem!important}.mt-n10,.my-n10{margin-top:-18rem!important}.mr-n10,.mx-n10{margin-right:-18rem!important}.mb-n10,.my-n10{margin-bottom:-18rem!important}.ml-n10,.mx-n10{margin-left:-18rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.m-sm-6{margin:4.5rem!important}.mt-sm-6,.my-sm-6{margin-top:4.5rem!important}.mr-sm-6,.mx-sm-6{margin-right:4.5rem!important}.mb-sm-6,.my-sm-6{margin-bottom:4.5rem!important}.ml-sm-6,.mx-sm-6{margin-left:4.5rem!important}.m-sm-7{margin:6rem!important}.mt-sm-7,.my-sm-7{margin-top:6rem!important}.mr-sm-7,.mx-sm-7{margin-right:6rem!important}.mb-sm-7,.my-sm-7{margin-bottom:6rem!important}.ml-sm-7,.mx-sm-7{margin-left:6rem!important}.m-sm-8{margin:9rem!important}.mt-sm-8,.my-sm-8{margin-top:9rem!important}.mr-sm-8,.mx-sm-8{margin-right:9rem!important}.mb-sm-8,.my-sm-8{margin-bottom:9rem!important}.ml-sm-8,.mx-sm-8{margin-left:9rem!important}.m-sm-9{margin:12rem!important}.mt-sm-9,.my-sm-9{margin-top:12rem!important}.mr-sm-9,.mx-sm-9{margin-right:12rem!important}.mb-sm-9,.my-sm-9{margin-bottom:12rem!important}.ml-sm-9,.mx-sm-9{margin-left:12rem!important}.m-sm-10{margin:18rem!important}.mt-sm-10,.my-sm-10{margin-top:18rem!important}.mr-sm-10,.mx-sm-10{margin-right:18rem!important}.mb-sm-10,.my-sm-10{margin-bottom:18rem!important}.ml-sm-10,.mx-sm-10{margin-left:18rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.p-sm-6{padding:4.5rem!important}.pt-sm-6,.py-sm-6{padding-top:4.5rem!important}.pr-sm-6,.px-sm-6{padding-right:4.5rem!important}.pb-sm-6,.py-sm-6{padding-bottom:4.5rem!important}.pl-sm-6,.px-sm-6{padding-left:4.5rem!important}.p-sm-7{padding:6rem!important}.pt-sm-7,.py-sm-7{padding-top:6rem!important}.pr-sm-7,.px-sm-7{padding-right:6rem!important}.pb-sm-7,.py-sm-7{padding-bottom:6rem!important}.pl-sm-7,.px-sm-7{padding-left:6rem!important}.p-sm-8{padding:9rem!important}.pt-sm-8,.py-sm-8{padding-top:9rem!important}.pr-sm-8,.px-sm-8{padding-right:9rem!important}.pb-sm-8,.py-sm-8{padding-bottom:9rem!important}.pl-sm-8,.px-sm-8{padding-left:9rem!important}.p-sm-9{padding:12rem!important}.pt-sm-9,.py-sm-9{padding-top:12rem!important}.pr-sm-9,.px-sm-9{padding-right:12rem!important}.pb-sm-9,.py-sm-9{padding-bottom:12rem!important}.pl-sm-9,.px-sm-9{padding-left:12rem!important}.p-sm-10{padding:18rem!important}.pt-sm-10,.py-sm-10{padding-top:18rem!important}.pr-sm-10,.px-sm-10{padding-right:18rem!important}.pb-sm-10,.py-sm-10{padding-bottom:18rem!important}.pl-sm-10,.px-sm-10{padding-left:18rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-n6{margin:-4.5rem!important}.mt-sm-n6,.my-sm-n6{margin-top:-4.5rem!important}.mr-sm-n6,.mx-sm-n6{margin-right:-4.5rem!important}.mb-sm-n6,.my-sm-n6{margin-bottom:-4.5rem!important}.ml-sm-n6,.mx-sm-n6{margin-left:-4.5rem!important}.m-sm-n7{margin:-6rem!important}.mt-sm-n7,.my-sm-n7{margin-top:-6rem!important}.mr-sm-n7,.mx-sm-n7{margin-right:-6rem!important}.mb-sm-n7,.my-sm-n7{margin-bottom:-6rem!important}.ml-sm-n7,.mx-sm-n7{margin-left:-6rem!important}.m-sm-n8{margin:-9rem!important}.mt-sm-n8,.my-sm-n8{margin-top:-9rem!important}.mr-sm-n8,.mx-sm-n8{margin-right:-9rem!important}.mb-sm-n8,.my-sm-n8{margin-bottom:-9rem!important}.ml-sm-n8,.mx-sm-n8{margin-left:-9rem!important}.m-sm-n9{margin:-12rem!important}.mt-sm-n9,.my-sm-n9{margin-top:-12rem!important}.mr-sm-n9,.mx-sm-n9{margin-right:-12rem!important}.mb-sm-n9,.my-sm-n9{margin-bottom:-12rem!important}.ml-sm-n9,.mx-sm-n9{margin-left:-12rem!important}.m-sm-n10{margin:-18rem!important}.mt-sm-n10,.my-sm-n10{margin-top:-18rem!important}.mr-sm-n10,.mx-sm-n10{margin-right:-18rem!important}.mb-sm-n10,.my-sm-n10{margin-bottom:-18rem!important}.ml-sm-n10,.mx-sm-n10{margin-left:-18rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.m-md-6{margin:4.5rem!important}.mt-md-6,.my-md-6{margin-top:4.5rem!important}.mr-md-6,.mx-md-6{margin-right:4.5rem!important}.mb-md-6,.my-md-6{margin-bottom:4.5rem!important}.ml-md-6,.mx-md-6{margin-left:4.5rem!important}.m-md-7{margin:6rem!important}.mt-md-7,.my-md-7{margin-top:6rem!important}.mr-md-7,.mx-md-7{margin-right:6rem!important}.mb-md-7,.my-md-7{margin-bottom:6rem!important}.ml-md-7,.mx-md-7{margin-left:6rem!important}.m-md-8{margin:9rem!important}.mt-md-8,.my-md-8{margin-top:9rem!important}.mr-md-8,.mx-md-8{margin-right:9rem!important}.mb-md-8,.my-md-8{margin-bottom:9rem!important}.ml-md-8,.mx-md-8{margin-left:9rem!important}.m-md-9{margin:12rem!important}.mt-md-9,.my-md-9{margin-top:12rem!important}.mr-md-9,.mx-md-9{margin-right:12rem!important}.mb-md-9,.my-md-9{margin-bottom:12rem!important}.ml-md-9,.mx-md-9{margin-left:12rem!important}.m-md-10{margin:18rem!important}.mt-md-10,.my-md-10{margin-top:18rem!important}.mr-md-10,.mx-md-10{margin-right:18rem!important}.mb-md-10,.my-md-10{margin-bottom:18rem!important}.ml-md-10,.mx-md-10{margin-left:18rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.p-md-6{padding:4.5rem!important}.pt-md-6,.py-md-6{padding-top:4.5rem!important}.pr-md-6,.px-md-6{padding-right:4.5rem!important}.pb-md-6,.py-md-6{padding-bottom:4.5rem!important}.pl-md-6,.px-md-6{padding-left:4.5rem!important}.p-md-7{padding:6rem!important}.pt-md-7,.py-md-7{padding-top:6rem!important}.pr-md-7,.px-md-7{padding-right:6rem!important}.pb-md-7,.py-md-7{padding-bottom:6rem!important}.pl-md-7,.px-md-7{padding-left:6rem!important}.p-md-8{padding:9rem!important}.pt-md-8,.py-md-8{padding-top:9rem!important}.pr-md-8,.px-md-8{padding-right:9rem!important}.pb-md-8,.py-md-8{padding-bottom:9rem!important}.pl-md-8,.px-md-8{padding-left:9rem!important}.p-md-9{padding:12rem!important}.pt-md-9,.py-md-9{padding-top:12rem!important}.pr-md-9,.px-md-9{padding-right:12rem!important}.pb-md-9,.py-md-9{padding-bottom:12rem!important}.pl-md-9,.px-md-9{padding-left:12rem!important}.p-md-10{padding:18rem!important}.pt-md-10,.py-md-10{padding-top:18rem!important}.pr-md-10,.px-md-10{padding-right:18rem!important}.pb-md-10,.py-md-10{padding-bottom:18rem!important}.pl-md-10,.px-md-10{padding-left:18rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-n6{margin:-4.5rem!important}.mt-md-n6,.my-md-n6{margin-top:-4.5rem!important}.mr-md-n6,.mx-md-n6{margin-right:-4.5rem!important}.mb-md-n6,.my-md-n6{margin-bottom:-4.5rem!important}.ml-md-n6,.mx-md-n6{margin-left:-4.5rem!important}.m-md-n7{margin:-6rem!important}.mt-md-n7,.my-md-n7{margin-top:-6rem!important}.mr-md-n7,.mx-md-n7{margin-right:-6rem!important}.mb-md-n7,.my-md-n7{margin-bottom:-6rem!important}.ml-md-n7,.mx-md-n7{margin-left:-6rem!important}.m-md-n8{margin:-9rem!important}.mt-md-n8,.my-md-n8{margin-top:-9rem!important}.mr-md-n8,.mx-md-n8{margin-right:-9rem!important}.mb-md-n8,.my-md-n8{margin-bottom:-9rem!important}.ml-md-n8,.mx-md-n8{margin-left:-9rem!important}.m-md-n9{margin:-12rem!important}.mt-md-n9,.my-md-n9{margin-top:-12rem!important}.mr-md-n9,.mx-md-n9{margin-right:-12rem!important}.mb-md-n9,.my-md-n9{margin-bottom:-12rem!important}.ml-md-n9,.mx-md-n9{margin-left:-12rem!important}.m-md-n10{margin:-18rem!important}.mt-md-n10,.my-md-n10{margin-top:-18rem!important}.mr-md-n10,.mx-md-n10{margin-right:-18rem!important}.mb-md-n10,.my-md-n10{margin-bottom:-18rem!important}.ml-md-n10,.mx-md-n10{margin-left:-18rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.m-lg-6{margin:4.5rem!important}.mt-lg-6,.my-lg-6{margin-top:4.5rem!important}.mr-lg-6,.mx-lg-6{margin-right:4.5rem!important}.mb-lg-6,.my-lg-6{margin-bottom:4.5rem!important}.ml-lg-6,.mx-lg-6{margin-left:4.5rem!important}.m-lg-7{margin:6rem!important}.mt-lg-7,.my-lg-7{margin-top:6rem!important}.mr-lg-7,.mx-lg-7{margin-right:6rem!important}.mb-lg-7,.my-lg-7{margin-bottom:6rem!important}.ml-lg-7,.mx-lg-7{margin-left:6rem!important}.m-lg-8{margin:9rem!important}.mt-lg-8,.my-lg-8{margin-top:9rem!important}.mr-lg-8,.mx-lg-8{margin-right:9rem!important}.mb-lg-8,.my-lg-8{margin-bottom:9rem!important}.ml-lg-8,.mx-lg-8{margin-left:9rem!important}.m-lg-9{margin:12rem!important}.mt-lg-9,.my-lg-9{margin-top:12rem!important}.mr-lg-9,.mx-lg-9{margin-right:12rem!important}.mb-lg-9,.my-lg-9{margin-bottom:12rem!important}.ml-lg-9,.mx-lg-9{margin-left:12rem!important}.m-lg-10{margin:18rem!important}.mt-lg-10,.my-lg-10{margin-top:18rem!important}.mr-lg-10,.mx-lg-10{margin-right:18rem!important}.mb-lg-10,.my-lg-10{margin-bottom:18rem!important}.ml-lg-10,.mx-lg-10{margin-left:18rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.p-lg-6{padding:4.5rem!important}.pt-lg-6,.py-lg-6{padding-top:4.5rem!important}.pr-lg-6,.px-lg-6{padding-right:4.5rem!important}.pb-lg-6,.py-lg-6{padding-bottom:4.5rem!important}.pl-lg-6,.px-lg-6{padding-left:4.5rem!important}.p-lg-7{padding:6rem!important}.pt-lg-7,.py-lg-7{padding-top:6rem!important}.pr-lg-7,.px-lg-7{padding-right:6rem!important}.pb-lg-7,.py-lg-7{padding-bottom:6rem!important}.pl-lg-7,.px-lg-7{padding-left:6rem!important}.p-lg-8{padding:9rem!important}.pt-lg-8,.py-lg-8{padding-top:9rem!important}.pr-lg-8,.px-lg-8{padding-right:9rem!important}.pb-lg-8,.py-lg-8{padding-bottom:9rem!important}.pl-lg-8,.px-lg-8{padding-left:9rem!important}.p-lg-9{padding:12rem!important}.pt-lg-9,.py-lg-9{padding-top:12rem!important}.pr-lg-9,.px-lg-9{padding-right:12rem!important}.pb-lg-9,.py-lg-9{padding-bottom:12rem!important}.pl-lg-9,.px-lg-9{padding-left:12rem!important}.p-lg-10{padding:18rem!important}.pt-lg-10,.py-lg-10{padding-top:18rem!important}.pr-lg-10,.px-lg-10{padding-right:18rem!important}.pb-lg-10,.py-lg-10{padding-bottom:18rem!important}.pl-lg-10,.px-lg-10{padding-left:18rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-n6{margin:-4.5rem!important}.mt-lg-n6,.my-lg-n6{margin-top:-4.5rem!important}.mr-lg-n6,.mx-lg-n6{margin-right:-4.5rem!important}.mb-lg-n6,.my-lg-n6{margin-bottom:-4.5rem!important}.ml-lg-n6,.mx-lg-n6{margin-left:-4.5rem!important}.m-lg-n7{margin:-6rem!important}.mt-lg-n7,.my-lg-n7{margin-top:-6rem!important}.mr-lg-n7,.mx-lg-n7{margin-right:-6rem!important}.mb-lg-n7,.my-lg-n7{margin-bottom:-6rem!important}.ml-lg-n7,.mx-lg-n7{margin-left:-6rem!important}.m-lg-n8{margin:-9rem!important}.mt-lg-n8,.my-lg-n8{margin-top:-9rem!important}.mr-lg-n8,.mx-lg-n8{margin-right:-9rem!important}.mb-lg-n8,.my-lg-n8{margin-bottom:-9rem!important}.ml-lg-n8,.mx-lg-n8{margin-left:-9rem!important}.m-lg-n9{margin:-12rem!important}.mt-lg-n9,.my-lg-n9{margin-top:-12rem!important}.mr-lg-n9,.mx-lg-n9{margin-right:-12rem!important}.mb-lg-n9,.my-lg-n9{margin-bottom:-12rem!important}.ml-lg-n9,.mx-lg-n9{margin-left:-12rem!important}.m-lg-n10{margin:-18rem!important}.mt-lg-n10,.my-lg-n10{margin-top:-18rem!important}.mr-lg-n10,.mx-lg-n10{margin-right:-18rem!important}.mb-lg-n10,.my-lg-n10{margin-bottom:-18rem!important}.ml-lg-n10,.mx-lg-n10{margin-left:-18rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.m-xl-6{margin:4.5rem!important}.mt-xl-6,.my-xl-6{margin-top:4.5rem!important}.mr-xl-6,.mx-xl-6{margin-right:4.5rem!important}.mb-xl-6,.my-xl-6{margin-bottom:4.5rem!important}.ml-xl-6,.mx-xl-6{margin-left:4.5rem!important}.m-xl-7{margin:6rem!important}.mt-xl-7,.my-xl-7{margin-top:6rem!important}.mr-xl-7,.mx-xl-7{margin-right:6rem!important}.mb-xl-7,.my-xl-7{margin-bottom:6rem!important}.ml-xl-7,.mx-xl-7{margin-left:6rem!important}.m-xl-8{margin:9rem!important}.mt-xl-8,.my-xl-8{margin-top:9rem!important}.mr-xl-8,.mx-xl-8{margin-right:9rem!important}.mb-xl-8,.my-xl-8{margin-bottom:9rem!important}.ml-xl-8,.mx-xl-8{margin-left:9rem!important}.m-xl-9{margin:12rem!important}.mt-xl-9,.my-xl-9{margin-top:12rem!important}.mr-xl-9,.mx-xl-9{margin-right:12rem!important}.mb-xl-9,.my-xl-9{margin-bottom:12rem!important}.ml-xl-9,.mx-xl-9{margin-left:12rem!important}.m-xl-10{margin:18rem!important}.mt-xl-10,.my-xl-10{margin-top:18rem!important}.mr-xl-10,.mx-xl-10{margin-right:18rem!important}.mb-xl-10,.my-xl-10{margin-bottom:18rem!important}.ml-xl-10,.mx-xl-10{margin-left:18rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.p-xl-6{padding:4.5rem!important}.pt-xl-6,.py-xl-6{padding-top:4.5rem!important}.pr-xl-6,.px-xl-6{padding-right:4.5rem!important}.pb-xl-6,.py-xl-6{padding-bottom:4.5rem!important}.pl-xl-6,.px-xl-6{padding-left:4.5rem!important}.p-xl-7{padding:6rem!important}.pt-xl-7,.py-xl-7{padding-top:6rem!important}.pr-xl-7,.px-xl-7{padding-right:6rem!important}.pb-xl-7,.py-xl-7{padding-bottom:6rem!important}.pl-xl-7,.px-xl-7{padding-left:6rem!important}.p-xl-8{padding:9rem!important}.pt-xl-8,.py-xl-8{padding-top:9rem!important}.pr-xl-8,.px-xl-8{padding-right:9rem!important}.pb-xl-8,.py-xl-8{padding-bottom:9rem!important}.pl-xl-8,.px-xl-8{padding-left:9rem!important}.p-xl-9{padding:12rem!important}.pt-xl-9,.py-xl-9{padding-top:12rem!important}.pr-xl-9,.px-xl-9{padding-right:12rem!important}.pb-xl-9,.py-xl-9{padding-bottom:12rem!important}.pl-xl-9,.px-xl-9{padding-left:12rem!important}.p-xl-10{padding:18rem!important}.pt-xl-10,.py-xl-10{padding-top:18rem!important}.pr-xl-10,.px-xl-10{padding-right:18rem!important}.pb-xl-10,.py-xl-10{padding-bottom:18rem!important}.pl-xl-10,.px-xl-10{padding-left:18rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-n6{margin:-4.5rem!important}.mt-xl-n6,.my-xl-n6{margin-top:-4.5rem!important}.mr-xl-n6,.mx-xl-n6{margin-right:-4.5rem!important}.mb-xl-n6,.my-xl-n6{margin-bottom:-4.5rem!important}.ml-xl-n6,.mx-xl-n6{margin-left:-4.5rem!important}.m-xl-n7{margin:-6rem!important}.mt-xl-n7,.my-xl-n7{margin-top:-6rem!important}.mr-xl-n7,.mx-xl-n7{margin-right:-6rem!important}.mb-xl-n7,.my-xl-n7{margin-bottom:-6rem!important}.ml-xl-n7,.mx-xl-n7{margin-left:-6rem!important}.m-xl-n8{margin:-9rem!important}.mt-xl-n8,.my-xl-n8{margin-top:-9rem!important}.mr-xl-n8,.mx-xl-n8{margin-right:-9rem!important}.mb-xl-n8,.my-xl-n8{margin-bottom:-9rem!important}.ml-xl-n8,.mx-xl-n8{margin-left:-9rem!important}.m-xl-n9{margin:-12rem!important}.mt-xl-n9,.my-xl-n9{margin-top:-12rem!important}.mr-xl-n9,.mx-xl-n9{margin-right:-12rem!important}.mb-xl-n9,.my-xl-n9{margin-bottom:-12rem!important}.ml-xl-n9,.mx-xl-n9{margin-left:-12rem!important}.m-xl-n10{margin:-18rem!important}.mt-xl-n10,.my-xl-n10{margin-top:-18rem!important}.mr-xl-n10,.mx-xl-n10{margin-right:-18rem!important}.mb-xl-n10,.my-xl-n10{margin-bottom:-18rem!important}.ml-xl-n10,.mx-xl-n10{margin-left:-18rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:600!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-primary{color:#0665d0!important}a.text-primary.link-fx:before{background-color:#0665d0}a.text-primary:focus,a.text-primary:hover{color:#03356d!important}.text-secondary{color:#6c757d!important}a.text-secondary.link-fx:before{background-color:#6c757d}a.text-secondary:focus,a.text-secondary:hover{color:#3d4246!important}.text-success{color:#82b54b!important}a.text-success.link-fx:before{background-color:#82b54b}a.text-success:focus,a.text-success:hover{color:#4e6d2d!important}.text-info{color:#3c90df!important}a.text-info.link-fx:before{background-color:#3c90df}a.text-info:focus,a.text-info:hover{color:#1a5c9b!important}.text-warning{color:#ffb119!important}a.text-warning.link-fx:before{background-color:#ffb119}a.text-warning:focus,a.text-warning:hover{color:#b27600!important}.text-danger{color:#e04f1a!important}a.text-danger.link-fx:before{background-color:#e04f1a}a.text-danger:focus,a.text-danger:hover{color:#852f0f!important}.text-light{color:#f8f9fa!important}a.text-light.link-fx:before{background-color:#f8f9fa}a.text-light:focus,a.text-light:hover{color:#bdc6d0!important}.text-dark{color:#343a40!important}a.text-dark.link-fx:before{background-color:#343a40}a.text-dark:focus,a.text-dark:hover{color:#060708!important}.text-body{color:#495057!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#e2e8f2}.table .thead-dark th{color:inherit;border-color:#e2e8f2}}html{font-size:16px}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}b,strong{font-weight:600}a{transition:color .12s ease-out}@media (min-width:576px){a.link-fx{position:relative}a.link-fx:before{position:absolute;bottom:0;left:0;width:100%;height:2px;content:"";background-color:#0665d0;visibility:hidden;transform:scaleX(0);transform-origin:0 50%;transition:transform .2s ease-out}}a:hover.link-fx:before{visibility:visible;transform:scale(1)}a:focus{outline-style:none!important}p{line-height:1.6;margin-bottom:1.75rem}.story p,p.story{line-height:1.6;font-size:1.25rem;color:#495057}@media (min-width:576px){.story p,p.story{line-height:1.8}}.story h2,.story h3,.story h4{margin-top:3rem}label{font-weight:600}.font-size-h1{font-size:2.25rem}.font-size-h2{font-size:1.875rem}.font-size-h3{font-size:1.5rem}.font-size-h4{font-size:1.25rem}.font-size-h5{font-size:1.125rem}.font-size-h6{font-size:1rem}@media (max-width:767.98px){.display-1{font-size:4rem}.display-2{font-size:3.666667rem}.display-3{font-size:3rem}.display-4{font-size:2.333333rem}.font-size-h1,.h1,h1{font-size:1.875rem}.font-size-h2,.h2,h2{font-size:1.5rem}.font-size-h3,.h3,h3{font-size:1.25rem}.font-size-h4,.h4,h4{font-size:1.125rem}.font-size-h5,.font-size-h6,.h5,.h6,h5,h6{font-size:1rem}}.content-heading{margin-bottom:.875rem;padding-top:1rem;padding-bottom:.5rem;font-size:1.25rem;font-weight:400;line-height:1.75;border-bottom:1px solid #e4e9f3}.content-heading small{margin-top:.25rem;font-size:1rem;font-weight:400;color:#6c757d}@media (min-width:768px){.content-heading{margin-bottom:1.75rem;padding-top:1.5rem}.content-heading small{margin-top:0}}.block-content>.content-heading:first-child,.content>.content-heading:first-child{padding-top:0!important}.content-heading .dropdown{line-height:1.5}.small,small{font-weight:inherit}.text-uppercase{letter-spacing:.0625rem}.row.gutters-tiny{margin-right:-.125rem;margin-left:-.125rem}.row.gutters-tiny>.col,.row.gutters-tiny>[class*=col-]{padding-left:.125rem;padding-right:.125rem}.row.gutters-tiny .block,.row.gutters-tiny.items-push>div,.row.gutters-tiny .push{margin-bottom:.25rem}@media (max-width:767.98px){.row:not(.gutters-tiny):not(.no-gutters){margin-right:-.4375rem;margin-left:-.4375rem}.row:not(.gutters-tiny):not(.no-gutters)>.col,.row:not(.gutters-tiny):not(.no-gutters)>[class*=col-]{padding-left:.4375rem;padding-right:.4375rem}}.row.row-deck>div{display:flex;align-items:stretch}.row.row-deck>div>.block{min-width:100%}.table-vcenter td,.table-vcenter th{vertical-align:middle}.js-table-checkable tbody tr,.js-table-sections-header>tr{cursor:pointer}.js-table-sections-header>tr>td:first-child>i{transition:transform .15s ease-out}.js-table-sections-header+tbody{display:none}.js-table-sections-header.show>tr>td:first-child>i{transform:rotate(90deg)}.js-table-sections-header.show+tbody{display:table-row-group}.form-control{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.form-control.form-control-alt{border-color:#f0f3f8;background-color:#f0f3f8;transition:none}.form-control.form-control-alt:focus{border-color:#e4e9f3;background-color:#e4e9f3;box-shadow:none}.form-control.form-control-alt.is-valid{border-color:#e4efd8;background-color:#e4efd8}.form-control.form-control-alt.is-valid:focus{border-color:#d7e8c6;background-color:#d7e8c6}.form-control.form-control-alt.is-invalid{border-color:#fdf1ed;background-color:#fdf1ed}.form-control.form-control-alt.is-invalid:focus{border-color:#fbe7df;background-color:#fbe7df}.btn{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.btn.btn-square{border-radius:0}.btn.btn-rounded{border-radius:2rem}.btn .fa,.btn .si{position:relative;top:1px}.btn-group-sm>.btn .fa,.btn.btn-sm .fa{top:0}.btn-alt-primary{color:#054d9e;background-color:#cde4fe;border-color:#cde4fe}.btn-alt-primary:hover{color:#054d9e;background-color:#a8d0fc;border-color:#a8d0fc}.btn-alt-primary.focus,.btn-alt-primary:focus{color:#054d9e;background-color:#a8d0fc;border-color:#a8d0fc;box-shadow:0 0 0 .2rem rgba(146,196,252,.25)}.btn-alt-primary.disabled,.btn-alt-primary:disabled{color:#212529;background-color:#cde4fe;border-color:#cde4fe}.btn-alt-primary:not(:disabled):not(.disabled).active,.btn-alt-primary:not(:disabled):not(.disabled):active,.show>.btn-alt-primary.dropdown-toggle{color:#022954;background-color:#92c4fc;border-color:#92c4fc}.btn-alt-primary:not(:disabled):not(.disabled).active:focus,.btn-alt-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(146,196,252,.25)}.btn-alt-secondary{color:#495057;background-color:#f0f3f8;border-color:#f0f3f8}.btn-alt-secondary:hover{color:#495057;background-color:#d6deec;border-color:#d6deec}.btn-alt-secondary.focus,.btn-alt-secondary:focus{color:#495057;background-color:#d6deec;border-color:#d6deec;box-shadow:0 0 0 .2rem rgba(198,209,229,.25)}.btn-alt-secondary.disabled,.btn-alt-secondary:disabled{color:#212529;background-color:#f0f3f8;border-color:#f0f3f8}.btn-alt-secondary:not(:disabled):not(.disabled).active,.btn-alt-secondary:not(:disabled):not(.disabled):active,.show>.btn-alt-secondary.dropdown-toggle{color:#262a2d;background-color:#c6d1e5;border-color:#c6d1e5}.btn-alt-secondary:not(:disabled):not(.disabled).active:focus,.btn-alt-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(198,209,229,.25)}.btn-alt-success{color:#415b25;background-color:#d7e8c6;border-color:#d7e8c6}.btn-alt-success:hover{color:#415b25;background-color:#c5dcab;border-color:#c5dcab}.btn-alt-success.focus,.btn-alt-success:focus{color:#415b25;background-color:#c5dcab;border-color:#c5dcab;box-shadow:0 0 0 .2rem rgba(185,214,155,.25)}.btn-alt-success.disabled,.btn-alt-success:disabled{color:#212529;background-color:#d7e8c6;border-color:#d7e8c6}.btn-alt-success:not(:disabled):not(.disabled).active,.btn-alt-success:not(:disabled):not(.disabled):active,.show>.btn-alt-success.dropdown-toggle{color:#1a250f;background-color:#b9d69b;border-color:#b9d69b}.btn-alt-success:not(:disabled):not(.disabled).active:focus,.btn-alt-success:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(185,214,155,.25)}.btn-alt-info{color:#164f86;background-color:#d1e5f7;border-color:#d1e5f7}.btn-alt-info:hover{color:#164f86;background-color:#b0d2f2;border-color:#b0d2f2}.btn-alt-info.focus,.btn-alt-info:focus{color:#164f86;background-color:#b0d2f2;border-color:#b0d2f2;box-shadow:0 0 0 .2rem rgba(156,199,239,.25)}.btn-alt-info.disabled,.btn-alt-info:disabled{color:#212529;background-color:#d1e5f7;border-color:#d1e5f7}.btn-alt-info:not(:disabled):not(.disabled).active,.btn-alt-info:not(:disabled):not(.disabled):active,.show>.btn-alt-info.dropdown-toggle{color:#0b2844;background-color:#9cc7ef;border-color:#9cc7ef}.btn-alt-info:not(:disabled):not(.disabled).active:focus,.btn-alt-info:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(156,199,239,.25)}.btn-alt-warning{color:#996500;background-color:#ffecc6;border-color:#ffecc6}.btn-alt-warning:hover{color:#996500;background-color:#ffdfa0;border-color:#ffdfa0}.btn-alt-warning.focus,.btn-alt-warning:focus{color:#996500;background-color:#ffdfa0;border-color:#ffdfa0;box-shadow:0 0 0 .2rem rgba(255,215,137,.25)}.btn-alt-warning.disabled,.btn-alt-warning:disabled{color:#212529;background-color:#ffecc6;border-color:#ffecc6}.btn-alt-warning:not(:disabled):not(.disabled).active,.btn-alt-warning:not(:disabled):not(.disabled):active,.show>.btn-alt-warning.dropdown-toggle{color:#4c3200;background-color:#ffd789;border-color:#ffd789}.btn-alt-warning:not(:disabled):not(.disabled).active:focus,.btn-alt-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,215,137,.25)}.btn-alt-danger{color:#6e270d;background-color:#f6c4b1;border-color:#f6c4b1}.btn-alt-danger:hover{color:#6e270d;background-color:#f2aa8f;border-color:#f2aa8f}.btn-alt-danger.focus,.btn-alt-danger:focus{color:#6e270d;background-color:#f2aa8f;border-color:#f2aa8f;box-shadow:0 0 0 .2rem rgba(240,154,123,.25)}.btn-alt-danger.disabled,.btn-alt-danger:disabled{color:#212529;background-color:#f6c4b1;border-color:#f6c4b1}.btn-alt-danger:not(:disabled):not(.disabled).active,.btn-alt-danger:not(:disabled):not(.disabled):active,.show>.btn-alt-danger.dropdown-toggle{color:#290f05;background-color:#f09a7b;border-color:#f09a7b}.btn-alt-danger:not(:disabled):not(.disabled).active:focus,.btn-alt-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(240,154,123,.25)}.btn-alt-dark{color:#343a40;background-color:#ced3d8;border-color:#ced3d8}.btn-alt-dark:hover{color:#343a40;background-color:#b9c0c6;border-color:#b9c0c6}.btn-alt-dark.focus,.btn-alt-dark:focus{color:#343a40;background-color:#b9c0c6;border-color:#b9c0c6;box-shadow:0 0 0 .2rem rgba(173,180,188,.25)}.btn-alt-dark.disabled,.btn-alt-dark:disabled{color:#212529;background-color:#ced3d8;border-color:#ced3d8}.btn-alt-dark:not(:disabled):not(.disabled).active,.btn-alt-dark:not(:disabled):not(.disabled):active,.show>.btn-alt-dark.dropdown-toggle{color:#121416;background-color:#adb4bc;border-color:#adb4bc}.btn-alt-dark:not(:disabled):not(.disabled).active:focus,.btn-alt-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(173,180,188,.25)}.btn-alt-light{color:#343a40;background-color:#f8f9fa;border-color:#f8f9fa}.btn-alt-light:hover{color:#343a40;background-color:#e2e6ea;border-color:#e2e6ea}.btn-alt-light.focus,.btn-alt-light:focus{color:#343a40;background-color:#e2e6ea;border-color:#e2e6ea;box-shadow:0 0 0 .2rem rgba(212,218,225,.25)}.btn-alt-light.disabled,.btn-alt-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-alt-light:not(:disabled):not(.disabled).active,.btn-alt-light:not(:disabled):not(.disabled):active,.show>.btn-alt-light.dropdown-toggle{color:#121416;background-color:#d4dae1;border-color:#d4dae1}.btn-alt-light:not(:disabled):not(.disabled).active:focus,.btn-alt-light:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(212,218,225,.25)}.btn-hero-primary{color:#fff;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#0665d0;border:none;box-shadow:0 .125rem .75rem rgba(4,65,134,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out}.btn-hero-primary:hover{color:#fff;background-color:#117ef8;box-shadow:0 .375rem .75rem rgba(4,65,134,.4);transform:translateY(-1px)}.btn-hero-primary.focus,.btn-hero-primary:focus{color:#fff;background-color:#117ef8;box-shadow:0 .125rem .75rem rgba(4,65,134,.25)}.btn-hero-primary.disabled,.btn-hero-primary:disabled{color:#fff;background-color:#0665d0;box-shadow:0 .125rem .75rem rgba(4,65,134,.25);transform:translateY(0)}.btn-hero-primary:not(:disabled):not(.disabled).active,.btn-hero-primary:not(:disabled):not(.disabled):active,.show>.btn-hero-primary.dropdown-toggle{color:#fff;background-color:#044186;box-shadow:0 .125rem .75rem rgba(4,65,134,.25);transform:translateY(0)}.btn-hero-primary:not(:disabled):not(.disabled).active:focus,.btn-hero-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-primary.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(4,65,134,.25)}.btn-hero-secondary{color:#fff;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#6c757d;border:none;box-shadow:0 .125rem .75rem rgba(73,79,84,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out}.btn-hero-secondary:hover{color:#fff;background-color:#868e96;box-shadow:0 .375rem .75rem rgba(73,79,84,.4);transform:translateY(-1px)}.btn-hero-secondary.focus,.btn-hero-secondary:focus{color:#fff;background-color:#868e96;box-shadow:0 .125rem .75rem rgba(73,79,84,.25)}.btn-hero-secondary.disabled,.btn-hero-secondary:disabled{color:#fff;background-color:#6c757d;box-shadow:0 .125rem .75rem rgba(73,79,84,.25);transform:translateY(0)}.btn-hero-secondary:not(:disabled):not(.disabled).active,.btn-hero-secondary:not(:disabled):not(.disabled):active,.show>.btn-hero-secondary.dropdown-toggle{color:#fff;background-color:#494f54;box-shadow:0 .125rem .75rem rgba(73,79,84,.25);transform:translateY(0)}.btn-hero-secondary:not(:disabled):not(.disabled).active:focus,.btn-hero-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-secondary.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(73,79,84,.25)}.btn-hero-success{color:#fff;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#82b54b;border:none;box-shadow:0 .125rem .75rem rgba(91,127,52,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out}.btn-hero-success:hover{color:#fff;background-color:#9bc46f;box-shadow:0 .375rem .75rem rgba(91,127,52,.4);transform:translateY(-1px)}.btn-hero-success.focus,.btn-hero-success:focus{color:#fff;background-color:#9bc46f;box-shadow:0 .125rem .75rem rgba(91,127,52,.25)}.btn-hero-success.disabled,.btn-hero-success:disabled{color:#fff;background-color:#82b54b;box-shadow:0 .125rem .75rem rgba(91,127,52,.25);transform:translateY(0)}.btn-hero-success:not(:disabled):not(.disabled).active,.btn-hero-success:not(:disabled):not(.disabled):active,.show>.btn-hero-success.dropdown-toggle{color:#fff;background-color:#5b7f34;box-shadow:0 .125rem .75rem rgba(91,127,52,.25);transform:translateY(0)}.btn-hero-success:not(:disabled):not(.disabled).active:focus,.btn-hero-success:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-success.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(91,127,52,.25)}.btn-hero-info{color:#fff;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#3c90df;border:none;box-shadow:0 .125rem .75rem rgba(29,106,177,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out}.btn-hero-info:hover{color:#fff;background-color:#68a9e6;box-shadow:0 .375rem .75rem rgba(29,106,177,.4);transform:translateY(-1px)}.btn-hero-info.focus,.btn-hero-info:focus{color:#fff;background-color:#68a9e6;box-shadow:0 .125rem .75rem rgba(29,106,177,.25)}.btn-hero-info.disabled,.btn-hero-info:disabled{color:#fff;background-color:#3c90df;box-shadow:0 .125rem .75rem rgba(29,106,177,.25);transform:translateY(0)}.btn-hero-info:not(:disabled):not(.disabled).active,.btn-hero-info:not(:disabled):not(.disabled):active,.show>.btn-hero-info.dropdown-toggle{color:#fff;background-color:#1d6ab1;box-shadow:0 .125rem .75rem rgba(29,106,177,.25);transform:translateY(0)}.btn-hero-info:not(:disabled):not(.disabled).active:focus,.btn-hero-info:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-info.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(29,106,177,.25)}.btn-hero-warning{color:#fff;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#ffb119;border:none;box-shadow:0 .125rem .75rem rgba(204,134,0,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out}.btn-hero-warning:hover{color:#fff;background-color:#ffc24c;box-shadow:0 .375rem .75rem rgba(204,134,0,.4);transform:translateY(-1px)}.btn-hero-warning.focus,.btn-hero-warning:focus{color:#fff;background-color:#ffc24c;box-shadow:0 .125rem .75rem rgba(204,134,0,.25)}.btn-hero-warning.disabled,.btn-hero-warning:disabled{color:#fff;background-color:#ffb119;box-shadow:0 .125rem .75rem rgba(204,134,0,.25);transform:translateY(0)}.btn-hero-warning:not(:disabled):not(.disabled).active,.btn-hero-warning:not(:disabled):not(.disabled):active,.show>.btn-hero-warning.dropdown-toggle{color:#fff;background-color:#cc8600;box-shadow:0 .125rem .75rem rgba(204,134,0,.25);transform:translateY(0)}.btn-hero-warning:not(:disabled):not(.disabled).active:focus,.btn-hero-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-warning.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(204,134,0,.25)}.btn-hero-danger{color:#fff;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#e04f1a;border:none;box-shadow:0 .125rem .75rem rgba(155,55,18,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out}.btn-hero-danger:hover{color:#fff;background-color:#e97044;box-shadow:0 .375rem .75rem rgba(155,55,18,.4);transform:translateY(-1px)}.btn-hero-danger.focus,.btn-hero-danger:focus{color:#fff;background-color:#e97044;box-shadow:0 .125rem .75rem rgba(155,55,18,.25)}.btn-hero-danger.disabled,.btn-hero-danger:disabled{color:#fff;background-color:#e04f1a;box-shadow:0 .125rem .75rem rgba(155,55,18,.25);transform:translateY(0)}.btn-hero-danger:not(:disabled):not(.disabled).active,.btn-hero-danger:not(:disabled):not(.disabled):active,.show>.btn-hero-danger.dropdown-toggle{color:#fff;background-color:#9b3712;box-shadow:0 .125rem .75rem rgba(155,55,18,.25);transform:translateY(0)}.btn-hero-danger:not(:disabled):not(.disabled).active:focus,.btn-hero-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-danger.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(155,55,18,.25)}.btn-hero-dark{color:#fff;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#343a40;border:none;box-shadow:0 .125rem .75rem rgba(18,20,22,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out}.btn-hero-dark:hover{color:#fff;background-color:#4b545c;box-shadow:0 .375rem .75rem rgba(18,20,22,.4);transform:translateY(-1px)}.btn-hero-dark.focus,.btn-hero-dark:focus{color:#fff;background-color:#4b545c;box-shadow:0 .125rem .75rem rgba(18,20,22,.25)}.btn-hero-dark.disabled,.btn-hero-dark:disabled{color:#fff;background-color:#343a40;box-shadow:0 .125rem .75rem rgba(18,20,22,.25);transform:translateY(0)}.btn-hero-dark:not(:disabled):not(.disabled).active,.btn-hero-dark:not(:disabled):not(.disabled):active,.show>.btn-hero-dark.dropdown-toggle{color:#fff;background-color:#121416;box-shadow:0 .125rem .75rem rgba(18,20,22,.25);transform:translateY(0)}.btn-hero-dark:not(:disabled):not(.disabled).active:focus,.btn-hero-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-dark.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(18,20,22,.25)}.btn-hero-light{color:#212529;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#f8f9fa;border:none;box-shadow:0 .125rem .75rem rgba(203,211,218,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out}.btn-hero-light:hover{color:#212529;background-color:#fff;box-shadow:0 .375rem .75rem rgba(203,211,218,.4);transform:translateY(-1px)}.btn-hero-light.focus,.btn-hero-light:focus{color:#212529;background-color:#fff;box-shadow:0 .125rem .75rem rgba(203,211,218,.25)}.btn-hero-light.disabled,.btn-hero-light:disabled{color:#212529;background-color:#f8f9fa;box-shadow:0 .125rem .75rem rgba(203,211,218,.25);transform:translateY(0)}.btn-hero-light:not(:disabled):not(.disabled).active,.btn-hero-light:not(:disabled):not(.disabled):active,.show>.btn-hero-light.dropdown-toggle{color:#212529;background-color:#cbd3da;box-shadow:0 .125rem .75rem rgba(203,211,218,.25);transform:translateY(0)}.btn-hero-light:not(:disabled):not(.disabled).active:focus,.btn-hero-light:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-light.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(203,211,218,.25)}.btn-hero-lg{padding:.875rem 2.25rem;font-size:.875rem;line-height:1.5;border-radius:.25rem}.btn-hero-sm{padding:.375rem 1.25rem;font-size:.875rem;line-height:1.5;border-radius:.25rem}.btn-dual{color:#16181a;background-color:#f8f9fc;border-color:#f8f9fc}.btn-dual.focus,.btn-dual:focus,.btn-dual:hover{color:#16181a;background-color:#cdd6e8;border-color:#cdd6e8;box-shadow:none}.btn-dual.disabled,.btn-dual:disabled{background-color:transparent;border-color:transparent}.btn-dual.active,.btn-dual:active{color:#16181a;background-color:#f8f9fc;border-color:#f8f9fc}.btn-dual:not(:disabled):not(.disabled).active,.btn-dual:not(:disabled):not(.disabled):active,.show>.btn-dual.dropdown-toggle{color:#16181a;background-color:#cdd6e8;border-color:#cdd6e8}.page-header-dark #page-header .btn-dual,.sidebar-dark #sidebar .btn-dual{color:#fff;background-color:#0770e6;border-color:#0770e6}.page-header-dark #page-header .btn-dual.focus,.page-header-dark #page-header .btn-dual:focus,.page-header-dark #page-header .btn-dual:hover,.sidebar-dark #sidebar .btn-dual.focus,.sidebar-dark #sidebar .btn-dual:focus,.sidebar-dark #sidebar .btn-dual:hover{color:#fff;background-color:#0557b2;border-color:#0557b2;box-shadow:none}.page-header-dark #page-header .btn-dual.disabled,.page-header-dark #page-header .btn-dual:disabled,.sidebar-dark #sidebar .btn-dual.disabled,.sidebar-dark #sidebar .btn-dual:disabled{background-color:transparent;border-color:transparent}.page-header-dark #page-header .btn-dual.active,.page-header-dark #page-header .btn-dual:active,.sidebar-dark #sidebar .btn-dual.active,.sidebar-dark #sidebar .btn-dual:active{color:#fff;background-color:#0770e6;border-color:#0770e6}.page-header-dark #page-header .btn-dual:not(:disabled):not(.disabled).active,.page-header-dark #page-header .btn-dual:not(:disabled):not(.disabled):active,.show>.page-header-dark #page-header .btn-dual.dropdown-toggle,.show>.sidebar-dark #sidebar .btn-dual.dropdown-toggle,.sidebar-dark #sidebar .btn-dual:not(:disabled):not(.disabled).active,.sidebar-dark #sidebar .btn-dual:not(:disabled):not(.disabled):active{color:#fff;background-color:#0557b2;border-color:#0557b2}.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual{color:#fff;background-color:transparent;border-color:transparent}.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual.focus,.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:focus,.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:hover{color:#fff;background-color:#0557b2;border-color:#0557b2;box-shadow:none}.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual.disabled,.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:disabled{background-color:transparent;border-color:transparent}.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual.active,.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:active{color:#fff;background-color:transparent;border-color:transparent}.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:not(:disabled):not(.disabled).active,.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:not(:disabled):not(.disabled):active,.show>.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual.dropdown-toggle{color:#fff;background-color:#0557b2;border-color:#0557b2}.fade{transition:opacity .15s ease-out}.fade.fade-left,.fade.fade-right,.fade.fade-up{transition:opacity .15s ease-out,transform .15s ease-out}.fade.fade-up{transform:translateY(50px)}.fade.fade-up.show{transform:translateY(0)}.fade.fade-right{transform:translateX(-50px)}.fade.fade-right.show{transform:translateX(0)}.fade.fade-left{transform:translateX(50px)}.fade.fade-left.show{transform:translateX(0)}.dropdown-menu{padding-right:.5rem;padding-left:.5rem;box-shadow:0 .25rem 2rem rgba(0,0,0,.08)}.dropdown-menu.dropdown-menu-lg{min-width:300px}.dropdown-item{margin-bottom:.25rem;border-radius:.25rem}.input-group-text.input-group-text-alt{background-color:#e4e9f3;border-color:#e4e9f3}.custom-switch{padding-left:0}.custom-switch .custom-control-label{left:0;padding-left:2.5rem}.custom-switch .custom-control-label:before{top:.125rem;left:0;width:2rem;height:1.25rem;border-radius:1rem;transition:background-color .15s ease-out}.custom-switch .custom-control-label:after{top:.25rem;left:.125rem;width:1rem;height:1rem;transform:none;background-color:#fff;border-radius:1rem;box-shadow:.125rem 0 .125rem rgba(0,0,0,.1)}.custom-switch .custom-control-input:checked~.custom-control-label:after{transform:translateX(.75rem);background-color:#fff;box-shadow:-.125rem 0 .125rem rgba(0,0,0,.2)}.custom-block{padding:0}.custom-block .custom-control-label{width:100%;padding:.75rem;background-color:#fff;border:2px solid #dae0e5;border-radius:.2rem;cursor:pointer}.custom-block .custom-control-label:hover{border-color:#bdc6d0}.custom-block .custom-control-label:after,.custom-block .custom-control-label:before{display:none}.custom-block .custom-block-indicator{position:absolute;display:none;top:-.5rem;right:-.5rem;width:1.75rem;height:1.75rem;line-height:1.75rem;color:#fff;font-size:.625rem;text-align:center;background-color:#9fadba;border-radius:.875rem;z-index:1}.custom-block .custom-control-input:checked~.custom-control-label{border-color:#9fadba}.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .5rem rgba(0,0,0,.15)}.custom-block .custom-control-input:checked~.custom-block-indicator{display:block}.custom-block .custom-control-input:disabled+label,.custom-block .custom-control-input:disabled+label+span,.custom-block .custom-control-input[readonly]+label,.custom-block .custom-control-input[readonly]+label+span{opacity:.5}.custom-control-label:before{border:none}.custom-control-label:after{transition:transform .15s ease-out}.custom-checkbox.custom-checkbox-square .custom-control-label:before{border-radius:0}.custom-checkbox.custom-checkbox-rounded-circle .custom-control-label:before{border-radius:1rem}.custom-checkbox .custom-control-label:after{transform:rotate(-90deg)}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{transform:rotate(0)}.custom-control-primary .custom-control-input:checked~.custom-control-label:before{background-color:#0665d0}.custom-control-primary .custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(6,101,208,.25)}.custom-control-primary .custom-control-input:not(:disabled):active~.custom-control-label:before{background-color:#4299fa}.custom-control-primary .custom-control-label:before{background-color:#e4e9f3}.custom-control-primary.custom-checkbox .custom-control-input:checked~.custom-control-label:before{background-color:#0665d0}.custom-control-primary.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#0665d0}.custom-control-primary.custom-radio .custom-control-input:checked~.custom-control-label:before{background-color:#0665d0}.custom-control-primary.custom-block .custom-block-indicator{background-color:#0665d0}.custom-control-primary.custom-block .custom-control-input:checked~.custom-control-label{border-color:#0665d0}.custom-control-primary.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .75rem rgba(6,101,208,.25)}.custom-control-success .custom-control-input:checked~.custom-control-label:before{background-color:#82b54b}.custom-control-success .custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(130,181,75,.25)}.custom-control-success .custom-control-input:not(:disabled):active~.custom-control-label:before{background-color:#b4d393}.custom-control-success .custom-control-label:before{background-color:#d7e8c6}.custom-control-success.custom-checkbox .custom-control-input:checked~.custom-control-label:before{background-color:#82b54b}.custom-control-success.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#82b54b}.custom-control-success.custom-radio .custom-control-input:checked~.custom-control-label:before{background-color:#82b54b}.custom-control-success.custom-block .custom-block-indicator{background-color:#82b54b}.custom-control-success.custom-block .custom-control-input:checked~.custom-control-label{border-color:#82b54b}.custom-control-success.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .75rem rgba(130,181,75,.25)}.custom-control-info .custom-control-input:checked~.custom-control-label:before{background-color:#3c90df}.custom-control-info .custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(60,144,223,.25)}.custom-control-info .custom-control-input:not(:disabled):active~.custom-control-label:before{background-color:#94c2ed}.custom-control-info .custom-control-label:before{background-color:#d1e5f7}.custom-control-info.custom-checkbox .custom-control-input:checked~.custom-control-label:before{background-color:#3c90df}.custom-control-info.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#3c90df}.custom-control-info.custom-radio .custom-control-input:checked~.custom-control-label:before{background-color:#3c90df}.custom-control-info.custom-block .custom-block-indicator{background-color:#3c90df}.custom-control-info.custom-block .custom-control-input:checked~.custom-control-label{border-color:#3c90df}.custom-control-info.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .75rem rgba(60,144,223,.25)}.custom-control-warning .custom-control-input:checked~.custom-control-label:before{background-color:#ffb119}.custom-control-warning .custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(255,177,25,.25)}.custom-control-warning .custom-control-input:not(:disabled):active~.custom-control-label:before{background-color:#ffd47f}.custom-control-warning .custom-control-label:before{background-color:#ffecc6}.custom-control-warning.custom-checkbox .custom-control-input:checked~.custom-control-label:before{background-color:#ffb119}.custom-control-warning.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#ffb119}.custom-control-warning.custom-radio .custom-control-input:checked~.custom-control-label:before{background-color:#ffb119}.custom-control-warning.custom-block .custom-block-indicator{background-color:#ffb119}.custom-control-warning.custom-block .custom-control-input:checked~.custom-control-label{border-color:#ffb119}.custom-control-warning.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .75rem rgba(255,177,25,.25)}.custom-control-danger .custom-control-input:checked~.custom-control-label:before{background-color:#e04f1a}.custom-control-danger .custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(224,79,26,.25)}.custom-control-danger .custom-control-input:not(:disabled):active~.custom-control-label:before{background-color:#ef9371}.custom-control-danger .custom-control-label:before{background-color:#f6c4b1}.custom-control-danger.custom-checkbox .custom-control-input:checked~.custom-control-label:before{background-color:#e04f1a}.custom-control-danger.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#e04f1a}.custom-control-danger.custom-radio .custom-control-input:checked~.custom-control-label:before{background-color:#e04f1a}.custom-control-danger.custom-block .custom-block-indicator{background-color:#e04f1a}.custom-control-danger.custom-block .custom-control-input:checked~.custom-control-label{border-color:#e04f1a}.custom-control-danger.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .75rem rgba(224,79,26,.25)}.custom-control-light .custom-control-input:checked~.custom-control-label:before{background-color:#adb5bd}.custom-control-light .custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(173,181,189,.25)}.custom-control-light .custom-control-input:not(:disabled):active~.custom-control-label:before{background-color:#e6e8ea}.custom-control-light .custom-control-label:before{background-color:#dee2e6}.custom-control-light.custom-checkbox .custom-control-input:checked~.custom-control-label:before{background-color:#adb5bd}.custom-control-light.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#adb5bd}.custom-control-light.custom-radio .custom-control-input:checked~.custom-control-label:before{background-color:#adb5bd}.custom-control-light.custom-block .custom-block-indicator{background-color:#adb5bd}.custom-control-light.custom-block .custom-control-input:checked~.custom-control-label{border-color:#adb5bd}.custom-control-light.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .75rem rgba(173,181,189,.25)}.custom-control-dark .custom-control-input:checked~.custom-control-label:before{background-color:#343a40}.custom-control-dark .custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(52,58,64,.25)}.custom-control-dark .custom-control-input:not(:disabled):active~.custom-control-label:before{background-color:#626d78}.custom-control-dark .custom-control-label:before{background-color:#dee2e6}.custom-control-dark.custom-checkbox .custom-control-input:checked~.custom-control-label:before{background-color:#343a40}.custom-control-dark.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#343a40}.custom-control-dark.custom-radio .custom-control-input:checked~.custom-control-label:before{background-color:#343a40}.custom-control-dark.custom-block .custom-block-indicator{background-color:#343a40}.custom-control-dark.custom-block .custom-control-input:checked~.custom-control-label{border-color:#343a40}.custom-control-dark.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .75rem rgba(52,58,64,.25)}.custom-control-lg{padding-left:1.75rem}.custom-control-lg .custom-control-label:after,.custom-control-lg .custom-control-label:before{top:.125rem;left:-1.75rem;width:1.25rem;height:1.25rem}.custom-control-lg.custom-switch{padding-left:0}.custom-control-lg.custom-switch .custom-control-label{padding-left:3.25rem}.custom-control-lg.custom-switch .custom-control-label:before{top:-.0625rem;left:0;width:2.75rem;height:1.625rem}.custom-control-lg.custom-switch .custom-control-label:after{top:.125rem;left:.25rem;width:1.25rem;height:1.25rem}.custom-control-lg.custom-switch .custom-control-input:checked~.custom-control-label:after{transform:translateX(1rem)}.nav-link{font-weight:600}.nav-pills .nav-link:focus,.nav-pills .nav-link:hover{background-color:#f0f3f8}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0665d0}.nav-tabs-block{background-color:#f8f9fc;border-bottom:none}.nav-tabs-block .nav-item{margin-bottom:0}.nav-tabs-block .nav-link{padding-top:.75rem;padding-bottom:.75rem;border-color:transparent;border-radius:0}.nav-tabs-block .nav-link:focus,.nav-tabs-block .nav-link:hover{color:#0665d0;background-color:#f0f3f8;border-color:transparent}.nav-tabs-block .nav-item.show .nav-link,.nav-tabs-block .nav-link.active{color:#495057;background-color:#fff;border-color:transparent}.nav-tabs-alt{background-color:transparent;border-bottom-color:#e4e9f3}.nav-tabs-alt .nav-item{margin-bottom:-2px}.nav-tabs-alt .nav-link{padding-top:.75rem;padding-bottom:.75rem;background-color:transparent;border-color:transparent}.nav-tabs-alt .nav-link:focus,.nav-tabs-alt .nav-link:hover{color:#0665d0;background-color:transparent;border-color:transparent;box-shadow:inset 0 -3px #0665d0}.nav-tabs-alt .nav-item.show .nav-link,.nav-tabs-alt .nav-link.active{color:#495057;background-color:transparent;border-color:transparent;box-shadow:inset 0 -3px #0665d0}.nav-items{padding-left:0;list-style:none}.nav-items a{border-bottom:1px solid #f0f3f8}.nav-items a:hover{background-color:#f8f9fc}.nav-items a:active{background-color:#f0f3f8}.nav-items>li:last-child>a{border-bottom:none}.breadcrumb.breadcrumb-alt .breadcrumb-item+.breadcrumb-item:before{position:relative;top:1px;width:1rem;font-family:Font Awesome\ 5 Free;font-weight:900;color:#ced4da;content:"\F105"}.page-link{font-weight:600}.page-link:focus{background-color:#e4e9f3;border-color:#e4e9f3}.badge-secondary{color:#fff;background-color:rgba(0,0,0,.33)}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:rgba(0,0,0,.33)}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,0,0,.5)}.modal-dialog.modal-dialog-top{margin-top:0!important}.modal.fade .modal-dialog{transition-duration:.4s}.modal.fade .modal-dialog.modal-dialog-popin{transform:scale(1.25)}.modal.fade .modal-dialog.modal-dialog-popout{transform:scale(.75)}.modal.fade .modal-dialog.modal-dialog-slideup{transform:translateY(30%)}.modal.fade .modal-dialog.modal-dialog-slideright{transform:translate(-30%)}.modal.fade .modal-dialog.modal-dialog-slideleft{transform:translate(30%)}.modal.fade .modal-dialog.modal-dialog-fromright{transform:translateX(30%) rotate(10deg) scale(.75)}.modal.fade .modal-dialog.modal-dialog-fromleft{transform:translateX(-30%) rotate(-10deg) scale(.75)}.modal.show .modal-dialog.modal-dialog-popin,.modal.show .modal-dialog.modal-dialog-popout{transform:scale(1)}.modal.show .modal-dialog.modal-dialog-slideleft,.modal.show .modal-dialog.modal-dialog-slideright,.modal.show .modal-dialog.modal-dialog-slideup{transform:translate(0)}.modal.show .modal-dialog.modal-dialog-fromleft,.modal.show .modal-dialog.modal-dialog-fromright{transform:translateX(0) rotate(0) scale(1)}@media print{#main-container,#page-container{padding:0!important}#page-footer,#page-header,#page-loader,#page-overlay,#side-overlay,#sidebar,.block-options{display:none!important}}#page-container{display:flex;flex-direction:column;margin:0 auto;width:100%;min-width:320px;min-height:100vh}#page-overlay{position:fixed;top:0;right:0;bottom:0;left:0;content:"";background-color:rgba(0,0,0,.4);z-index:1033;opacity:0;transition:opacity .25s ease-out;transform:translateY(-100%)}@media (min-width:992px){.side-overlay-o.enable-page-overlay #page-overlay{transform:translateY(0);opacity:1}}#main-container{display:flex;flex-direction:column;flex:1 0 auto;max-width:100%}#page-footer{display:flex;align-items:center;width:100%;min-height:4.375rem}#page-footer.footer-static{display:block;min-height:auto}.content{width:100%;margin:0 auto;padding:.875rem .875rem 1px;overflow-x:visible}.content>.pull-t,.content>.pull-y{margin-top:-.875rem}.content>.pull-b,.content>.pull-y{margin-bottom:-1px}.content>.pull-r,.content>.pull-x{margin-right:-.875rem}.content>.pull-r,.content>.pull-x{margin-left:-.875rem}.content>.pull{margin:-.875rem -.875rem -1px}.content.content-full{padding-bottom:.875rem}.content.content-full>.pull,.content.content-full>.pull-b,.content.content-full>.pull-y{margin-bottom:-.875rem}.content .block,.content .items-push>div,.content .push,.content p{margin-bottom:.875rem}.content .items-push-2x>div{margin-bottom:1.75rem}.content .items-push-3x>div{margin-bottom:2.625rem}@media (min-width:768px){.content{width:100%;margin:0 auto;padding:1.75rem 1.75rem 1px;overflow-x:visible}.content>.pull-t,.content>.pull-y{margin-top:-1.75rem}.content>.pull-b,.content>.pull-y{margin-bottom:-1px}.content>.pull-r,.content>.pull-x{margin-right:-1.75rem}.content>.pull-r,.content>.pull-x{margin-left:-1.75rem}.content>.pull{margin:-1.75rem -1.75rem -1px}.content.content-full{padding-bottom:1.75rem}.content.content-full>.pull,.content.content-full>.pull-b,.content.content-full>.pull-y{margin-bottom:-1.75rem}.content .block,.content .items-push>div,.content .push,.content p{margin-bottom:1.75rem}.content .items-push-2x>div{margin-bottom:3.5rem}.content .items-push-3x>div{margin-bottom:5.25rem}}@media (min-width:1200px){.content.content-narrow{width:92%!important}}.content.content-boxed{max-width:1200px!important}.content.content-top{padding-top:5.125rem}@media (min-width:992px){.content.content-top{padding-top:6rem}}.content-section-top{padding-top:4.25rem}.content-max-width{max-width:1920px}.content-side{width:100%;margin:0 auto;padding:1.125rem 1.125rem 1px;overflow-x:hidden}.content-side>.pull-t,.content-side>.pull-y{margin-top:-1.125rem}.content-side>.pull-b,.content-side>.pull-y{margin-bottom:-1px}.content-side>.pull-r,.content-side>.pull-x{margin-right:-1.125rem}.content-side>.pull-r,.content-side>.pull-x{margin-left:-1.125rem}.content-side>.pull{margin:-1.125rem -1.125rem -1px}.content-side.content-side-full{padding-bottom:1.125rem}.content-side.content-side-full>.pull,.content-side.content-side-full>.pull-b,.content-side.content-side-full>.pull-y{margin-bottom:-1.125rem}.content-side .block,.content-side .items-push>div,.content-side .push,.content-side p{margin-bottom:1.125rem}.content-side .items-push-2x>div{margin-bottom:2.25rem}.content-side .items-push-3x>div{margin-bottom:3.375rem}#page-header{position:relative;margin:0 auto;width:100%;background-color:#fff}.overlay-header{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff;opacity:0;transition:transform .2s ease-in-out,opacity .2s ease-in-out;transform:translateY(-100%);will-change:opacity,transform}.overlay-header.show{opacity:1;transform:translateY(0)}.content-header{display:flex;justify-content:space-between;align-items:center;margin:0 auto;height:4.25rem}#page-header .content-header{padding-left:.875rem;padding-right:.875rem}@media (min-width:768px){#page-header .content-header{padding-left:1.75rem;padding-right:1.75rem}}#side-overlay .content-header,#sidebar .content-header{padding-left:1.125rem;padding-right:1.125rem}.smini-visible,.smini-visible-block{display:none}.smini-show{opacity:0}.smini-hide,.smini-show{transition:opacity .45s cubic-bezier(.2,.61,.42,.97)}#sidebar{position:fixed;top:0;bottom:0;left:0;z-index:1032;width:100%;height:100%;overflow-y:visible;background-color:#fff;transform:translateX(-100%) translateY(0) translateZ(0);-webkit-overflow-scrolling:touch;will-change:transform}.side-trans-enabled #sidebar{transition:transform .45s cubic-bezier(.2,.61,.42,.97)}.sidebar-r #sidebar{right:0;left:auto;transform:translateX(100%) translateY(0) translateZ(0)}#sidebar .js-sidebar-scroll{height:calc(100% - 4.25rem);overflow-y:auto}#sidebar .js-sidebar-scroll.full-height{height:100%}@media (max-width:991.98px){.sidebar-o-xs #sidebar{transform:translateX(0) translateY(0) translateZ(0)}}@media (min-width:992px){#sidebar{width:250px}.sidebar-o #sidebar{transform:translateX(0) translateY(0) translateZ(0)}.sidebar-mini.sidebar-o #sidebar{overflow-x:hidden;transform:translateX(-186px) translateY(0) translateZ(0);transition:transform .45s cubic-bezier(.2,.61,.42,.97)}.sidebar-mini.sidebar-o.sidebar-r #sidebar{transform:translateX(186px) translateY(0) translateZ(0)}.sidebar-mini.sidebar-o #sidebar .content-header,.sidebar-mini.sidebar-o #sidebar .content-side{width:250px;transform:translateX(186px) translateY(0) translateZ(0);transition:transform .45s cubic-bezier(.2,.61,.42,.97);will-change:transform}.sidebar-mini.sidebar-o #sidebar .content-header{position:relative;z-index:1}.sidebar-mini.sidebar-o #sidebar:hover,.sidebar-mini.sidebar-o #sidebar:hover .content-header,.sidebar-mini.sidebar-o #sidebar:hover .content-side,.sidebar-mini.sidebar-o.sidebar-r #sidebar .content-header,.sidebar-mini.sidebar-o.sidebar-r #sidebar .content-side{transform:translateX(0)}.sidebar-mini.sidebar-o #sidebar .nav-main,.sidebar-mini.sidebar-o #sidebar .nav-main .nav-main-link-icon{transition:transform .45s cubic-bezier(.2,.61,.42,.97)}.sidebar-mini.sidebar-o #sidebar .nav-main .nav-main-heading,.sidebar-mini.sidebar-o #sidebar .nav-main .nav-main-link-badge,.sidebar-mini.sidebar-o #sidebar .nav-main .nav-main-link-name{transition:opacity .45s cubic-bezier(.2,.61,.42,.97)}.sidebar-mini.sidebar-o #sidebar:not(:hover) .smini-hide{opacity:0}.sidebar-mini.sidebar-o #sidebar:not(:hover) .smini-show{opacity:1}.sidebar-mini.sidebar-o #sidebar:not(:hover) .smini-hidden{display:none}.sidebar-mini.sidebar-o #sidebar:not(:hover) .smini-visible{display:inline-block}.sidebar-mini.sidebar-o #sidebar:not(:hover) .smini-visible-block{display:block}.sidebar-mini.sidebar-o #sidebar:not(:hover) .nav-main{transform:translateX(-1.125rem)}.sidebar-mini.sidebar-o #sidebar:not(:hover) .nav-main .nav-main-link-icon{transform:translateX(.75rem)}.sidebar-mini.sidebar-o #sidebar:not(:hover) .nav-main .nav-main-heading,.sidebar-mini.sidebar-o #sidebar:not(:hover) .nav-main .nav-main-link-badge,.sidebar-mini.sidebar-o #sidebar:not(:hover) .nav-main .nav-main-link-name{opacity:0}.sidebar-mini.sidebar-o #sidebar:not(:hover) .nav-main .nav-main-item.open>.nav-main-link-submenu,.sidebar-mini.sidebar-o #sidebar:not(:hover) .nav-main .nav-main-link.active{border-radius:0}.sidebar-mini.sidebar-o #sidebar:not(:hover) .nav-main>.nav-main-item>.nav-main-submenu{display:none}}#side-overlay{position:fixed;top:0;right:0;bottom:0;z-index:1034;width:100%;height:100%;background-color:#fff;overflow-y:auto;transform:translateX(100%) translateY(0) translateZ(0);opacity:0;-webkit-overflow-scrolling:touch;will-change:transform}.side-trans-enabled #side-overlay{transition:transform .45s cubic-bezier(.2,.61,.42,.97),opacity .45s cubic-bezier(.2,.61,.42,.97)}.sidebar-r #side-overlay{right:auto;left:0;transform:translateX(-100%) translateY(0) translateZ(0)}.side-overlay-o #side-overlay{transform:translateX(0) translateY(0) translateZ(0);opacity:1}@media (min-width:992px){#side-overlay{width:320px;box-shadow:0 0 1.5rem rgba(0,0,0,.15);transform:translateX(110%) translateY(0) translateZ(0)}.sidebar-r #side-overlay{transform:translateX(-110%) translateY(0) translateZ(0)}.side-overlay-hover #side-overlay{transform:translateX(305px) translateY(0) translateZ(0);opacity:1}.sidebar-r.side-overlay-hover #side-overlay{transform:translateX(-305px) translateY(0) translateZ(0);opacity:1}.side-overlay-hover #side-overlay:hover,.side-overlay-o #side-overlay,.side-overlay-o.side-overlay-hover #side-overlay{box-shadow:0 0 1.25rem rgba(0,0,0,.15);transform:translateX(0) translateY(0) translateZ(0);opacity:1}}#page-container>#main-container .content,#page-container>#page-footer .content,#page-container>#page-header .content,#page-container>#page-header .content-header{max-width:1920px}@media (min-width:1200px){#page-container.main-content-narrow>#main-container .content,#page-container.main-content-narrow>#page-footer .content,#page-container.main-content-narrow>#page-header .content,#page-container.main-content-narrow>#page-header .content-header{width:92%}}#page-container.main-content-boxed>#main-container .content,#page-container.main-content-boxed>#page-footer .content,#page-container.main-content-boxed>#page-header .content,#page-container.main-content-boxed>#page-header .content-header{max-width:1200px}#page-container.page-header-dark #page-header{color:#c8d2e6;background-color:#0665d0}#page-container.page-header-glass #page-header{position:absolute;background-color:transparent}#page-container.page-header-glass.page-header-fixed #page-header{transition:background-color .2s linear;will-change:background-color;box-shadow:none}#page-container.page-header-glass.page-header-fixed.page-header-scroll #page-header{background-color:hsla(0,0%,100%,.9);box-shadow:0 .25rem .625rem rgba(0,0,0,.02);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem)}#page-container.page-header-glass.page-header-fixed.page-header-scroll.page-header-dark #page-header{background-color:rgba(6,101,208,.9);box-shadow:none;-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem)}#page-container.page-header-glass #main-container,#page-container.page-header-glass.page-header-fixed #main-container{padding-top:0}#page-container.page-header-fixed #page-header{position:fixed;box-shadow:0 5px 10px rgba(0,0,0,.02)}#page-container.page-header-fixed.page-header-dark #page-header{box-shadow:none}#page-container.page-header-fixed #main-container{padding-top:4.25rem}#page-container.page-header-fixed #page-header,#page-container.page-header-glass #page-header{top:0;right:0;left:0;z-index:1030;min-width:320px;max-width:100%;width:auto}@media (min-width:992px){#page-container.page-header-fixed.sidebar-o #page-header,#page-container.page-header-glass.sidebar-o #page-header{padding-left:250px}#page-container.page-header-fixed.sidebar-o #page-header .overlay-header,#page-container.page-header-glass.sidebar-o #page-header .overlay-header{left:250px}#page-container.page-header-fixed.sidebar-r.sidebar-o #page-header,#page-container.page-header-glass.sidebar-r.sidebar-o #page-header{padding-right:250px;padding-left:0}#page-container.page-header-fixed.sidebar-r.sidebar-o #page-header .overlay-header,#page-container.page-header-glass.sidebar-r.sidebar-o #page-header .overlay-header{right:250px;left:0}#page-container.page-header-fixed.sidebar-mini.sidebar-o #page-header,#page-container.page-header-glass.sidebar-mini.sidebar-o #page-header{padding-left:64px}#page-container.page-header-fixed.sidebar-mini.sidebar-o #page-header .overlay-header,#page-container.page-header-glass.sidebar-mini.sidebar-o #page-header .overlay-header{left:64px}#page-container.page-header-fixed.sidebar-mini.sidebar-r.sidebar-o #page-header,#page-container.page-header-glass.sidebar-mini.sidebar-r.sidebar-o #page-header{padding-right:64px;padding-left:0}#page-container.page-header-fixed.sidebar-mini.sidebar-r.sidebar-o #page-header .overlay-header,#page-container.page-header-glass.sidebar-mini.sidebar-r.sidebar-o #page-header .overlay-header{right:64px;left:0}}#page-container.page-footer-fixed #page-footer{position:fixed;height:4.375rem}#page-container.page-footer-fixed #main-container{padding-bottom:4.375rem}#page-container.page-footer-fixed #page-footer{bottom:0;right:0;left:0;z-index:1030;min-width:320px;max-width:100%;width:auto}@media (min-width:992px){#page-container.page-footer-fixed.sidebar-o #page-footer{padding-left:250px}#page-container.page-footer-fixed.sidebar-r.sidebar-o #page-footer{padding-right:250px;padding-left:0}}#page-container.sidebar-dark #sidebar{color:#e4e9f3;background-color:#343a40;box-shadow:none}#page-container.side-scroll #side-overlay,#page-container.side-scroll #sidebar .js-sidebar-scroll{overflow-y:visible}@media (min-width:992px){#page-container.side-scroll #sidebar .content-header,#page-container.side-scroll #sidebar .content-side{width:250px!important}#page-container.side-scroll #side-overlay .content-header,#page-container.side-scroll #side-overlay .content-side{width:320px!important}}@media (min-width:992px){#page-container.sidebar-o{padding-left:250px}#page-container.sidebar-r.sidebar-o{padding-right:250px;padding-left:0}#page-container.sidebar-mini.sidebar-o{padding-left:64px}#page-container.sidebar-mini.sidebar-o.sidebar-r{padding-right:64px;padding-left:0}}.hero{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;width:100%;height:100vh;min-height:500px}.hero.hero-sm{min-height:300px}.hero.hero-lg{min-height:800px}.hero-inner{flex:0 0 auto;width:100%}.hero-meta{position:absolute;right:0;bottom:0;left:0;padding:1rem 0;text-align:center}.hero-static{min-height:100vh}.block{margin-bottom:1.75rem;background-color:#fff;box-shadow:0 1px 3px rgba(219,226,239,.5),0 1px 2px rgba(219,226,239,.5)}.block .block,.content-side .block{box-shadow:none}.block-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;transition:opacity .25s ease-out}.block-header.block-header-rtl{flex-direction:row-reverse}.block-header.block-header-rtl .block-title{text-align:right}.block-header.block-header-rtl .block-options{padding-right:1.25rem;padding-left:0}.block-header-default{background-color:#f8f9fc}.block-title{flex:1 1 auto;min-height:1.75rem;margin:0;font-size:1.125rem;font-weight:400;line-height:1.75}.block-title small{font-size:1rem;font-weight:400;line-height:1.375rem;color:#6c757d}.block-content{transition:opacity .25s ease-out;width:100%;margin:0 auto;padding:1.25rem 1.25rem 1px;overflow-x:visible}.block-content>.pull-t,.block-content>.pull-y{margin-top:-1.25rem}.block-content>.pull-b,.block-content>.pull-y{margin-bottom:-1px}.block-content>.pull-r,.block-content>.pull-x{margin-right:-1.25rem}.block-content>.pull-r,.block-content>.pull-x{margin-left:-1.25rem}.block-content>.pull{margin:-1.25rem -1.25rem -1px}.block-content.block-content-full{padding-bottom:1.25rem}.block-content.block-content-full>.pull,.block-content.block-content-full>.pull-b,.block-content.block-content-full>.pull-y{margin-bottom:-1.25rem}.block-content .block,.block-content .items-push>div,.block-content .push,.block-content p{margin-bottom:1.25rem}.block-content .items-push-2x>div{margin-bottom:2.5rem}.block-content .items-push-3x>div{margin-bottom:3.75rem}.block-content.block-content-sm{padding-top:.625rem}.block-content.block-content-sm>.pull,.block-content.block-content-sm>.pull-t,.block-content.block-content-sm>.pull-y{margin-top:-.625rem}.block-content.block-content-sm.block-content-full{padding-bottom:.625rem}.block-content.block-content-sm.block-content-full>.pull,.block-content.block-content-sm.block-content-full>.pull-b,.block-content.block-content-sm.block-content-full>.pull-y{margin-bottom:-.625rem}.block.block-bordered{border:1px solid #e4e9f3;box-shadow:none}.block.block-rounded{border-radius:.25rem}.block.block-rounded>.block-header,.block.block-rounded>.nav-tabs{border-top-left-radius:.2rem;border-top-right-radius:.2rem}.block.block-rounded>.block-header:last-child,.block.block-rounded>.nav-tabs:last-child{border-bottom-right-radius:.2rem;border-bottom-left-radius:.2rem}.block.block-rounded.block-mode-hidden>.block-header.block-header-default{border-bottom-right-radius:.2rem;border-bottom-left-radius:.2rem}.block.block-rounded>.block-content:first-child{border-top-left-radius:.2rem;border-top-right-radius:.2rem}.block.block-rounded>.block-content:last-child{border-bottom-right-radius:.2rem;border-bottom-left-radius:.2rem}.block.block-rounded>.nav-tabs>.nav-item:first-child>.nav-link{border-top-left-radius:.2rem}.block.block-rounded>.nav-tabs>.nav-item:last-child>.nav-link{border-top-right-radius:.2rem}.block.block-themed>.block-header{border-bottom:none;color:#fff;background-color:#0665d0}.block.block-themed>.block-header>.block-title{color:hsla(0,0%,100%,.9)}.block.block-themed>.block-header>.block-title small{color:hsla(0,0%,100%,.7)}.block.block-transparent{background-color:transparent;box-shadow:none}.block.block-mode-hidden.block-bordered>.block-header{border-bottom:none}.block.block-mode-hidden>.block-content{display:none}.block.block-mode-loading{position:relative;overflow:hidden}.block.block-mode-loading:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;z-index:9;content:" ";background-color:hsla(0,0%,100%,.85)}.block.block-mode-loading:after{position:absolute;top:50%;left:50%;margin:-1.5rem 0 0 -1.5rem;width:3rem;height:3rem;line-height:3rem;color:#0665d0;font-family:Simple-Line-Icons;font-size:1.125rem;text-align:center;z-index:10;content:"\E09A";animation:fa-spin 1.75s linear infinite;border-radius:1.5rem}.block.block-mode-loading.block-mode-hidden:after{margin:-1rem 0 0 -1rem;width:2rem;height:2rem;line-height:2rem}.block.block-mode-loading.block-mode-loading-dark:before{background-color:rgba(0,0,0,.85)}.block.block-mode-loading.block-mode-loading-dark:after{color:#fff}.block.block-mode-loading.block-mode-loading-location:after{content:"\E06E"}.block.block-mode-loading.block-mode-loading-energy:after{content:"\E020"}.block.block-mode-loading.block-mode-loading-refresh:after{font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Pro;font-weight:900;content:"\F021"}.block.block-mode-loading.block-mode-loading-sun:after{font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Pro;font-weight:900;content:"\F185"}.block.block-mode-loading.block-mode-loading-repeat:after{font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Pro;font-weight:900;content:"\F01E"}.block.block-mode-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1035;margin-bottom:0;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch}.block.block-mode-fullscreen.block-bordered{border:none}.block.block-mode-fullscreen.block-rounded{border-radius:0}.block.block-mode-fullscreen.block-transparent{background-color:#fff}.block.block-mode-pinned{position:fixed;right:.75rem;bottom:0;margin-bottom:0!important;width:100%;max-width:300px;z-index:1031;box-shadow:0 0 2rem rgba(0,0,0,.1)}.block.block-mode-pinned>.block-content{max-height:250px;overflow-y:auto}a.block{display:block;color:#495057;font-weight:400;transition:transform .15s ease-out,opacity .15s ease-out,box-shadow .15s ease-out}a.block:hover{color:#495057;opacity:.65}a.block:active{opacity:1}a.block.block-link-rotate:hover{transform:rotate(1deg);opacity:1}a.block.block-link-rotate:active{transform:rotate(0)}a.block.block-link-pop:hover{box-shadow:0 .5rem 2rem #d4dcec;transform:translateY(-2px);opacity:1}a.block.block-link-pop:active{box-shadow:0 .25rem .75rem #edf0f7;transform:translateY(0)}a.block.block-link-shadow:hover{box-shadow:0 0 2.25rem #d4dcec;opacity:1}a.block.block-link-shadow:active{box-shadow:0 0 1.125rem #e2e8f2}.block.block-fx-shadow{box-shadow:0 0 2.25rem #d4dcec;opacity:1}.block.block-fx-pop{box-shadow:0 .5rem 2rem #d4dcec;opacity:1}.block.block-fx-rotate-right{transform:rotate(1deg);opacity:1}.block.block-fx-rotate-left{transform:rotate(-1deg);opacity:1}.block-options{flex:0 0 auto;padding-left:1.25rem}.block-options .block-options-item{padding:0 .25rem;line-height:1.2}.block.block-themed .block-options .block-options-item{color:#fff}.block-options .block-options-item,.block-options .dropdown{display:inline-block}.block-sticky-options{position:relative}.block-sticky-options .block-options{position:absolute;top:14px;right:1.25rem}.block-sticky-options .block-options.block-options-left{right:auto;left:1.25rem;padding-right:10px;padding-left:0}.btn-block-option{display:inline-block;padding:6px 5px;line-height:1;color:#0665d0;background:0 0;border:none;cursor:pointer}.btn-block-option.dropdown-toggle:after{position:relative;top:2px}.btn-block-option .si{position:relative;top:1px}.btn-block-option:hover{text-decoration:none;color:#2a8bf9}.active>a.btn-block-option,.show>button.btn-block-option,a.btn-block-option:focus{text-decoration:none;color:#2a8bf9}.btn-block-option:focus{outline:0!important;color:#2a8bf9}.btn-block-option:active{color:#74b3fb}.block.block-themed .btn-block-option{color:#fff;opacity:.7}.block.block-themed .btn-block-option:hover{color:#fff;opacity:1}.active>a.block.block-themed .btn-block-option,.show>button.block.block-themed .btn-block-option,a.block.block-themed .btn-block-option:focus{color:#fff;opacity:1}.block.block-themed .btn-block-option:focus{color:#fff;opacity:1}.block.block-themed .btn-block-option:active{color:#fff;opacity:.6}#page-loader{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0665d0;z-index:999998;transform:translateY(-100%)}#page-loader.show{transform:translateY(0)}#page-loader:after,#page-loader:before{position:absolute;top:50%;left:50%;display:block;border-radius:100%;content:"";z-index:999999}#page-loader:after{margin-top:-160px;margin-left:-160px;width:320px;height:320px;background-color:hsla(0,0%,100%,.5);border:4px solid hsla(0,0%,100%,.75);box-shadow:0 0 100px rgba(0,0,0,.15);animation:page-loader-inner 1.25s ease-out infinite}#page-loader:before{margin-top:-40px;margin-left:-40px;width:80px;height:80px;background-color:#fff;animation:page-loader-outer 1.25s ease-in infinite}@keyframes page-loader-inner{0%,40%{transform:scale(0)}to{transform:scale(1);opacity:0}}@keyframes page-loader-outer{0%{transform:scale(1)}40%,to{transform:scale(0);opacity:0}}.nav-main{padding-left:0;list-style:none}.nav-main-heading{padding-top:1.75rem;padding-bottom:.25rem;padding-left:.625rem;font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.075rem;color:#949da5}.nav-main-item{display:flex;flex-direction:column}.nav-main-link{position:relative;display:flex;align-items:center;padding:.5rem .625rem;margin:2px 0;min-height:2.25rem;font-size:.875rem;font-weight:500;line-height:1.25rem;letter-spacing:.0125em;color:#555d65;border-radius:.2rem}.nav-main-link .nav-main-link-icon{flex:0 0 auto;display:inline-block;margin-right:.625rem;min-width:1.25rem;font-size:1rem;text-align:center;color:rgba(6,101,208,.7)}.nav-main-link .nav-main-link-name{flex:1 1 auto;display:inline-block;max-width:100%}.nav-main-link .nav-main-link-badge{flex:0 0 auto;display:inline-block;margin-left:.625rem;padding-right:.375rem;padding-left:.375rem;font-size:.75rem}.nav-main-link.active,.nav-main-link:hover{color:#000;background-color:#e1effe}.nav-main-link.nav-main-link-submenu{padding-right:2rem}.nav-main-link.nav-main-link-submenu:after,.nav-main-link.nav-main-link-submenu:before{position:absolute;top:50%;right:.625rem;display:block;margin-top:-.5rem;width:1rem;height:1rem;line-height:1rem;text-align:center;font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Pro;font-weight:900;transition:opacity .3s cubic-bezier(.2,.61,.42,.97),transform .3s cubic-bezier(.2,.61,.42,.97)}.nav-main-link.nav-main-link-submenu:before{content:"\F107";opacity:.4}.nav-main-link.nav-main-link-submenu:after{content:"\F106";opacity:0;transform:translateY(-.625rem)}.nav-main-submenu{padding-left:2.5rem;list-style:none;height:0;overflow:hidden;background-color:#f5faff;border-bottom-right-radius:.2rem;border-bottom-left-radius:.2rem}.nav-main-submenu .nav-main-item{opacity:0;transition:opacity .3s cubic-bezier(.2,.61,.42,.97),transform .3s cubic-bezier(.2,.61,.42,.97);transform:translateX(1rem)}.nav-main-submenu .nav-main-heading{padding-top:1.25rem;padding-bottom:.25rem}.nav-main-submenu .nav-main-link{margin:0;padding-top:.375rem;padding-bottom:.375rem;padding-left:0;font-size:.8125rem;min-height:2rem;color:#78838e}.nav-main-submenu .nav-main-link.active,.nav-main-submenu .nav-main-link:hover{color:#383d42;background-color:transparent}.nav-main-submenu .nav-main-submenu{padding-left:.75rem}.nav-main-item.open>.nav-main-link-submenu{color:#000;background-color:#e1effe;border-bottom-right-radius:0;border-bottom-left-radius:0}.nav-main-item.open>.nav-main-link-submenu:before{opacity:0;transform:translateY(.625rem)}.nav-main-item.open>.nav-main-link-submenu:after{opacity:.6;transform:translateY(0)}.nav-main-item.open>.nav-main-submenu{height:auto;margin-top:-2px;padding-top:.375rem;padding-bottom:.375rem}.nav-main-item.open>.nav-main-submenu>.nav-main-item{opacity:1;transform:translateX(0)}.nav-main-submenu .nav-main-item.open .nav-main-link{background-color:transparent}@media (min-width:992px){.nav-main-horizontal{display:flex;flex-wrap:wrap;margin-bottom:0}.nav-main-horizontal .nav-main-heading{display:none}.nav-main-horizontal>.nav-main-item{position:relative;display:inline-block}.nav-main-horizontal>.nav-main-item:not(:last-child){margin-right:.25rem}.nav-main-horizontal .nav-main-submenu{position:absolute;left:0;width:220px;padding-left:0;z-index:995;box-shadow:0 .25rem 2rem rgba(0,0,0,.08)}.nav-main-horizontal .nav-main-submenu.nav-main-submenu-right{left:auto;right:0}.nav-main-horizontal .nav-main-submenu .nav-main-link.nav-main-link-submenu:before{content:"\F105"}.nav-main-horizontal .nav-main-submenu .nav-main-link.nav-main-link-submenu:after{content:"\F104"}.nav-main-horizontal .nav-main-submenu .nav-main-item{transform:translateY(-.5rem)}.nav-main-horizontal .nav-main-submenu .nav-main-link{padding-left:1rem}.nav-main-horizontal .nav-main-item.open>.nav-main-submenu{padding-top:.5rem;padding-bottom:.5rem;overflow:visible}.nav-main-horizontal .nav-main-item.open>.nav-main-submenu>.nav-main-item{transform:translateY(0)}.nav-main-horizontal .nav-main-submenu .nav-main-submenu{top:-.5rem;left:auto;right:-100%;margin-top:0}.nav-main-horizontal.nav-main-horizontal-center{justify-content:center}.nav-main-horizontal.nav-main-horizontal-justify>.nav-main-item{flex:1 1 auto}.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu{color:#000;background-color:#e1effe;border-bottom-right-radius:0;border-bottom-left-radius:0}.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu:before{opacity:0;transform:translateY(.625rem)}.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu:after{opacity:.6;transform:translateY(0)}.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu{height:auto;margin-top:-2px;padding-top:.5rem;padding-bottom:.5rem;overflow:visible}.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu .nav-main-submenu{margin-top:0}.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu>.nav-main-item{opacity:1;transform:translateY(0)}}.nav-main-dark .nav-main-heading,.page-header-dark #page-header .nav-main-heading,.sidebar-dark #sidebar .nav-main-heading{color:#7a8793}.nav-main-dark .nav-main-link,.page-header-dark #page-header .nav-main-link,.sidebar-dark #sidebar .nav-main-link{font-weight:400;color:#c0c6cc}.nav-main-dark .nav-main-link>.nav-main-link-icon,.page-header-dark #page-header .nav-main-link>.nav-main-link-icon,.sidebar-dark #sidebar .nav-main-link>.nav-main-link-icon{color:#626d78}.nav-main-dark .nav-main-link.active,.nav-main-dark .nav-main-link:hover,.page-header-dark #page-header .nav-main-link.active,.page-header-dark #page-header .nav-main-link:hover,.sidebar-dark #sidebar .nav-main-link.active,.sidebar-dark #sidebar .nav-main-link:hover{color:#fff;background-color:#2a2f33}.nav-main-dark .nav-main-submenu,.page-header-dark #page-header .nav-main-submenu,.sidebar-dark #sidebar .nav-main-submenu{background-color:#2d3238}.nav-main-dark .nav-main-submenu .nav-main-link,.page-header-dark #page-header .nav-main-submenu .nav-main-link,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link{color:#a4adb5}.nav-main-dark .nav-main-submenu .nav-main-link.active,.nav-main-dark .nav-main-submenu .nav-main-link:hover,.page-header-dark #page-header .nav-main-submenu .nav-main-link.active,.page-header-dark #page-header .nav-main-submenu .nav-main-link:hover,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link.active,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link:hover{color:#fff;background-color:transparent}.nav-main-dark .nav-main-item.open>.nav-main-link-submenu,.page-header-dark #page-header .nav-main-item.open>.nav-main-link-submenu,.sidebar-dark #sidebar .nav-main-item.open>.nav-main-link-submenu{color:#fff;background-color:#2a2f33}.nav-main-dark .nav-main-item.open>.nav-main-submenu,.page-header-dark #page-header .nav-main-item.open>.nav-main-submenu,.sidebar-dark #sidebar .nav-main-item.open>.nav-main-submenu{background-color:#2d3238}.nav-main-dark .nav-main-submenu .nav-main-item.open .nav-main-link,.page-header-dark #page-header .nav-main-submenu .nav-main-item.open .nav-main-link,.sidebar-dark #sidebar .nav-main-submenu .nav-main-item.open .nav-main-link{background-color:transparent}@media (min-width:992px){.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-link,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-link,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-link{color:hsla(0,0%,100%,.75)}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-link>.nav-main-link-icon,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-link>.nav-main-link-icon,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-link>.nav-main-link-icon{color:hsla(0,0%,100%,.4)}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-link.active,.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-link:hover,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-link.active,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-link:hover,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-link.active,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-link:hover{color:#fff;background-color:#0559b7}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu{color:#fff;background-color:#0559b7}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu{background-color:#0559b7}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link{background-color:transparent}}.img-avatar{display:inline-block!important;width:64px;height:64px;border-radius:50%}.img-avatar.img-avatar16{width:16px;height:16px}.img-avatar.img-avatar20{width:20px;height:20px}.img-avatar.img-avatar32{width:32px;height:32px}.img-avatar.img-avatar48{width:48px;height:48px}.img-avatar.img-avatar96{width:96px;height:96px}.img-avatar.img-avatar128{width:128px;height:128px}.img-avatar-thumb{margin:.25rem;box-shadow:0 0 0 .25rem hsla(0,0%,100%,.3)}.img-avatar.img-avatar-rounded{border-radius:.25rem}.img-thumb{padding:.375rem;background-color:#fff;border-radius:.25rem}.img-link{display:inline-block;transition:transform .25s ease-out,opacity .25s ease-out}.img-link:hover{transform:scale(1.02);opacity:.75}.img-link:active{transform:scale(1);opacity:1}.img-link.img-link-simple:hover{transform:scale(1)}.img-link-zoom-in{cursor:zoom-in}.img-fluid-100 .img-fluid,.img-fluid.img-fluid-100{width:100%}.list{padding-left:0;list-style:none}.list>li{position:relative}.list-li-push>li,.list.list-simple>li{margin-bottom:1.25rem}.list-li-push-sm>li,.list.list-simple-mini>li{margin-bottom:.625rem}.list-icons>li{margin-bottom:1.25rem;padding-left:.5rem}.list-activity>li{margin-bottom:.75rem;padding-bottom:.375rem;padding-left:2rem;border-bottom:1px solid #f0f3f8}.list-activity>li>i:first-child{position:absolute;left:0;top:0;display:inline-block;width:1.25rem;height:1.25rem;line-height:1.25rem;text-align:center}.list-activity>li:last-child{border-bottom:none}.list-events>li{margin-bottom:.25rem}.list-events .js-event{background-color:#3c90df;transition:transform .3s ease-out}.list-events .js-event:hover{cursor:move;transform:translateX(.25rem)}.item{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;transition:opacity .25s ease-out,transform .25s ease-out}a.item{will-change:opacity}a.item:focus,a.item:hover{opacity:.6}a.item:active{opacity:1}a.item.item-link-pop{will-change:transform}a.item.item-link-pop:focus,a.item.item-link-pop:hover{opacity:1;transform:scale(1.1)}a.item.item-link-pop:active{transform:scale(1)}.item.item-tiny{width:1rem;height:1rem}.item.item-2x{width:6rem;height:6rem}.item.item-3x{width:8rem;height:8rem}.item.item-circle{border-radius:50%}.item.item-rounded{border-radius:.25rem}.item.item-rounded-big{border-radius:1.75rem}.item.item-rounded-big.item-2x{border-radius:2.25rem}.item.item-rounded-big.item-3x{border-radius:3rem}.overlay-container{position:relative}.overlay-item{position:absolute;display:inline-block;top:0;right:0;line-height:1}.overlay-left .overlay-item{right:auto;left:0}.overlay-bottom .overlay-item{top:auto;bottom:0}.overlay-center .overlay-item{top:50%;right:50%;transform:translateX(50%) translateY(-50%)}.options-container{position:relative;overflow:hidden;z-index:1;display:block}.options-container .options-item{transition:transform .4s ease-out;will-change:transform}.options-container .options-overlay{display:flex;justify-content:center;align-items:center;position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;z-index:2;content:"";opacity:0;visibility:hidden;transition:all .3s ease-in;will-change:opacity,transform}.options-container .options-overlay-content{text-align:center}.options-container:hover .options-overlay{opacity:1;visibility:visible}@media (max-width:767.98px){.options-container .options-overlay{display:none}.options-container:hover .options-overlay{display:flex}}.fx-item-zoom-in:hover .options-item{transform:scale(1.2)}.fx-item-rotate-r:hover .options-item{transform:scale(1.4) rotate(8deg)}.fx-item-rotate-l:hover .options-item{transform:scale(1.4) rotate(-8deg)}.fx-overlay-slide-top .options-overlay{transform:translateY(100%)}.fx-overlay-slide-top:hover .options-overlay{transform:translateY(0)}.fx-overlay-slide-right .options-overlay{transform:translateX(-100%)}.fx-overlay-slide-right:hover .options-overlay{transform:translateX(0)}.fx-overlay-slide-down .options-overlay{transform:translateY(-100%)}.fx-overlay-slide-down:hover .options-overlay{transform:translateY(0)}.fx-overlay-slide-left .options-overlay{transform:translateX(100%)}.fx-overlay-slide-left:hover .options-overlay{transform:translateX(0)}.fx-overlay-zoom-in .options-overlay{transform:scale(0)}.fx-overlay-zoom-in:hover .options-overlay{transform:scale(1)}.fx-overlay-zoom-out .options-overlay{transform:scale(2)}.fx-overlay-zoom-out:hover .options-overlay{transform:scale(1)}.timeline{position:relative;padding:1rem 0;list-style:none}.timeline:before{position:absolute;top:0;left:1.375rem;height:100%;width:.25rem;background-color:#e4e9f3;content:"";border-radius:.25rem}.timeline-event{position:relative}.timeline-event:not(:last-child){margin-bottom:1.75rem}.timeline-event-icon{position:absolute;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;color:#fff;border-radius:1.5rem;border:.25rem solid #fff;z-index:5;box-shadow:0 .375rem 1.5rem #d4dcec}.timeline-event-icon:before{position:absolute;top:50%;right:-.625rem;width:0;height:0;border-top:.625rem solid transparent;border-bottom:.625rem solid transparent;border-left:.625rem solid #fff;content:"";transform:translateY(-50%)}.timeline-event-block{margin-left:4rem;margin-bottom:0!important}@media (min-width:1200px){.timeline-centered:before{left:50%;margin-left:-.125rem}.timeline-centered .timeline-event-icon{left:50%;margin-left:-1.5rem}.timeline-centered .timeline-event-icon:before{right:auto;left:-.625rem;border-right:.625rem solid #fff;border-left:none}.timeline-centered .timeline-event-time{position:absolute;display:inline-block;top:1.5rem;left:50%;padding:.5rem .5rem .5rem 2rem;width:auto;border-radius:.25rem;background-color:#fff;transform:translateY(-50%)}.timeline-centered .timeline-event-block{width:46%;margin-left:0}.timeline-centered .timeline-event:not(:last-child){margin-bottom:3.5rem}.timeline-centered.timeline-alt .timeline-event:nth-child(2n) .timeline-event-icon,.timeline-centered .timeline-event.timeline-event-alt .timeline-event-icon{left:50%;margin-left:-1.5rem}.timeline-centered.timeline-alt .timeline-event:nth-child(2n) .timeline-event-icon:before,.timeline-centered .timeline-event.timeline-event-alt .timeline-event-icon:before{right:-.625rem;left:auto;border-right:none;border-left:.625rem solid #fff}.timeline-centered.timeline-alt .timeline-event:nth-child(2n) .timeline-event-block,.timeline-centered .timeline-event.timeline-event-alt .timeline-event-block{margin-left:auto}.timeline-centered.timeline-alt .timeline-event:nth-child(2n) .timeline-event-time,.timeline-centered .timeline-event.timeline-event-alt .timeline-event-time{padding:.5rem 2rem .5rem .5rem;right:50%;left:auto;text-align:right}}.ribbon{position:relative;min-height:3.25rem}.ribbon-box{position:absolute;top:.75rem;right:0;padding:0 .75rem;height:2rem;line-height:2rem;z-index:5;font-weight:600;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.ribbon-box:before{position:absolute;display:block;width:0;height:0;content:""}.ribbon-bookmark .ribbon-box{padding-left:.625rem;border-radius:0!important}.ribbon-bookmark .ribbon-box:before{top:0;right:100%;height:2rem;border-color:currentcolor;border-style:solid;border-width:1rem 0 1rem .625rem}.ribbon-modern .ribbon-box{top:.75rem;right:-.5rem;padding-left:.75rem;padding-right:.75rem;border-radius:.25rem!important}.ribbon-modern .ribbon-box:before{display:none}.ribbon-left .ribbon-box{right:auto;left:0;border-radius:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.ribbon-left.ribbon-bookmark .ribbon-box{padding-left:.75rem;padding-right:.625rem}.ribbon-left.ribbon-bookmark .ribbon-box:before{right:auto;left:100%;border-left-width:0;border-right-width:.625rem}.ribbon-left.ribbon-modern .ribbon-box{left:-.5rem}.ribbon-bottom .ribbon-box{top:auto;bottom:.75rem}.ribbon-light .ribbon-box{color:#495057;background-color:#e4e9f3}.ribbon-light.ribbon-bookmark .ribbon-box:before{border-color:#e4e9f3 #e4e9f3 #e4e9f3 transparent}.ribbon-light.ribbon-bookmark.ribbon-left .ribbon-box:before{border-color:#e4e9f3 transparent #e4e9f3 #e4e9f3}.ribbon-dark .ribbon-box{color:#fff;background-color:#343a40}.ribbon-dark.ribbon-bookmark .ribbon-box:before{border-color:#343a40 #343a40 #343a40 transparent}.ribbon-dark.ribbon-bookmark.ribbon-left .ribbon-box:before{border-color:#343a40 transparent #343a40 #343a40}.ribbon-primary .ribbon-box{color:#fff;background-color:#0665d0}.ribbon-primary.ribbon-bookmark .ribbon-box:before{border-color:#0665d0 #0665d0 #0665d0 transparent}.ribbon-primary.ribbon-bookmark.ribbon-left .ribbon-box:before{border-color:#0665d0 transparent #0665d0 #0665d0}.ribbon-success .ribbon-box{color:#fff;background-color:#82b54b}.ribbon-success.ribbon-bookmark .ribbon-box:before{border-color:#82b54b #82b54b #82b54b transparent}.ribbon-success.ribbon-bookmark.ribbon-left .ribbon-box:before{border-color:#82b54b transparent #82b54b #82b54b}.ribbon-info .ribbon-box{color:#fff;background-color:#3c90df}.ribbon-info.ribbon-bookmark .ribbon-box:before{border-color:#3c90df #3c90df #3c90df transparent}.ribbon-info.ribbon-bookmark.ribbon-left .ribbon-box:before{border-color:#3c90df transparent #3c90df #3c90df}.ribbon-warning .ribbon-box{color:#fff;background-color:#ffb119}.ribbon-warning.ribbon-bookmark .ribbon-box:before{border-color:#ffb119 #ffb119 #ffb119 transparent}.ribbon-warning.ribbon-bookmark.ribbon-left .ribbon-box:before{border-color:#ffb119 transparent #ffb119 #ffb119}.ribbon-danger .ribbon-box{color:#fff;background-color:#e04f1a}.ribbon-danger.ribbon-bookmark .ribbon-box:before{border-color:#e04f1a #e04f1a #e04f1a transparent}.ribbon-danger.ribbon-bookmark.ribbon-left .ribbon-box:before{border-color:#e04f1a transparent #e04f1a #e04f1a}.ribbon-glass .ribbon-box{color:#fff;background-color:hsla(0,0%,100%,.4)}.ribbon-glass.ribbon-bookmark .ribbon-box:before{border-color:hsla(0,0%,100%,.4) hsla(0,0%,100%,.4) hsla(0,0%,100%,.4) transparent}.ribbon-glass.ribbon-bookmark.ribbon-left .ribbon-box:before{border-color:hsla(0,0%,100%,.4) transparent hsla(0,0%,100%,.4) hsla(0,0%,100%,.4)}.bg-black-5{background-color:rgba(0,0,0,.05)!important}.bg-black-10{background-color:rgba(0,0,0,.1)!important}.bg-black-25{background-color:rgba(0,0,0,.25)!important}.bg-black-50{background-color:rgba(0,0,0,.5)!important}.bg-black-75{background-color:rgba(0,0,0,.75)!important}.bg-black-90{background-color:rgba(0,0,0,.9)!important}.bg-black-95{background-color:rgba(0,0,0,.95)!important}.bg-white-5{background-color:hsla(0,0%,100%,.05)!important}.bg-white-10{background-color:hsla(0,0%,100%,.1)!important}.bg-white-25{background-color:hsla(0,0%,100%,.25)!important}.bg-white-50{background-color:hsla(0,0%,100%,.5)!important}.bg-white-75{background-color:hsla(0,0%,100%,.75)!important}.bg-white-90{background-color:hsla(0,0%,100%,.9)!important}.bg-white-95{background-color:hsla(0,0%,100%,.95)!important}.bg-image{background-position:0 50%;background-size:cover}.bg-image-top{background-position-y:0}.bg-image-bottom{background-position-y:100%}@media (min-width:1200px){.bg-image-fixed{background-attachment:fixed}}.bg-pattern{background-repeat:repeat}.bg-video{width:100%;transform:translateZ(0)}.bg-primary-op{background-color:rgba(6,101,208,.75)!important}a.bg-primary-op:focus,a.bg-primary-op:hover,button.bg-primary-op:focus,button.bg-primary-op:hover{background-color:rgba(5,77,158,.75)!important}.bg-primary-dark{background-color:#054d9e!important}a.bg-primary-dark:focus,a.bg-primary-dark:hover,button.bg-primary-dark:focus,button.bg-primary-dark:hover{background-color:#03356d!important}.bg-primary-dark-op{background-color:rgba(5,77,158,.8)!important}a.bg-primary-dark-op:focus,a.bg-primary-dark-op:hover,button.bg-primary-dark-op:focus,button.bg-primary-dark-op:hover{background-color:rgba(3,53,109,.8)!important}.bg-primary-darker{background-color:#022954!important}a.bg-primary-darker:focus,a.bg-primary-darker:hover,button.bg-primary-darker:focus,button.bg-primary-darker:hover{background-color:#011123!important}.bg-primary-light{background-color:#2a8bf9!important}a.bg-primary-light:focus,a.bg-primary-light:hover,button.bg-primary-light:focus,button.bg-primary-light:hover{background-color:#0771e9!important}.bg-primary-lighter{background-color:#74b3fb!important}a.bg-primary-lighter:focus,a.bg-primary-lighter:hover,button.bg-primary-lighter:focus,button.bg-primary-lighter:hover{background-color:#4299fa!important}.bg-success-light{background-color:#bed9a2!important}a.bg-success-light:focus,a.bg-success-light:hover,button.bg-success-light:focus,button.bg-success-light:hover{background-color:#a5ca7e!important}.bg-warning-light{background-color:#ffdb93!important}a.bg-warning-light:focus,a.bg-warning-light:hover,button.bg-warning-light:focus,button.bg-warning-light:hover{background-color:#ffc960!important}.bg-info-light{background-color:#a5ccf0!important}a.bg-info-light:focus,a.bg-info-light:hover,button.bg-info-light:focus,button.bg-info-light:hover{background-color:#79b3e9!important}.bg-danger-light{background-color:#f1a184!important}a.bg-danger-light:focus,a.bg-danger-light:hover,button.bg-danger-light:focus,button.bg-danger-light:hover{background-color:#eb7e56!important}.bg-success-lighter{background-color:#e4efd8!important}a.bg-success-lighter:focus,a.bg-success-lighter:hover,button.bg-success-lighter:focus,button.bg-success-lighter:hover{background-color:#cbe0b4!important}.bg-warning-lighter{background-color:#fff4e0!important}a.bg-warning-lighter:focus,a.bg-warning-lighter:hover,button.bg-warning-lighter:focus,button.bg-warning-lighter:hover{background-color:#ffe3ad!important}.bg-info-lighter{background-color:#e7f1fb!important}a.bg-info-lighter:focus,a.bg-info-lighter:hover,button.bg-info-lighter:focus,button.bg-info-lighter:hover{background-color:#bbd8f4!important}.bg-danger-lighter{background-color:#f9d5c8!important}a.bg-danger-lighter:focus,a.bg-danger-lighter:hover,button.bg-danger-lighter:focus,button.bg-danger-lighter:hover{background-color:#f3b29b!important}.bg-success-op{background-color:rgba(190,217,162,.95)!important}a.bg-success-op:focus,a.bg-success-op:hover,button.bg-success-op:focus,button.bg-success-op:hover{background-color:rgba(165,202,126,.95)!important}.bg-warning-op{background-color:rgba(255,219,147,.95)!important}a.bg-warning-op:focus,a.bg-warning-op:hover,button.bg-warning-op:focus,button.bg-warning-op:hover{background-color:rgba(255,201,96,.95)!important}.bg-info-op{background-color:rgba(165,204,240,.95)!important}a.bg-info-op:focus,a.bg-info-op:hover,button.bg-info-op:focus,button.bg-info-op:hover{background-color:rgba(121,179,233,.95)!important}.bg-danger-op{background-color:rgba(241,161,132,.95)!important}a.bg-danger-op:focus,a.bg-danger-op:hover,button.bg-danger-op:focus,button.bg-danger-op:hover{background-color:rgba(235,126,86,.95)!important}.bg-body{background-color:#f0f3f8!important}a.bg-body:focus,a.bg-body:hover,button.bg-body:focus,button.bg-body:hover{background-color:#cdd6e8!important}.bg-body-light{background-color:#f8f9fc!important}a.bg-body-light:focus,a.bg-body-light:hover,button.bg-body-light:focus,button.bg-body-light:hover{background-color:#d4dcec!important}.bg-body-dark{background-color:#e4e9f3!important}a.bg-body-dark:focus,a.bg-body-dark:hover,button.bg-body-dark:focus,button.bg-body-dark:hover{background-color:#c1cce3!important}.bg-muted{background-color:#6c757d!important}a.bg-muted:focus,a.bg-muted:hover,button.bg-muted:focus,button.bg-muted:hover{background-color:#545b62!important}.bg-white{background-color:#fff!important}a.bg-white:focus,a.bg-white:hover,button.bg-white:focus,button.bg-white:hover{background-color:#e6e6e6!important}.bg-black{background-color:#000!important}a.bg-black:focus,a.bg-black:hover,button.bg-black:focus,button.bg-black:hover{background-color:#000!important}.bg-gray{background-color:#ced4da!important}a.bg-gray:focus,a.bg-gray:hover,button.bg-gray:focus,button.bg-gray:hover{background-color:#b1bbc4!important}.bg-gray-dark{background-color:#6c757d!important}a.bg-gray-dark:focus,a.bg-gray-dark:hover,button.bg-gray-dark:focus,button.bg-gray-dark:hover{background-color:#545b62!important}.bg-gray-darker{background-color:#343a40!important}a.bg-gray-darker:focus,a.bg-gray-darker:hover,button.bg-gray-darker:focus,button.bg-gray-darker:hover{background-color:#1d2124!important}.bg-gray-light{background-color:#e9ecef!important}a.bg-gray-light:focus,a.bg-gray-light:hover,button.bg-gray-light:focus,button.bg-gray-light:hover{background-color:#cbd3da!important}.bg-gray-lighter{background-color:#f8f9fa!important}a.bg-gray-lighter:focus,a.bg-gray-lighter:hover,button.bg-gray-lighter:focus,button.bg-gray-lighter:hover{background-color:#dae0e5!important}.bg-header-light{background-color:#fff!important}a.bg-header-light:focus,a.bg-header-light:hover,button.bg-header-light:focus,button.bg-header-light:hover{background-color:#e6e6e6!important}.bg-header-dark{background-color:#0665d0!important}a.bg-header-dark:focus,a.bg-header-dark:hover,button.bg-header-dark:focus,button.bg-header-dark:hover{background-color:#054d9e!important}.bg-sidebar-light{background-color:#fff!important}a.bg-sidebar-light:focus,a.bg-sidebar-light:hover,button.bg-sidebar-light:focus,button.bg-sidebar-light:hover{background-color:#e6e6e6!important}.bg-sidebar-dark{background-color:#343a40!important}a.bg-sidebar-dark:focus,a.bg-sidebar-dark:hover,button.bg-sidebar-dark:focus,button.bg-sidebar-dark:hover{background-color:#1d2124!important}.bg-gd-primary{background:#0665d0 linear-gradient(135deg,#0665d0,#2a8bf9)!important}.bg-gd-dusk{background:#d262e3 linear-gradient(135deg,#d262e3,#0665d0)!important}.bg-gd-fruit{background:#89216b linear-gradient(135deg,#89216b,#da4453)!important}.bg-gd-aqua{background:#02aab0 linear-gradient(135deg,#02aab0,#00cdac)!important}.bg-gd-sublime{background:#6a82fb linear-gradient(135deg,#6a82fb,#fc5c7d)!important}.bg-gd-sea{background:#2b32b2 linear-gradient(135deg,#2b32b2,#1488cc)!important}.bg-gd-leaf{background:#ffb119 linear-gradient(135deg,#ffb119,#82b54b)!important}.bg-gd-lake{background:#00f260 linear-gradient(135deg,#00f260,#0575e6)!important}.bg-gd-sun{background:#e65c00 linear-gradient(135deg,#e65c00,#f9d423)!important}.bg-gd-dusk-op{background:rgba(210,98,227,.5) linear-gradient(135deg,rgba(210,98,227,.5),rgba(6,101,208,.5))!important}.bg-gd-fruit-op{background:rgba(137,33,107,.5) linear-gradient(135deg,rgba(137,33,107,.5),rgba(218,68,83,.5))!important}.bg-gd-aqua-op{background:rgba(2,170,176,.5) linear-gradient(135deg,rgba(2,170,176,.5),rgba(0,205,172,.5))!important}.bg-gd-sublime-op{background:rgba(106,130,251,.5) linear-gradient(135deg,rgba(106,130,251,.5),rgba(252,92,125,.5))!important}.bg-gd-sea-op{background:rgba(43,50,178,.5) linear-gradient(135deg,rgba(43,50,178,.5),rgba(20,136,204,.5))!important}.bg-gd-leaf-op{background:rgba(255,177,25,.5) linear-gradient(135deg,rgba(255,177,25,.5),rgba(130,181,75,.5))!important}.bg-gd-lake-op{background:rgba(0,242,96,.5) linear-gradient(135deg,rgba(0,242,96,.5),rgba(5,117,230,.5))!important}.bg-gd-sun-op{background:rgba(230,92,0,.5) linear-gradient(135deg,rgba(230,92,0,.5),rgba(249,212,35,.5))!important}.bg-gd-white-op-l,.bg-gd-white-op-r,.bg-gd-white-op-rl{background:hsla(0,0%,100%,.98)}@media (min-width:768px){.bg-gd-white-op-r{background:hsla(0,0%,100%,.3) 0 linear-gradient(90deg,hsla(0,0%,100%,.3) 0,hsla(0,0%,100%,.98) 50% 100%)!important}.bg-gd-white-op-l{background:hsla(0,0%,100%,.3) 0 linear-gradient(-90deg,hsla(0,0%,100%,.3) 0,hsla(0,0%,100%,.98) 50% 100%)!important}.bg-gd-white-op-rl{background:linear-gradient(90deg,hsla(0,0%,100%,.75),hsla(0,0%,100%,.97) 30%,hsla(0,0%,100%,.97) 70%,hsla(0,0%,100%,.75))}}.bg-default{background-color:#0665d0!important}a.bg-default:focus,a.bg-default:hover,button.bg-default:focus,button.bg-default:hover{background-color:#054d9e!important}.bg-default-op{background-color:rgba(6,101,208,.75)!important}a.bg-default-op:focus,a.bg-default-op:hover,button.bg-default-op:focus,button.bg-default-op:hover{background-color:rgba(5,77,158,.75)!important}.bg-default-dark{background-color:#054d9e!important}a.bg-default-dark:focus,a.bg-default-dark:hover,button.bg-default-dark:focus,button.bg-default-dark:hover{background-color:#03356d!important}.bg-default-dark-op{background-color:rgba(5,77,158,.8)!important}a.bg-default-dark-op:focus,a.bg-default-dark-op:hover,button.bg-default-dark-op:focus,button.bg-default-dark-op:hover{background-color:rgba(3,53,109,.8)!important}.bg-default-darker{background-color:#022954!important}a.bg-default-darker:focus,a.bg-default-darker:hover,button.bg-default-darker:focus,button.bg-default-darker:hover{background-color:#011123!important}.bg-default-light{background-color:#2a8bf9!important}a.bg-default-light:focus,a.bg-default-light:hover,button.bg-default-light:focus,button.bg-default-light:hover{background-color:#0771e9!important}.bg-default-lighter{background-color:#74b3fb!important}a.bg-default-lighter:focus,a.bg-default-lighter:hover,button.bg-default-lighter:focus,button.bg-default-lighter:hover{background-color:#4299fa!important}.bg-gd-default{background:#0665d0 linear-gradient(135deg,#0665d0,#2a8bf9)!important}.bg-xwork{background-color:#343a40!important}a.bg-xwork:focus,a.bg-xwork:hover,button.bg-xwork:focus,button.bg-xwork:hover{background-color:#1d2124!important}.bg-xwork-op{background-color:rgba(52,58,64,.75)!important}a.bg-xwork-op:focus,a.bg-xwork-op:hover,button.bg-xwork-op:focus,button.bg-xwork-op:hover{background-color:rgba(29,33,36,.75)!important}.bg-xwork-dark{background-color:#1d2124!important}a.bg-xwork-dark:focus,a.bg-xwork-dark:hover,button.bg-xwork-dark:focus,button.bg-xwork-dark:hover{background-color:#060708!important}.bg-xwork-dark-op{background-color:rgba(29,33,36,.8)!important}a.bg-xwork-dark-op:focus,a.bg-xwork-dark-op:hover,button.bg-xwork-dark-op:focus,button.bg-xwork-dark-op:hover{background-color:rgba(6,7,8,.8)!important}.bg-xwork-darker{background-color:#060708!important}a.bg-xwork-darker:focus,a.bg-xwork-darker:hover,button.bg-xwork-darker:focus,button.bg-xwork-darker:hover{background-color:#000!important}.bg-xwork-light{background-color:#6d7a86!important}a.bg-xwork-light:focus,a.bg-xwork-light:hover,button.bg-xwork-light:focus,button.bg-xwork-light:hover{background-color:#56606a!important}.bg-xwork-lighter{background-color:#b2bac1!important}a.bg-xwork-lighter:focus,a.bg-xwork-lighter:hover,button.bg-xwork-lighter:focus,button.bg-xwork-lighter:hover{background-color:#96a0aa!important}.bg-gd-xwork{background:#343a40 linear-gradient(135deg,#343a40,#56606a)!important}.bg-xmodern{background-color:#3b5998!important}a.bg-xmodern:focus,a.bg-xmodern:hover,button.bg-xmodern:focus,button.bg-xmodern:hover{background-color:#2d4373!important}.bg-xmodern-op{background-color:rgba(59,89,152,.75)!important}a.bg-xmodern-op:focus,a.bg-xmodern-op:hover,button.bg-xmodern-op:focus,button.bg-xmodern-op:hover{background-color:rgba(45,67,115,.75)!important}.bg-xmodern-dark{background-color:#2d4373!important}a.bg-xmodern-dark:focus,a.bg-xmodern-dark:hover,button.bg-xmodern-dark:focus,button.bg-xmodern-dark:hover{background-color:#1e2e4f!important}.bg-xmodern-dark-op{background-color:rgba(45,67,115,.8)!important}a.bg-xmodern-dark-op:focus,a.bg-xmodern-dark-op:hover,button.bg-xmodern-dark-op:focus,button.bg-xmodern-dark-op:hover{background-color:rgba(30,46,79,.8)!important}.bg-xmodern-darker{background-color:#1e2e4f!important}a.bg-xmodern-darker:focus,a.bg-xmodern-darker:hover,button.bg-xmodern-darker:focus,button.bg-xmodern-darker:hover{background-color:#10182a!important}.bg-xmodern-light{background-color:#5f7ec1!important}a.bg-xmodern-light:focus,a.bg-xmodern-light:hover,button.bg-xmodern-light:focus,button.bg-xmodern-light:hover{background-color:#4264aa!important}.bg-xmodern-lighter{background-color:#a8b9dd!important}a.bg-xmodern-lighter:focus,a.bg-xmodern-lighter:hover,button.bg-xmodern-lighter:focus,button.bg-xmodern-lighter:hover{background-color:#839ccf!important}.bg-gd-xmodern{background:#3b5998 linear-gradient(135deg,#3b5998,#5f7ec1)!important}.bg-xeco{background-color:#38a169!important}a.bg-xeco:focus,a.bg-xeco:hover,button.bg-xeco:focus,button.bg-xeco:hover{background-color:#2b7b50!important}.bg-xeco-op{background-color:rgba(56,161,105,.75)!important}a.bg-xeco-op:focus,a.bg-xeco-op:hover,button.bg-xeco-op:focus,button.bg-xeco-op:hover{background-color:rgba(43,123,80,.75)!important}.bg-xeco-dark{background-color:#2b7b50!important}a.bg-xeco-dark:focus,a.bg-xeco-dark:hover,button.bg-xeco-dark:focus,button.bg-xeco-dark:hover{background-color:#1e5538!important}.bg-xeco-dark-op{background-color:rgba(43,123,80,.8)!important}a.bg-xeco-dark-op:focus,a.bg-xeco-dark-op:hover,button.bg-xeco-dark-op:focus,button.bg-xeco-dark-op:hover{background-color:rgba(30,85,56,.8)!important}.bg-xeco-darker{background-color:#1e5538!important}a.bg-xeco-darker:focus,a.bg-xeco-darker:hover,button.bg-xeco-darker:focus,button.bg-xeco-darker:hover{background-color:#112f1f!important}.bg-xeco-light{background-color:#5ec78f!important}a.bg-xeco-light:focus,a.bg-xeco-light:hover,button.bg-xeco-light:focus,button.bg-xeco-light:hover{background-color:#3fb475!important}.bg-xeco-lighter{background-color:#aae1c4!important}a.bg-xeco-lighter:focus,a.bg-xeco-lighter:hover,button.bg-xeco-lighter:focus,button.bg-xeco-lighter:hover{background-color:#84d4aa!important}.bg-gd-xeco{background:#38a169 linear-gradient(135deg,#38a169,#5ec78f)!important}.bg-xsmooth{background-color:#805ad5!important}a.bg-xsmooth:focus,a.bg-xsmooth:hover,button.bg-xsmooth:focus,button.bg-xsmooth:hover{background-color:#6133c9!important}.bg-xsmooth-op{background-color:rgba(128,90,213,.75)!important}a.bg-xsmooth-op:focus,a.bg-xsmooth-op:hover,button.bg-xsmooth-op:focus,button.bg-xsmooth-op:hover{background-color:rgba(97,51,201,.75)!important}.bg-xsmooth-dark{background-color:#6133c9!important}a.bg-xsmooth-dark:focus,a.bg-xsmooth-dark:hover,button.bg-xsmooth-dark:focus,button.bg-xsmooth-dark:hover{background-color:#4e29a0!important}.bg-xsmooth-dark-op{background-color:rgba(97,51,201,.8)!important}a.bg-xsmooth-dark-op:focus,a.bg-xsmooth-dark-op:hover,button.bg-xsmooth-dark-op:focus,button.bg-xsmooth-dark-op:hover{background-color:rgba(78,41,160,.8)!important}.bg-xsmooth-darker{background-color:#4e29a0!important}a.bg-xsmooth-darker:focus,a.bg-xsmooth-darker:hover,button.bg-xsmooth-darker:focus,button.bg-xsmooth-darker:hover{background-color:#3a1e78!important}.bg-xsmooth-light{background-color:#af97e5!important}a.bg-xsmooth-light:focus,a.bg-xsmooth-light:hover,button.bg-xsmooth-light:focus,button.bg-xsmooth-light:hover{background-color:#906eda!important}.bg-xsmooth-lighter{background-color:#ded4f4!important}a.bg-xsmooth-lighter:focus,a.bg-xsmooth-lighter:hover,button.bg-xsmooth-lighter:focus,button.bg-xsmooth-lighter:hover{background-color:#bfabea!important}.bg-gd-xsmooth{background:#805ad5 linear-gradient(135deg,#805ad5,#af97e5)!important}.bg-xinspire{background-color:#319795!important}a.bg-xinspire:focus,a.bg-xinspire:hover,button.bg-xinspire:focus,button.bg-xinspire:hover{background-color:#25706f!important}.bg-xinspire-op{background-color:rgba(49,151,149,.75)!important}a.bg-xinspire-op:focus,a.bg-xinspire-op:hover,button.bg-xinspire-op:focus,button.bg-xinspire-op:hover{background-color:rgba(37,112,111,.75)!important}.bg-xinspire-dark{background-color:#287a79!important}a.bg-xinspire-dark:focus,a.bg-xinspire-dark:hover,button.bg-xinspire-dark:focus,button.bg-xinspire-dark:hover{background-color:#1b5453!important}.bg-xinspire-dark-op{background-color:rgba(40,122,121,.8)!important}a.bg-xinspire-dark-op:focus,a.bg-xinspire-dark-op:hover,button.bg-xinspire-dark-op:focus,button.bg-xinspire-dark-op:hover{background-color:rgba(27,84,83,.8)!important}.bg-xinspire-darker{background-color:#1e5d5c!important}a.bg-xinspire-darker:focus,a.bg-xinspire-darker:hover,button.bg-xinspire-darker:focus,button.bg-xinspire-darker:hover{background-color:#123736!important}.bg-xinspire-light{background-color:#4fc6c3!important}a.bg-xinspire-light:focus,a.bg-xinspire-light:hover,button.bg-xinspire-light:focus,button.bg-xinspire-light:hover{background-color:#37aaa8!important}.bg-xinspire-lighter{background-color:#a3e1e0!important}a.bg-xinspire-lighter:focus,a.bg-xinspire-lighter:hover,button.bg-xinspire-lighter:focus,button.bg-xinspire-lighter:hover{background-color:#7dd5d3!important}.bg-gd-xinspire{background:#319795 linear-gradient(135deg,#319795,#4fc6c3)!important}.bg-xdream{background-color:#314499!important}a.bg-xdream:focus,a.bg-xdream:hover,button.bg-xdream:focus,button.bg-xdream:hover{background-color:#253372!important}.bg-xdream-op{background-color:rgba(49,68,153,.75)!important}a.bg-xdream-op:focus,a.bg-xdream-op:hover,button.bg-xdream-op:focus,button.bg-xdream-op:hover{background-color:rgba(37,51,114,.75)!important}.bg-xdream-dark{background-color:#2d3757!important}a.bg-xdream-dark:focus,a.bg-xdream-dark:hover,button.bg-xdream-dark:focus,button.bg-xdream-dark:hover{background-color:#1c2236!important}.bg-xdream-dark-op{background-color:rgba(45,55,87,.8)!important}a.bg-xdream-dark-op:focus,a.bg-xdream-dark-op:hover,button.bg-xdream-dark-op:focus,button.bg-xdream-dark-op:hover{background-color:rgba(28,34,54,.8)!important}.bg-xdream-darker{background-color:#20273e!important}a.bg-xdream-darker:focus,a.bg-xdream-darker:hover,button.bg-xdream-darker:focus,button.bg-xdream-darker:hover{background-color:#0f121c!important}.bg-xdream-light{background-color:#7687d3!important}a.bg-xdream-light:focus,a.bg-xdream-light:hover,button.bg-xdream-light:focus,button.bg-xdream-light:hover{background-color:#5065c7!important}.bg-xdream-lighter{background-color:#c4cbec!important}a.bg-xdream-lighter:focus,a.bg-xdream-lighter:hover,button.bg-xdream-lighter:focus,button.bg-xdream-lighter:hover{background-color:#9da9e0!important}.bg-gd-xdream{background:#314499 linear-gradient(135deg,#314499,#5065c7)!important}.bg-xpro{background-color:#515de1!important}a.bg-xpro:focus,a.bg-xpro:hover,button.bg-xpro:focus,button.bg-xpro:hover{background-color:#2635da!important}.bg-xpro-op{background-color:rgba(81,93,225,.75)!important}a.bg-xpro-op:focus,a.bg-xpro-op:hover,button.bg-xpro-op:focus,button.bg-xpro-op:hover{background-color:rgba(38,53,218,.75)!important}.bg-xpro-dark{background-color:#394263!important}a.bg-xpro-dark:focus,a.bg-xpro-dark:hover,button.bg-xpro-dark:focus,button.bg-xpro-dark:hover{background-color:#262c43!important}.bg-xpro-dark-op{background-color:rgba(57,66,99,.8)!important}a.bg-xpro-dark-op:focus,a.bg-xpro-dark-op:hover,button.bg-xpro-dark-op:focus,button.bg-xpro-dark-op:hover{background-color:rgba(38,44,67,.8)!important}.bg-xpro-darker{background-color:#282e45!important}a.bg-xpro-darker:focus,a.bg-xpro-darker:hover,button.bg-xpro-darker:focus,button.bg-xpro-darker:hover{background-color:#151825!important}.bg-xpro-light{background-color:#929aec!important}a.bg-xpro-light:focus,a.bg-xpro-light:hover,button.bg-xpro-light:focus,button.bg-xpro-light:hover{background-color:#6771e5!important}.bg-xpro-lighter{background-color:#c2c6f5!important}a.bg-xpro-lighter:focus,a.bg-xpro-lighter:hover,button.bg-xpro-lighter:focus,button.bg-xpro-lighter:hover{background-color:#979eed!important}.bg-gd-xpro{background:#515de1 linear-gradient(135deg,#515de1,#929aec)!important}.bg-xplay{background-color:#dd4b39!important}a.bg-xplay:focus,a.bg-xplay:hover,button.bg-xplay:focus,button.bg-xplay:hover{background-color:#c23321!important}.bg-xplay-op{background-color:rgba(221,75,57,.75)!important}a.bg-xplay-op:focus,a.bg-xplay-op:hover,button.bg-xplay-op:focus,button.bg-xplay-op:hover{background-color:rgba(194,51,33,.75)!important}.bg-xplay-dark{background-color:#b93120!important}a.bg-xplay-dark:focus,a.bg-xplay-dark:hover,button.bg-xplay-dark:focus,button.bg-xplay-dark:hover{background-color:#8e2518!important}.bg-xplay-dark-op{background-color:rgba(185,49,32,.8)!important}a.bg-xplay-dark-op:focus,a.bg-xplay-dark-op:hover,button.bg-xplay-dark-op:focus,button.bg-xplay-dark-op:hover{background-color:rgba(142,37,24,.8)!important}.bg-xplay-darker{background-color:#852317!important}a.bg-xplay-darker:focus,a.bg-xplay-darker:hover,button.bg-xplay-darker:focus,button.bg-xplay-darker:hover{background-color:#59170f!important}.bg-xplay-light{background-color:#e47365!important}a.bg-xplay-light:focus,a.bg-xplay-light:hover,button.bg-xplay-light:focus,button.bg-xplay-light:hover{background-color:#dd4b39!important}.bg-xplay-lighter{background-color:#f3c2bc!important}a.bg-xplay-lighter:focus,a.bg-xplay-lighter:hover,button.bg-xplay-lighter:focus,button.bg-xplay-lighter:hover{background-color:#ec9a90!important}.bg-gd-xplay{background:#dd4b39 linear-gradient(135deg,#dd4b39,#e8867a)!important}.border-white-op{border-color:hsla(0,0%,100%,.1)!important}.border-black-op{border-color:rgba(0,0,0,.1)!important}.border-2x{border-width:2px!important}.border-3x{border-width:3px!important}.border-4x{border-width:4px!important}.border-5x{border-width:5px!important}.border-10x{border-width:10px!important}.rounded-lg{border-radius:1.5rem!important}.rounded-lg-top{border-top-left-radius:1.5rem!important;border-top-right-radius:1.5rem!important}.rounded-lg-right{border-top-right-radius:1.5rem!important;border-bottom-right-radius:1.5rem!important}.rounded-lg-bottom{border-bottom-right-radius:1.5rem!important;border-bottom-left-radius:1.5rem!important}.rounded-lg-left{border-top-left-radius:1.5rem!important;border-bottom-left-radius:1.5rem!important}.overflow-y-auto{overflow-y:auto;-webkit-overflow-scrolling:touch}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-1{opacity:1}@media (min-width:992px){.h100-scroll{height:100vh;overflow-y:auto}}.aspect-ratio-1-1:after,.aspect-ratio-1-1:before{content:"";display:table;clear:both;width:1px;margin-left:-1px}.aspect-ratio-1-1:before{float:left;padding-bottom:100%}.aspect-ratio-4-3:after,.aspect-ratio-4-3:before{content:"";display:table;clear:both;width:1px;margin-left:-1px}.aspect-ratio-4-3:before{float:left;padding-bottom:75%}.aspect-ratio-16-9:after,.aspect-ratio-16-9:before{content:"";display:table;clear:both;width:1px;margin-left:-1px}.aspect-ratio-16-9:before{float:left;padding-bottom:56.25%}.no-transition{transition:none!important}.click-ripple{display:block;position:absolute;background:hsla(0,0%,100%,.6);border-radius:100%;transform:scale(0)}.click-ripple.animate{animation:click-ripple .6s ease-out}@keyframes click-ripple{50%{opacity:.6;transform:scale(2)}to{opacity:0;transform:scale(3)}}.flex-00-auto{flex:0 0 auto}.flex-10-auto{flex:1 0 auto}@media (min-width:576px){.flex-sm-00-auto{flex:0 0 auto}.flex-sm-10-auto{flex:1 0 auto}}@media (min-width:768px){.flex-md-00-auto{flex:0 0 auto}.flex-md-10-auto{flex:1 0 auto}}@media (min-width:992px){.flex-lg-00-auto{flex:0 0 auto}.flex-lg-10-auto{flex:1 0 auto}}@media (min-width:1200px){.flex-xl-00-auto{flex:0 0 auto}.flex-xl-10-auto{flex:1 0 auto}}.font-w300{font-weight:300!important}.font-w400{font-weight:400!important}.font-w500{font-weight:500!important}.font-w600{font-weight:600!important}.font-w700{font-weight:700!important}.font-size-base{font-size:1rem!important}.font-size-lg{font-size:1.25rem!important}.font-size-sm{font-size:.875rem!important}.text-wrap-break-word{word-wrap:break-word}.tracking-tighter{letter-spacing:-.05em}.tracking-tight{letter-spacing:-.025em}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-primary-dark{color:#054d9e!important}a.text-primary-dark.link-fx:before{background-color:#054d9e}a.text-primary-dark:focus,a.text-primary-dark:hover{color:#021d3b!important}.text-primary-darker{color:#022954!important}a.text-primary-darker.link-fx:before{background-color:#022954}a.text-primary-darker:focus,a.text-primary-darker:hover{color:#000!important}.text-primary-light{color:#2a8bf9!important}a.text-primary-light.link-fx:before{background-color:#2a8bf9}a.text-primary-light:focus,a.text-primary-light:hover{color:#0559b7!important}.text-primary-lighter{color:#74b3fb!important}a.text-primary-lighter.link-fx:before{background-color:#74b3fb}a.text-primary-lighter:focus,a.text-primary-lighter:hover{color:#117ef8!important}.text-success-light{color:#bed9a2!important}a.text-success-light.link-fx:before{background-color:#bed9a2}a.text-success-light:focus,a.text-success-light:hover{color:#8cbb59!important}.text-warning-light{color:#ffdb93!important}a.text-warning-light.link-fx:before{background-color:#ffdb93}a.text-warning-light:focus,a.text-warning-light:hover{color:#ffb82d!important}.text-info-light{color:#a5ccf0!important}a.text-info-light.link-fx:before{background-color:#a5ccf0}a.text-info-light:focus,a.text-info-light:hover{color:#4e9ae2!important}.text-danger-light{color:#f1a184!important}a.text-danger-light.link-fx:before{background-color:#f1a184}a.text-danger-light:focus,a.text-danger-light:hover{color:#e65b28!important}.text-body-bg{color:#f0f3f8!important}a.text-body-bg.link-fx:before{background-color:#f0f3f8}a.text-body-bg:focus,a.text-body-bg:hover{color:#aabad9!important}.text-body-bg-dark{color:#e4e9f3!important}a.text-body-bg-dark.link-fx:before{background-color:#e4e9f3}a.text-body-bg-dark:focus,a.text-body-bg-dark:hover{color:#9eb0d3!important}.text-body-bg-light{color:#f8f9fc!important}a.text-body-bg-light.link-fx:before{background-color:#f8f9fc}a.text-body-bg-light:focus,a.text-body-bg-light:hover{color:#b1bfdc!important}.text-body-color{color:#495057!important}a.text-body-color.link-fx:before{background-color:#495057}a.text-body-color:focus,a.text-body-color:hover{color:#1a1d20!important}.text-body-color-dark{color:#212529!important}a.text-body-color-dark.link-fx:before{background-color:#212529}a.text-body-color-dark:focus,a.text-body-color-dark:hover{color:#000!important}.text-body-color-light{color:#e4e9f3!important}a.text-body-color-light.link-fx:before{background-color:#e4e9f3}a.text-body-color-light:focus,a.text-body-color-light:hover{color:#9eb0d3!important}.text-muted{color:#6c757d!important}a.text-muted.link-fx:before{background-color:#6c757d}a.text-muted:focus,a.text-muted:hover{color:#3d4246!important}.text-white{color:#fff!important}a.text-white.link-fx:before{background-color:#fff}a.text-white:focus,a.text-white:hover{color:#ccc!important}.text-white-25{color:hsla(0,0%,100%,.25)!important}a.text-white-25.link-fx:before{background-color:hsla(0,0%,100%,.25)}a.text-white-25:focus,a.text-white-25:hover{color:hsla(0,0%,80%,.25)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}a.text-white-50.link-fx:before{background-color:hsla(0,0%,100%,.5)}a.text-white-50:focus,a.text-white-50:hover{color:hsla(0,0%,80%,.5)!important}.text-white-75{color:hsla(0,0%,100%,.75)!important}a.text-white-75.link-fx:before{background-color:hsla(0,0%,100%,.75)}a.text-white-75:focus,a.text-white-75:hover{color:hsla(0,0%,80%,.75)!important}.text-black{color:#000!important}a.text-black.link-fx:before{background-color:#000}a.text-black:focus,a.text-black:hover{color:#000!important}.text-black-25{color:rgba(0,0,0,.25)!important}a.text-black-25.link-fx:before{background-color:rgba(0,0,0,.25)}a.text-black-25:focus,a.text-black-25:hover{color:rgba(0,0,0,.25)!important}.text-black-50{color:rgba(0,0,0,.5)!important}a.text-black-50.link-fx:before{background-color:rgba(0,0,0,.5)}a.text-black-50:focus,a.text-black-50:hover{color:rgba(0,0,0,.5)!important}.text-black-75{color:rgba(0,0,0,.75)!important}a.text-black-75.link-fx:before{background-color:rgba(0,0,0,.75)}a.text-black-75:focus,a.text-black-75:hover{color:rgba(0,0,0,.75)!important}.text-gray{color:#ced4da!important}a.text-gray.link-fx:before{background-color:#ced4da}a.text-gray:focus,a.text-gray:hover{color:#94a1ae!important}.text-gray-dark{color:#6c757d!important}a.text-gray-dark.link-fx:before{background-color:#6c757d}a.text-gray-dark:focus,a.text-gray-dark:hover{color:#3d4246!important}.text-gray-darker{color:#343a40!important}a.text-gray-darker.link-fx:before{background-color:#343a40}a.text-gray-darker:focus,a.text-gray-darker:hover{color:#060708!important}.text-gray-light{color:#e9ecef!important}a.text-gray-light.link-fx:before{background-color:#e9ecef}a.text-gray-light:focus,a.text-gray-light:hover{color:#aeb9c4!important}.text-gray-lighter{color:#f8f9fa!important}a.text-gray-lighter.link-fx:before{background-color:#f8f9fa}a.text-gray-lighter:focus,a.text-gray-lighter:hover{color:#bdc6d0!important}.text-dual{color:#054d9e!important}a.text-dual.link-fx:before{background-color:#054d9e}a.text-dual:focus,a.text-dual:hover{color:#021d3b!important}.page-header-dark #page-header .text-dual,.sidebar-dark #sidebar .text-dual{color:#e4e9f3!important}.page-header-dark #page-header a.text-dual.link-fx:before,.sidebar-dark #sidebar a.text-dual.link-fx:before{background-color:#e4e9f3}.page-header-dark #page-header a.text-dual:focus,.page-header-dark #page-header a.text-dual:hover,.sidebar-dark #sidebar a.text-dual:focus,.sidebar-dark #sidebar a.text-dual:hover{color:#9eb0d3!important}.text-default{color:#0665d0!important}a.text-default.link-fx:before{background-color:#0665d0}a.text-default:focus,a.text-default:hover{color:#03356d!important}.text-default-dark{color:#054d9e!important}a.text-default-dark.link-fx:before{background-color:#054d9e}a.text-default-dark:focus,a.text-default-dark:hover{color:#021d3b!important}.text-default-darker{color:#022954!important}a.text-default-darker.link-fx:before{background-color:#022954}a.text-default-darker:focus,a.text-default-darker:hover{color:#000!important}.text-default-light{color:#2a8bf9!important}a.text-default-light.link-fx:before{background-color:#2a8bf9}a.text-default-light:focus,a.text-default-light:hover{color:#0559b7!important}.text-default-lighter{color:#74b3fb!important}a.text-default-lighter.link-fx:before{background-color:#74b3fb}a.text-default-lighter:focus,a.text-default-lighter:hover{color:#117ef8!important}.text-xwork{color:#343a40!important}a.text-xwork.link-fx:before{background-color:#343a40}a.text-xwork:focus,a.text-xwork:hover{color:#060708!important}.text-xwork-dark{color:#1d2124!important}a.text-xwork-dark.link-fx:before{background-color:#1d2124}a.text-xwork-dark:focus,a.text-xwork-dark:hover{color:#000!important}.text-xwork-darker{color:#060708!important}a.text-xwork-darker.link-fx:before{background-color:#060708}a.text-xwork-darker:focus,a.text-xwork-darker:hover{color:#000!important}.text-xwork-light{color:#6d7a86!important}a.text-xwork-light.link-fx:before{background-color:#6d7a86}a.text-xwork-light:focus,a.text-xwork-light:hover{color:#3f474e!important}.text-xwork-lighter{color:#b2bac1!important}a.text-xwork-lighter.link-fx:before{background-color:#b2bac1}a.text-xwork-lighter:focus,a.text-xwork-lighter:hover{color:#7a8793!important}.text-xmodern{color:#3b5998!important}a.text-xmodern.link-fx:before{background-color:#3b5998}a.text-xmodern:focus,a.text-xmodern:hover{color:#1e2e4f!important}.text-xmodern-dark{color:#2d4373!important}a.text-xmodern-dark.link-fx:before{background-color:#2d4373}a.text-xmodern-dark:focus,a.text-xmodern-dark:hover{color:#10182a!important}.text-xmodern-darker{color:#1e2e4f!important}a.text-xmodern-darker.link-fx:before{background-color:#1e2e4f}a.text-xmodern-darker:focus,a.text-xmodern-darker:hover{color:#020305!important}.text-xmodern-light{color:#5f7ec1!important}a.text-xmodern-light.link-fx:before{background-color:#5f7ec1}a.text-xmodern-light:focus,a.text-xmodern-light:hover{color:#344e86!important}.text-xmodern-lighter{color:#a8b9dd!important}a.text-xmodern-lighter.link-fx:before{background-color:#a8b9dd}a.text-xmodern-lighter:focus,a.text-xmodern-lighter:hover{color:#5f7ec1!important}.text-xeco{color:#38a169!important}a.text-xeco.link-fx:before{background-color:#38a169}a.text-xeco:focus,a.text-xeco:hover{color:#1e5538!important}.text-xeco-dark{color:#2b7b50!important}a.text-xeco-dark.link-fx:before{background-color:#2b7b50}a.text-xeco-dark:focus,a.text-xeco-dark:hover{color:#112f1f!important}.text-xeco-darker{color:#1e5538!important}a.text-xeco-darker.link-fx:before{background-color:#1e5538}a.text-xeco-darker:focus,a.text-xeco-darker:hover{color:#030a06!important}.text-xeco-light{color:#5ec78f!important}a.text-xeco-light.link-fx:before{background-color:#5ec78f}a.text-xeco-light:focus,a.text-xeco-light:hover{color:#318e5d!important}.text-xeco-lighter{color:#aae1c4!important}a.text-xeco-lighter.link-fx:before{background-color:#aae1c4}a.text-xeco-lighter:focus,a.text-xeco-lighter:hover{color:#5ec78f!important}.text-xsmooth{color:#805ad5!important}a.text-xsmooth.link-fx:before{background-color:#805ad5}a.text-xsmooth:focus,a.text-xsmooth:hover{color:#4e29a0!important}.text-xsmooth-dark{color:#6133c9!important}a.text-xsmooth-dark.link-fx:before{background-color:#6133c9}a.text-xsmooth-dark:focus,a.text-xsmooth-dark:hover{color:#3a1e78!important}.text-xsmooth-darker{color:#4e29a0!important}a.text-xsmooth-darker.link-fx:before{background-color:#4e29a0}a.text-xsmooth-darker:focus,a.text-xsmooth-darker:hover{color:#26144f!important}.text-xsmooth-light{color:#af97e5!important}a.text-xsmooth-light.link-fx:before{background-color:#af97e5}a.text-xsmooth-light:focus,a.text-xsmooth-light:hover{color:#7046d0!important}.text-xsmooth-lighter{color:#ded4f4!important}a.text-xsmooth-lighter.link-fx:before{background-color:#ded4f4}a.text-xsmooth-lighter:focus,a.text-xsmooth-lighter:hover{color:#9f83df!important}.text-xinspire{color:#319795!important}a.text-xinspire.link-fx:before{background-color:#319795}a.text-xinspire:focus,a.text-xinspire:hover{color:#184a49!important}.text-xinspire-dark{color:#287a79!important}a.text-xinspire-dark.link-fx:before{background-color:#287a79}a.text-xinspire-dark:focus,a.text-xinspire-dark:hover{color:#0f2d2d!important}.text-xinspire-darker{color:#1e5d5c!important}a.text-xinspire-darker.link-fx:before{background-color:#1e5d5c}a.text-xinspire-darker:focus,a.text-xinspire-darker:hover{color:#051010!important}.text-xinspire-light{color:#4fc6c3!important}a.text-xinspire-light.link-fx:before{background-color:#4fc6c3}a.text-xinspire-light:focus,a.text-xinspire-light:hover{color:#2b8482!important}.text-xinspire-lighter{color:#a3e1e0!important}a.text-xinspire-lighter.link-fx:before{background-color:#a3e1e0}a.text-xinspire-lighter:focus,a.text-xinspire-lighter:hover{color:#56c8c6!important}.text-xdream{color:#314499!important}a.text-xdream.link-fx:before{background-color:#314499}a.text-xdream:focus,a.text-xdream:hover{color:#18224c!important}.text-xdream-dark{color:#2d3757!important}a.text-xdream-dark.link-fx:before{background-color:#2d3757}a.text-xdream-dark:focus,a.text-xdream-dark:hover{color:#0a0d14!important}.text-xdream-darker{color:#20273e!important}a.text-xdream-darker.link-fx:before{background-color:#20273e}a.text-xdream-darker:focus,a.text-xdream-darker:hover{color:#000!important}.text-xdream-light{color:#7687d3!important}a.text-xdream-light.link-fx:before{background-color:#7687d3}a.text-xdream-light:focus,a.text-xdream-light:hover{color:#374dac!important}.text-xdream-lighter{color:#c4cbec!important}a.text-xdream-lighter.link-fx:before{background-color:#c4cbec}a.text-xdream-lighter:focus,a.text-xdream-lighter:hover{color:#7687d3!important}.text-xpro{color:#515de1!important}a.text-xpro.link-fx:before{background-color:#515de1}a.text-xpro:focus,a.text-xpro:hover{color:#1e2aae!important}.text-xpro-dark{color:#394263!important}a.text-xpro-dark.link-fx:before{background-color:#394263}a.text-xpro-dark:focus,a.text-xpro-dark:hover{color:#141722!important}.text-xpro-darker{color:#282e45!important}a.text-xpro-darker.link-fx:before{background-color:#282e45}a.text-xpro-darker:focus,a.text-xpro-darker:hover{color:#030304!important}.text-xpro-light{color:#929aec!important}a.text-xpro-light.link-fx:before{background-color:#929aec}a.text-xpro-light:focus,a.text-xpro-light:hover{color:#3b49dd!important}.text-xpro-lighter{color:#c2c6f5!important}a.text-xpro-lighter.link-fx:before{background-color:#c2c6f5}a.text-xpro-lighter:focus,a.text-xpro-lighter:hover{color:#6b75e6!important}.text-xplay{color:#dd4b39!important}a.text-xplay.link-fx:before{background-color:#dd4b39}a.text-xplay:focus,a.text-xplay:hover{color:#96271a!important}.text-xplay-dark{color:#b93120!important}a.text-xplay-dark.link-fx:before{background-color:#b93120}a.text-xplay-dark:focus,a.text-xplay-dark:hover{color:#621a11!important}.text-xplay-darker{color:#852317!important}a.text-xplay-darker.link-fx:before{background-color:#852317}a.text-xplay-darker:focus,a.text-xplay-darker:hover{color:#2e0c08!important}.text-xplay-light{color:#e47365!important}a.text-xplay-light.link-fx:before{background-color:#e47365}a.text-xplay-light:focus,a.text-xplay-light:hover{color:#c23321!important}.text-xplay-lighter{color:#f3c2bc!important}a.text-xplay-lighter.link-fx:before{background-color:#f3c2bc}a.text-xplay-lighter:focus,a.text-xplay-lighter:hover{color:#e47365!important}.animated{animation-duration:1.2s;animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}.animated.hinge{animation-duration:2s}.animated.bounce{animation-duration:1.5s}.animated.bounceIn,.animated.bounceOut{animation-duration:.75s}.animated.flipOutX,.animated.flipOutY{animation-duration:.75s}@keyframes bounce{0%,20%,53%,80%,to{transition-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{transition-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-30px,0)}70%{transition-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-15px,0)}90%{transform:translate3d(0,-4px,0)}}.bounce{animation-name:bounce;transform-origin:center bottom}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{animation-name:flash}@keyframes pulse{0%{transform:scaleX(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scaleX(1)}}.pulse{animation-name:pulse}@keyframes rubberBand{0%{transform:scaleX(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleX(1)}}.rubberBand{animation-name:rubberBand}@keyframes shake{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}.shake{animation-name:shake}@keyframes swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0deg)}}.swing{transform-origin:top center;animation-name:swing}@keyframes tada{0%{transform:scaleX(1)}10%,20%{transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{transform:scaleX(1)}}.tada{animation-name:tada}@keyframes wobble{0%{transform:none}15%{transform:translate3d(-25%,0,0) rotate(-5deg)}30%{transform:translate3d(20%,0,0) rotate(3deg)}45%{transform:translate3d(-15%,0,0) rotate(-3deg)}60%{transform:translate3d(10%,0,0) rotate(2deg)}75%{transform:translate3d(-5%,0,0) rotate(-1deg)}to{transform:none}}.wobble{animation-name:wobble}@keyframes bounceIn{0%,20%,40%,60%,80%,to{transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}.bounceIn{animation-name:bounceIn}@keyframes bounceInDown{0%,60%,75%,90%,to{transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}.bounceInDown{animation-name:bounceInDown}@keyframes bounceInLeft{0%,60%,75%,90%,to{transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}.bounceInLeft{animation-name:bounceInLeft}@keyframes bounceInRight{0%,60%,75%,90%,to{transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}.bounceInRight{animation-name:bounceInRight}@keyframes bounceInUp{0%,60%,75%,90%,to{transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}.bounceInUp{animation-name:bounceInUp}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.bounceOut{animation-name:bounceOut}@keyframes bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.bounceOutDown{animation-name:bounceOutDown}@keyframes bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}.bounceOutLeft{animation-name:bounceOutLeft}@keyframes bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}.bounceOutRight{animation-name:bounceOutRight}@keyframes bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}.bounceOutUp{animation-name:bounceOutUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{animation-name:fadeIn}@keyframes fadeInDown{0%{opacity:0;transform:translate3d(0,-100%,0)}to{opacity:1;transform:none}}.fadeInDown{animation-name:fadeInDown}@keyframes fadeInDownBig{0%{opacity:0;transform:translate3d(0,-2000px,0)}to{opacity:1;transform:none}}.fadeInDownBig{animation-name:fadeInDownBig}@keyframes fadeInLeft{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:none}}.fadeInLeft{animation-name:fadeInLeft}@keyframes fadeInLeftBig{0%{opacity:0;transform:translate3d(-2000px,0,0)}to{opacity:1;transform:none}}.fadeInLeftBig{animation-name:fadeInLeftBig}@keyframes fadeInRight{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:none}}.fadeInRight{animation-name:fadeInRight}@keyframes fadeInRightBig{0%{opacity:0;transform:translate3d(2000px,0,0)}to{opacity:1;transform:none}}.fadeInRightBig{animation-name:fadeInRightBig}@keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:none}}.fadeInUp{animation-name:fadeInUp}@keyframes fadeInUpBig{0%{opacity:0;transform:translate3d(0,2000px,0)}to{opacity:1;transform:none}}.fadeInUpBig{animation-name:fadeInUpBig}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{animation-name:fadeOut}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;transform:translate3d(0,100%,0)}}.fadeOutDown{animation-name:fadeOutDown}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;transform:translate3d(0,2000px,0)}}.fadeOutDownBig{animation-name:fadeOutDownBig}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;transform:translate3d(-100%,0,0)}}.fadeOutLeft{animation-name:fadeOutLeft}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{animation-name:fadeOutLeftBig}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;transform:translate3d(100%,0,0)}}.fadeOutRight{animation-name:fadeOutRight}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;transform:translate3d(2000px,0,0)}}.fadeOutRightBig{animation-name:fadeOutRightBig}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translate3d(0,-100%,0)}}.fadeOutUp{animation-name:fadeOutUp}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{animation-name:fadeOutUpBig}@keyframes flip{0%{transform:perspective(400px) rotateY(-1turn);animation-timing-function:ease-out}40%{transform:perspective(400px) translateZ(150px) rotateY(-190deg);animation-timing-function:ease-out}50%{transform:perspective(400px) translateZ(150px) rotateY(-170deg);animation-timing-function:ease-in}80%{transform:perspective(400px) scale3d(.95,.95,.95);animation-timing-function:ease-in}to{transform:perspective(400px);animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;animation-name:flip}@keyframes flipInX{0%{transform:perspective(400px) rotateX(90deg);transition-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);transition-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;animation-name:flipInX}@keyframes flipInY{0%{transform:perspective(400px) rotateY(90deg);transition-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateY(-20deg);transition-timing-function:ease-in}60%{transform:perspective(400px) rotateY(10deg);opacity:1}80%{transform:perspective(400px) rotateY(-5deg)}to{transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;animation-name:flipInY}@keyframes flipOutX{0%{transform:perspective(400px)}30%{transform:perspective(400px) rotateX(-20deg);opacity:1}to{transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@keyframes flipOutY{0%{transform:perspective(400px)}30%{transform:perspective(400px) rotateY(-15deg);opacity:1}to{transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;animation-name:flipOutY}@keyframes lightSpeedIn{0%{transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{transform:skewX(20deg);opacity:1}80%{transform:skewX(-5deg);opacity:1}to{transform:none;opacity:1}}.lightSpeedIn{animation-name:lightSpeedIn;animation-timing-function:ease-out}@keyframes lightSpeedOut{0%{opacity:1}to{transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{animation-name:lightSpeedOut;animation-timing-function:ease-in}@keyframes rotateIn{0%{transform-origin:center;transform:rotate(-200deg);opacity:0}to{transform-origin:center;transform:none;opacity:1}}.rotateIn{animation-name:rotateIn}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;transform:rotate(-45deg);opacity:0}to{transform-origin:left bottom;transform:none;opacity:1}}.rotateInDownLeft{animation-name:rotateInDownLeft}@keyframes rotateInDownRight{0%{transform-origin:right bottom;transform:rotate(45deg);opacity:0}to{transform-origin:right bottom;transform:none;opacity:1}}.rotateInDownRight{animation-name:rotateInDownRight}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;transform:rotate(45deg);opacity:0}to{transform-origin:left bottom;transform:none;opacity:1}}.rotateInUpLeft{animation-name:rotateInUpLeft}@keyframes rotateInUpRight{0%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}to{transform-origin:right bottom;transform:none;opacity:1}}.rotateInUpRight{animation-name:rotateInUpRight}@keyframes rotateOut{0%{transform-origin:center;opacity:1}to{transform-origin:center;transform:rotate(200deg);opacity:0}}.rotateOut{animation-name:rotateOut}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;opacity:1}to{transform-origin:left bottom;transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{animation-name:rotateOutDownLeft}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;opacity:1}to{transform-origin:right bottom;transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{animation-name:rotateOutDownRight}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;opacity:1}to{transform-origin:left bottom;transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{animation-name:rotateOutUpLeft}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;opacity:1}to{transform-origin:right bottom;transform:rotate(90deg);opacity:0}}.rotateOutUpRight{animation-name:rotateOutUpRight}@keyframes hinge{0%{transform-origin:top left;animation-timing-function:ease-in-out}20%,60%{transform:rotate(80deg);transform-origin:top left;animation-timing-function:ease-in-out}40%,80%{transform:rotate(60deg);transform-origin:top left;animation-timing-function:ease-in-out;opacity:1}to{transform:translate3d(0,700px,0);opacity:0}}.hinge{animation-name:hinge}@keyframes rollIn{0%{opacity:0;transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;transform:translateZ(0) rotate3d(0,0,0,0)}}.rollIn{animation-name:rollIn}@keyframes rollOut{0%{opacity:1}to{opacity:0;transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{animation-name:rollOut}@keyframes zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{animation-name:zoomIn}@keyframes zoomInDown{0%{opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{animation-name:zoomInDown}@keyframes zoomInLeft{0%{opacity:0;transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(.475,.475,.475) translate3d(10px,0,0);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{animation-name:zoomInLeft}@keyframes zoomInRight{0%{opacity:0;transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{animation-name:zoomInRight}@keyframes zoomInUp{0%{opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{animation-name:zoomInUp}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{animation-name:zoomOut}@keyframes zoomOutDown{40%{opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{animation-name:zoomOutDown}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;transform:scale(.1) translate3d(-2000px,0,0);transform-origin:left center}}.zoomOutLeft{animation-name:zoomOutLeft}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;transform:scale(.1) translate3d(2000px,0,0);transform-origin:right center}}.zoomOutRight{animation-name:zoomOutRight}@keyframes zoomOutUp{40%{opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{animation-name:zoomOutUp}@keyframes slideInDown{0%{transform:translateY(-100%);visibility:visible}to{transform:translateY(0)}}.slideInDown{animation-name:slideInDown}@keyframes slideInLeft{0%{transform:translateX(-100%);visibility:visible}to{transform:translateX(0)}}.slideInLeft{animation-name:slideInLeft}@keyframes slideInRight{0%{transform:translateX(100%);visibility:visible}to{transform:translateX(0)}}.slideInRight{animation-name:slideInRight}@keyframes slideInUp{0%{transform:translateY(100%);visibility:visible}to{transform:translateY(0)}}.slideInUp{animation-name:slideInUp}@keyframes slideOutDown{0%{transform:translateY(0)}to{visibility:hidden;transform:translateY(100%)}}.slideOutDown{animation-name:slideOutDown}@keyframes slideOutLeft{0%{transform:translateX(0)}to{visibility:hidden;transform:translateX(-100%)}}.slideOutLeft{animation-name:slideOutLeft}@keyframes slideOutRight{0%{transform:translateX(0)}to{visibility:hidden;transform:translateX(100%)}}.slideOutRight{animation-name:slideOutRight}@keyframes slideOutUp{0%{transform:translateY(0)}to{visibility:hidden;transform:translateY(-100%)}}.slideOutUp{animation-name:slideOutUp}.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s linear infinite}.fa-pulse{animation:fa-spin 1s steps(8) infinite}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\F26E"}.fa-accessible-icon:before{content:"\F368"}.fa-accusoft:before{content:"\F369"}.fa-acquisitions-incorporated:before{content:"\F6AF"}.fa-ad:before{content:"\F641"}.fa-address-book:before{content:"\F2B9"}.fa-address-card:before{content:"\F2BB"}.fa-adjust:before{content:"\F042"}.fa-adn:before{content:"\F170"}.fa-adversal:before{content:"\F36A"}.fa-affiliatetheme:before{content:"\F36B"}.fa-air-freshener:before{content:"\F5D0"}.fa-airbnb:before{content:"\F834"}.fa-algolia:before{content:"\F36C"}.fa-align-center:before{content:"\F037"}.fa-align-justify:before{content:"\F039"}.fa-align-left:before{content:"\F036"}.fa-align-right:before{content:"\F038"}.fa-alipay:before{content:"\F642"}.fa-allergies:before{content:"\F461"}.fa-amazon:before{content:"\F270"}.fa-amazon-pay:before{content:"\F42C"}.fa-ambulance:before{content:"\F0F9"}.fa-american-sign-language-interpreting:before{content:"\F2A3"}.fa-amilia:before{content:"\F36D"}.fa-anchor:before{content:"\F13D"}.fa-android:before{content:"\F17B"}.fa-angellist:before{content:"\F209"}.fa-angle-double-down:before{content:"\F103"}.fa-angle-double-left:before{content:"\F100"}.fa-angle-double-right:before{content:"\F101"}.fa-angle-double-up:before{content:"\F102"}.fa-angle-down:before{content:"\F107"}.fa-angle-left:before{content:"\F104"}.fa-angle-right:before{content:"\F105"}.fa-angle-up:before{content:"\F106"}.fa-angry:before{content:"\F556"}.fa-angrycreative:before{content:"\F36E"}.fa-angular:before{content:"\F420"}.fa-ankh:before{content:"\F644"}.fa-app-store:before{content:"\F36F"}.fa-app-store-ios:before{content:"\F370"}.fa-apper:before{content:"\F371"}.fa-apple:before{content:"\F179"}.fa-apple-alt:before{content:"\F5D1"}.fa-apple-pay:before{content:"\F415"}.fa-archive:before{content:"\F187"}.fa-archway:before{content:"\F557"}.fa-arrow-alt-circle-down:before{content:"\F358"}.fa-arrow-alt-circle-left:before{content:"\F359"}.fa-arrow-alt-circle-right:before{content:"\F35A"}.fa-arrow-alt-circle-up:before{content:"\F35B"}.fa-arrow-circle-down:before{content:"\F0AB"}.fa-arrow-circle-left:before{content:"\F0A8"}.fa-arrow-circle-right:before{content:"\F0A9"}.fa-arrow-circle-up:before{content:"\F0AA"}.fa-arrow-down:before{content:"\F063"}.fa-arrow-left:before{content:"\F060"}.fa-arrow-right:before{content:"\F061"}.fa-arrow-up:before{content:"\F062"}.fa-arrows-alt:before{content:"\F0B2"}.fa-arrows-alt-h:before{content:"\F337"}.fa-arrows-alt-v:before{content:"\F338"}.fa-artstation:before{content:"\F77A"}.fa-assistive-listening-systems:before{content:"\F2A2"}.fa-asterisk:before{content:"\F069"}.fa-asymmetrik:before{content:"\F372"}.fa-at:before{content:"\F1FA"}.fa-atlas:before{content:"\F558"}.fa-atlassian:before{content:"\F77B"}.fa-atom:before{content:"\F5D2"}.fa-audible:before{content:"\F373"}.fa-audio-description:before{content:"\F29E"}.fa-autoprefixer:before{content:"\F41C"}.fa-avianex:before{content:"\F374"}.fa-aviato:before{content:"\F421"}.fa-award:before{content:"\F559"}.fa-aws:before{content:"\F375"}.fa-baby:before{content:"\F77C"}.fa-baby-carriage:before{content:"\F77D"}.fa-backspace:before{content:"\F55A"}.fa-backward:before{content:"\F04A"}.fa-bacon:before{content:"\F7E5"}.fa-bacteria:before{content:"\E059"}.fa-bacterium:before{content:"\E05A"}.fa-bahai:before{content:"\F666"}.fa-balance-scale:before{content:"\F24E"}.fa-balance-scale-left:before{content:"\F515"}.fa-balance-scale-right:before{content:"\F516"}.fa-ban:before{content:"\F05E"}.fa-band-aid:before{content:"\F462"}.fa-bandcamp:before{content:"\F2D5"}.fa-barcode:before{content:"\F02A"}.fa-bars:before{content:"\F0C9"}.fa-baseball-ball:before{content:"\F433"}.fa-basketball-ball:before{content:"\F434"}.fa-bath:before{content:"\F2CD"}.fa-battery-empty:before{content:"\F244"}.fa-battery-full:before{content:"\F240"}.fa-battery-half:before{content:"\F242"}.fa-battery-quarter:before{content:"\F243"}.fa-battery-three-quarters:before{content:"\F241"}.fa-battle-net:before{content:"\F835"}.fa-bed:before{content:"\F236"}.fa-beer:before{content:"\F0FC"}.fa-behance:before{content:"\F1B4"}.fa-behance-square:before{content:"\F1B5"}.fa-bell:before{content:"\F0F3"}.fa-bell-slash:before{content:"\F1F6"}.fa-bezier-curve:before{content:"\F55B"}.fa-bible:before{content:"\F647"}.fa-bicycle:before{content:"\F206"}.fa-biking:before{content:"\F84A"}.fa-bimobject:before{content:"\F378"}.fa-binoculars:before{content:"\F1E5"}.fa-biohazard:before{content:"\F780"}.fa-birthday-cake:before{content:"\F1FD"}.fa-bitbucket:before{content:"\F171"}.fa-bitcoin:before{content:"\F379"}.fa-bity:before{content:"\F37A"}.fa-black-tie:before{content:"\F27E"}.fa-blackberry:before{content:"\F37B"}.fa-blender:before{content:"\F517"}.fa-blender-phone:before{content:"\F6B6"}.fa-blind:before{content:"\F29D"}.fa-blog:before{content:"\F781"}.fa-blogger:before{content:"\F37C"}.fa-blogger-b:before{content:"\F37D"}.fa-bluetooth:before{content:"\F293"}.fa-bluetooth-b:before{content:"\F294"}.fa-bold:before{content:"\F032"}.fa-bolt:before{content:"\F0E7"}.fa-bomb:before{content:"\F1E2"}.fa-bone:before{content:"\F5D7"}.fa-bong:before{content:"\F55C"}.fa-book:before{content:"\F02D"}.fa-book-dead:before{content:"\F6B7"}.fa-book-medical:before{content:"\F7E6"}.fa-book-open:before{content:"\F518"}.fa-book-reader:before{content:"\F5DA"}.fa-bookmark:before{content:"\F02E"}.fa-bootstrap:before{content:"\F836"}.fa-border-all:before{content:"\F84C"}.fa-border-none:before{content:"\F850"}.fa-border-style:before{content:"\F853"}.fa-bowling-ball:before{content:"\F436"}.fa-box:before{content:"\F466"}.fa-box-open:before{content:"\F49E"}.fa-box-tissue:before{content:"\E05B"}.fa-boxes:before{content:"\F468"}.fa-braille:before{content:"\F2A1"}.fa-brain:before{content:"\F5DC"}.fa-bread-slice:before{content:"\F7EC"}.fa-briefcase:before{content:"\F0B1"}.fa-briefcase-medical:before{content:"\F469"}.fa-broadcast-tower:before{content:"\F519"}.fa-broom:before{content:"\F51A"}.fa-brush:before{content:"\F55D"}.fa-btc:before{content:"\F15A"}.fa-buffer:before{content:"\F837"}.fa-bug:before{content:"\F188"}.fa-building:before{content:"\F1AD"}.fa-bullhorn:before{content:"\F0A1"}.fa-bullseye:before{content:"\F140"}.fa-burn:before{content:"\F46A"}.fa-buromobelexperte:before{content:"\F37F"}.fa-bus:before{content:"\F207"}.fa-bus-alt:before{content:"\F55E"}.fa-business-time:before{content:"\F64A"}.fa-buy-n-large:before{content:"\F8A6"}.fa-buysellads:before{content:"\F20D"}.fa-calculator:before{content:"\F1EC"}.fa-calendar:before{content:"\F133"}.fa-calendar-alt:before{content:"\F073"}.fa-calendar-check:before{content:"\F274"}.fa-calendar-day:before{content:"\F783"}.fa-calendar-minus:before{content:"\F272"}.fa-calendar-plus:before{content:"\F271"}.fa-calendar-times:before{content:"\F273"}.fa-calendar-week:before{content:"\F784"}.fa-camera:before{content:"\F030"}.fa-camera-retro:before{content:"\F083"}.fa-campground:before{content:"\F6BB"}.fa-canadian-maple-leaf:before{content:"\F785"}.fa-candy-cane:before{content:"\F786"}.fa-cannabis:before{content:"\F55F"}.fa-capsules:before{content:"\F46B"}.fa-car:before{content:"\F1B9"}.fa-car-alt:before{content:"\F5DE"}.fa-car-battery:before{content:"\F5DF"}.fa-car-crash:before{content:"\F5E1"}.fa-car-side:before{content:"\F5E4"}.fa-caravan:before{content:"\F8FF"}.fa-caret-down:before{content:"\F0D7"}.fa-caret-left:before{content:"\F0D9"}.fa-caret-right:before{content:"\F0DA"}.fa-caret-square-down:before{content:"\F150"}.fa-caret-square-left:before{content:"\F191"}.fa-caret-square-right:before{content:"\F152"}.fa-caret-square-up:before{content:"\F151"}.fa-caret-up:before{content:"\F0D8"}.fa-carrot:before{content:"\F787"}.fa-cart-arrow-down:before{content:"\F218"}.fa-cart-plus:before{content:"\F217"}.fa-cash-register:before{content:"\F788"}.fa-cat:before{content:"\F6BE"}.fa-cc-amazon-pay:before{content:"\F42D"}.fa-cc-amex:before{content:"\F1F3"}.fa-cc-apple-pay:before{content:"\F416"}.fa-cc-diners-club:before{content:"\F24C"}.fa-cc-discover:before{content:"\F1F2"}.fa-cc-jcb:before{content:"\F24B"}.fa-cc-mastercard:before{content:"\F1F1"}.fa-cc-paypal:before{content:"\F1F4"}.fa-cc-stripe:before{content:"\F1F5"}.fa-cc-visa:before{content:"\F1F0"}.fa-centercode:before{content:"\F380"}.fa-centos:before{content:"\F789"}.fa-certificate:before{content:"\F0A3"}.fa-chair:before{content:"\F6C0"}.fa-chalkboard:before{content:"\F51B"}.fa-chalkboard-teacher:before{content:"\F51C"}.fa-charging-station:before{content:"\F5E7"}.fa-chart-area:before{content:"\F1FE"}.fa-chart-bar:before{content:"\F080"}.fa-chart-line:before{content:"\F201"}.fa-chart-pie:before{content:"\F200"}.fa-check:before{content:"\F00C"}.fa-check-circle:before{content:"\F058"}.fa-check-double:before{content:"\F560"}.fa-check-square:before{content:"\F14A"}.fa-cheese:before{content:"\F7EF"}.fa-chess:before{content:"\F439"}.fa-chess-bishop:before{content:"\F43A"}.fa-chess-board:before{content:"\F43C"}.fa-chess-king:before{content:"\F43F"}.fa-chess-knight:before{content:"\F441"}.fa-chess-pawn:before{content:"\F443"}.fa-chess-queen:before{content:"\F445"}.fa-chess-rook:before{content:"\F447"}.fa-chevron-circle-down:before{content:"\F13A"}.fa-chevron-circle-left:before{content:"\F137"}.fa-chevron-circle-right:before{content:"\F138"}.fa-chevron-circle-up:before{content:"\F139"}.fa-chevron-down:before{content:"\F078"}.fa-chevron-left:before{content:"\F053"}.fa-chevron-right:before{content:"\F054"}.fa-chevron-up:before{content:"\F077"}.fa-child:before{content:"\F1AE"}.fa-chrome:before{content:"\F268"}.fa-chromecast:before{content:"\F838"}.fa-church:before{content:"\F51D"}.fa-circle:before{content:"\F111"}.fa-circle-notch:before{content:"\F1CE"}.fa-city:before{content:"\F64F"}.fa-clinic-medical:before{content:"\F7F2"}.fa-clipboard:before{content:"\F328"}.fa-clipboard-check:before{content:"\F46C"}.fa-clipboard-list:before{content:"\F46D"}.fa-clock:before{content:"\F017"}.fa-clone:before{content:"\F24D"}.fa-closed-captioning:before{content:"\F20A"}.fa-cloud:before{content:"\F0C2"}.fa-cloud-download-alt:before{content:"\F381"}.fa-cloud-meatball:before{content:"\F73B"}.fa-cloud-moon:before{content:"\F6C3"}.fa-cloud-moon-rain:before{content:"\F73C"}.fa-cloud-rain:before{content:"\F73D"}.fa-cloud-showers-heavy:before{content:"\F740"}.fa-cloud-sun:before{content:"\F6C4"}.fa-cloud-sun-rain:before{content:"\F743"}.fa-cloud-upload-alt:before{content:"\F382"}.fa-cloudflare:before{content:"\E07D"}.fa-cloudscale:before{content:"\F383"}.fa-cloudsmith:before{content:"\F384"}.fa-cloudversify:before{content:"\F385"}.fa-cocktail:before{content:"\F561"}.fa-code:before{content:"\F121"}.fa-code-branch:before{content:"\F126"}.fa-codepen:before{content:"\F1CB"}.fa-codiepie:before{content:"\F284"}.fa-coffee:before{content:"\F0F4"}.fa-cog:before{content:"\F013"}.fa-cogs:before{content:"\F085"}.fa-coins:before{content:"\F51E"}.fa-columns:before{content:"\F0DB"}.fa-comment:before{content:"\F075"}.fa-comment-alt:before{content:"\F27A"}.fa-comment-dollar:before{content:"\F651"}.fa-comment-dots:before{content:"\F4AD"}.fa-comment-medical:before{content:"\F7F5"}.fa-comment-slash:before{content:"\F4B3"}.fa-comments:before{content:"\F086"}.fa-comments-dollar:before{content:"\F653"}.fa-compact-disc:before{content:"\F51F"}.fa-compass:before{content:"\F14E"}.fa-compress:before{content:"\F066"}.fa-compress-alt:before{content:"\F422"}.fa-compress-arrows-alt:before{content:"\F78C"}.fa-concierge-bell:before{content:"\F562"}.fa-confluence:before{content:"\F78D"}.fa-connectdevelop:before{content:"\F20E"}.fa-contao:before{content:"\F26D"}.fa-cookie:before{content:"\F563"}.fa-cookie-bite:before{content:"\F564"}.fa-copy:before{content:"\F0C5"}.fa-copyright:before{content:"\F1F9"}.fa-cotton-bureau:before{content:"\F89E"}.fa-couch:before{content:"\F4B8"}.fa-cpanel:before{content:"\F388"}.fa-creative-commons:before{content:"\F25E"}.fa-creative-commons-by:before{content:"\F4E7"}.fa-creative-commons-nc:before{content:"\F4E8"}.fa-creative-commons-nc-eu:before{content:"\F4E9"}.fa-creative-commons-nc-jp:before{content:"\F4EA"}.fa-creative-commons-nd:before{content:"\F4EB"}.fa-creative-commons-pd:before{content:"\F4EC"}.fa-creative-commons-pd-alt:before{content:"\F4ED"}.fa-creative-commons-remix:before{content:"\F4EE"}.fa-creative-commons-sa:before{content:"\F4EF"}.fa-creative-commons-sampling:before{content:"\F4F0"}.fa-creative-commons-sampling-plus:before{content:"\F4F1"}.fa-creative-commons-share:before{content:"\F4F2"}.fa-creative-commons-zero:before{content:"\F4F3"}.fa-credit-card:before{content:"\F09D"}.fa-critical-role:before{content:"\F6C9"}.fa-crop:before{content:"\F125"}.fa-crop-alt:before{content:"\F565"}.fa-cross:before{content:"\F654"}.fa-crosshairs:before{content:"\F05B"}.fa-crow:before{content:"\F520"}.fa-crown:before{content:"\F521"}.fa-crutch:before{content:"\F7F7"}.fa-css3:before{content:"\F13C"}.fa-css3-alt:before{content:"\F38B"}.fa-cube:before{content:"\F1B2"}.fa-cubes:before{content:"\F1B3"}.fa-cut:before{content:"\F0C4"}.fa-cuttlefish:before{content:"\F38C"}.fa-d-and-d:before{content:"\F38D"}.fa-d-and-d-beyond:before{content:"\F6CA"}.fa-dailymotion:before{content:"\E052"}.fa-dashcube:before{content:"\F210"}.fa-database:before{content:"\F1C0"}.fa-deaf:before{content:"\F2A4"}.fa-deezer:before{content:"\E077"}.fa-delicious:before{content:"\F1A5"}.fa-democrat:before{content:"\F747"}.fa-deploydog:before{content:"\F38E"}.fa-deskpro:before{content:"\F38F"}.fa-desktop:before{content:"\F108"}.fa-dev:before{content:"\F6CC"}.fa-deviantart:before{content:"\F1BD"}.fa-dharmachakra:before{content:"\F655"}.fa-dhl:before{content:"\F790"}.fa-diagnoses:before{content:"\F470"}.fa-diaspora:before{content:"\F791"}.fa-dice:before{content:"\F522"}.fa-dice-d20:before{content:"\F6CF"}.fa-dice-d6:before{content:"\F6D1"}.fa-dice-five:before{content:"\F523"}.fa-dice-four:before{content:"\F524"}.fa-dice-one:before{content:"\F525"}.fa-dice-six:before{content:"\F526"}.fa-dice-three:before{content:"\F527"}.fa-dice-two:before{content:"\F528"}.fa-digg:before{content:"\F1A6"}.fa-digital-ocean:before{content:"\F391"}.fa-digital-tachograph:before{content:"\F566"}.fa-directions:before{content:"\F5EB"}.fa-discord:before{content:"\F392"}.fa-discourse:before{content:"\F393"}.fa-disease:before{content:"\F7FA"}.fa-divide:before{content:"\F529"}.fa-dizzy:before{content:"\F567"}.fa-dna:before{content:"\F471"}.fa-dochub:before{content:"\F394"}.fa-docker:before{content:"\F395"}.fa-dog:before{content:"\F6D3"}.fa-dollar-sign:before{content:"\F155"}.fa-dolly:before{content:"\F472"}.fa-dolly-flatbed:before{content:"\F474"}.fa-donate:before{content:"\F4B9"}.fa-door-closed:before{content:"\F52A"}.fa-door-open:before{content:"\F52B"}.fa-dot-circle:before{content:"\F192"}.fa-dove:before{content:"\F4BA"}.fa-download:before{content:"\F019"}.fa-draft2digital:before{content:"\F396"}.fa-drafting-compass:before{content:"\F568"}.fa-dragon:before{content:"\F6D5"}.fa-draw-polygon:before{content:"\F5EE"}.fa-dribbble:before{content:"\F17D"}.fa-dribbble-square:before{content:"\F397"}.fa-dropbox:before{content:"\F16B"}.fa-drum:before{content:"\F569"}.fa-drum-steelpan:before{content:"\F56A"}.fa-drumstick-bite:before{content:"\F6D7"}.fa-drupal:before{content:"\F1A9"}.fa-dumbbell:before{content:"\F44B"}.fa-dumpster:before{content:"\F793"}.fa-dumpster-fire:before{content:"\F794"}.fa-dungeon:before{content:"\F6D9"}.fa-dyalog:before{content:"\F399"}.fa-earlybirds:before{content:"\F39A"}.fa-ebay:before{content:"\F4F4"}.fa-edge:before{content:"\F282"}.fa-edge-legacy:before{content:"\E078"}.fa-edit:before{content:"\F044"}.fa-egg:before{content:"\F7FB"}.fa-eject:before{content:"\F052"}.fa-elementor:before{content:"\F430"}.fa-ellipsis-h:before{content:"\F141"}.fa-ellipsis-v:before{content:"\F142"}.fa-ello:before{content:"\F5F1"}.fa-ember:before{content:"\F423"}.fa-empire:before{content:"\F1D1"}.fa-envelope:before{content:"\F0E0"}.fa-envelope-open:before{content:"\F2B6"}.fa-envelope-open-text:before{content:"\F658"}.fa-envelope-square:before{content:"\F199"}.fa-envira:before{content:"\F299"}.fa-equals:before{content:"\F52C"}.fa-eraser:before{content:"\F12D"}.fa-erlang:before{content:"\F39D"}.fa-ethereum:before{content:"\F42E"}.fa-ethernet:before{content:"\F796"}.fa-etsy:before{content:"\F2D7"}.fa-euro-sign:before{content:"\F153"}.fa-evernote:before{content:"\F839"}.fa-exchange-alt:before{content:"\F362"}.fa-exclamation:before{content:"\F12A"}.fa-exclamation-circle:before{content:"\F06A"}.fa-exclamation-triangle:before{content:"\F071"}.fa-expand:before{content:"\F065"}.fa-expand-alt:before{content:"\F424"}.fa-expand-arrows-alt:before{content:"\F31E"}.fa-expeditedssl:before{content:"\F23E"}.fa-external-link-alt:before{content:"\F35D"}.fa-external-link-square-alt:before{content:"\F360"}.fa-eye:before{content:"\F06E"}.fa-eye-dropper:before{content:"\F1FB"}.fa-eye-slash:before{content:"\F070"}.fa-facebook:before{content:"\F09A"}.fa-facebook-f:before{content:"\F39E"}.fa-facebook-messenger:before{content:"\F39F"}.fa-facebook-square:before{content:"\F082"}.fa-fan:before{content:"\F863"}.fa-fantasy-flight-games:before{content:"\F6DC"}.fa-fast-backward:before{content:"\F049"}.fa-fast-forward:before{content:"\F050"}.fa-faucet:before{content:"\E005"}.fa-fax:before{content:"\F1AC"}.fa-feather:before{content:"\F52D"}.fa-feather-alt:before{content:"\F56B"}.fa-fedex:before{content:"\F797"}.fa-fedora:before{content:"\F798"}.fa-female:before{content:"\F182"}.fa-fighter-jet:before{content:"\F0FB"}.fa-figma:before{content:"\F799"}.fa-file:before{content:"\F15B"}.fa-file-alt:before{content:"\F15C"}.fa-file-archive:before{content:"\F1C6"}.fa-file-audio:before{content:"\F1C7"}.fa-file-code:before{content:"\F1C9"}.fa-file-contract:before{content:"\F56C"}.fa-file-csv:before{content:"\F6DD"}.fa-file-download:before{content:"\F56D"}.fa-file-excel:before{content:"\F1C3"}.fa-file-export:before{content:"\F56E"}.fa-file-image:before{content:"\F1C5"}.fa-file-import:before{content:"\F56F"}.fa-file-invoice:before{content:"\F570"}.fa-file-invoice-dollar:before{content:"\F571"}.fa-file-medical:before{content:"\F477"}.fa-file-medical-alt:before{content:"\F478"}.fa-file-pdf:before{content:"\F1C1"}.fa-file-powerpoint:before{content:"\F1C4"}.fa-file-prescription:before{content:"\F572"}.fa-file-signature:before{content:"\F573"}.fa-file-upload:before{content:"\F574"}.fa-file-video:before{content:"\F1C8"}.fa-file-word:before{content:"\F1C2"}.fa-fill:before{content:"\F575"}.fa-fill-drip:before{content:"\F576"}.fa-film:before{content:"\F008"}.fa-filter:before{content:"\F0B0"}.fa-fingerprint:before{content:"\F577"}.fa-fire:before{content:"\F06D"}.fa-fire-alt:before{content:"\F7E4"}.fa-fire-extinguisher:before{content:"\F134"}.fa-firefox:before{content:"\F269"}.fa-firefox-browser:before{content:"\E007"}.fa-first-aid:before{content:"\F479"}.fa-first-order:before{content:"\F2B0"}.fa-first-order-alt:before{content:"\F50A"}.fa-firstdraft:before{content:"\F3A1"}.fa-fish:before{content:"\F578"}.fa-fist-raised:before{content:"\F6DE"}.fa-flag:before{content:"\F024"}.fa-flag-checkered:before{content:"\F11E"}.fa-flag-usa:before{content:"\F74D"}.fa-flask:before{content:"\F0C3"}.fa-flickr:before{content:"\F16E"}.fa-flipboard:before{content:"\F44D"}.fa-flushed:before{content:"\F579"}.fa-fly:before{content:"\F417"}.fa-folder:before{content:"\F07B"}.fa-folder-minus:before{content:"\F65D"}.fa-folder-open:before{content:"\F07C"}.fa-folder-plus:before{content:"\F65E"}.fa-font:before{content:"\F031"}.fa-font-awesome:before{content:"\F2B4"}.fa-font-awesome-alt:before{content:"\F35C"}.fa-font-awesome-flag:before{content:"\F425"}.fa-font-awesome-logo-full:before{content:"\F4E6"}.fa-fonticons:before{content:"\F280"}.fa-fonticons-fi:before{content:"\F3A2"}.fa-football-ball:before{content:"\F44E"}.fa-fort-awesome:before{content:"\F286"}.fa-fort-awesome-alt:before{content:"\F3A3"}.fa-forumbee:before{content:"\F211"}.fa-forward:before{content:"\F04E"}.fa-foursquare:before{content:"\F180"}.fa-free-code-camp:before{content:"\F2C5"}.fa-freebsd:before{content:"\F3A4"}.fa-frog:before{content:"\F52E"}.fa-frown:before{content:"\F119"}.fa-frown-open:before{content:"\F57A"}.fa-fulcrum:before{content:"\F50B"}.fa-funnel-dollar:before{content:"\F662"}.fa-futbol:before{content:"\F1E3"}.fa-galactic-republic:before{content:"\F50C"}.fa-galactic-senate:before{content:"\F50D"}.fa-gamepad:before{content:"\F11B"}.fa-gas-pump:before{content:"\F52F"}.fa-gavel:before{content:"\F0E3"}.fa-gem:before{content:"\F3A5"}.fa-genderless:before{content:"\F22D"}.fa-get-pocket:before{content:"\F265"}.fa-gg:before{content:"\F260"}.fa-gg-circle:before{content:"\F261"}.fa-ghost:before{content:"\F6E2"}.fa-gift:before{content:"\F06B"}.fa-gifts:before{content:"\F79C"}.fa-git:before{content:"\F1D3"}.fa-git-alt:before{content:"\F841"}.fa-git-square:before{content:"\F1D2"}.fa-github:before{content:"\F09B"}.fa-github-alt:before{content:"\F113"}.fa-github-square:before{content:"\F092"}.fa-gitkraken:before{content:"\F3A6"}.fa-gitlab:before{content:"\F296"}.fa-gitter:before{content:"\F426"}.fa-glass-cheers:before{content:"\F79F"}.fa-glass-martini:before{content:"\F000"}.fa-glass-martini-alt:before{content:"\F57B"}.fa-glass-whiskey:before{content:"\F7A0"}.fa-glasses:before{content:"\F530"}.fa-glide:before{content:"\F2A5"}.fa-glide-g:before{content:"\F2A6"}.fa-globe:before{content:"\F0AC"}.fa-globe-africa:before{content:"\F57C"}.fa-globe-americas:before{content:"\F57D"}.fa-globe-asia:before{content:"\F57E"}.fa-globe-europe:before{content:"\F7A2"}.fa-gofore:before{content:"\F3A7"}.fa-golf-ball:before{content:"\F450"}.fa-goodreads:before{content:"\F3A8"}.fa-goodreads-g:before{content:"\F3A9"}.fa-google:before{content:"\F1A0"}.fa-google-drive:before{content:"\F3AA"}.fa-google-pay:before{content:"\E079"}.fa-google-play:before{content:"\F3AB"}.fa-google-plus:before{content:"\F2B3"}.fa-google-plus-g:before{content:"\F0D5"}.fa-google-plus-square:before{content:"\F0D4"}.fa-google-wallet:before{content:"\F1EE"}.fa-gopuram:before{content:"\F664"}.fa-graduation-cap:before{content:"\F19D"}.fa-gratipay:before{content:"\F184"}.fa-grav:before{content:"\F2D6"}.fa-greater-than:before{content:"\F531"}.fa-greater-than-equal:before{content:"\F532"}.fa-grimace:before{content:"\F57F"}.fa-grin:before{content:"\F580"}.fa-grin-alt:before{content:"\F581"}.fa-grin-beam:before{content:"\F582"}.fa-grin-beam-sweat:before{content:"\F583"}.fa-grin-hearts:before{content:"\F584"}.fa-grin-squint:before{content:"\F585"}.fa-grin-squint-tears:before{content:"\F586"}.fa-grin-stars:before{content:"\F587"}.fa-grin-tears:before{content:"\F588"}.fa-grin-tongue:before{content:"\F589"}.fa-grin-tongue-squint:before{content:"\F58A"}.fa-grin-tongue-wink:before{content:"\F58B"}.fa-grin-wink:before{content:"\F58C"}.fa-grip-horizontal:before{content:"\F58D"}.fa-grip-lines:before{content:"\F7A4"}.fa-grip-lines-vertical:before{content:"\F7A5"}.fa-grip-vertical:before{content:"\F58E"}.fa-gripfire:before{content:"\F3AC"}.fa-grunt:before{content:"\F3AD"}.fa-guilded:before{content:"\E07E"}.fa-guitar:before{content:"\F7A6"}.fa-gulp:before{content:"\F3AE"}.fa-h-square:before{content:"\F0FD"}.fa-hacker-news:before{content:"\F1D4"}.fa-hacker-news-square:before{content:"\F3AF"}.fa-hackerrank:before{content:"\F5F7"}.fa-hamburger:before{content:"\F805"}.fa-hammer:before{content:"\F6E3"}.fa-hamsa:before{content:"\F665"}.fa-hand-holding:before{content:"\F4BD"}.fa-hand-holding-heart:before{content:"\F4BE"}.fa-hand-holding-medical:before{content:"\E05C"}.fa-hand-holding-usd:before{content:"\F4C0"}.fa-hand-holding-water:before{content:"\F4C1"}.fa-hand-lizard:before{content:"\F258"}.fa-hand-middle-finger:before{content:"\F806"}.fa-hand-paper:before{content:"\F256"}.fa-hand-peace:before{content:"\F25B"}.fa-hand-point-down:before{content:"\F0A7"}.fa-hand-point-left:before{content:"\F0A5"}.fa-hand-point-right:before{content:"\F0A4"}.fa-hand-point-up:before{content:"\F0A6"}.fa-hand-pointer:before{content:"\F25A"}.fa-hand-rock:before{content:"\F255"}.fa-hand-scissors:before{content:"\F257"}.fa-hand-sparkles:before{content:"\E05D"}.fa-hand-spock:before{content:"\F259"}.fa-hands:before{content:"\F4C2"}.fa-hands-helping:before{content:"\F4C4"}.fa-hands-wash:before{content:"\E05E"}.fa-handshake:before{content:"\F2B5"}.fa-handshake-alt-slash:before{content:"\E05F"}.fa-handshake-slash:before{content:"\E060"}.fa-hanukiah:before{content:"\F6E6"}.fa-hard-hat:before{content:"\F807"}.fa-hashtag:before{content:"\F292"}.fa-hat-cowboy:before{content:"\F8C0"}.fa-hat-cowboy-side:before{content:"\F8C1"}.fa-hat-wizard:before{content:"\F6E8"}.fa-hdd:before{content:"\F0A0"}.fa-head-side-cough:before{content:"\E061"}.fa-head-side-cough-slash:before{content:"\E062"}.fa-head-side-mask:before{content:"\E063"}.fa-head-side-virus:before{content:"\E064"}.fa-heading:before{content:"\F1DC"}.fa-headphones:before{content:"\F025"}.fa-headphones-alt:before{content:"\F58F"}.fa-headset:before{content:"\F590"}.fa-heart:before{content:"\F004"}.fa-heart-broken:before{content:"\F7A9"}.fa-heartbeat:before{content:"\F21E"}.fa-helicopter:before{content:"\F533"}.fa-highlighter:before{content:"\F591"}.fa-hiking:before{content:"\F6EC"}.fa-hippo:before{content:"\F6ED"}.fa-hips:before{content:"\F452"}.fa-hire-a-helper:before{content:"\F3B0"}.fa-history:before{content:"\F1DA"}.fa-hive:before{content:"\E07F"}.fa-hockey-puck:before{content:"\F453"}.fa-holly-berry:before{content:"\F7AA"}.fa-home:before{content:"\F015"}.fa-hooli:before{content:"\F427"}.fa-hornbill:before{content:"\F592"}.fa-horse:before{content:"\F6F0"}.fa-horse-head:before{content:"\F7AB"}.fa-hospital:before{content:"\F0F8"}.fa-hospital-alt:before{content:"\F47D"}.fa-hospital-symbol:before{content:"\F47E"}.fa-hospital-user:before{content:"\F80D"}.fa-hot-tub:before{content:"\F593"}.fa-hotdog:before{content:"\F80F"}.fa-hotel:before{content:"\F594"}.fa-hotjar:before{content:"\F3B1"}.fa-hourglass:before{content:"\F254"}.fa-hourglass-end:before{content:"\F253"}.fa-hourglass-half:before{content:"\F252"}.fa-hourglass-start:before{content:"\F251"}.fa-house-damage:before{content:"\F6F1"}.fa-house-user:before{content:"\E065"}.fa-houzz:before{content:"\F27C"}.fa-hryvnia:before{content:"\F6F2"}.fa-html5:before{content:"\F13B"}.fa-hubspot:before{content:"\F3B2"}.fa-i-cursor:before{content:"\F246"}.fa-ice-cream:before{content:"\F810"}.fa-icicles:before{content:"\F7AD"}.fa-icons:before{content:"\F86D"}.fa-id-badge:before{content:"\F2C1"}.fa-id-card:before{content:"\F2C2"}.fa-id-card-alt:before{content:"\F47F"}.fa-ideal:before{content:"\E013"}.fa-igloo:before{content:"\F7AE"}.fa-image:before{content:"\F03E"}.fa-images:before{content:"\F302"}.fa-imdb:before{content:"\F2D8"}.fa-inbox:before{content:"\F01C"}.fa-indent:before{content:"\F03C"}.fa-industry:before{content:"\F275"}.fa-infinity:before{content:"\F534"}.fa-info:before{content:"\F129"}.fa-info-circle:before{content:"\F05A"}.fa-innosoft:before{content:"\E080"}.fa-instagram:before{content:"\F16D"}.fa-instagram-square:before{content:"\E055"}.fa-instalod:before{content:"\E081"}.fa-intercom:before{content:"\F7AF"}.fa-internet-explorer:before{content:"\F26B"}.fa-invision:before{content:"\F7B0"}.fa-ioxhost:before{content:"\F208"}.fa-italic:before{content:"\F033"}.fa-itch-io:before{content:"\F83A"}.fa-itunes:before{content:"\F3B4"}.fa-itunes-note:before{content:"\F3B5"}.fa-java:before{content:"\F4E4"}.fa-jedi:before{content:"\F669"}.fa-jedi-order:before{content:"\F50E"}.fa-jenkins:before{content:"\F3B6"}.fa-jira:before{content:"\F7B1"}.fa-joget:before{content:"\F3B7"}.fa-joint:before{content:"\F595"}.fa-joomla:before{content:"\F1AA"}.fa-journal-whills:before{content:"\F66A"}.fa-js:before{content:"\F3B8"}.fa-js-square:before{content:"\F3B9"}.fa-jsfiddle:before{content:"\F1CC"}.fa-kaaba:before{content:"\F66B"}.fa-kaggle:before{content:"\F5FA"}.fa-key:before{content:"\F084"}.fa-keybase:before{content:"\F4F5"}.fa-keyboard:before{content:"\F11C"}.fa-keycdn:before{content:"\F3BA"}.fa-khanda:before{content:"\F66D"}.fa-kickstarter:before{content:"\F3BB"}.fa-kickstarter-k:before{content:"\F3BC"}.fa-kiss:before{content:"\F596"}.fa-kiss-beam:before{content:"\F597"}.fa-kiss-wink-heart:before{content:"\F598"}.fa-kiwi-bird:before{content:"\F535"}.fa-korvue:before{content:"\F42F"}.fa-landmark:before{content:"\F66F"}.fa-language:before{content:"\F1AB"}.fa-laptop:before{content:"\F109"}.fa-laptop-code:before{content:"\F5FC"}.fa-laptop-house:before{content:"\E066"}.fa-laptop-medical:before{content:"\F812"}.fa-laravel:before{content:"\F3BD"}.fa-lastfm:before{content:"\F202"}.fa-lastfm-square:before{content:"\F203"}.fa-laugh:before{content:"\F599"}.fa-laugh-beam:before{content:"\F59A"}.fa-laugh-squint:before{content:"\F59B"}.fa-laugh-wink:before{content:"\F59C"}.fa-layer-group:before{content:"\F5FD"}.fa-leaf:before{content:"\F06C"}.fa-leanpub:before{content:"\F212"}.fa-lemon:before{content:"\F094"}.fa-less:before{content:"\F41D"}.fa-less-than:before{content:"\F536"}.fa-less-than-equal:before{content:"\F537"}.fa-level-down-alt:before{content:"\F3BE"}.fa-level-up-alt:before{content:"\F3BF"}.fa-life-ring:before{content:"\F1CD"}.fa-lightbulb:before{content:"\F0EB"}.fa-line:before{content:"\F3C0"}.fa-link:before{content:"\F0C1"}.fa-linkedin:before{content:"\F08C"}.fa-linkedin-in:before{content:"\F0E1"}.fa-linode:before{content:"\F2B8"}.fa-linux:before{content:"\F17C"}.fa-lira-sign:before{content:"\F195"}.fa-list:before{content:"\F03A"}.fa-list-alt:before{content:"\F022"}.fa-list-ol:before{content:"\F0CB"}.fa-list-ul:before{content:"\F0CA"}.fa-location-arrow:before{content:"\F124"}.fa-lock:before{content:"\F023"}.fa-lock-open:before{content:"\F3C1"}.fa-long-arrow-alt-down:before{content:"\F309"}.fa-long-arrow-alt-left:before{content:"\F30A"}.fa-long-arrow-alt-right:before{content:"\F30B"}.fa-long-arrow-alt-up:before{content:"\F30C"}.fa-low-vision:before{content:"\F2A8"}.fa-luggage-cart:before{content:"\F59D"}.fa-lungs:before{content:"\F604"}.fa-lungs-virus:before{content:"\E067"}.fa-lyft:before{content:"\F3C3"}.fa-magento:before{content:"\F3C4"}.fa-magic:before{content:"\F0D0"}.fa-magnet:before{content:"\F076"}.fa-mail-bulk:before{content:"\F674"}.fa-mailchimp:before{content:"\F59E"}.fa-male:before{content:"\F183"}.fa-mandalorian:before{content:"\F50F"}.fa-map:before{content:"\F279"}.fa-map-marked:before{content:"\F59F"}.fa-map-marked-alt:before{content:"\F5A0"}.fa-map-marker:before{content:"\F041"}.fa-map-marker-alt:before{content:"\F3C5"}.fa-map-pin:before{content:"\F276"}.fa-map-signs:before{content:"\F277"}.fa-markdown:before{content:"\F60F"}.fa-marker:before{content:"\F5A1"}.fa-mars:before{content:"\F222"}.fa-mars-double:before{content:"\F227"}.fa-mars-stroke:before{content:"\F229"}.fa-mars-stroke-h:before{content:"\F22B"}.fa-mars-stroke-v:before{content:"\F22A"}.fa-mask:before{content:"\F6FA"}.fa-mastodon:before{content:"\F4F6"}.fa-maxcdn:before{content:"\F136"}.fa-mdb:before{content:"\F8CA"}.fa-medal:before{content:"\F5A2"}.fa-medapps:before{content:"\F3C6"}.fa-medium:before{content:"\F23A"}.fa-medium-m:before{content:"\F3C7"}.fa-medkit:before{content:"\F0FA"}.fa-medrt:before{content:"\F3C8"}.fa-meetup:before{content:"\F2E0"}.fa-megaport:before{content:"\F5A3"}.fa-meh:before{content:"\F11A"}.fa-meh-blank:before{content:"\F5A4"}.fa-meh-rolling-eyes:before{content:"\F5A5"}.fa-memory:before{content:"\F538"}.fa-mendeley:before{content:"\F7B3"}.fa-menorah:before{content:"\F676"}.fa-mercury:before{content:"\F223"}.fa-meteor:before{content:"\F753"}.fa-microblog:before{content:"\E01A"}.fa-microchip:before{content:"\F2DB"}.fa-microphone:before{content:"\F130"}.fa-microphone-alt:before{content:"\F3C9"}.fa-microphone-alt-slash:before{content:"\F539"}.fa-microphone-slash:before{content:"\F131"}.fa-microscope:before{content:"\F610"}.fa-microsoft:before{content:"\F3CA"}.fa-minus:before{content:"\F068"}.fa-minus-circle:before{content:"\F056"}.fa-minus-square:before{content:"\F146"}.fa-mitten:before{content:"\F7B5"}.fa-mix:before{content:"\F3CB"}.fa-mixcloud:before{content:"\F289"}.fa-mixer:before{content:"\E056"}.fa-mizuni:before{content:"\F3CC"}.fa-mobile:before{content:"\F10B"}.fa-mobile-alt:before{content:"\F3CD"}.fa-modx:before{content:"\F285"}.fa-monero:before{content:"\F3D0"}.fa-money-bill:before{content:"\F0D6"}.fa-money-bill-alt:before{content:"\F3D1"}.fa-money-bill-wave:before{content:"\F53A"}.fa-money-bill-wave-alt:before{content:"\F53B"}.fa-money-check:before{content:"\F53C"}.fa-money-check-alt:before{content:"\F53D"}.fa-monument:before{content:"\F5A6"}.fa-moon:before{content:"\F186"}.fa-mortar-pestle:before{content:"\F5A7"}.fa-mosque:before{content:"\F678"}.fa-motorcycle:before{content:"\F21C"}.fa-mountain:before{content:"\F6FC"}.fa-mouse:before{content:"\F8CC"}.fa-mouse-pointer:before{content:"\F245"}.fa-mug-hot:before{content:"\F7B6"}.fa-music:before{content:"\F001"}.fa-napster:before{content:"\F3D2"}.fa-neos:before{content:"\F612"}.fa-network-wired:before{content:"\F6FF"}.fa-neuter:before{content:"\F22C"}.fa-newspaper:before{content:"\F1EA"}.fa-nimblr:before{content:"\F5A8"}.fa-node:before{content:"\F419"}.fa-node-js:before{content:"\F3D3"}.fa-not-equal:before{content:"\F53E"}.fa-notes-medical:before{content:"\F481"}.fa-npm:before{content:"\F3D4"}.fa-ns8:before{content:"\F3D5"}.fa-nutritionix:before{content:"\F3D6"}.fa-object-group:before{content:"\F247"}.fa-object-ungroup:before{content:"\F248"}.fa-octopus-deploy:before{content:"\E082"}.fa-odnoklassniki:before{content:"\F263"}.fa-odnoklassniki-square:before{content:"\F264"}.fa-oil-can:before{content:"\F613"}.fa-old-republic:before{content:"\F510"}.fa-om:before{content:"\F679"}.fa-opencart:before{content:"\F23D"}.fa-openid:before{content:"\F19B"}.fa-opera:before{content:"\F26A"}.fa-optin-monster:before{content:"\F23C"}.fa-orcid:before{content:"\F8D2"}.fa-osi:before{content:"\F41A"}.fa-otter:before{content:"\F700"}.fa-outdent:before{content:"\F03B"}.fa-page4:before{content:"\F3D7"}.fa-pagelines:before{content:"\F18C"}.fa-pager:before{content:"\F815"}.fa-paint-brush:before{content:"\F1FC"}.fa-paint-roller:before{content:"\F5AA"}.fa-palette:before{content:"\F53F"}.fa-palfed:before{content:"\F3D8"}.fa-pallet:before{content:"\F482"}.fa-paper-plane:before{content:"\F1D8"}.fa-paperclip:before{content:"\F0C6"}.fa-parachute-box:before{content:"\F4CD"}.fa-paragraph:before{content:"\F1DD"}.fa-parking:before{content:"\F540"}.fa-passport:before{content:"\F5AB"}.fa-pastafarianism:before{content:"\F67B"}.fa-paste:before{content:"\F0EA"}.fa-patreon:before{content:"\F3D9"}.fa-pause:before{content:"\F04C"}.fa-pause-circle:before{content:"\F28B"}.fa-paw:before{content:"\F1B0"}.fa-paypal:before{content:"\F1ED"}.fa-peace:before{content:"\F67C"}.fa-pen:before{content:"\F304"}.fa-pen-alt:before{content:"\F305"}.fa-pen-fancy:before{content:"\F5AC"}.fa-pen-nib:before{content:"\F5AD"}.fa-pen-square:before{content:"\F14B"}.fa-pencil-alt:before{content:"\F303"}.fa-pencil-ruler:before{content:"\F5AE"}.fa-penny-arcade:before{content:"\F704"}.fa-people-arrows:before{content:"\E068"}.fa-people-carry:before{content:"\F4CE"}.fa-pepper-hot:before{content:"\F816"}.fa-perbyte:before{content:"\E083"}.fa-percent:before{content:"\F295"}.fa-percentage:before{content:"\F541"}.fa-periscope:before{content:"\F3DA"}.fa-person-booth:before{content:"\F756"}.fa-phabricator:before{content:"\F3DB"}.fa-phoenix-framework:before{content:"\F3DC"}.fa-phoenix-squadron:before{content:"\F511"}.fa-phone:before{content:"\F095"}.fa-phone-alt:before{content:"\F879"}.fa-phone-slash:before{content:"\F3DD"}.fa-phone-square:before{content:"\F098"}.fa-phone-square-alt:before{content:"\F87B"}.fa-phone-volume:before{content:"\F2A0"}.fa-photo-video:before{content:"\F87C"}.fa-php:before{content:"\F457"}.fa-pied-piper:before{content:"\F2AE"}.fa-pied-piper-alt:before{content:"\F1A8"}.fa-pied-piper-hat:before{content:"\F4E5"}.fa-pied-piper-pp:before{content:"\F1A7"}.fa-pied-piper-square:before{content:"\E01E"}.fa-piggy-bank:before{content:"\F4D3"}.fa-pills:before{content:"\F484"}.fa-pinterest:before{content:"\F0D2"}.fa-pinterest-p:before{content:"\F231"}.fa-pinterest-square:before{content:"\F0D3"}.fa-pizza-slice:before{content:"\F818"}.fa-place-of-worship:before{content:"\F67F"}.fa-plane:before{content:"\F072"}.fa-plane-arrival:before{content:"\F5AF"}.fa-plane-departure:before{content:"\F5B0"}.fa-plane-slash:before{content:"\E069"}.fa-play:before{content:"\F04B"}.fa-play-circle:before{content:"\F144"}.fa-playstation:before{content:"\F3DF"}.fa-plug:before{content:"\F1E6"}.fa-plus:before{content:"\F067"}.fa-plus-circle:before{content:"\F055"}.fa-plus-square:before{content:"\F0FE"}.fa-podcast:before{content:"\F2CE"}.fa-poll:before{content:"\F681"}.fa-poll-h:before{content:"\F682"}.fa-poo:before{content:"\F2FE"}.fa-poo-storm:before{content:"\F75A"}.fa-poop:before{content:"\F619"}.fa-portrait:before{content:"\F3E0"}.fa-pound-sign:before{content:"\F154"}.fa-power-off:before{content:"\F011"}.fa-pray:before{content:"\F683"}.fa-praying-hands:before{content:"\F684"}.fa-prescription:before{content:"\F5B1"}.fa-prescription-bottle:before{content:"\F485"}.fa-prescription-bottle-alt:before{content:"\F486"}.fa-print:before{content:"\F02F"}.fa-procedures:before{content:"\F487"}.fa-product-hunt:before{content:"\F288"}.fa-project-diagram:before{content:"\F542"}.fa-pump-medical:before{content:"\E06A"}.fa-pump-soap:before{content:"\E06B"}.fa-pushed:before{content:"\F3E1"}.fa-puzzle-piece:before{content:"\F12E"}.fa-python:before{content:"\F3E2"}.fa-qq:before{content:"\F1D6"}.fa-qrcode:before{content:"\F029"}.fa-question:before{content:"\F128"}.fa-question-circle:before{content:"\F059"}.fa-quidditch:before{content:"\F458"}.fa-quinscape:before{content:"\F459"}.fa-quora:before{content:"\F2C4"}.fa-quote-left:before{content:"\F10D"}.fa-quote-right:before{content:"\F10E"}.fa-quran:before{content:"\F687"}.fa-r-project:before{content:"\F4F7"}.fa-radiation:before{content:"\F7B9"}.fa-radiation-alt:before{content:"\F7BA"}.fa-rainbow:before{content:"\F75B"}.fa-random:before{content:"\F074"}.fa-raspberry-pi:before{content:"\F7BB"}.fa-ravelry:before{content:"\F2D9"}.fa-react:before{content:"\F41B"}.fa-reacteurope:before{content:"\F75D"}.fa-readme:before{content:"\F4D5"}.fa-rebel:before{content:"\F1D0"}.fa-receipt:before{content:"\F543"}.fa-record-vinyl:before{content:"\F8D9"}.fa-recycle:before{content:"\F1B8"}.fa-red-river:before{content:"\F3E3"}.fa-reddit:before{content:"\F1A1"}.fa-reddit-alien:before{content:"\F281"}.fa-reddit-square:before{content:"\F1A2"}.fa-redhat:before{content:"\F7BC"}.fa-redo:before{content:"\F01E"}.fa-redo-alt:before{content:"\F2F9"}.fa-registered:before{content:"\F25D"}.fa-remove-format:before{content:"\F87D"}.fa-renren:before{content:"\F18B"}.fa-reply:before{content:"\F3E5"}.fa-reply-all:before{content:"\F122"}.fa-replyd:before{content:"\F3E6"}.fa-republican:before{content:"\F75E"}.fa-researchgate:before{content:"\F4F8"}.fa-resolving:before{content:"\F3E7"}.fa-restroom:before{content:"\F7BD"}.fa-retweet:before{content:"\F079"}.fa-rev:before{content:"\F5B2"}.fa-ribbon:before{content:"\F4D6"}.fa-ring:before{content:"\F70B"}.fa-road:before{content:"\F018"}.fa-robot:before{content:"\F544"}.fa-rocket:before{content:"\F135"}.fa-rocketchat:before{content:"\F3E8"}.fa-rockrms:before{content:"\F3E9"}.fa-route:before{content:"\F4D7"}.fa-rss:before{content:"\F09E"}.fa-rss-square:before{content:"\F143"}.fa-ruble-sign:before{content:"\F158"}.fa-ruler:before{content:"\F545"}.fa-ruler-combined:before{content:"\F546"}.fa-ruler-horizontal:before{content:"\F547"}.fa-ruler-vertical:before{content:"\F548"}.fa-running:before{content:"\F70C"}.fa-rupee-sign:before{content:"\F156"}.fa-rust:before{content:"\E07A"}.fa-sad-cry:before{content:"\F5B3"}.fa-sad-tear:before{content:"\F5B4"}.fa-safari:before{content:"\F267"}.fa-salesforce:before{content:"\F83B"}.fa-sass:before{content:"\F41E"}.fa-satellite:before{content:"\F7BF"}.fa-satellite-dish:before{content:"\F7C0"}.fa-save:before{content:"\F0C7"}.fa-schlix:before{content:"\F3EA"}.fa-school:before{content:"\F549"}.fa-screwdriver:before{content:"\F54A"}.fa-scribd:before{content:"\F28A"}.fa-scroll:before{content:"\F70E"}.fa-sd-card:before{content:"\F7C2"}.fa-search:before{content:"\F002"}.fa-search-dollar:before{content:"\F688"}.fa-search-location:before{content:"\F689"}.fa-search-minus:before{content:"\F010"}.fa-search-plus:before{content:"\F00E"}.fa-searchengin:before{content:"\F3EB"}.fa-seedling:before{content:"\F4D8"}.fa-sellcast:before{content:"\F2DA"}.fa-sellsy:before{content:"\F213"}.fa-server:before{content:"\F233"}.fa-servicestack:before{content:"\F3EC"}.fa-shapes:before{content:"\F61F"}.fa-share:before{content:"\F064"}.fa-share-alt:before{content:"\F1E0"}.fa-share-alt-square:before{content:"\F1E1"}.fa-share-square:before{content:"\F14D"}.fa-shekel-sign:before{content:"\F20B"}.fa-shield-alt:before{content:"\F3ED"}.fa-shield-virus:before{content:"\E06C"}.fa-ship:before{content:"\F21A"}.fa-shipping-fast:before{content:"\F48B"}.fa-shirtsinbulk:before{content:"\F214"}.fa-shoe-prints:before{content:"\F54B"}.fa-shopify:before{content:"\E057"}.fa-shopping-bag:before{content:"\F290"}.fa-shopping-basket:before{content:"\F291"}.fa-shopping-cart:before{content:"\F07A"}.fa-shopware:before{content:"\F5B5"}.fa-shower:before{content:"\F2CC"}.fa-shuttle-van:before{content:"\F5B6"}.fa-sign:before{content:"\F4D9"}.fa-sign-in-alt:before{content:"\F2F6"}.fa-sign-language:before{content:"\F2A7"}.fa-sign-out-alt:before{content:"\F2F5"}.fa-signal:before{content:"\F012"}.fa-signature:before{content:"\F5B7"}.fa-sim-card:before{content:"\F7C4"}.fa-simplybuilt:before{content:"\F215"}.fa-sink:before{content:"\E06D"}.fa-sistrix:before{content:"\F3EE"}.fa-sitemap:before{content:"\F0E8"}.fa-sith:before{content:"\F512"}.fa-skating:before{content:"\F7C5"}.fa-sketch:before{content:"\F7C6"}.fa-skiing:before{content:"\F7C9"}.fa-skiing-nordic:before{content:"\F7CA"}.fa-skull:before{content:"\F54C"}.fa-skull-crossbones:before{content:"\F714"}.fa-skyatlas:before{content:"\F216"}.fa-skype:before{content:"\F17E"}.fa-slack:before{content:"\F198"}.fa-slack-hash:before{content:"\F3EF"}.fa-slash:before{content:"\F715"}.fa-sleigh:before{content:"\F7CC"}.fa-sliders-h:before{content:"\F1DE"}.fa-slideshare:before{content:"\F1E7"}.fa-smile:before{content:"\F118"}.fa-smile-beam:before{content:"\F5B8"}.fa-smile-wink:before{content:"\F4DA"}.fa-smog:before{content:"\F75F"}.fa-smoking:before{content:"\F48D"}.fa-smoking-ban:before{content:"\F54D"}.fa-sms:before{content:"\F7CD"}.fa-snapchat:before{content:"\F2AB"}.fa-snapchat-ghost:before{content:"\F2AC"}.fa-snapchat-square:before{content:"\F2AD"}.fa-snowboarding:before{content:"\F7CE"}.fa-snowflake:before{content:"\F2DC"}.fa-snowman:before{content:"\F7D0"}.fa-snowplow:before{content:"\F7D2"}.fa-soap:before{content:"\E06E"}.fa-socks:before{content:"\F696"}.fa-solar-panel:before{content:"\F5BA"}.fa-sort:before{content:"\F0DC"}.fa-sort-alpha-down:before{content:"\F15D"}.fa-sort-alpha-down-alt:before{content:"\F881"}.fa-sort-alpha-up:before{content:"\F15E"}.fa-sort-alpha-up-alt:before{content:"\F882"}.fa-sort-amount-down:before{content:"\F160"}.fa-sort-amount-down-alt:before{content:"\F884"}.fa-sort-amount-up:before{content:"\F161"}.fa-sort-amount-up-alt:before{content:"\F885"}.fa-sort-down:before{content:"\F0DD"}.fa-sort-numeric-down:before{content:"\F162"}.fa-sort-numeric-down-alt:before{content:"\F886"}.fa-sort-numeric-up:before{content:"\F163"}.fa-sort-numeric-up-alt:before{content:"\F887"}.fa-sort-up:before{content:"\F0DE"}.fa-soundcloud:before{content:"\F1BE"}.fa-sourcetree:before{content:"\F7D3"}.fa-spa:before{content:"\F5BB"}.fa-space-shuttle:before{content:"\F197"}.fa-speakap:before{content:"\F3F3"}.fa-speaker-deck:before{content:"\F83C"}.fa-spell-check:before{content:"\F891"}.fa-spider:before{content:"\F717"}.fa-spinner:before{content:"\F110"}.fa-splotch:before{content:"\F5BC"}.fa-spotify:before{content:"\F1BC"}.fa-spray-can:before{content:"\F5BD"}.fa-square:before{content:"\F0C8"}.fa-square-full:before{content:"\F45C"}.fa-square-root-alt:before{content:"\F698"}.fa-squarespace:before{content:"\F5BE"}.fa-stack-exchange:before{content:"\F18D"}.fa-stack-overflow:before{content:"\F16C"}.fa-stackpath:before{content:"\F842"}.fa-stamp:before{content:"\F5BF"}.fa-star:before{content:"\F005"}.fa-star-and-crescent:before{content:"\F699"}.fa-star-half:before{content:"\F089"}.fa-star-half-alt:before{content:"\F5C0"}.fa-star-of-david:before{content:"\F69A"}.fa-star-of-life:before{content:"\F621"}.fa-staylinked:before{content:"\F3F5"}.fa-steam:before{content:"\F1B6"}.fa-steam-square:before{content:"\F1B7"}.fa-steam-symbol:before{content:"\F3F6"}.fa-step-backward:before{content:"\F048"}.fa-step-forward:before{content:"\F051"}.fa-stethoscope:before{content:"\F0F1"}.fa-sticker-mule:before{content:"\F3F7"}.fa-sticky-note:before{content:"\F249"}.fa-stop:before{content:"\F04D"}.fa-stop-circle:before{content:"\F28D"}.fa-stopwatch:before{content:"\F2F2"}.fa-stopwatch-20:before{content:"\E06F"}.fa-store:before{content:"\F54E"}.fa-store-alt:before{content:"\F54F"}.fa-store-alt-slash:before{content:"\E070"}.fa-store-slash:before{content:"\E071"}.fa-strava:before{content:"\F428"}.fa-stream:before{content:"\F550"}.fa-street-view:before{content:"\F21D"}.fa-strikethrough:before{content:"\F0CC"}.fa-stripe:before{content:"\F429"}.fa-stripe-s:before{content:"\F42A"}.fa-stroopwafel:before{content:"\F551"}.fa-studiovinari:before{content:"\F3F8"}.fa-stumbleupon:before{content:"\F1A4"}.fa-stumbleupon-circle:before{content:"\F1A3"}.fa-subscript:before{content:"\F12C"}.fa-subway:before{content:"\F239"}.fa-suitcase:before{content:"\F0F2"}.fa-suitcase-rolling:before{content:"\F5C1"}.fa-sun:before{content:"\F185"}.fa-superpowers:before{content:"\F2DD"}.fa-superscript:before{content:"\F12B"}.fa-supple:before{content:"\F3F9"}.fa-surprise:before{content:"\F5C2"}.fa-suse:before{content:"\F7D6"}.fa-swatchbook:before{content:"\F5C3"}.fa-swift:before{content:"\F8E1"}.fa-swimmer:before{content:"\F5C4"}.fa-swimming-pool:before{content:"\F5C5"}.fa-symfony:before{content:"\F83D"}.fa-synagogue:before{content:"\F69B"}.fa-sync:before{content:"\F021"}.fa-sync-alt:before{content:"\F2F1"}.fa-syringe:before{content:"\F48E"}.fa-table:before{content:"\F0CE"}.fa-table-tennis:before{content:"\F45D"}.fa-tablet:before{content:"\F10A"}.fa-tablet-alt:before{content:"\F3FA"}.fa-tablets:before{content:"\F490"}.fa-tachometer-alt:before{content:"\F3FD"}.fa-tag:before{content:"\F02B"}.fa-tags:before{content:"\F02C"}.fa-tape:before{content:"\F4DB"}.fa-tasks:before{content:"\F0AE"}.fa-taxi:before{content:"\F1BA"}.fa-teamspeak:before{content:"\F4F9"}.fa-teeth:before{content:"\F62E"}.fa-teeth-open:before{content:"\F62F"}.fa-telegram:before{content:"\F2C6"}.fa-telegram-plane:before{content:"\F3FE"}.fa-temperature-high:before{content:"\F769"}.fa-temperature-low:before{content:"\F76B"}.fa-tencent-weibo:before{content:"\F1D5"}.fa-tenge:before{content:"\F7D7"}.fa-terminal:before{content:"\F120"}.fa-text-height:before{content:"\F034"}.fa-text-width:before{content:"\F035"}.fa-th:before{content:"\F00A"}.fa-th-large:before{content:"\F009"}.fa-th-list:before{content:"\F00B"}.fa-the-red-yeti:before{content:"\F69D"}.fa-theater-masks:before{content:"\F630"}.fa-themeco:before{content:"\F5C6"}.fa-themeisle:before{content:"\F2B2"}.fa-thermometer:before{content:"\F491"}.fa-thermometer-empty:before{content:"\F2CB"}.fa-thermometer-full:before{content:"\F2C7"}.fa-thermometer-half:before{content:"\F2C9"}.fa-thermometer-quarter:before{content:"\F2CA"}.fa-thermometer-three-quarters:before{content:"\F2C8"}.fa-think-peaks:before{content:"\F731"}.fa-thumbs-down:before{content:"\F165"}.fa-thumbs-up:before{content:"\F164"}.fa-thumbtack:before{content:"\F08D"}.fa-ticket-alt:before{content:"\F3FF"}.fa-tiktok:before{content:"\E07B"}.fa-times:before{content:"\F00D"}.fa-times-circle:before{content:"\F057"}.fa-tint:before{content:"\F043"}.fa-tint-slash:before{content:"\F5C7"}.fa-tired:before{content:"\F5C8"}.fa-toggle-off:before{content:"\F204"}.fa-toggle-on:before{content:"\F205"}.fa-toilet:before{content:"\F7D8"}.fa-toilet-paper:before{content:"\F71E"}.fa-toilet-paper-slash:before{content:"\E072"}.fa-toolbox:before{content:"\F552"}.fa-tools:before{content:"\F7D9"}.fa-tooth:before{content:"\F5C9"}.fa-torah:before{content:"\F6A0"}.fa-torii-gate:before{content:"\F6A1"}.fa-tractor:before{content:"\F722"}.fa-trade-federation:before{content:"\F513"}.fa-trademark:before{content:"\F25C"}.fa-traffic-light:before{content:"\F637"}.fa-trailer:before{content:"\E041"}.fa-train:before{content:"\F238"}.fa-tram:before{content:"\F7DA"}.fa-transgender:before{content:"\F224"}.fa-transgender-alt:before{content:"\F225"}.fa-trash:before{content:"\F1F8"}.fa-trash-alt:before{content:"\F2ED"}.fa-trash-restore:before{content:"\F829"}.fa-trash-restore-alt:before{content:"\F82A"}.fa-tree:before{content:"\F1BB"}.fa-trello:before{content:"\F181"}.fa-tripadvisor:before{content:"\F262"}.fa-trophy:before{content:"\F091"}.fa-truck:before{content:"\F0D1"}.fa-truck-loading:before{content:"\F4DE"}.fa-truck-monster:before{content:"\F63B"}.fa-truck-moving:before{content:"\F4DF"}.fa-truck-pickup:before{content:"\F63C"}.fa-tshirt:before{content:"\F553"}.fa-tty:before{content:"\F1E4"}.fa-tumblr:before{content:"\F173"}.fa-tumblr-square:before{content:"\F174"}.fa-tv:before{content:"\F26C"}.fa-twitch:before{content:"\F1E8"}.fa-twitter:before{content:"\F099"}.fa-twitter-square:before{content:"\F081"}.fa-typo3:before{content:"\F42B"}.fa-uber:before{content:"\F402"}.fa-ubuntu:before{content:"\F7DF"}.fa-uikit:before{content:"\F403"}.fa-umbraco:before{content:"\F8E8"}.fa-umbrella:before{content:"\F0E9"}.fa-umbrella-beach:before{content:"\F5CA"}.fa-uncharted:before{content:"\E084"}.fa-underline:before{content:"\F0CD"}.fa-undo:before{content:"\F0E2"}.fa-undo-alt:before{content:"\F2EA"}.fa-uniregistry:before{content:"\F404"}.fa-unity:before{content:"\E049"}.fa-universal-access:before{content:"\F29A"}.fa-university:before{content:"\F19C"}.fa-unlink:before{content:"\F127"}.fa-unlock:before{content:"\F09C"}.fa-unlock-alt:before{content:"\F13E"}.fa-unsplash:before{content:"\E07C"}.fa-untappd:before{content:"\F405"}.fa-upload:before{content:"\F093"}.fa-ups:before{content:"\F7E0"}.fa-usb:before{content:"\F287"}.fa-user:before{content:"\F007"}.fa-user-alt:before{content:"\F406"}.fa-user-alt-slash:before{content:"\F4FA"}.fa-user-astronaut:before{content:"\F4FB"}.fa-user-check:before{content:"\F4FC"}.fa-user-circle:before{content:"\F2BD"}.fa-user-clock:before{content:"\F4FD"}.fa-user-cog:before{content:"\F4FE"}.fa-user-edit:before{content:"\F4FF"}.fa-user-friends:before{content:"\F500"}.fa-user-graduate:before{content:"\F501"}.fa-user-injured:before{content:"\F728"}.fa-user-lock:before{content:"\F502"}.fa-user-md:before{content:"\F0F0"}.fa-user-minus:before{content:"\F503"}.fa-user-ninja:before{content:"\F504"}.fa-user-nurse:before{content:"\F82F"}.fa-user-plus:before{content:"\F234"}.fa-user-secret:before{content:"\F21B"}.fa-user-shield:before{content:"\F505"}.fa-user-slash:before{content:"\F506"}.fa-user-tag:before{content:"\F507"}.fa-user-tie:before{content:"\F508"}.fa-user-times:before{content:"\F235"}.fa-users:before{content:"\F0C0"}.fa-users-cog:before{content:"\F509"}.fa-users-slash:before{content:"\E073"}.fa-usps:before{content:"\F7E1"}.fa-ussunnah:before{content:"\F407"}.fa-utensil-spoon:before{content:"\F2E5"}.fa-utensils:before{content:"\F2E7"}.fa-vaadin:before{content:"\F408"}.fa-vector-square:before{content:"\F5CB"}.fa-venus:before{content:"\F221"}.fa-venus-double:before{content:"\F226"}.fa-venus-mars:before{content:"\F228"}.fa-vest:before{content:"\E085"}.fa-vest-patches:before{content:"\E086"}.fa-viacoin:before{content:"\F237"}.fa-viadeo:before{content:"\F2A9"}.fa-viadeo-square:before{content:"\F2AA"}.fa-vial:before{content:"\F492"}.fa-vials:before{content:"\F493"}.fa-viber:before{content:"\F409"}.fa-video:before{content:"\F03D"}.fa-video-slash:before{content:"\F4E2"}.fa-vihara:before{content:"\F6A7"}.fa-vimeo:before{content:"\F40A"}.fa-vimeo-square:before{content:"\F194"}.fa-vimeo-v:before{content:"\F27D"}.fa-vine:before{content:"\F1CA"}.fa-virus:before{content:"\E074"}.fa-virus-slash:before{content:"\E075"}.fa-viruses:before{content:"\E076"}.fa-vk:before{content:"\F189"}.fa-vnv:before{content:"\F40B"}.fa-voicemail:before{content:"\F897"}.fa-volleyball-ball:before{content:"\F45F"}.fa-volume-down:before{content:"\F027"}.fa-volume-mute:before{content:"\F6A9"}.fa-volume-off:before{content:"\F026"}.fa-volume-up:before{content:"\F028"}.fa-vote-yea:before{content:"\F772"}.fa-vr-cardboard:before{content:"\F729"}.fa-vuejs:before{content:"\F41F"}.fa-walking:before{content:"\F554"}.fa-wallet:before{content:"\F555"}.fa-warehouse:before{content:"\F494"}.fa-watchman-monitoring:before{content:"\E087"}.fa-water:before{content:"\F773"}.fa-wave-square:before{content:"\F83E"}.fa-waze:before{content:"\F83F"}.fa-weebly:before{content:"\F5CC"}.fa-weibo:before{content:"\F18A"}.fa-weight:before{content:"\F496"}.fa-weight-hanging:before{content:"\F5CD"}.fa-weixin:before{content:"\F1D7"}.fa-whatsapp:before{content:"\F232"}.fa-whatsapp-square:before{content:"\F40C"}.fa-wheelchair:before{content:"\F193"}.fa-whmcs:before{content:"\F40D"}.fa-wifi:before{content:"\F1EB"}.fa-wikipedia-w:before{content:"\F266"}.fa-wind:before{content:"\F72E"}.fa-window-close:before{content:"\F410"}.fa-window-maximize:before{content:"\F2D0"}.fa-window-minimize:before{content:"\F2D1"}.fa-window-restore:before{content:"\F2D2"}.fa-windows:before{content:"\F17A"}.fa-wine-bottle:before{content:"\F72F"}.fa-wine-glass:before{content:"\F4E3"}.fa-wine-glass-alt:before{content:"\F5CE"}.fa-wix:before{content:"\F5CF"}.fa-wizards-of-the-coast:before{content:"\F730"}.fa-wodu:before{content:"\E088"}.fa-wolf-pack-battalion:before{content:"\F514"}.fa-won-sign:before{content:"\F159"}.fa-wordpress:before{content:"\F19A"}.fa-wordpress-simple:before{content:"\F411"}.fa-wpbeginner:before{content:"\F297"}.fa-wpexplorer:before{content:"\F2DE"}.fa-wpforms:before{content:"\F298"}.fa-wpressr:before{content:"\F3E4"}.fa-wrench:before{content:"\F0AD"}.fa-x-ray:before{content:"\F497"}.fa-xbox:before{content:"\F412"}.fa-xing:before{content:"\F168"}.fa-xing-square:before{content:"\F169"}.fa-y-combinator:before{content:"\F23B"}.fa-yahoo:before{content:"\F19E"}.fa-yammer:before{content:"\F840"}.fa-yandex:before{content:"\F413"}.fa-yandex-international:before{content:"\F414"}.fa-yarn:before{content:"\F7E3"}.fa-yelp:before{content:"\F1E9"}.fa-yen-sign:before{content:"\F157"}.fa-yin-yang:before{content:"\F6AD"}.fa-yoast:before{content:"\F2B1"}.fa-youtube:before{content:"\F167"}.fa-youtube-square:before{content:"\F431"}.fa-zhihu:before{content:"\F63F"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;font-display:block;src:url(./static/fa-regular-400.aa66d0e0.eot);src:url(./static/fa-regular-400.aa66d0e0.eot?#iefix) format("embedded-opentype"),url(./static/fa-regular-400.ac21cac3.woff2) format("woff2"),url(./static/fa-regular-400.5623624d.woff) format("woff"),url(./static/fa-regular-400.285a9d2a.ttf) format("truetype"),url(./static/fa-regular-400.6b5ed912.svg#fontawesome) format("svg")}.far{font-family:Font Awesome\ 5 Free;font-weight:400}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;font-display:block;src:url(./static/fa-solid-900.42e1fbd2.eot);src:url(./static/fa-solid-900.42e1fbd2.eot?#iefix) format("embedded-opentype"),url(./static/fa-solid-900.d6d8d5da.woff2) format("woff2"),url(./static/fa-solid-900.3ded831d.woff) format("woff"),url(./static/fa-solid-900.896e20e2.ttf) format("truetype"),url(./static/fa-solid-900.649208f1.svg#fontawesome) format("svg")}.fa,.fas{font-family:Font Awesome\ 5 Free;font-weight:900}@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;font-display:block;src:url(./static/fa-brands-400.14c590d1.eot);src:url(./static/fa-brands-400.14c590d1.eot?#iefix) format("embedded-opentype"),url(./static/fa-brands-400.3e1b2a65.woff2) format("woff2"),url(./static/fa-brands-400.df02c782.woff) format("woff"),url(./static/fa-brands-400.5e8aa9ea.ttf) format("truetype"),url(./static/fa-brands-400.91fd86e5.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands;font-weight:400}@font-face{font-family:simple-line-icons;src:url(./static/Simple-Line-Icons.f33df365.eot);src:url(./static/Simple-Line-Icons.f33df365.eot#iefix) format("embedded-opentype"),url(./static/Simple-Line-Icons.0cb0b9c5.woff2) format("woff2"),url(./static/Simple-Line-Icons.d2285965.ttf) format("truetype"),url(./static/Simple-Line-Icons.78f07e2c.woff) format("woff"),url(./static/Simple-Line-Icons.ed67e5a3.svg#simple-line-icons) format("svg");font-weight:400;font-style:normal}.si{font-family:simple-line-icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.si-user:before{content:"\E005"}.si-people:before{content:"\E001"}.si-user-female:before{content:"\E000"}.si-user-follow:before{content:"\E002"}.si-user-following:before{content:"\E003"}.si-user-unfollow:before{content:"\E004"}.si-login:before{content:"\E066"}.si-logout:before{content:"\E065"}.si-emotsmile:before{content:"\E021"}.si-phone:before{content:"\E600"}.si-call-end:before{content:"\E048"}.si-call-in:before{content:"\E047"}.si-call-out:before{content:"\E046"}.si-map:before{content:"\E033"}.si-location-pin:before{content:"\E096"}.si-direction:before{content:"\E042"}.si-directions:before{content:"\E041"}.si-compass:before{content:"\E045"}.si-layers:before{content:"\E034"}.si-menu:before{content:"\E601"}.si-list:before{content:"\E067"}.si-options-vertical:before{content:"\E602"}.si-options:before{content:"\E603"}.si-arrow-down:before{content:"\E604"}.si-arrow-left:before{content:"\E605"}.si-arrow-right:before{content:"\E606"}.si-arrow-up:before{content:"\E607"}.si-arrow-up-circle:before{content:"\E078"}.si-arrow-left-circle:before{content:"\E07A"}.si-arrow-right-circle:before{content:"\E079"}.si-arrow-down-circle:before{content:"\E07B"}.si-check:before{content:"\E080"}.si-clock:before{content:"\E081"}.si-plus:before{content:"\E095"}.si-minus:before{content:"\E615"}.si-close:before{content:"\E082"}.si-event:before{content:"\E619"}.si-exclamation:before{content:"\E617"}.si-organization:before{content:"\E616"}.si-trophy:before{content:"\E006"}.si-screen-smartphone:before{content:"\E010"}.si-screen-desktop:before{content:"\E011"}.si-plane:before{content:"\E012"}.si-notebook:before{content:"\E013"}.si-mustache:before{content:"\E014"}.si-mouse:before{content:"\E015"}.si-magnet:before{content:"\E016"}.si-energy:before{content:"\E020"}.si-disc:before{content:"\E022"}.si-cursor:before{content:"\E06E"}.si-cursor-move:before{content:"\E023"}.si-crop:before{content:"\E024"}.si-chemistry:before{content:"\E026"}.si-speedometer:before{content:"\E007"}.si-shield:before{content:"\E00E"}.si-screen-tablet:before{content:"\E00F"}.si-magic-wand:before{content:"\E017"}.si-hourglass:before{content:"\E018"}.si-graduation:before{content:"\E019"}.si-ghost:before{content:"\E01A"}.si-game-controller:before{content:"\E01B"}.si-fire:before{content:"\E01C"}.si-eyeglass:before{content:"\E01D"}.si-envelope-open:before{content:"\E01E"}.si-envelope-letter:before{content:"\E01F"}.si-bell:before{content:"\E027"}.si-badge:before{content:"\E028"}.si-anchor:before{content:"\E029"}.si-wallet:before{content:"\E02A"}.si-vector:before{content:"\E02B"}.si-speech:before{content:"\E02C"}.si-puzzle:before{content:"\E02D"}.si-printer:before{content:"\E02E"}.si-present:before{content:"\E02F"}.si-playlist:before{content:"\E030"}.si-pin:before{content:"\E031"}.si-picture:before{content:"\E032"}.si-handbag:before{content:"\E035"}.si-globe-alt:before{content:"\E036"}.si-globe:before{content:"\E037"}.si-folder-alt:before{content:"\E039"}.si-folder:before{content:"\E089"}.si-film:before{content:"\E03A"}.si-feed:before{content:"\E03B"}.si-drop:before{content:"\E03E"}.si-drawer:before{content:"\E03F"}.si-docs:before{content:"\E040"}.si-doc:before{content:"\E085"}.si-diamond:before{content:"\E043"}.si-cup:before{content:"\E044"}.si-calculator:before{content:"\E049"}.si-bubbles:before{content:"\E04A"}.si-briefcase:before{content:"\E04B"}.si-book-open:before{content:"\E04C"}.si-basket-loaded:before{content:"\E04D"}.si-basket:before{content:"\E04E"}.si-bag:before{content:"\E04F"}.si-action-undo:before{content:"\E050"}.si-action-redo:before{content:"\E051"}.si-wrench:before{content:"\E052"}.si-umbrella:before{content:"\E053"}.si-trash:before{content:"\E054"}.si-tag:before{content:"\E055"}.si-support:before{content:"\E056"}.si-frame:before{content:"\E038"}.si-size-fullscreen:before{content:"\E057"}.si-size-actual:before{content:"\E058"}.si-shuffle:before{content:"\E059"}.si-share-alt:before{content:"\E05A"}.si-share:before{content:"\E05B"}.si-rocket:before{content:"\E05C"}.si-question:before{content:"\E05D"}.si-pie-chart:before{content:"\E05E"}.si-pencil:before{content:"\E05F"}.si-note:before{content:"\E060"}.si-loop:before{content:"\E064"}.si-home:before{content:"\E069"}.si-grid:before{content:"\E06A"}.si-graph:before{content:"\E06B"}.si-microphone:before{content:"\E063"}.si-music-tone-alt:before{content:"\E061"}.si-music-tone:before{content:"\E062"}.si-earphones-alt:before{content:"\E03C"}.si-earphones:before{content:"\E03D"}.si-equalizer:before{content:"\E06C"}.si-like:before{content:"\E068"}.si-dislike:before{content:"\E06D"}.si-control-start:before{content:"\E06F"}.si-control-rewind:before{content:"\E070"}.si-control-play:before{content:"\E071"}.si-control-pause:before{content:"\E072"}.si-control-forward:before{content:"\E073"}.si-control-end:before{content:"\E074"}.si-volume-1:before{content:"\E09F"}.si-volume-2:before{content:"\E0A0"}.si-volume-off:before{content:"\E0A1"}.si-calendar:before{content:"\E075"}.si-bulb:before{content:"\E076"}.si-chart:before{content:"\E077"}.si-ban:before{content:"\E07C"}.si-bubble:before{content:"\E07D"}.si-camrecorder:before{content:"\E07E"}.si-camera:before{content:"\E07F"}.si-cloud-download:before{content:"\E083"}.si-cloud-upload:before{content:"\E084"}.si-envelope:before{content:"\E086"}.si-eye:before{content:"\E087"}.si-flag:before{content:"\E088"}.si-heart:before{content:"\E08A"}.si-info:before{content:"\E08B"}.si-key:before{content:"\E08C"}.si-link:before{content:"\E08D"}.si-lock:before{content:"\E08E"}.si-lock-open:before{content:"\E08F"}.si-magnifier:before{content:"\E090"}.si-magnifier-add:before{content:"\E091"}.si-magnifier-remove:before{content:"\E092"}.si-paper-clip:before{content:"\E093"}.si-paper-plane:before{content:"\E094"}.si-power:before{content:"\E097"}.si-refresh:before{content:"\E098"}.si-reload:before{content:"\E099"}.si-settings:before{content:"\E09A"}.si-star:before{content:"\E09B"}.si-symbol-female:before{content:"\E09C"}.si-symbol-male:before{content:"\E09D"}.si-target:before{content:"\E09E"}.si-credit-card:before{content:"\E025"}.si-paypal:before{content:"\E608"}.si-social-tumblr:before{content:"\E00A"}.si-social-twitter:before{content:"\E009"}.si-social-facebook:before{content:"\E00B"}.si-social-instagram:before{content:"\E609"}.si-social-linkedin:before{content:"\E60A"}.si-social-pinterest:before{content:"\E60B"}.si-social-github:before{content:"\E60C"}.si-social-google:before{content:"\E60D"}.si-social-reddit:before{content:"\E60E"}.si-social-skype:before{content:"\E60F"}.si-social-dribbble:before{content:"\E00D"}.si-social-behance:before{content:"\E610"}.si-social-foursqare:before{content:"\E611"}.si-social-soundcloud:before{content:"\E612"}.si-social-spotify:before{content:"\E613"}.si-social-stumbleupon:before{content:"\E614"}.si-social-youtube:before{content:"\E008"}.si-social-dropbox:before{content:"\E00C"}.si-social-vkontakte:before{content:"\E618"}.si-social-steam:before{content:"\E620"}.si-users:before{content:"\E001"}.si-bar-chart:before{content:"\E077"}.si-camcorder:before{content:"\E07E"}.si-emoticon-smile:before{content:"\E021"}.si-eyeglasses:before{content:"\E01D"}.si-moustache:before{content:"\E014"}.si-pointer:before{content:"\E096"}[data-simplebar]{position:relative;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:0}.simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;top:0;left:0;bottom:0;right:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;max-width:100%;max-height:100%;scrollbar-width:none;-ms-overflow-style:none}.simplebar-content-wrapper::-webkit-scrollbar,.simplebar-hide-scrollbar::-webkit-scrollbar{width:0;height:0}.simplebar-content:after,.simplebar-content:before{content:" ";display:table}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;left:0;right:0;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:"";background:#000;border-radius:7px;left:2px;right:2px;opacity:0;transition:opacity .2s linear}.simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition:opacity 0s linear}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-track.simplebar-vertical .simplebar-scrollbar:before{top:2px;bottom:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before{height:100%;left:2px;right:2px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:2px;height:7px;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.hs-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll}.simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}.simplebar-scrollbar{left:auto;right:2px;width:5px}.simplebar-scrollbar:before{left:0;right:0;background:rgba(1,17,35,.75)}.sidebar-dark #sidebar .simplebar-scrollbar:before{background:#fff}.datepicker{z-index:1051!important}.datepicker table tbody td,.datepicker table thead th{padding:.375rem}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#faeab9;border-color:#faeab9}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:focus,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active:active,.datepicker table tr td.active:focus,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:focus,.datepicker table tr td.active:hover:hover,.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:active,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:focus,.datepicker table tr td span.active:hover:hover,.open .dropdown-toggle.datepicker table tr td.active,.open .dropdown-toggle.datepicker table tr td.active.disabled,.open .dropdown-toggle.datepicker table tr td.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td.active:hover,.open .dropdown-toggle.datepicker table tr td span.active,.open .dropdown-toggle.datepicker table tr td span.active.disabled,.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td span.active:hover{background-color:#0665d0;border-color:#0665d0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused),.ck.ck-toolbar,.cke_chrome{border-color:#e4e9f3!important}.ck.ck-toolbar,.cke_top{border-bottom-color:#e4e9f3!important;background:#f8f9fc!important}.ck.ck-toolbar .ck.ck-toolbar__separator{background:#e4e9f3!important}.cke_bottom{border-top-color:#e4e9f3!important;background:#f8f9fc!important}.dropzone{min-height:200px;background-color:#f8f9fc;border:.125rem dashed #d4dcec;border-radius:.3rem}.dropzone .dz-message{margin:4rem 0;font-size:1rem;font-style:italic;font-weight:600;color:#495057}.dropzone:hover{background-color:#fff;border-color:#0665d0}.dropzone:hover .dz-message{color:#0665d0}table.dataTable{border-collapse:collapse!important}table.dataTable td,table.dataTable th{box-sizing:border-box}table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc{padding-right:1.25rem}table.dataTable thead .sorting:before,table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc:before,table.dataTable thead .sorting_desc_disabled:before{display:none}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_desc_disabled:after{right:.375rem;bottom:.75rem;font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Pro;font-weight:600;opacity:.4}table.dataTable thead .sorting:after{content:"\F0DC"}table.dataTable thead .sorting_asc:after{content:"\F106"}table.dataTable thead .sorting_desc:after{content:"\F107"}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin-top:.75rem;justify-content:center}@media (min-width:768px){div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin-top:.125rem;justify-content:flex-end}}.pie-chart{position:relative;display:block}.pie-chart>canvas{display:block;margin:0 auto}.pie-chart>span{position:absolute;top:50%;right:0;left:0;text-align:center;transform:translateY(-50%)}.fc-theme-bootstrap .fc-h-event{background-color:#0665d0;border:#0665d0}.fc-theme-bootstrap .fc-col-header-cell{padding-top:.375rem;padding-bottom:.375rem;font-size:.875rem;font-weight:600;text-transform:uppercase;background-color:#f8f9fc}@media (max-width:767.98px){.fc-theme-bootstrap .fc-toolbar.fc-header-toolbar{display:block}.fc-theme-bootstrap .fc-toolbar.fc-header-toolbar .fc-toolbar-chunk>.btn,.fc-theme-bootstrap .fc-toolbar.fc-header-toolbar .fc-toolbar-chunk>div{margin-top:.5rem;margin-bottom:.5rem}.fc-theme-bootstrap .fc-toolbar.fc-header-toolbar .fc-toolbar-chunk:not(:first-child){margin-top:1rem}}.irs.irs--round .irs-bar,.irs.irs--round .irs-line{height:5px}.irs.irs--round .irs-grid-pol,.irs.irs--round .irs-line,.irs.irs--round .irs-max,.irs.irs--round .irs-min{background:#f0f3f8}.irs.irs--round .irs-handle{border-color:#0665d0}.irs.irs--round .irs-from:before,.irs.irs--round .irs-single:before,.irs.irs--round .irs-to:before{border-top-color:#0665d0}.irs.irs--round .irs-bar,.irs.irs--round .irs-from,.irs.irs--round .irs-single,.irs.irs--round .irs-to{background:#0665d0}.jqstooltip{box-sizing:content-box;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;border:none!important;background-color:rgba(0,0,0,.75)!important;border-radius:.2rem}.jvectormap-tip{padding:.375rem .5rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;background:#343a40;border:none;border-radius:0}.jvectormap-goback,.jvectormap-zoomin,.jvectormap-zoomout{left:1rem;padding:.25rem;line-height:1rem;background:#3c3c3c}.jvectormap-zoomin,.jvectormap-zoomout{width:1rem;height:1rem}.jvectormap-zoomin:hover,.jvectormap-zoomout:hover{opacity:.6}.jvectormap-zoomout{top:2.25rem}.pw-strength-progress>.progress{height:.375rem}.select2-container .select2-selection--single{height:calc(1.5em + .75rem + 2px)}.select2-container .select2-search--inline .select2-search__field{margin:.25rem .25rem .25rem 0;height:1.375rem;line-height:1.375rem}.select2-container .select2-dropdown{border-color:#d4dcec;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.select2-container .select2-dropdown .select2-search__field{padding:.25rem .75rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;border-radius:.25rem;box-shadow:none}.select2-container .select2-dropdown .select2-search__field:focus{border-color:#5ba6fa;box-shadow:0 0 0 .2rem rgba(6,101,208,.25);outline:0}.select2-container--default .select2-selection--single{border-color:#d4dcec;border-radius:.25rem}.select2-container--default .select2-selection--single .select2-selection__rendered{display:flex;align-items:center;padding-left:.75rem;height:calc(1.5em + .75rem + 2px);line-height:1.5}.select2-container--default .select2-selection--single .select2-selection__arrow{height:calc(1.5em + .75rem + 2px)}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#6c757d}.select2-container--default .select2-selection--multiple{display:flex;align-items:center;border-color:#d4dcec;border-radius:.25rem;min-height:calc(1.5em + .75rem + 2px)}.select2-container--default .select2-selection--multiple .select2-selection__rendered{padding-right:.75rem;padding-left:.75rem}.select2-container--default.select2-container--focus .select2-selection--multiple,.select2-container--default.select2-container--focus .select2-selection--single,.select2-container--default.select2-container--open .select2-selection--multiple,.select2-container--default.select2-container--open .select2-selection--single{border-color:#5ba6fa;box-shadow:0 0 0 .2rem rgba(6,101,208,.25);outline:0}.is-valid+.select2-container--default.select2-container--focus .select2-selection--multiple,.is-valid+.select2-container--default.select2-container--focus .select2-selection--single,.is-valid+.select2-container--default .select2-selection--multiple,.is-valid+.select2-container--default .select2-selection--single{border-color:#82b54b}.is-valid+.select2-container--default.select2-container--focus .select2-selection--multiple,.is-valid+.select2-container--default.select2-container--focus .select2-selection--single,.is-valid+.select2-container--default.select2-container--open .select2-selection--multiple,.is-valid+.select2-container--default.select2-container--open .select2-selection--single{box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.is-invalid+.select2-container--default.select2-container--focus .select2-selection--multiple,.is-invalid+.select2-container--default.select2-container--focus .select2-selection--single,.is-invalid+.select2-container--default .select2-selection--multiple,.is-invalid+.select2-container--default .select2-selection--single{border-color:#e04f1a}.is-invalid+.select2-container--default.select2-container--focus .select2-selection--multiple,.is-invalid+.select2-container--default.select2-container--focus .select2-selection--single,.is-invalid+.select2-container--default.select2-container--open .select2-selection--multiple,.is-invalid+.select2-container--default.select2-container--open .select2-selection--single{box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.select2-container--default .select2-selection--multiple .select2-selection__choice{margin:.25rem .25rem .25rem 0;height:1.375rem;line-height:1.375rem;color:#fff;font-size:.875rem;font-weight:600;background-color:#0665d0;border:none;border-radius:.25rem}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{margin-right:5px;color:hsla(0,0%,100%,.5)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:hsla(0,0%,100%,.75)}.select2-container--default .select2-search--dropdown .select2-search__field{border-color:#d4dcec}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#0665d0}.select2-container--default .select2-search--inline .select2-search__field{padding-right:0;padding-left:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;box-shadow:none}.CodeMirror-fullscreen,.editor-preview-side,.editor-toolbar.fullscreen{z-index:1052}.editor-preview{z-index:1051}.editor-toolbar{border-color:#e4e9f3;background-color:#f8f9fc}.CodeMirror{border-color:#e4e9f3}.note-editor.note-frame{border-color:#e4e9f3}.note-editor.note-frame .note-toolbar-wrapper{background-color:#fff}.note-editor.note-frame .note-toolbar{background-color:#f8f9fc;border-bottom-color:#e4e9f3}.note-editor.note-frame .note-statusbar{border-top-color:#e4e9f3;background-color:#f8f9fc}.note-editor.note-frame .card-header.note-toolbar .note-color .dropdown-menu,.note-editor.note-frame .note-popover .popover-content .note-color .dropdown-menu{min-width:350px}.slick-slider .slick-slide{outline:0}.slick-slider.slick-dotted{margin-bottom:3rem}.slick-slider.slick-dotted .slick-dots{bottom:-2rem}.slick-slider.slick-dotted.slick-dotted-inner{margin-bottom:0}.slick-slider.slick-dotted.slick-dotted-inner .slick-dots{bottom:.625rem}.slick-slider.slick-dotted.slick-dotted-white .slick-dots li button:before{color:#fff}.slick-slider .slick-next,.slick-slider .slick-prev{width:2.5rem;height:3.75rem;text-align:center;background-color:rgba(0,0,0,.03);z-index:2}.slick-slider .slick-next:hover,.slick-slider .slick-prev:hover{background-color:rgba(0,0,0,.15)}.slick-slider .slick-next:before,.slick-slider .slick-prev:before{font-family:Font Awesome\ 5 Free,Font Awesome\ 5 Pro;font-weight:600;font-size:28px;line-height:28px;color:#054d9e}.slick-slider .slick-prev{left:0}.slick-slider .slick-prev:before{content:"\F104"}.slick-slider .slick-next{right:0}.slick-slider .slick-next:before{content:"\F105"}.slick-slider.slick-nav-white .slick-next,.slick-slider.slick-nav-white .slick-prev{background-color:hsla(0,0%,100%,.5)}.slick-slider.slick-nav-white .slick-next:hover,.slick-slider.slick-nav-white .slick-prev:hover{background-color:#fff}.slick-slider.slick-nav-white .slick-next:before,.slick-slider.slick-nav-white .slick-prev:before{color:#000}.slick-slider.slick-nav-black .slick-next,.slick-slider.slick-nav-black .slick-prev{background-color:rgba(0,0,0,.25)}.slick-slider.slick-nav-black .slick-next:hover,.slick-slider.slick-nav-black .slick-prev:hover{background-color:#000}.slick-slider.slick-nav-black .slick-next:before,.slick-slider.slick-nav-black .slick-prev:before{color:#fff}.slick-slider.slick-nav-hover .slick-next,.slick-slider.slick-nav-hover .slick-prev{opacity:0;transition:opacity .25s ease-out}.slick-slider.slick-nav-hover:hover .slick-next,.slick-slider.slick-nav-hover:hover .slick-prev{opacity:1}.dd,.dd-empty,.dd-item,.dd-placeholder{font-size:.875rem}.dd-handle{height:2.25rem;padding:.5rem .75rem;color:#495057;background:#f8f9fc;border-color:#e4e9f3}.dd-handle:hover{color:#212529}.dd-item>button{height:1.625rem}.dd-empty,.dd-placeholder{border-color:#022954;background:#74b3fb;opacity:.25}.flatpickr-weekdays{height:2rem;align-items:flex-end}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{border-color:#0665d0;background:#0665d0}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#0665d0}#page-container.rtl-support{direction:rtl;text-align:right}#page-container.rtl-support .breadcrumb.breadcrumb-alt .breadcrumb-item+.breadcrumb-item:before{content:"\F104"}#page-container.rtl-support .breadcrumb-item+.breadcrumb-item{padding-right:.5rem;padding-left:0}#page-container.rtl-support .breadcrumb-item+.breadcrumb-item:before{padding-right:0;padding-left:.5rem}@media (min-width:992px){#page-container.rtl-support.sidebar-mini.sidebar-o.sidebar-r #sidebar .content-header,#page-container.rtl-support.sidebar-mini.sidebar-o.sidebar-r #sidebar .content-side{transform:translateX(-186px) translateY(0) translateZ(0)}#page-container.rtl-support.sidebar-mini.sidebar-o.sidebar-r #sidebar:hover .content-header,#page-container.rtl-support.sidebar-mini.sidebar-o.sidebar-r #sidebar:hover .content-side{transform:translateX(0)}#page-container.rtl-support.sidebar-mini.sidebar-o.sidebar-r #sidebar:not(:hover) .nav-main{transform:translateX(1.125rem)}#page-container.rtl-support.sidebar-mini.sidebar-o.sidebar-r #sidebar:not(:hover) .nav-main .nav-main-link-icon{transform:translateX(-1rem)}}#page-container.rtl-support .nav-main{padding-left:auto;padding-right:0}#page-container.rtl-support .nav-main-link .nav-main-link-icon{margin-right:0;margin-left:.625rem}#page-container.rtl-support .nav-main-link .nav-main-link-badge{margin-right:.625rem;margin-left:auto;padding-right:.375rem;padding-left:.375rem;font-size:.75rem}#page-container.rtl-support .nav-main-link.nav-main-link-submenu{padding-right:.625rem;padding-left:2rem}#page-container.rtl-support .nav-main-link.nav-main-link-submenu:after,#page-container.rtl-support .nav-main-link.nav-main-link-submenu:before{right:auto;left:.625rem}#page-container.rtl-support .nav-main-submenu{padding-right:2.25rem;padding-left:0}#page-container.rtl-support .nav-main-submenu .nav-main-link{padding-right:0;padding-left:.625rem}#page-container.rtl-support .nav-main-submenu .nav-main-link.nav-main-link-submenu{padding-left:2rem}#page-container.rtl-support .nav-main-submenu .nav-main-submenu{padding-right:.75rem;padding-left:0}@media (min-width:992px){#page-container.rtl-support .nav-main-horizontal .nav-main-submenu{left:auto;right:0;padding-left:auto;padding-right:0}#page-container.rtl-support .nav-main-horizontal .nav-main-submenu.nav-main-submenu-left{right:auto;left:0}#page-container.rtl-support .nav-main-horizontal .nav-main-submenu .nav-main-link{padding-left:.625rem;padding-right:1rem}#page-container.rtl-support .nav-main-horizontal .nav-main-submenu .nav-main-link.nav-main-link-submenu:before{content:"\F104"}#page-container.rtl-support .nav-main-horizontal .nav-main-submenu .nav-main-link.nav-main-link-submenu:after{content:"\F105"}#page-container.rtl-support .nav-main-horizontal .nav-main-submenu .nav-main-submenu{left:-100%;right:auto}}a:not([href]):hover{color:initial}#page-container.page-header-fixed #page-header,#page-container.page-header-glass #page-header{z-index:998}#sidebar{z-index:999;width:80%}@media (min-width:992px){#sidebar{width:250px}}#cashier .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){border-color:#405a93;color:unset}#cashier .ant-radio-button-wrapper:hover{color:unset}#cashier .ant-radio-button-wrapper{margin-right:10px;padding:20px 40px;height:unset;box-shadow:0 2px 10px 0 rgba(0,0,0,.05);font-size:16px;border-radius:5px;border:1px solid #d9d9d9}@media (max-width:991.98px){.sidebar-toggle{display:block!important}}@media (max-width:768px){#cashier .ant-radio-button-wrapper{width:100%;margin-top:10px}#cashier .ant-radio-button-wrapper:first-child{margin-top:0}#cashier .ant-radio-group{width:100%}.ant-notification{top:0!important;width:100%;right:0;left:0;max-width:unset}.ant-notification-notice{border-radius:0}.v2board-searchbar{width:50%}}.anticon{vertical-align:.1em}.ant-table-pagination.ant-pagination{margin:16px!important}.content-side.content-side-full{height:calc(100% - 70px)}.content-side.content-side-full::-webkit-scrollbar{display:none}.v2board-background{background-size:cover;background-repeat:no-repeat;background-position:50% 50%;background-color:#e8eaf2;position:fixed;right:0;left:0;top:0;bottom:0}.v2board-payment-icon{font-size:27px;vertical-align:-.1em}.ant-tag:last-child{margin:0}.ant-tabs-bar{margin-bottom:0}.v2board-nav-mask{position:fixed;top:0;bottom:0;right:0;left:0;background:#000;z-index:999;opacity:.5;display:none}.v2board-plan-features{padding:0;list-style:none;font-size:16px;flex:1 0 auto}.v2board-plan-features>li{padding:6px 0;color:#7c8088;text-align:left}.v2board-plan-features>li>b{color:#2a2e36;font-weight:500}.v2board-plan-content{padding-top:20px;padding-left:20px}.v2board-plan-features>li:before{font-family:Font Awesome\ 5 Free;content:"\F058";padding-right:10px;color:#425b94;font-weight:900}.v2board-email-whitelist-enable{display:flex}.v2board-email-whitelist-enable input{flex:2 1;border-top-right-radius:0;border-bottom-right-radius:0}.v2board-email-whitelist-enable select{flex:1 1;border-top-left-radius:0;border-bottom-left-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-position:right 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='12'%3E%3Cpath d='M3.862 7.931L0 4.069h7.725z'/%3E%3C/svg%3E");padding-right:1.5em}.block.block-mode-loading:before{background:hsla(0,0%,100%,.7)}#plan .ant-drawer-content-wrapper,#server .ant-drawer-content-wrapper,#user .ant-drawer-content-wrapper{max-width:500px}#tutorial .ant-drawer-content-wrapper{max-width:500px}.ant-drawer-body{margin-bottom:50px}.v2board-drawer-action{position:absolute;bottom:0;width:100%;border-top:1px solid #e8e8e8;padding:10px 16px;text-align:right;left:0;background:#fff;border-radius:0 0 4px 4px;z-index:1000}.ant-dropdown-menu-item>.anticon:first-child{margin-right:0}#v2ray-protocol #ace-editor{max-width:450px;position:absolute;font-size:14px;top:55px;bottom:0;right:0;left:0;height:unset!important}#page-container.main-content-boxed>#main-container .content,#page-container.main-content-boxed>#page-footer .content,#page-container.main-content-boxed>#page-header .content,#page-container.main-content-boxed>#page-header .content-header{max-width:1920px}.child_node{background:#eee}.v2board_node_mobile{padding:15px}.v2board_node_mobile:first-child{border-top:1px solid #eee}.v2board_node_mobile .ant-list-item-extra{margin:unset}.v2board-config-children{border-left:18px solid #eee;padding-left:0!important;background:#efefef}.v2board-filter-drawer .ant-drawer-content-wrapper{width:30%!important}@media (max-width:767.98px){.v2board-config-children{border-left:12px solid #eee;padding-left:6px!important}.v2board-table-action{position:fixed;background:#fff;width:100%;z-index:100;border-bottom:1px solid #e8e8e8}.v2board-table{padding-top:60px}.alert{margin-bottom:0}}@media (max-width:991px){.v2board-filter-drawer .ant-drawer-content-wrapper{width:80%!important}}.content-header{height:3.25rem}.v2board-copyright{position:absolute;bottom:10px;right:0;left:15px;font-size:10px;opacity:.2}#page-container.page-header-fixed #main-container{padding-top:3.25rem}#v2board-table-dropdown{position:fixed;top:0}.v2board-auth-box{position:fixed;right:0;left:0;top:0;bottom:0;display:flex;align-items:center}#main-container{background-color:#f0f3f8!important}a:not([href]):hover{color:unset}.v2board-container-title{flex:1 1}.block-header{padding:.75rem 16px}.v2board-stats-bar{white-space:nowrap;overflow-x:auto;overflow-y:hidden} diff --git a/public/assets/admin/umi.js b/public/assets/admin/umi.js deleted file mode 100644 index cb54bd4..0000000 --- a/public/assets/admin/umi.js +++ /dev/null @@ -1 +0,0 @@ -(function(e){function t(t){for(var r,a,s=t[0],l=t[1],c=t[2],h=0,f=[];h 0!";if(e!=this.$splits){if(e>this.$splits){while(this.$splitse)t=this.$editors[this.$splits-1],this.$container.removeChild(t.container),this.$splits--;this.resize()}},this.getSplits=function(){return this.$splits},this.getEditor=function(e){return this.$editors[e]},this.getCurrentEditor=function(){return this.$cEditor},this.focus=function(){this.$cEditor.focus()},this.blur=function(){this.$cEditor.blur()},this.setTheme=function(e){this.$editors.forEach(function(t){t.setTheme(e)})},this.setKeyboardHandler=function(e){this.$editors.forEach(function(t){t.setKeyboardHandler(e)})},this.forEach=function(e,t){this.$editors.forEach(e,t)},this.$fontSize="",this.setFontSize=function(e){this.$fontSize=e,this.forEach(function(t){t.setFontSize(e)})},this.$cloneSession=function(e){var t=new s(e.getDocument(),e.getMode()),n=e.getUndoManager();return t.setUndoManager(n),t.setTabSize(e.getTabSize()),t.setUseSoftTabs(e.getUseSoftTabs()),t.setOverwrite(e.getOverwrite()),t.setBreakpoints(e.getBreakpoints()),t.setUseWrapMode(e.getUseWrapMode()),t.setUseWorker(e.getUseWorker()),t.setWrapLimitRange(e.$wrapLimitRange.min,e.$wrapLimitRange.max),t.$foldData=e.$cloneFoldData(),t},this.setSession=function(e,t){var n;n=null==t?this.$cEditor:this.$editors[t];var r=this.$editors.some(function(t){return t.session===e});return r&&(e=this.$cloneSession(e)),n.setSession(e),e},this.getOrientation=function(){return this.$orientation},this.setOrientation=function(e){this.$orientation!=e&&(this.$orientation=e,this.resize())},this.resize=function(){var e,t=this.$container.clientWidth,n=this.$container.clientHeight;if(this.$orientation==this.BESIDE)for(var r=t/this.$splits,i=0;i=3&&":"===e[t-3]?0:t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},d="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]",p="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function m(e){e.__index__=-1,e.__text_cache__=""}function g(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}function v(){return function(e,t){t.normalize(e)}}function y(e){var t=e.re=n("sRdV")(e.__opts__),r=e.__tlds__.slice();function i(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push(d),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(i(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(i(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(i(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(i(t.tpl_host_fuzzy_test),"i");var u=[];function h(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach(function(t){var n=e.__schemas__[t];if(null!==n){var r={validate:null,link:null};if(e.__compiled__[t]=r,a(n))return s(n.validate)?r.validate=g(n.validate):l(n.validate)?r.validate=n.validate:h(t,n),void(l(n.normalize)?r.normalize=n.normalize:n.normalize?h(t,n):r.normalize=v());o(n)?u.push(t):h(t,n)}}),u.forEach(function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)}),e.__compiled__[""]={validate:null,normalize:v()};var f=Object.keys(e.__compiled__).filter(function(t){return t.length>0&&e.__compiled__[t]}).map(c).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+f+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+f+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),m(e)}function b(e,t){var n=e.__index__,r=e.__last_index__,i=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=i,this.text=i,this.url=i}function w(e,t){var n=new b(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function x(e,t){if(!(this instanceof x))return new x(e,t);t||h(e)&&(t=e,e={}),this.__opts__=r({},u,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},f,e),this.__compiled__={},this.__tlds__=p,this.__tlds_replaced__=!1,this.re={},y(this)}x.prototype.add=function(e,t){return this.__schemas__[e]=t,y(this),this},x.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},x.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,n,r,i,o,a,s,l,c;if(this.re.schema_test.test(e)){s=this.re.schema_search,s.lastIndex=0;while(null!==(t=s.exec(e)))if(i=this.testSchemaAt(e,t[2],s.lastIndex),i){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+i;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l=0&&null!==(r=e.match(this.re.email_fuzzy))&&(o=r.index+r[1].length,a=r.index+r[0].length,(this.__index__<0||othis.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=a))),this.__index__>=0},x.prototype.pretest=function(e){return this.re.pretest.test(e)},x.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},x.prototype.match=function(e){var t=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(w(this,t)),t=this.__last_index__);var r=t?e.slice(t):e;while(this.test(r))n.push(w(this,t)),r=r.slice(this.__last_index__),t+=this.__last_index__;return n.length?n:null},x.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter(function(e,t,n){return e!==n[t-1]}).reverse(),y(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,y(this),this)},x.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},x.prototype.onCompile=function(){},e.exports=x},"+JPL":function(e,t,n){e.exports={default:n("+SFK"),__esModule:!0}},"+LrT":function(e,t,n){"use strict";var r={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o=Object.defineProperty,a=Object.getOwnPropertyNames,s=Object.getOwnPropertySymbols,l=Object.getOwnPropertyDescriptor,c=Object.getPrototypeOf,u=c&&c(Object);function h(e,t,n){if("string"!==typeof t){if(u){var f=c(t);f&&f!==u&&h(e,f,n)}var d=a(t);s&&(d=d.concat(s(t)));for(var p=0;px;x++)if((f||x in y)&&(m=y[x],g=b(m,x,v),e))if(n)_[x]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:_.push(m)}else if(u)return!1;return h?-1:c||u?u:_}}},"+qE3":function(e,t,n){"use strict";var r,i="object"===typeof Reflect?Reflect:null,o=i&&"function"===typeof i.apply?i.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};function a(e){console&&console.warn&&console.warn(e)}r=i&&"function"===typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function(e){return e!==e};function l(){l.init.call(this)}e.exports=l,e.exports.once=w,l.EventEmitter=l,l.prototype._events=void 0,l.prototype._eventsCount=0,l.prototype._maxListeners=void 0;var c=10;function u(e){if("function"!==typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function h(e){return void 0===e._maxListeners?l.defaultMaxListeners:e._maxListeners}function f(e,t,n,r){var i,o,s;if(u(n),o=e._events,void 0===o?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),s=o[t]),void 0===s)s=o[t]=n,++e._eventsCount;else if("function"===typeof s?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),i=h(e),i>0&&s.length>i&&!s.warned){s.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=s.length,a(l)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=d.bind(r);return i.listener=n,r.wrapFn=i,i}function m(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"===typeof i?n?[i.listener||i]:[i]:n?b(i):v(i,i.length)}function g(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"===typeof n)return 1;if(void 0!==n)return n.length}return 0}function v(e,t){for(var n=new Array(t),r=0;r0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=i[e];if(void 0===l)return!1;if("function"===typeof l)o(l,this,t);else{var c=l.length,u=v(l,c);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():y(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,a||t)}return this},l.prototype.off=l.prototype.removeListener,l.prototype.removeAllListeners=function(e){var t,n,r;if(n=this._events,void 0===n)return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r=0;r--)this.removeListener(e,t[r]);return this},l.prototype.listeners=function(e){return m(this,e,!0)},l.prototype.rawListeners=function(e){return m(this,e,!1)},l.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},l.prototype.listenerCount=g,l.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},"+wdc":function(e,t,n){"use strict";var r,i,o,a,s;if("undefined"===typeof window||"function"!==typeof MessageChannel){var l=null,c=null,u=function(){if(null!==l)try{var e=t.unstable_now();l(!0,e),l=null}catch(e){throw setTimeout(u,0),e}},h=Date.now();t.unstable_now=function(){return Date.now()-h},r=function(e){null!==l?setTimeout(r,0,e):(l=e,setTimeout(u,0))},i=function(e,t){c=setTimeout(e,t)},o=function(){clearTimeout(c)},a=function(){return!1},s=t.unstable_forceFrameRate=function(){}}else{var f=window.performance,d=window.Date,p=window.setTimeout,m=window.clearTimeout;if("undefined"!==typeof console){var g=window.cancelAnimationFrame;"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!==typeof g&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"===typeof f&&"function"===typeof f.now)t.unstable_now=function(){return f.now()};else{var v=d.now();t.unstable_now=function(){return d.now()-v}}var y=!1,b=null,w=-1,x=5,_=0;a=function(){return t.unstable_now()>=_},s=function(){},t.unstable_forceFrameRate=function(e){0>e||125>>1,i=e[r];if(!(void 0!==i&&0T(a,n))void 0!==l&&0>T(l,a)?(e[r]=l,e[s]=n,r=s):(e[r]=a,e[o]=n,r=o);else{if(!(void 0!==l&&0>T(l,n)))break e;e[r]=l,e[s]=n,r=s}}}return t}return null}function T(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var L=[],A=[],P=1,j=null,M=3,R=!1,N=!1,D=!1;function I(e){for(var t=C(A);null!==t;){if(null===t.callback)O(A);else{if(!(t.startTime<=e))break;O(A),t.sortIndex=t.expirationTime,k(L,t)}t=C(A)}}function $(e){if(D=!1,I(e),!N)if(null!==C(L))N=!0,r(F);else{var t=C(A);null!==t&&i($,t.startTime-e)}}function F(e,n){N=!1,D&&(D=!1,o()),R=!0;var r=M;try{for(I(n),j=C(L);null!==j&&(!(j.expirationTime>n)||e&&!a());){var s=j.callback;if(null!==s){j.callback=null,M=j.priorityLevel;var l=s(j.expirationTime<=n);n=t.unstable_now(),"function"===typeof l?j.callback=l:j===C(L)&&O(L),I(n)}else O(L);j=C(L)}if(null!==j)var c=!0;else{var u=C(A);null!==u&&i($,u.startTime-n),c=!1}return c}finally{j=null,M=r,R=!1}}function B(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var V=s;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||R||(N=!0,r(F))},t.unstable_getCurrentPriorityLevel=function(){return M},t.unstable_getFirstCallbackNode=function(){return C(L)},t.unstable_next=function(e){switch(M){case 1:case 2:case 3:var t=3;break;default:t=M}var n=M;M=t;try{return e()}finally{M=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=V,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=M;M=e;try{return t()}finally{M=n}},t.unstable_scheduleCallback=function(e,n,a){var s=t.unstable_now();if("object"===typeof a&&null!==a){var l=a.delay;l="number"===typeof l&&0s?(e.sortIndex=l,k(A,e),null===C(L)&&e===C(A)&&(D?o():D=!0,i($,l-s))):(e.sortIndex=a,k(L,e),N||R||(N=!0,r(F))),e},t.unstable_shouldYield=function(){var e=t.unstable_now();I(e);var n=C(L);return n!==j&&null!==j&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime=0||(i[n]=e[n]);return i}var y=n("2mql"),b=n.n(y),w=n("0vxD"),x=["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"],_=["reactReduxForwardedRef"],E=[],S=[null,null];function k(e,t){var n=e[1];return[t.payload,n+1]}function C(e,t,n){d(function(){return e.apply(void 0,t)},n)}function O(e,t,n,r,i,o,a){e.current=r,t.current=i,n.current=!1,o.current&&(o.current=null,a())}function T(e,t,n,r,i,o,a,s,l,c){if(e){var u=!1,h=null,f=function(){if(!u){var e,n,f=t.getState();try{e=r(f,i.current)}catch(e){n=e,h=e}n||(h=null),e===o.current?a.current||l():(o.current=e,s.current=e,a.current=!0,c({type:"STORE_UPDATED",payload:{error:n}}))}};n.onStateChange=f,n.trySubscribe(),f();var d=function(){if(u=!0,n.tryUnsubscribe(),n.onStateChange=null,h)throw h};return d}}var L=function(){return[null,0]};function A(e,t){void 0===t&&(t={});var n=t,a=n.getDisplayName,s=void 0===a?function(e){return"ConnectAdvanced("+e+")"}:a,l=n.methodName,c=void 0===l?"connectAdvanced":l,u=n.renderCountProp,h=void 0===u?void 0:u,d=n.shouldHandleStateChanges,p=void 0===d||d,m=n.storeKey,y=void 0===m?"store":m,A=(n.withRef,n.forwardRef),P=void 0!==A&&A,j=n.context,M=void 0===j?o:j,R=v(n,x),N=M;return function(t){var n=t.displayName||t.name||"Component",o=s(n),a=g({},R,{getDisplayName:s,methodName:c,renderCountProp:h,shouldHandleStateChanges:p,storeKey:y,displayName:o,wrappedComponentName:n,WrappedComponent:t}),l=R.pure;function u(t){return e(t.dispatch,a)}var d=l?r["useMemo"]:function(e){return e()};function m(e){var n=Object(r["useMemo"])(function(){var t=e.reactReduxForwardedRef,n=v(e,_);return[e.context,t,n]},[e]),o=n[0],a=n[1],s=n[2],l=Object(r["useMemo"])(function(){return o&&o.Consumer&&Object(w["isContextConsumer"])(i.a.createElement(o.Consumer,null))?o:N},[o,N]),c=Object(r["useContext"])(l),h=Boolean(e.store)&&Boolean(e.store.getState)&&Boolean(e.store.dispatch);Boolean(c)&&Boolean(c.store);var m=h?e.store:c.store,y=Object(r["useMemo"])(function(){return u(m)},[m]),b=Object(r["useMemo"])(function(){if(!p)return S;var e=f(m,h?null:c.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]},[m,h,c]),x=b[0],A=b[1],P=Object(r["useMemo"])(function(){return h?c:g({},c,{subscription:x})},[h,c,x]),j=Object(r["useReducer"])(k,E,L),M=j[0],R=M[0],D=j[1];if(R&&R.error)throw R.error;var I=Object(r["useRef"])(),$=Object(r["useRef"])(s),F=Object(r["useRef"])(),B=Object(r["useRef"])(!1),V=d(function(){return F.current&&s===$.current?F.current:y(m.getState(),s)},[m,R,s]);C(O,[$,I,B,s,V,F,A]),C(T,[p,m,x,y,$,I,B,F,A,D],[m,x,y]);var W=Object(r["useMemo"])(function(){return i.a.createElement(t,g({},V,{ref:a}))},[a,t,V]),H=Object(r["useMemo"])(function(){return p?i.a.createElement(l.Provider,{value:P},W):W},[l,W,P]);return H}var x=l?i.a.memo(m):m;if(x.WrappedComponent=t,x.displayName=m.displayName=o,P){var A=i.a.forwardRef(function(e,t){return i.a.createElement(x,g({},e,{reactReduxForwardedRef:t}))});return A.displayName=o,A.WrappedComponent=t,b()(A,t)}return b()(x,t)}}function P(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function j(e,t){if(P(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0;i=0;r--){var i=t[r](e);if(i)return i}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function te(e,t){return e===t}function ne(e){var t=void 0===e?{}:e,n=t.connectHOC,r=void 0===n?A:n,i=t.mapStateToPropsFactories,o=void 0===i?H:i,a=t.mapDispatchToPropsFactories,s=void 0===a?B:a,l=t.mergePropsFactories,c=void 0===l?K:l,u=t.selectorFactory,h=void 0===u?Z:u;return function(e,t,n,i){void 0===i&&(i={});var a=i,l=a.pure,u=void 0===l||l,f=a.areStatesEqual,d=void 0===f?te:f,p=a.areOwnPropsEqual,m=void 0===p?j:p,y=a.areStatePropsEqual,b=void 0===y?j:y,w=a.areMergedPropsEqual,x=void 0===w?j:w,_=v(a,J),E=ee(e,o,"mapStateToProps"),S=ee(t,s,"mapDispatchToProps"),k=ee(n,c,"mergeProps");return r(h,g({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:E,initMapDispatchToProps:S,initMergeProps:k,pure:u,areStatesEqual:d,areOwnPropsEqual:m,areStatePropsEqual:b,areMergedPropsEqual:x},_))}}var re=ne();var ie=n("i8i4");n.d(t,"a",function(){return m}),n.d(t,"b",function(){return o}),n.d(t,"c",function(){return re}),l(ie["unstable_batchedUpdates"])},"/Mfd":function(e,t,n){var r=n("7vYJ"),i=n("4gcQ"),o=n("WFJy"),a=n("J57/")("IE_PROTO"),s=function(){},l="prototype",c=function(){var e,t=n("SfDG")("iframe"),r=o.length,i="<",a=">";t.style.display="none",n("XI6d").appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(i+"script"+a+"document.F=Object"+i+"/script"+a),e.close(),c=e.F;while(r--)delete c[l][o[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(s[l]=r(e),n=new s,s[l]=null,n[a]=e):n=c(),void 0===t?n:i(n,t)}},"/Qhy":function(e,t,n){"use strict";function r(e){return"/"===e.charAt(0)}function i(e,t){for(var n=t,r=n+1,i=e.length;r1&&void 0!==arguments[1]?arguments[1]:"",n=e&&e.split("/")||[],o=t&&t.split("/")||[],a=e&&r(e),s=t&&r(t),l=a||s;if(e&&r(e)?o=n:n.length&&(o.pop(),o=o.concat(n)),!o.length)return"/";var c=void 0;if(o.length){var u=o[o.length-1];c="."===u||".."===u||""===u}else c=!1;for(var h=0,f=o.length;f>=0;f--){var d=o[f];"."===d?i(o,f):".."===d?(i(o,f),h++):h&&(i(o,f),h--)}if(!l)for(;h--;h)o.unshift("..");!l||""===o[0]||o[0]&&r(o[0])||o.unshift("");var p=o.join("/");return c&&"/"!==p.substr(-1)&&(p+="/"),p}n.r(t),t["default"]=o},"/dDc":function(e,t,n){"use strict";var r={transitionstart:{transition:"transitionstart",WebkitTransition:"webkitTransitionStart",MozTransition:"mozTransitionStart",OTransition:"oTransitionStart",msTransition:"MSTransitionStart"},animationstart:{animation:"animationstart",WebkitAnimation:"webkitAnimationStart",MozAnimation:"mozAnimationStart",OAnimation:"oAnimationStart",msAnimation:"MSAnimationStart"}},i={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},o=[],a=[];function s(){var e=document.createElement("div"),t=e.style;function n(e,n){for(var r in e)if(e.hasOwnProperty(r)){var i=e[r];for(var o in i)if(o in t){n.push(i[o]);break}}}"AnimationEvent"in window||(delete r.animationstart.animation,delete i.animationend.animation),"TransitionEvent"in window||(delete r.transitionstart.transition,delete i.transitionend.transition),n(r,o),n(i,a)}function l(e,t,n){e.addEventListener(t,n,!1)}function c(e,t,n){e.removeEventListener(t,n,!1)}"undefined"!==typeof window&&"undefined"!==typeof document&&s();var u={startEvents:o,addStartEventListener:function(e,t){0!==o.length?o.forEach(function(n){l(e,n,t)}):window.setTimeout(t,0)},removeStartEventListener:function(e,t){0!==o.length&&o.forEach(function(n){c(e,n,t)})},endEvents:a,addEndEventListener:function(e,t){0!==a.length?a.forEach(function(n){l(e,n,t)}):window.setTimeout(t,0)},removeEndEventListener:function(e,t){0!==a.length&&a.forEach(function(n){c(e,n,t)})}};t["a"]=u},"/gYn":function(e,t,n){var r=n("gL7N")("toPrimitive"),i=Date.prototype;r in i||n("VPOE")(i,r,n("CfL3"))},"/mWb":function(e,t,n){"use strict";var r=n("WGNW"),i=n("il4q"),o=n("8BMt"),a=n("BFt8"),s=n("15BC").f;n("8Z/V")&&r(r.P+n("OJuA"),"Object",{__lookupGetter__:function(e){var t,n=i(this),r=o(e,!0);do{if(t=s(n,r))return t.get}while(n=a(n))}})},"/sWw":function(e,t,n){var r=n("c0Oy"),i=n("bV5f"),o=n("FqPH"),a=n("zKnh"),s=n("V5/1").f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},0:function(e,t){},"03ni":function(e,t,n){"use strict";var r=n("AUWw"),i=n("ZDr/");e.exports=function(e){var t=String(i(this)),n="",o=r(e);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(t+=t))1&o&&(n+=t);return n}},"08Qx":function(e,t,n){var r=n("c0Oy"),i=r.navigator;e.exports=i&&i.userAgent||""},"0Wa5":function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.namespace||s,n=e.only,l=void 0===n?[]:n,c=e.except,u=void 0===c?[]:c;if(l.length>0&&u.length>0)throw Error("It is ambiguous to configurate `only` and `except` items at the same time.");var h={global:!1,models:{},effects:{}},f=r({},t,function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h,n=arguments.length>1?arguments[1]:void 0,s=n.type,l=n.payload,c=l||{},u=c.namespace,f=c.actionType;switch(s){case o:e=i({},t,{global:!0,models:i({},t.models,r({},u,!0)),effects:i({},t.effects,r({},f,!0))});break;case a:var d=i({},t.effects,r({},f,!1)),p=i({},t.models,r({},u,Object.keys(d).some(function(e){var t=e.split("/")[0];return t===u&&d[e]}))),m=Object.keys(p).some(function(e){return p[e]});e=i({},t,{global:m,models:p,effects:d});break;default:e=t;break}return e});function d(e,t,n,r){var i=t.put,s=n.namespace;return 0===l.length&&0===u.length||l.length>0&&-1!==l.indexOf(r)||u.length>0&&-1===u.indexOf(r)?regeneratorRuntime.mark(function t(){var n=arguments;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,i({type:o,payload:{namespace:s,actionType:r}});case 2:return t.next=4,e.apply(void 0,n);case 4:return t.next=6,i({type:a,payload:{namespace:s,actionType:r}});case 6:case"end":return t.stop()}},t)}):e}return{extraReducers:f,onEffect:d}}e.exports=l},"0fn0":function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={routes:[],saveLoading:!1,fetchLoading:!1};t["default"]={name:"serverRoute",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{fetch(e,t){var n=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/server/route/fetch");case 4:return t=e.sent,e.next=7,n({type:"setState",payload:{fetchLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,n({type:"setState",payload:{routes:t.data}});case 11:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/route/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},save(e,t){var n=e.params,r=e.callback,i=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/route/save",n);case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,i({type:"fetch"});case 7:"function"===typeof r&&r();case 8:case"end":return e.stop()}},e)})()}}}},"0hpf":function(e,t,n){"use strict";function r(e){"@babel/helpers - typeof";return r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n0?arguments[0]:void 0)}},{add:function(e){return r.def(i(this,o),e=0===e?0:e,e)}},r)},"0vxD":function(e,t,n){"use strict";e.exports=n("DUzY")},"0wlq":function(e,t,n){"use strict";var r=n("WGNW"),i=n("8H45"),o=n("il4q"),a=n("OsVd"),s=n("wYm8"),l=n("17jC");r(r.P,"Array",{flatMap:function(e){var t,n,r=o(this);return s(e),t=a(r.length),n=l(r,0),i(n,r,r,t,0,1,e,arguments[1]),n}}),n("DIcO")("flatMap")},1:function(e,t,n){e.exports=n("KyW6")},"11+Y":function(e,t,n){"use strict";n.r(t);var r=n("jehZ"),i=n.n(r),o=(n("g9YV"),n("wCAj")),a=(n("+L6B"),n("2/Rp")),s=(n("/zsF"),n("PArb")),l=(n("Pwec"),n("CtXQ")),c=n("q1tI"),u=n.n(c),h=n("Bl7J"),f=n("/MKj"),d=n("8zNj"),p=n("v32e");class m extends u.a.Component{constructor(e){super(e),this.state={group:[],submit:{},visible:!1}}componentDidMount(){this.props.dispatch({type:"serverGroup/fetch"})}drop(e){this.props.dispatch({type:"serverGroup/drop",id:e})}modalVisible(){this.setState({visible:!this.state.visible,submit:{}})}render(){var e=this.props.serverGroup,t=e.groups,n=e.fetchLoading,r=[{title:"组ID",dataIndex:"id",key:"id"},{title:"组名称",dataIndex:"name",key:"name"},{title:"用户数量",dataIndex:"user_count",key:"user_count",render:e=>{return u.a.createElement(u.a.Fragment,null,u.a.createElement(l["a"],{type:"user",style:{cursor:"move"}})," ",e)}},{title:"节点数量",dataIndex:"server_count",key:"server_count",render:e=>{return u.a.createElement(u.a.Fragment,null,u.a.createElement(l["a"],{type:"database",style:{cursor:"move"}})," ",e)}},{title:"操作",dataIndex:"action",key:"action",align:"right",render:(e,t)=>{return u.a.createElement("div",null,u.a.createElement(d["a"],{record:t,key:t.id},u.a.createElement("a",{href:"javascript:void(0);"},"编辑")),u.a.createElement(s["a"],{type:"vertical"}),u.a.createElement("a",{href:"javascript:void(0);",onClick:()=>this.drop(t.id)},"删除"))}}];return u.a.createElement(h["a"],i()({},this.props,{title:"权限组管理"}),u.a.createElement("div",{className:"d-flex justify-content-between align-items-center"}),u.a.createElement(p["a"],{loading:n},u.a.createElement("div",{className:"block block-rounded"},u.a.createElement("div",{className:"bg-white"},u.a.createElement("div",{style:{padding:15}},u.a.createElement(d["a"],null,u.a.createElement(a["a"],{onClick:()=>this.modalVisible()},u.a.createElement(l["a"],{type:"plus"})," 添加权限组"))),u.a.createElement(o["a"],{tableLayout:"auto",columns:r,dataSource:t,pagination:!1})))))}}t["default"]=Object(f["c"])(e=>{var t=e.serverGroup;return{serverGroup:t}})(m)},"15BC":function(e,t,n){var r=n("LsAW"),i=n("pQGJ"),o=n("OeOC"),a=n("8BMt"),s=n("oxo0"),l=n("A7R+"),c=Object.getOwnPropertyDescriptor;t.f=n("8Z/V")?c:function(e,t){if(e=o(e),t=a(t,!0),l)try{return c(e,t)}catch(e){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},"16Al":function(e,t,n){"use strict";var r=n("WbBG");function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},"17jC":function(e,t,n){var r=n("3FhE");e.exports=function(e,t){return new(r(e))(t)}},"17x9":function(e,t,n){e.exports=n("16Al")()},"198K":function(e,t){function n(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}e.exports=n},"1AkM":function(e,t,n){"use strict";n.d(t,"a",function(){return h}),n.d(t,"b",function(){return m});var r=n("Xnb7"),i=n("bYtY"),o=n("6GrX"),a=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function s(e,t,n,r,i){if(!t)return"";var o=(e+"").split("\n");i=l(t,n,r,i);for(var a=0,s=o.length;a=l;u++)c-=l;var h=Object(o["f"])(n,t);return h>c&&(n="",h=0),c=e-h,a.ellipsis=n,a.ellipsisWidth=h,a.contentWidth=c,a.containerWidth=e,a}function c(e,t){var n=t.containerWidth,r=t.font,i=t.contentWidth;if(!n)return"";var a=Object(o["f"])(e,r);if(a<=n)return e;for(var s=0;;s++){if(a<=i||s>=t.maxIterations){e+=t.ellipsis;break}var l=0===s?u(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,l),a=Object(o["f"])(e,r)}return""===e&&(e=t.placeholder),e}function u(e,t,n,r){for(var i=0,o=0,a=e.length;ov&&p){var y=Math.floor(v/f);n=n.slice(0,y)}if(e&&u&&null!=m)for(var b=l(m,s,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),x=0;xd&&g(n,e.substring(d,m),t,f),g(n,l[2],t,f,l[1]),d=a.lastIndex}du){T>0?(k.tokens=k.tokens.slice(0,T),E(k,O,C),n.lines=n.lines.slice(0,S+1)):n.lines=n.lines.slice(0,S);break e}var N=A.width,D=null==N||"auto"===N;if("string"===typeof N&&"%"===N.charAt(N.length-1))L.percentWidth=N,v.push(L),L.contentWidth=Object(o["f"])(L.text,M);else{if(D){var I=A.backgroundColor,$=I&&I.image;$&&($=r["b"]($),r["c"]($)&&(L.width=Math.max(L.width,$.width*R/$.height)))}var F=x&&null!=c?c-O:null;null!=F&&F0&&v+r.accumWidth>r.width&&(a=t.split("\n"),p=!0),r.accumWidth=v}else{var y=w(t,h,r.width,r.breakAll,r.accumWidth);r.accumWidth=y.accumWidth+g,s=y.linesWidths,a=y.lines}}else a=t.split("\n");for(var b=0;b=33&&t<=383}var y=Object(i["I"])(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function b(e){return!v(e)||!!y[e]}function w(e,t,n,r,i){for(var a=[],s=[],l="",c="",u=0,h=0,f=0;fn:i+h+p>n)?h?(l||c)&&(m?(l||(l=c,c="",u=0,h=u),a.push(l),s.push(h-u),c+=d,u+=p,l="",h=u):(c&&(l+=c,c="",u=0),a.push(l),s.push(h),l=d,h=p)):m?(a.push(c),s.push(u),c=d,u=p):(a.push(d),s.push(p)):(h+=p,m?(c+=d,u+=p):(c&&(l+=c,c="",u=0),l+=d))}else c&&(l+=c,h+=u),a.push(l),s.push(h),l="",c="",u=0,h=0}return a.length||l||(l=e,c="",u=0),c&&(l+=c),l&&(a.push(l),s.push(h)),1===a.length&&(h+=i),{accumWidth:h,lines:a,linesWidths:s}}},"1Jh7":function(e,t,n){"use strict";var r=n("mrSG"),i=n("y+Vt"),o=n("T6xi"),a=function(){function e(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null}return e}(),s=function(e){function t(t){return e.call(this,t)||this}return Object(r["a"])(t,e),t.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},t.prototype.getDefaultShape=function(){return new a},t.prototype.buildPath=function(e,t){o["a"](e,t,!1)},t}(i["b"]);s.prototype.type="polyline",t["a"]=s},"1MYJ":function(e,t,n){"use strict";var r=n("mrSG"),i=n("y+Vt"),o=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type="compound",t}return Object(r["a"])(t,e),t.prototype._updatePathDirty=function(){for(var e=this.shape.paths,t=this.shapeChanged(),n=0;n=this._maxSize&&a>0){var l=n.head;n.remove(l),delete i[l.key],o=l.value,this._lastRemovedEntry=l}s?s.value=t:s=new r(t),s.key=e,n.insertEntry(s),i[e]=s}return o},e.prototype.get=function(e){var t=this._map[e],n=this._list;if(null!=t)return t!==n.tail&&(n.remove(t),n.insertEntry(t)),t.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();t["a"]=o},"1W/9":function(e,t,n){"use strict";var r=n("q1tI"),i=n.n(r),o=n("i8i4"),a=n.n(o),s=n("17x9"),l=n.n(s),c=n("VCL8"),u=n("PIAm"),h=n("QC+M"),f=n("qx4F");function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.element,r=void 0===n?document.body:n,i={},o=Object.keys(e);return o.forEach(function(e){i[e]=r.style[e]}),o.forEach(function(t){r.style[t]=e[t]}),i}var p=d;function m(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}var g={},v=function(e){if(m()||e){var t="ant-scrolling-effect",n=new RegExp("".concat(t),"g"),r=document.body.className;if(e){if(!n.test(r))return;return p(g),g={},void(document.body.className=r.replace(n,"").trim())}var i=Object(f["a"])();if(i&&(g=p({position:"relative",width:"calc(100% - ".concat(i,"px)")}),!n.test(r))){var o="".concat(r," ").concat(t);document.body.className=o.trim()}}};function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function b(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};return n(b(b(b({},t),s),{},{ref:e.savePortal}))},getContainer:this.getContainer,forceRender:r},function(t){var n=t.renderComponent,r=t.removeContainer;return e.renderComponent=n,e.removeContainer=r,null})}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t._self,i=e.visible,o=e.getContainer;if(n){var a=n.visible,s=n.getContainer;i!==a&&(j=i&&!a?j+1:j-1);var l="function"===typeof o&&"function"===typeof s;(l?o.toString()!==s.toString():o!==s)&&r.removeCurrentContainer(!1)}return{prevProps:e}}}]),n}(i.a.Component);D.propTypes={wrapperClassName:l.a.string,forceRender:l.a.bool,getContainer:l.a.any,children:l.a.func,visible:l.a.bool};t["a"]=Object(c["polyfill"])(D)},"1bdT":function(e,t,n){"use strict";var r=n("hYLj"),i=n("Bq2U"),o=n("mFDi"),a=n("b9Ot"),s=n("6GrX"),l=n("bYtY"),c=n("LPTA"),u=n("Qe9p"),h=n("S8SX"),f="__zr_normal__",d=r["a"].concat(["ignore"]),p=Object(l["I"])(r["a"],function(e,t){return e[t]=!0,e},{ignore:!1}),m={},g=new o["a"](0,0,0,0),v=function(){function e(e){this.id=Object(l["n"])(),this.animators=[],this.currentStates=[],this.states={},this._init(e)}return e.prototype._init=function(e){this.attr(e)},e.prototype.drift=function(e,t,n){switch(this.draggable){case"horizontal":t=0;break;case"vertical":e=0;break}var r=this.transform;r||(r=this.transform=[1,0,0,1,0,0]),r[4]+=e,r[5]+=t,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(e){var t=this._textContent;if(t&&(!t.ignore||e)){this.textConfig||(this.textConfig={});var n=this.textConfig,r=n.local,i=t.innerTransformable,o=void 0,a=void 0,l=!1;i.parent=r?this:null;var c=!1;if(i.copyTransform(t),null!=n.position){var u=g;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),r||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(m,n,u):Object(s["c"])(m,n,u),i.x=m.x,i.y=m.y,o=m.align,a=m.verticalAlign;var f=n.origin;if(f&&null!=n.rotation){var d=void 0,p=void 0;"center"===f?(d=.5*u.width,p=.5*u.height):(d=Object(s["g"])(f[0],u.width),p=Object(s["g"])(f[1],u.height)),c=!0,i.originX=-i.x+d+(r?0:u.x),i.originY=-i.y+p+(r?0:u.y)}}null!=n.rotation&&(i.rotation=n.rotation);var v=n.offset;v&&(i.x+=v[0],i.y+=v[1],c||(i.originX=-v[0],i.originY=-v[1]));var y=null==n.inside?"string"===typeof n.position&&n.position.indexOf("inside")>=0:n.inside,b=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),w=void 0,x=void 0,_=void 0;y&&this.canBeInsideText()?(w=n.insideFill,x=n.insideStroke,null!=w&&"auto"!==w||(w=this.getInsideTextFill()),null!=x&&"auto"!==x||(x=this.getInsideTextStroke(w),_=!0)):(w=n.outsideFill,x=n.outsideStroke,null!=w&&"auto"!==w||(w=this.getOutsideFill()),null!=x&&"auto"!==x||(x=this.getOutsideStroke(w),_=!0)),w=w||"#000",w===b.fill&&x===b.stroke&&_===b.autoStroke&&o===b.align&&a===b.verticalAlign||(l=!0,b.fill=w,b.stroke=x,b.autoStroke=_,b.align=o,b.verticalAlign=a,t.setDefaultTextStyle(b)),t.__dirty|=h["a"],l&&t.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(e){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?c["d"]:c["a"]},e.prototype.getOutsideStroke=function(e){var t=this.__zr&&this.__zr.getBackgroundColor(),n="string"===typeof t&&Object(u["d"])(t);n||(n=[255,255,255,1]);for(var r=n[3],i=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*r+(i?0:255)*(1-r);return n[3]=1,Object(u["e"])(n,"rgba")},e.prototype.traverse=function(e,t){},e.prototype.attrKV=function(e,t){"textConfig"===e?this.setTextConfig(t):"textContent"===e?this.setTextContent(t):"clipPath"===e?this.setClipPath(t):"extra"===e?(this.extra=this.extra||{},Object(l["l"])(this.extra,t)):this[e]=t},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(e,t){if("string"===typeof e)this.attrKV(e,t);else if(Object(l["x"])(e))for(var n=e,r=Object(l["B"])(n),i=0;i0},e.prototype.getState=function(e){return this.states[e]},e.prototype.ensureState=function(e){var t=this.states;return t[e]||(t[e]={}),t[e]},e.prototype.clearStates=function(e){this.useState(f,!1,e)},e.prototype.useState=function(e,t,n,r){var i=e===f,o=this.hasState();if(o||!i){var a=this.currentStates,s=this.stateTransition;if(!(Object(l["p"])(a,e)>=0)||!t&&1!==a.length){var c;if(this.stateProxy&&!i&&(c=this.stateProxy(e)),c||(c=this.states&&this.states[e]),c||i){i||this.saveCurrentToNormalState(c);var u=!!(c&&c.hoverLayer||r);u&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,c,this._normalState,t,!n&&!this.__inHover&&s&&s.duration>0,s);var d=this._textContent,p=this._textGuide;return d&&d.useState(e,t,n,u),p&&p.useState(e,t,n,u),i?(this.currentStates=[],this._normalState={}):t?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!u&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~h["a"]),c}Object(l["C"])("State "+e+" not exists.")}}},e.prototype.useStates=function(e,t,n){if(e.length){var r=[],i=this.currentStates,o=e.length,a=o===i.length;if(a)for(var s=0;s0,p);var m=this._textContent,g=this._textGuide;m&&m.useStates(e,t,f),g&&g.useStates(e,t,f),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~h["a"])}else this.clearStates()},e.prototype._updateAnimationTargets=function(){for(var e=0;e=0){var n=this.currentStates.slice();n.splice(t,1),this.useStates(n)}},e.prototype.replaceState=function(e,t,n){var r=this.currentStates.slice(),i=Object(l["p"])(r,e),o=Object(l["p"])(r,t)>=0;i>=0?o?r.splice(i,1):r[i]=t:n&&!o&&r.push(t),this.useStates(r)},e.prototype.toggleState=function(e,t){t?this.useState(e,!0):this.removeState(e)},e.prototype._mergeStates=function(e){for(var t,n={},r=0;r=0&&t.splice(n,1)}),this.animators.push(e),n&&n.animation.addAnimator(e),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(e){this.markRedraw()},e.prototype.stopAnimation=function(e,t){for(var n=this.animators,r=n.length,i=[],o=0;o0&&n.during&&o[0].during(function(e,t){n.during(t)});for(var f=0;f0||o.force&&!s.length){var L=void 0,A=void 0,P=void 0;if(c){A={},p&&(L={});for(k=0;k=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={servers:[],fetchLoading:!1,sortMode:!1};t["default"]={name:"serverManage",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{getNodes(e,t){var n=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/server/manage/getNodes");case 4:return t=e.sent,e.next=7,n({type:"setState",payload:{fetchLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,n({type:"setState",payload:{servers:t.data,sortMode:!1}});case 11:case"end":return e.stop()}},e)})()},sort(e,t){var n=e.fromIndex,r=e.toIndex,i=t.select,o=t.put;return a().mark(function e(){var t,s;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i(e=>e.serverManage);case 2:return t=e.sent,s=t.servers,t.sortHistory,ne.serverManage);case 4:return t=e.sent,s=t.servers,l={},s.forEach((e,t)=>{"object"!==typeof l[e.type]&&(l[e.type]={}),l[e.type][e.id]=t}),e.next=10,Object(o["b"])("/"+window.settings.secure_path+"/server/manage/sort",i()({},l),!0);case 10:return c=e.sent,e.next=13,r({type:"setState",payload:{fetchLoading:!1}});case 13:if(200===c.code){e.next=15;break}return e.abrupt("return");case 15:return e.next=17,r({type:"getNodes"});case 17:case"end":return e.stop()}},e)})()}}}},"1dGX":function(e,t,n){"use strict";t.Any=n("y8fO"),t.Cc=n("p7ys"),t.Cf=n("b9EY"),t.P=n("fKCf"),t.Z=n("T8I8")},"1dM+":function(e,t,n){"use strict";n.r(t);var r=n("jehZ"),i=n.n(r),o=(n("+L6B"),n("2/Rp")),a=(n("5NDa"),n("5rEg")),s=(n("Znn+"),n("ZTPi")),l=(n("BoS7"),n("Sdc0")),c=n("p0pE"),u=n.n(c),h=n("q1tI"),f=n.n(h),d=n("Bl7J"),p=n("/MKj");class m extends f.a.Component{render(){return f.a.createElement("div",{className:"row ".concat(this.props.isChildren?"v2board-config-children":""),style:{padding:"20px",borderBottom:"1px solid #eee"}},f.a.createElement("div",{className:"col-lg-6"},f.a.createElement("div",{style:{fontWeight:"bold",marginBottom:5}},this.props.title),f.a.createElement("div",{style:{fontSize:12,marginBottom:5,color:"#666"}},this.props.description)),f.a.createElement("div",{className:"col-lg-6 text-right"},this.props.children))}}class g extends f.a.Component{componentDidMount(){this.props.dispatch({type:"config/fetch"}),this.props.dispatch({type:"plan/fetch"}),this.props.dispatch({type:"config/getEmailTemplate"}),this.props.dispatch({type:"config/getThemeTemplate"})}set(e,t,n){var r=this.props.config;this.props.dispatch({type:"config/setState",payload:{[e]:u()({},r[e],{[t]:n})}}),this.inputDelayTimer&&clearTimeout(this.inputDelayTimer),this.inputDelayTimer=setTimeout(function(){this.inputDelayTimer=null,this.props.dispatch({type:"config/save",parentKey:e})}.bind(this),1500)}render(){var e=this.props.config,t=e.site,n=e.invite,r=e.subscribe,c=e.frontend,u=e.server,h=e.tabs,p=e.fetchLoading,g=e.emailTemplate,v=(e.themeTemplate,e.email),y=e.telegram,b=e.setTelegramWebhookLoading,w=e.app,x=e.testSendMailLoading,_=e.safe,E=this.props.plan.plans;return f.a.createElement(d["a"],i()({},this.props,{title:"系统配置"}),f.a.createElement("div",{className:"mb-0 block border-bottom ".concat(p?"block-mode-loading":"")},f.a.createElement(s["a"],{onChange:e=>this.setState({tabs:e}),defaultActiveKey:h,size:"large"},f.a.createElement(s["a"].TabPane,{tab:"站点",key:"site"},f.a.createElement("div",{className:""},f.a.createElement(m,{title:"站点名称",description:"用于显示需要站点名称的地方。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入站点名称",defaultValue:t.app_name,onChange:e=>this.set("site","app_name",e.target.value)})),f.a.createElement(m,{title:"站点描述",description:"用于显示需要站点描述的地方。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入站点描述",defaultValue:t.app_description,onChange:e=>this.set("site","app_description",e.target.value)})),f.a.createElement(m,{title:"站点网址",description:"当前网站最新网址,将会在邮件等需要用于网址处体现。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入站点URL,末尾不要/",defaultValue:t.app_url,onChange:e=>this.set("site","app_url",e.target.value)})),f.a.createElement(m,{title:"强制HTTPS",description:"当站点没有使用HTTPS,CDN或反代开启强制HTTPS时需要开启。"},f.a.createElement(l["a"],{checked:parseInt(t.force_https),onChange:e=>this.set("site","force_https",e?1:0)})),f.a.createElement(m,{title:"LOGO",description:"用于显示需要LOGO的地方。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入LOGO URL,末尾不要/",defaultValue:t.logo,onChange:e=>this.set("site","logo",e.target.value)})),f.a.createElement(m,{title:"订阅URL",description:"用于订阅所使用,留空则为站点URL。如需多个订阅URL随机获取请使用逗号进行分割。"},f.a.createElement("textarea",{rows:"4",type:"text",className:"form-control",placeholder:"请输入订阅URL,末尾不要/。逗号分割支持多域名",defaultValue:t.subscribe_url,onChange:e=>this.set("site","subscribe_url",e.target.value)})),f.a.createElement(m,{title:"用户条款(TOS)URL",description:"用于跳转到用户条款(TOS)"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入用户条款URL,末尾不要/",defaultValue:t.tos_url,onChange:e=>this.set("site","tos_url",e.target.value)})),f.a.createElement(m,{title:"停止新用户注册",description:"开启后任何人都将无法进行注册。"},f.a.createElement(l["a"],{checked:parseInt(t.stop_register),onChange:e=>this.set("site","stop_register",e?1:0)})),f.a.createElement(m,{title:"注册试用",description:"选择需要试用的订阅,如果没有选项请先前往订阅管理添加。"},f.a.createElement("select",{onChange:e=>this.set("site","try_out_plan_id",e.target.value),className:"form-control",value:t.try_out_plan_id,placeholder:"请选择试用订阅"},f.a.createElement("option",{value:0},"关闭"),E.map(e=>{return f.a.createElement("option",{key:Math.random(),value:e.id},e.name)}))),0===t.try_out_plan_id||f.a.createElement(m,{isChildren:!0,title:"试用时间(小时)"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:t.try_out_hour,onChange:e=>this.set("site","try_out_hour",e.target.value)})),f.a.createElement(m,{title:"货币单位",description:"仅用于展示使用,更改后系统中所有的货币单位都将发生变更。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"CNY",defaultValue:t.currency,onChange:e=>this.set("site","currency",e.target.value)})),f.a.createElement(m,{title:"货币符号",description:"仅用于展示使用,更改后系统中所有的货币单位都将发生变更。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"¥",defaultValue:t.currency_symbol,onChange:e=>this.set("site","currency_symbol",e.target.value)})))),f.a.createElement(s["a"].TabPane,{tab:"安全",key:"safe"},f.a.createElement("div",{className:""},f.a.createElement(m,{title:"邮箱验证",description:"开启后将会强制要求用户进行邮箱验证。"},f.a.createElement(l["a"],{checked:parseInt(_.email_verify),onChange:e=>this.set("safe","email_verify",e?1:0)})),f.a.createElement(m,{title:"禁止使用Gmail多别名",description:"开启后Gmail多别名将无法注册。"},f.a.createElement(l["a"],{checked:parseInt(_.email_gmail_limit_enable),onChange:e=>this.set("safe","email_gmail_limit_enable",e?1:0)})),f.a.createElement(m,{title:"安全模式",description:"开启后除了站点URL以外的绑定本站点的域名访问都将会被403。"},f.a.createElement(l["a"],{checked:parseInt(_.safe_mode_enable),onChange:e=>this.set("safe","safe_mode_enable",e?1:0)})),f.a.createElement(m,{title:"后台路径",description:"后台管理路径,修改后将会改变原有的admin路径"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"admin",defaultValue:_.secure_path,onChange:e=>this.set("safe","secure_path",e.target.value)})),f.a.createElement(m,{title:"邮箱后缀白名单",description:"开启后在名单中的邮箱后缀才允许进行注册。"},f.a.createElement(l["a"],{checked:parseInt(_.email_whitelist_enable),onChange:e=>this.set("safe","email_whitelist_enable",e?1:0)})),_.email_whitelist_enable?f.a.createElement(m,{isChildren:!0,title:"白名单后缀",description:"请使用逗号进行分割,如:qq.com,gmail.com。"},f.a.createElement("textarea",{rows:"4",type:"text",className:"form-control",placeholder:"请输入后缀域名,逗号分割 如:qq.com,gmail.com",defaultValue:_.email_whitelist_suffix,onChange:e=>this.set("safe","email_whitelist_suffix",e.target.value.split(","))})):"",f.a.createElement(m,{title:"防机器人",description:"开启后将会使用Google reCAPTCHA防止机器人。"},f.a.createElement(l["a"],{checked:parseInt(_.recaptcha_enable),onChange:e=>this.set("safe","recaptcha_enable",e?1:0)})),_.recaptcha_enable?f.a.createElement(f.a.Fragment,null,f.a.createElement(m,{isChildren:!0,title:"密钥",description:"在Google reCAPTCHA申请的密钥。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:_.recaptcha_key,onChange:e=>this.set("safe","recaptcha_key",e.target.value)})),f.a.createElement(m,{isChildren:!0,title:"网站密钥",description:"在Google reCAPTCH申请的网站密钥。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:_.recaptcha_site_key,onChange:e=>this.set("safe","recaptcha_site_key",e.target.value)}))):"",f.a.createElement(m,{title:"IP注册限制",description:"开启后如果IP注册账户达到规则要求将会被限制注册,请注意IP判断可能因为CDN或前置代理导致问题。"},f.a.createElement(l["a"],{checked:parseInt(_.register_limit_by_ip_enable),onChange:e=>this.set("safe","register_limit_by_ip_enable",e?1:0)})),_.register_limit_by_ip_enable?f.a.createElement(f.a.Fragment,null,f.a.createElement(m,{isChildren:!0,title:"次数",description:"达到注册次数后开启惩罚。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:_.register_limit_count,onChange:e=>this.set("safe","register_limit_count",e.target.value)})),f.a.createElement(m,{isChildren:!0,title:"惩罚时间(分钟)",description:"需要等待惩罚时间过后才可以再次注册。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:_.register_limit_expire,onChange:e=>this.set("safe","register_limit_expire",e.target.value)}))):"",f.a.createElement(m,{title:"防爆破限制",description:"开启后如果该账户尝试登陆失败次数过多将会被限制。"},f.a.createElement(l["a"],{checked:parseInt(_.password_limit_enable),onChange:e=>this.set("safe","password_limit_enable",e?1:0)})),_.password_limit_enable?f.a.createElement(f.a.Fragment,null,f.a.createElement(m,{isChildren:!0,title:"次数",description:"达到失败次数后开启惩罚。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:_.password_limit_count,onChange:e=>this.set("safe","password_limit_count",e.target.value)})),f.a.createElement(m,{isChildren:!0,title:"惩罚时间(分钟)",description:"需要等待惩罚时间过后才可以再次登陆。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:_.password_limit_expire,onChange:e=>this.set("safe","password_limit_expire",e.target.value)}))):"")),f.a.createElement(s["a"].TabPane,{tab:"订阅",key:"subscribe"},f.a.createElement("div",{className:""},f.a.createElement(m,{title:"允许用户更改订阅",description:"开启后用户将会可以对订阅计划进行变更。"},f.a.createElement(l["a"],{checked:parseInt(r.plan_change_enable),onChange:e=>this.set("subscribe","plan_change_enable",e?1:0)})),f.a.createElement(m,{title:"月流量重置方式",description:"全局流量重置方式,默认每月1号。可以在订阅管理为订阅单独设置。"},f.a.createElement("select",{onChange:e=>this.set("subscribe","reset_traffic_method",e.target.value),className:"form-control",value:r.reset_traffic_method,placeholder:"请选择订阅重置方式"},f.a.createElement("option",{value:0},"每月1号"),f.a.createElement("option",{value:1},"按月重置"),f.a.createElement("option",{value:2},"不重置"),f.a.createElement("option",{value:3},"每年1月1日"),f.a.createElement("option",{value:4},"按年重置"))),f.a.createElement(m,{title:"开启折抵方案",description:"开启后用户更换订阅将会由系统对原有订阅进行折抵,方案参考文档。"},f.a.createElement(l["a"],{checked:parseInt(r.surplus_enable),onChange:e=>this.set("subscribe","surplus_enable",e?1:0)})),f.a.createElement(m,{title:"当订阅新购时触发事件",description:"新购订阅完成时将触发该任务。"},f.a.createElement("select",{onChange:e=>this.set("subscribe","new_order_event_id",e.target.value),className:"form-control",value:r.new_order_event_id,placeholder:"请选择事件"},f.a.createElement("option",{value:0},"不执行任何动作"),f.a.createElement("option",{value:1},"重置用户流量"))),f.a.createElement(m,{title:"当订阅续费时触发事件",description:"续费订阅完成时将触发该任务。"},f.a.createElement("select",{onChange:e=>this.set("subscribe","renew_order_event_id",e.target.value),className:"form-control",value:r.renew_order_event_id,placeholder:"请选择事件"},f.a.createElement("option",{value:0},"不执行任何动作"),f.a.createElement("option",{value:1},"重置用户流量"))),f.a.createElement(m,{title:"当订阅变更时触发事件",description:"变更订阅完成时将触发该任务。"},f.a.createElement("select",{onChange:e=>this.set("subscribe","change_order_event_id",e.target.value),className:"form-control",value:r.change_order_event_id,placeholder:"请选择事件"},f.a.createElement("option",{value:0},"不执行任何动作"),f.a.createElement("option",{value:1},"重置用户流量"))),f.a.createElement(m,{title:"在订阅中展示订阅信息",description:"开启后将会在用户订阅节点时输出订阅信息。"},f.a.createElement(l["a"],{checked:parseInt(r.show_info_to_server_enable),onChange:e=>this.set("subscribe","show_info_to_server_enable",e?1:0)})),f.a.createElement(m,{title:"在订阅中线路名称中显示协议名称",description:"开启后订阅线路会附带协议名称(例如: [Hy2]香港)"},f.a.createElement(l["a"],{checked:parseInt(r.show_protocol_to_server_enable),onChange:e=>this.set("subscribe","show_protocol_to_server_enable",e?1:0)})),f.a.createElement(m,{title:"用户订阅到期提醒的默认设置",description:"开启后新注册用户将默认接收订阅到期提醒。"},f.a.createElement(l["a"],{checked:parseInt(r.default_remind_expire),onChange:e=>this.set("subscribe","default_remind_expire",e?1:0)})),f.a.createElement(m,{title:"用户流量告急提醒的默认设置",description:"开启后新注册用户将默认接收流量告急提醒。"},f.a.createElement(l["a"],{checked:parseInt(r.default_remind_traffic),onChange:e=>this.set("subscribe","default_remind_traffic",e?1:0)})))),f.a.createElement(s["a"].TabPane,{tab:"邀请&佣金",key:"invite"},f.a.createElement("div",{className:""},f.a.createElement(m,{title:"开启强制邀请",description:"开启后只有被邀请的用户才可以进行注册。"},f.a.createElement(l["a"],{checked:parseInt(n.invite_force),onChange:e=>this.set("invite","invite_force",e?1:0)})),f.a.createElement(m,{title:"邀请佣金百分比",description:"默认全局的佣金分配比例,你可以在用户管理单独配置单个比例。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:n.invite_commission,onChange:e=>this.set("invite","invite_commission",parseInt(e.target.value))})),f.a.createElement(m,{title:"用户可创建邀请码上限"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:n.invite_gen_limit,onChange:e=>this.set("invite","invite_gen_limit",parseInt(e.target.value))})),f.a.createElement(m,{title:"邀请码永不失效",description:"开启后邀请码被使用后将不会失效,否则使用过后即失效。"},f.a.createElement(l["a"],{checked:parseInt(n.invite_never_expire),onChange:e=>this.set("invite","invite_never_expire",e?1:0)})),f.a.createElement(m,{title:"佣金仅首次发放",description:"开启后被邀请人首次支付时才会产生佣金,可以在用户管理对用户进行单独配置。"},f.a.createElement(l["a"],{checked:parseInt(n.commission_first_time_enable),onChange:e=>this.set("invite","commission_first_time_enable",e?1:0)})),f.a.createElement(m,{title:"佣金自动确认",description:"开启后佣金将会在订单完成3日后自动进行确认。"},f.a.createElement(l["a"],{checked:parseInt(n.commission_auto_check_enable),onChange:e=>this.set("invite","commission_auto_check_enable",e?1:0)})),f.a.createElement(m,{title:"提现单申请门槛(元)",description:"小于门槛金额的提现单将不会被提交。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:n.commission_withdraw_limit,onChange:e=>this.set("invite","commission_withdraw_limit",e.target.value)})),f.a.createElement(m,{title:"提现方式",description:"可以支持的提现方式。"},f.a.createElement("textarea",{rows:"4",type:"text",className:"form-control",placeholder:"请输入后缀域名,逗号分割 如:支付宝,USDT,贝宝",defaultValue:n.commission_withdraw_method,onChange:e=>this.set("invite","commission_withdraw_method",e.target.value.split(","))})),f.a.createElement(m,{title:"关闭提现",description:"关闭后将禁止用户申请提现,且邀请佣金将会直接进入用户余额。"},f.a.createElement(l["a"],{checked:parseInt(n.withdraw_close_enable),onChange:e=>this.set("invite","withdraw_close_enable",e?1:0)})),f.a.createElement(m,{title:"三级分销",description:"开启后将佣金将按照设置的3成比例进行分成,三成比例合计请不要>100%。"},f.a.createElement(l["a"],{checked:parseInt(n.commission_distribution_enable),onChange:e=>this.set("invite","commission_distribution_enable",e?1:0)})),parseInt(n.commission_distribution_enable)?f.a.createElement(f.a.Fragment,null,f.a.createElement(m,{isChildren:!0,title:"一级邀请人比例"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入比例如:50",defaultValue:n.commission_distribution_l1,onChange:e=>this.set("invite","commission_distribution_l1",e.target.value)})),f.a.createElement(m,{isChildren:!0,title:"二级邀请人比例"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入比例如:30",defaultValue:n.commission_distribution_l2,onChange:e=>this.set("invite","commission_distribution_l2",e.target.value)})),f.a.createElement(m,{isChildren:!0,title:"三级邀请人比例"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入比例如:20",defaultValue:n.commission_distribution_l3,onChange:e=>this.set("invite","commission_distribution_l3",e.target.value)}))):"")),f.a.createElement(s["a"].TabPane,{tab:"个性化",key:"frontend"},f.a.createElement("div",{className:"block-content"},f.a.createElement("div",{className:"row"},f.a.createElement("div",{className:"col-lg-12"},f.a.createElement("div",{className:"alert alert-warning",role:"alert"},f.a.createElement("p",{className:"mb-0"},"如果你采用前后分离的方式部署V2board管理端,那么本页配置将不会生效。了解",f.a.createElement("b",null,f.a.createElement("a",{href:"https://docs.v2board.com/use/advanced.html#%E5%89%8D%E7%AB%AF%E5%88%86%E7%A6%BB"},"前后分离"))))))),f.a.createElement("div",{className:""},f.a.createElement(m,{title:"边栏风格"},f.a.createElement(l["a"],{checkedChildren:"亮",unCheckedChildren:"暗",checked:"light"===c.frontend_theme_sidebar?1:0,onChange:e=>this.set("site","frontend_theme_sidebar",e?"light":"dark")})),f.a.createElement(m,{title:"头部风格"},f.a.createElement(l["a"],{checkedChildren:"亮",unCheckedChildren:"暗",checked:"light"===c.frontend_theme_header?1:0,onChange:e=>this.set("site","frontend_theme_header",e?"light":"dark")})),f.a.createElement(m,{title:"主题色"},f.a.createElement("select",{className:"form-control",defaultValue:c.frontend_theme_color,onChange:e=>this.set("frontend","frontend_theme_color",e.target.value)},f.a.createElement("option",{value:"default"},"默认"),f.a.createElement("option",{value:"black"},"黑色"),f.a.createElement("option",{value:"darkblue"},"暗蓝色"),f.a.createElement("option",{value:"green"},"奶绿色"))),f.a.createElement(m,{title:"背景",description:"将会在后台登录页面进行展示。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"https://xxxxx.com/wallpaper.png",defaultValue:c.frontend_background_url,onChange:e=>this.set("frontend","frontend_background_url",e.target.value)})))),f.a.createElement(s["a"].TabPane,{tab:"节点",key:"server"},f.a.createElement("div",{className:""},f.a.createElement(m,{title:"通讯密钥",description:"V2board与节点通讯的密钥,以便数据不会被他人获取。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:u.server_token,onChange:e=>this.set("server","server_token",e.target.value)}))),f.a.createElement("div",{className:""},f.a.createElement(m,{title:"节点拉取动作轮询间隔",description:"节点从面板获取数据的间隔频率。"},f.a.createElement(a["a"],{addonAfter:"秒",size:"large",type:"number",placeholder:"请输入",defaultValue:u.server_pull_interval,onChange:e=>this.set("server","server_pull_interval",e.target.value)}))),f.a.createElement("div",{className:""},f.a.createElement(m,{title:"节点推送动作轮询间隔",description:"节点推送数据到面板的间隔频率。"},f.a.createElement(a["a"],{addonAfter:"秒",size:"large",type:"number",placeholder:"请输入",defaultValue:u.server_push_interval,onChange:e=>this.set("server","server_push_interval",e.target.value)})))),f.a.createElement(s["a"].TabPane,{tab:"邮件",key:"email"},f.a.createElement("div",{className:"block-content"},f.a.createElement("div",{className:"row"},f.a.createElement("div",{className:"col-lg-12"},f.a.createElement("div",{className:"alert alert-warning",role:"alert"},f.a.createElement("p",{className:"mb-0"},"如果你更改了本页配置,需要对队列服务进行重启。另外本页配置优先级高于.env中邮件配置。"))))),f.a.createElement("div",{className:""},f.a.createElement(m,{title:"SMTP服务器地址",description:"由邮件服务商提供的服务地址"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:v.email_host,onChange:e=>this.set("email","email_host",e.target.value)})),f.a.createElement(m,{title:"SMTP服务端口",description:"常见的端口有25, 465, 587"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:v.email_port,onChange:e=>this.set("email","email_port",e.target.value)})),f.a.createElement(m,{title:"SMTP加密方式",description:"465端口加密方式一般为SSL,587端口加密方式一般为TLS"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:v.email_encryption,onChange:e=>this.set("email","email_encryption",e.target.value)})),f.a.createElement(m,{title:"SMTP账号",description:"由邮件服务商提供的账号"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:v.email_username,onChange:e=>this.set("email","email_username",e.target.value)})),f.a.createElement(m,{title:"SMTP密码",description:"由邮件服务商提供的密码"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:v.email_password,onChange:e=>this.set("email","email_password",e.target.value)})),f.a.createElement(m,{title:"发件地址",description:"由邮件服务商提供的发件地址"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"请输入",defaultValue:v.email_from_address,onChange:e=>this.set("email","email_from_address",e.target.value)})),f.a.createElement(m,{title:"邮件模板",description:"你可以在文档查看如何自定义邮件模板"},f.a.createElement("select",{onChange:e=>this.set("email","email_template",e.target.value),className:"form-control",value:v.email_template},g.map(e=>{return f.a.createElement("option",{key:Math.random(),value:e},e)}))),f.a.createElement(m,{title:"发送测试邮件",description:"邮件将会发送到当前登陆用户邮箱"},f.a.createElement(o["a"],{loading:x,type:"primary",onClick:()=>this.props.dispatch({type:"config/testSendMail"})},"发送测试邮件")))),f.a.createElement(s["a"].TabPane,{tab:"Telegram",key:"telegram"},f.a.createElement("div",{className:""},f.a.createElement(m,{title:"机器人Token",description:"请输入由Botfather提供的token。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"0000000000:xxxxxxxxx_xxxxxxxxxxxxxxx",defaultValue:y.telegram_bot_token,onChange:e=>this.set("telegram","telegram_bot_token",e.target.value)})),y.telegram_bot_token&&f.a.createElement(m,{title:"设置Webhook",description:"对机器人进行Webhook设置,不设置将无法收到Telegram通知。"},f.a.createElement(o["a"],{type:"primary",onClick:()=>{this.props.dispatch({type:"config/setTelegramWebhook"})},loading:b,disabled:b},"一键设置")),f.a.createElement(m,{title:"开启机器人通知",description:"开启后bot将会对绑定了telegram的管理员和用户进行基础通知。"},f.a.createElement(l["a"],{checked:parseInt(y.telegram_bot_enable),onChange:e=>this.set("telegram","telegram_bot_enable",e?1:0)})),f.a.createElement(m,{title:"群组地址",description:"填写后将会在用户端展示,或者被用于需要的地方。"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"https://t.me/xxxxxx",defaultValue:y.telegram_discuss_link,onChange:e=>this.set("telegram","telegram_discuss_link",e.target.value)})))),f.a.createElement(s["a"].TabPane,{tab:"APP",key:"app"},f.a.createElement("div",{className:"block-content"},f.a.createElement("div",{className:"row"},f.a.createElement("div",{className:"col-lg-12"},f.a.createElement("div",{className:"alert alert-warning",role:"alert"},f.a.createElement("p",{className:"mb-0"},"用于自有客户端(APP)的版本管理及更新"))))),f.a.createElement("div",{className:""},f.a.createElement(m,{title:"Windows",description:"Windows端版本号及下载地址"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"1.0.0",defaultValue:w.windows_version,onChange:e=>this.set("app","windows_version",e.target.value)}),f.a.createElement("input",{type:"text",className:"form-control mt-1",placeholder:"https://xxxx.com/xxx.exe",defaultValue:w.windows_download_url,onChange:e=>this.set("app","windows_download_url",e.target.value)})),f.a.createElement(m,{title:"macOS",description:"macOS端版本号及下载地址"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"1.0.0",defaultValue:w.macos_version,onChange:e=>this.set("app","macos_version",e.target.value)}),f.a.createElement("input",{type:"text",className:"form-control mt-1",placeholder:"https://xxxx.com/xxx.dmg",defaultValue:w.macos_download_url,onChange:e=>this.set("app","macos_download_url",e.target.value)})),f.a.createElement(m,{title:"Android",description:"Android端版本号及下载地址"},f.a.createElement("input",{type:"text",className:"form-control",placeholder:"1.0.0",defaultValue:w.android_version,onChange:e=>this.set("app","android_version",e.target.value)}),f.a.createElement("input",{type:"text",className:"form-control mt-1",placeholder:"https://xxxx.com/xxx.apk",defaultValue:w.android_download_url,onChange:e=>this.set("app","android_download_url",e.target.value)})))))))}}t["default"]=Object(p["c"])(e=>{var t=e.plan,n=e.config;return{plan:t,config:n}})(g)},"1j5w":function(e,t,n){"use strict";var r=n("q1tI"),i=n.n(r),o=n("xI0J"),a=n("4IlW"),s=n("2GS6"),l=n("Gytx"),c=n.n(l),u=n("TSYQ"),h=n.n(u);function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d(e){for(var t=1;t0&&setTimeout(function(){e.onMotionEnd({deadline:!0})},i)}})},e.nextFrame=function(t){e.cancelNextFrame(),e.raf=pe()(t)},e.cancelNextFrame=function(){e.raf&&(pe.a.cancel(e.raf),e.raf=null)},e.state={status:Ce,statusActive:!1,newStatus:!1,statusStyle:null},e.$cacheEle=null,e.node=null,e.raf=null,e}return le()(t,e),ie()(t,[{key:"componentDidMount",value:function(){this.onDomUpdate()}},{key:"componentDidUpdate",value:function(){this.onDomUpdate()}},{key:"componentWillUnmount",value:function(){this._destroyed=!0,this.removeEventListener(this.$cacheEle),this.cancelNextFrame()}},{key:"render",value:function(){var e,t=this.state,n=t.status,i=t.statusActive,o=t.statusStyle,a=this.props,s=a.children,l=a.motionName,c=a.visible,u=a.removeOnLeave,f=a.leavedClassName,d=a.eventProps;return s?n!==Ce&&r(this.props)?s(ee()({},d,{className:h()((e={},Z()(e,ke(l,n),n!==Ce),Z()(e,ke(l,n+"-active"),n!==Ce&&i),Z()(e,l,"string"===typeof l),e)),style:o}),this.setNodeRef):c?s(ee()({},d),this.setNodeRef):u?null:s(ee()({},d,{className:f}),this.setNodeRef):null}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,i=t.status;if(!r(e))return{};var o=e.visible,a=e.motionAppear,s=e.motionEnter,l=e.motionLeave,c=e.motionLeaveImmediately,u={prevProps:e};return(i===Oe&&!a||i===Te&&!s||i===Le&&!l)&&(u.status=Ce,u.statusActive=!1,u.newStatus=!1),!n&&o&&a&&(u.status=Oe,u.statusActive=!1,u.newStatus=!0),n&&!n.visible&&o&&s&&(u.status=Te,u.statusActive=!1,u.newStatus=!0),(n&&n.visible&&!o&&l||!n&&c&&!o&&l)&&(u.status=Le,u.statusActive=!1,u.newStatus=!0),u}}]),t}(i.a.Component);return o.propTypes=ee()({},Ae,{internalRef:ue.a.oneOfType([ue.a.object,ue.a.func])}),o.defaultProps={visible:!0,motionEnter:!0,motionAppear:!0,motionLeave:!0,removeOnLeave:!0},Object(he["polyfill"])(o),n?i.a.forwardRef(function(e,t){return i.a.createElement(o,ee()({internalRef:t},e))}):o}var je=Pe(Se),Me={adjustX:1,adjustY:1},Re={topLeft:{points:["bl","tl"],overflow:Me,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:Me,offset:[0,7]},leftTop:{points:["tr","tl"],overflow:Me,offset:[-4,0]},rightTop:{points:["tl","tr"],overflow:Me,offset:[4,0]}},Ne=Re;function De(e){return De="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(e)}function Ie(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $e(e,t){for(var n=0;n=n.subMenuTitle.offsetWidth||(e.style.minWidth="".concat(n.subMenuTitle.offsetWidth,"px"))}},n.saveSubMenuTitle=function(e){n.subMenuTitle=e};var r=e.store,i=e.eventKey,o=r.getState(),s=o.defaultActiveFirst;n.isRootMenu=!1;var l=!1;return s&&(l=s[i]),Xe(r,i,l),n}return He(t,e),Fe(t,[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e=this,t=this.props,n=t.mode,r=t.parentMenu,i=t.manualRef;i&&i(this),"horizontal"===n&&r.isRootMenu&&this.props.isOpen&&(this.minWidthTimeout=setTimeout(function(){return e.adjustWidth()},0))}},{key:"componentWillUnmount",value:function(){var e=this.props,t=e.onDestroy,n=e.eventKey;t&&t(n),this.minWidthTimeout&&clearTimeout(this.minWidthTimeout),this.mouseenterTimeout&&clearTimeout(this.mouseenterTimeout)}},{key:"renderChildren",value:function(e){var t=this,n=this.props,i={mode:"horizontal"===n.mode?"vertical":n.mode,visible:this.props.isOpen,level:n.level+1,inlineIndent:n.inlineIndent,focusable:!1,onClick:this.onSubMenuClick,onSelect:this.onSelect,onDeselect:this.onDeselect,onDestroy:this.onDestroy,selectedKeys:n.selectedKeys,eventKey:"".concat(n.eventKey,"-menu-"),openKeys:n.openKeys,motion:n.motion,onOpenChange:this.onOpenChange,subMenuOpenDelay:n.subMenuOpenDelay,parentMenu:this,subMenuCloseDelay:n.subMenuCloseDelay,forceSubMenuRender:n.forceSubMenuRender,triggerSubMenuAction:n.triggerSubMenuAction,builtinPlacements:n.builtinPlacements,defaultActiveFirst:n.store.getState().defaultActiveFirst[B(n.eventKey)],multiple:n.multiple,prefixCls:n.rootPrefixCls,id:this.internalMenuId,manualRef:this.saveMenuInstance,itemIcon:n.itemIcon,expandIcon:n.expandIcon},o=this.haveRendered;if(this.haveRendered=!0,this.haveOpened=this.haveOpened||i.visible||i.forceSubMenuRender,!this.haveOpened)return r["createElement"]("div",null);var a=Ge({},n.motion,{leavedClassName:"".concat(n.rootPrefixCls,"-hidden"),removeOnLeave:!1,motionAppear:o||!i.visible||"inline"!==i.mode});return r["createElement"](je,Object.assign({visible:i.visible},a),function(n){var o=n.className,a=n.style,s=h()("".concat(i.prefixCls,"-sub"),o);return r["createElement"](Ht,Object.assign({},i,{id:t.internalMenuId,className:s,style:a}),e)})}},{key:"render",value:function(){var e,t=Ge({},this.props),n=t.isOpen,i=this.getPrefixCls(),o="inline"===t.mode,a=h()(i,"".concat(i,"-").concat(t.mode),(e={},qe(e,t.className,!!t.className),qe(e,this.getOpenClassName(),n),qe(e,this.getActiveClassName(),t.active||n&&!o),qe(e,this.getDisabledClassName(),t.disabled),qe(e,this.getSelectedClassName(),this.isChildrenSelected()),e));this.internalMenuId||(t.eventKey?this.internalMenuId="".concat(t.eventKey,"$Menu"):(Ke+=1,this.internalMenuId="$__$".concat(Ke,"$Menu")));var s={},l={},c={};t.disabled||(s={onMouseLeave:this.onMouseLeave,onMouseEnter:this.onMouseEnter},l={onClick:this.onTitleClick},c={onMouseEnter:this.onTitleMouseEnter,onMouseLeave:this.onTitleMouseLeave});var u={};o&&(u.paddingLeft=t.inlineIndent*t.level);var f={};this.props.isOpen&&(f={"aria-owns":this.internalMenuId});var d=null;"horizontal"!==t.mode&&(d=this.props.expandIcon,"function"===typeof this.props.expandIcon&&(d=r["createElement"](this.props.expandIcon,Ge({},this.props))));var p=r["createElement"]("div",Object.assign({ref:this.saveSubMenuTitle,style:u,className:"".concat(i,"-title")},c,l,{"aria-expanded":n},f,{"aria-haspopup":"true",title:"string"===typeof t.title?t.title:void 0}),t.title,d||r["createElement"]("i",{className:"".concat(i,"-arrow")})),m=this.renderChildren(t.children),g=t.parentMenu.isRootMenu?t.parentMenu.props.getPopupContainer:function(e){return e.parentNode},v=Ye[t.mode],y=t.popupOffset?{offset:t.popupOffset}:{},b="inline"===t.mode?"":t.popupClassName,w=t.disabled,x=t.triggerSubMenuAction,_=t.subMenuOpenDelay,E=t.forceSubMenuRender,S=t.subMenuCloseDelay,k=t.builtinPlacements;return H.forEach(function(e){return delete t[e]}),delete t.onClick,r["createElement"]("li",Object.assign({},t,s,{className:a,role:"menuitem"}),o&&p,o&&m,!o&&r["createElement"](X["a"],{prefixCls:i,popupClassName:"".concat(i,"-popup ").concat(b),getPopupContainer:g,builtinPlacements:Object.assign({},Ne,k),popupPlacement:v,popupVisible:n,popupAlign:y,popup:m,action:w?[]:[x],mouseEnterDelay:_,mouseLeaveDelay:S,onPopupVisibleChange:this.onPopupVisibleChange,forceRender:E},p))}}]),t}(r["Component"]);Qe.defaultProps={onMouseEnter:$,onMouseLeave:$,onTitleMouseEnter:$,onTitleMouseLeave:$,onTitleClick:$,manualRef:$,mode:"vertical",title:""};var Ze=Object(o["connect"])(function(e,t){var n=e.openKeys,r=e.activeKey,i=e.selectedKeys,o=t.eventKey,a=t.subMenuKey;return{isOpen:n.indexOf(o)>-1,active:r[a]===o,selectedKeys:i}})(Qe);Ze.isSubMenu=!0;var Je=Ze;function et(e){return et="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},et(e)}function tt(e){return it(e)||rt(e)||nt()}function nt(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function rt(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function it(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ct(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function ut(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ht(e,t){for(var n=0;n=0});o.forEach(function(e){z(e,"display","inline-block")}),e.menuItemSizes=i.map(function(e){return U(e)}),o.forEach(function(e){z(e,"display","none")}),e.overflowedIndicatorWidth=U(t.children[t.children.length-1]),e.originalTotalWidth=e.menuItemSizes.reduce(function(e,t){return e+t},0),e.handleResize(),z(r,"display","none")}}}},e.handleResize=function(){if("horizontal"===e.props.mode){var t=q["findDOMNode"](mt(e));if(t){var n=U(t);e.overflowedItems=[];var r,i=0;e.originalTotalWidth>n+wt&&(r=-1,e.menuItemSizes.forEach(function(t){i+=t,i+e.overflowedIndicatorWidth<=n&&(r+=1)})),e.setState({lastVisibleIndex:r})}}},e}return gt(t,e),ft(t,[{key:"componentDidMount",value:function(){var e=this;if(this.setChildrenWidthAndResize(),1===this.props.level&&"horizontal"===this.props.mode){var t=q["findDOMNode"](this);if(!t)return;this.resizeObserver=new Y["default"](function(t){t.forEach(e.setChildrenWidthAndResize)}),[].slice.call(t.children).concat(t).forEach(function(t){e.resizeObserver.observe(t)}),"undefined"!==typeof MutationObserver&&(this.mutationObserver=new MutationObserver(function(){e.resizeObserver.disconnect(),[].slice.call(t.children).concat(t).forEach(function(t){e.resizeObserver.observe(t)}),e.setChildrenWidthAndResize()}),this.mutationObserver.observe(t,{attributes:!1,childList:!0,subTree:!1}))}}},{key:"componentWillUnmount",value:function(){this.resizeObserver&&this.resizeObserver.disconnect(),this.mutationObserver&&this.mutationObserver.disconnect()}},{key:"renderChildren",value:function(e){var t=this,n=this.state.lastVisibleIndex;return(e||[]).reduce(function(i,o,a){var s=o;if("horizontal"===t.props.mode){var l=t.getOverflowedSubMenuItem(o.props.eventKey,[]);void 0!==n&&-1!==t.props.className.indexOf("".concat(t.props.prefixCls,"-root"))&&(a>n&&(s=r["cloneElement"](o,{style:{display:"none"},eventKey:"".concat(o.props.eventKey,"-hidden"),className:"".concat(bt)})),a===n+1&&(t.overflowedItems=e.slice(n+1).map(function(e){return r["cloneElement"](e,{key:e.props.eventKey,mode:"vertical-left"})}),l=t.getOverflowedSubMenuItem(o.props.eventKey,t.overflowedItems)));var c=[].concat(tt(i),[l,s]);return a===e.length-1&&c.push(t.getOverflowedSubMenuItem(o.props.eventKey,[],!0)),c}return[].concat(tt(i),[s])},[])}},{key:"render",value:function(){var e=this.props,t=(e.visible,e.prefixCls,e.overflowedIndicator,e.mode,e.level,e.tag),n=e.children,i=(e.theme,lt(e,["visible","prefixCls","overflowedIndicator","mode","level","tag","children","theme"])),o=t;return r["createElement"](o,Object.assign({},i),this.renderChildren(n))}}]),t}(r["Component"]);xt.defaultProps={tag:"div",className:""};var _t=xt;function Et(e){return Et="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Et(e)}function St(){return St=Object.assign||function(e){for(var t=1;t1?n-1:0);for(var r=1;r2?r-2:0);for(var i=2;i",'"',"`"," ","\r","\n","\t"],l=["{","}","|","\\","^","`"].concat(s),c=["'"].concat(l),u=["%","/","?",";","#"].concat(c),h=["/","?","#"],f=255,d=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function v(e,t){if(e&&e instanceof r)return e;var n=new r;return n.parse(e,t),n}r.prototype.parse=function(e,t){var n,r,o,s,l,c=e;if(c=c.trim(),!t&&1===e.split("#").length){var v=a.exec(c);if(v)return this.pathname=v[1],v[2]&&(this.search=v[2]),this}var y=i.exec(c);if(y&&(y=y[0],o=y.toLowerCase(),this.protocol=y,c=c.substr(y.length)),(t||y||c.match(/^\/\/[^@\/]+@[^@\/]+/))&&(l="//"===c.substr(0,2),!l||y&&m[y]||(c=c.substr(2),this.slashes=!0)),!m[y]&&(l||y&&!g[y])){var b,w,x=-1;for(n=0;n127?C+="x":C+=k[O];if(!C.match(d)){var L=S.slice(0,n),A=S.slice(n+1),P=k.match(p);P&&(L.push(P[1]),A.unshift(P[2])),A.length&&(c=A.join(".")+c),this.hostname=L.join(".");break}}}}this.hostname.length>f&&(this.hostname=""),E&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var j=c.indexOf("#");-1!==j&&(this.hash=c.substr(j),c=c.slice(0,j));var M=c.indexOf("?");return-1!==M&&(this.search=c.substr(M),c=c.slice(0,M)),c&&(this.pathname=c),g[o]&&this.hostname&&!this.pathname&&(this.pathname=""),this},r.prototype.parseHost=function(e){var t=o.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},e.exports=v},"2mql":function(e,t,n){"use strict";var r=n("TOwV"),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function c(e){return r.isMemo(e)?s:l[e["$$typeof"]]||i}l[r.ForwardRef]=a,l[r.Memo]=s;var u=Object.defineProperty,h=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;function g(e,t,n){if("string"!==typeof t){if(m){var r=p(t);r&&r!==m&&g(e,r,n)}var i=h(t);f&&(i=i.concat(f(t)));for(var a=c(e),s=c(t),l=0;ll,n),i=void 0;return i=t.yearl?e.nextDecade:A.bind(e,t.year),u.a.createElement("td",{role:"gridcell",title:t.title,key:t.content,onClick:i,className:g()(r)},u.a.createElement("a",{className:c+"-year"},t.content))});return u.a.createElement("tr",{key:n,role:"row"},r)}),f=i&&i("year");return u.a.createElement("div",{className:this.prefixCls},u.a.createElement("div",null,u.a.createElement("div",{className:c+"-header"},u.a.createElement("a",{className:c+"-prev-decade-btn",role:"button",onClick:this.previousDecade,title:r.previousDecade}),u.a.createElement("a",{className:c+"-decade-select",role:"button",onClick:t.onDecadePanelShow,title:r.decadeSelect},u.a.createElement("span",{className:c+"-decade-select-content"},s,"-",l),u.a.createElement("span",{className:c+"-decade-select-arrow"},"x")),u.a.createElement("a",{className:c+"-next-decade-btn",role:"button",onClick:this.nextDecade,title:r.nextDecade})),u.a.createElement("div",{className:c+"-body"},u.a.createElement("table",{className:c+"-table",cellSpacing:"0",role:"grid"},u.a.createElement("tbody",{className:c+"-tbody"},h))),f&&u.a.createElement("div",{className:c+"-footer"},f)))},t}(u.a.Component),j=P;P.propTypes={rootPrefixCls:f.a.string,value:f.a.object,defaultValue:f.a.object,renderFooter:f.a.func},P.defaultProps={onSelect:function(){}};var M=4,R=3;function N(e){var t=this.state.value.clone();t.add(e,"years"),this.setState({value:t})}function D(e,t){var n=this.state.value.clone();n.year(e),n.month(this.state.value.month()),this.props.onSelect(n),t.preventDefault()}var I=function(e){function t(n){i()(this,t);var r=a()(this,e.call(this,n));return r.state={value:n.value||n.defaultValue},r.prefixCls=n.rootPrefixCls+"-decade-panel",r.nextCentury=N.bind(r,100),r.previousCentury=N.bind(r,-100),r}return l()(t,e),t.prototype.render=function(){for(var e=this,t=this.state.value,n=this.props,r=n.locale,i=n.renderFooter,o=t.year(),a=100*parseInt(o/100,10),s=a-10,l=a+99,c=[],h=0,f=this.prefixCls,d=0;dl,h=(n={},n[f+"-cell"]=1,n[f+"-selected-cell"]=r<=o&&o<=i,n[f+"-last-century-cell"]=s,n[f+"-next-century-cell"]=c,n),d=r+"-"+i,p=void 0;return p=s?e.previousCentury:c?e.nextCentury:D.bind(e,r),u.a.createElement("td",{key:r,onClick:p,role:"gridcell",className:g()(h)},u.a.createElement("a",{className:f+"-decade"},d))});return u.a.createElement("tr",{key:n,role:"row"},r)});return u.a.createElement("div",{className:this.prefixCls},u.a.createElement("div",{className:f+"-header"},u.a.createElement("a",{className:f+"-prev-century-btn",role:"button",onClick:this.previousCentury,title:r.previousCentury}),u.a.createElement("div",{className:f+"-century"},a,"-",l),u.a.createElement("a",{className:f+"-next-century-btn",role:"button",onClick:this.nextCentury,title:r.nextCentury})),u.a.createElement("div",{className:f+"-body"},u.a.createElement("table",{className:f+"-table",cellSpacing:"0",role:"grid"},u.a.createElement("tbody",{className:f+"-tbody"},b))),y&&u.a.createElement("div",{className:f+"-footer"},y))},t}(u.a.Component),$=I;function F(e){var t=this.props.value.clone();t.add(e,"months"),this.props.onValueChange(t)}function B(e){var t=this.props.value.clone();t.add(e,"years"),this.props.onValueChange(t)}function V(e,t){return e?t:null}I.propTypes={locale:f.a.object,value:f.a.object,defaultValue:f.a.object,rootPrefixCls:f.a.string,renderFooter:f.a.func},I.defaultProps={onSelect:function(){}};var W=function(e){function t(n){i()(this,t);var r=a()(this,e.call(this,n));return H.call(r),r.nextMonth=F.bind(r,1),r.previousMonth=F.bind(r,-1),r.nextYear=B.bind(r,1),r.previousYear=B.bind(r,-1),r.state={yearPanelReferer:null},r}return l()(t,e),t.prototype.render=function(){var e=this,t=this.props,n=t.prefixCls,r=t.locale,i=t.mode,o=t.value,a=t.showTimePicker,s=t.enableNext,l=t.enablePrev,c=t.disabledMonth,h=t.renderFooter,f=null;return"month"===i&&(f=u.a.createElement(C,{locale:r,value:o,rootPrefixCls:n,onSelect:this.onMonthSelect,onYearPanelShow:function(){return e.showYearPanel("month")},disabledDate:c,cellRender:t.monthCellRender,contentRender:t.monthCellContentRender,renderFooter:h,changeYear:this.changeYear})),"year"===i&&(f=u.a.createElement(j,{locale:r,defaultValue:o,rootPrefixCls:n,onSelect:this.onYearSelect,onDecadePanelShow:this.showDecadePanel,renderFooter:h})),"decade"===i&&(f=u.a.createElement($,{locale:r,defaultValue:o,rootPrefixCls:n,onSelect:this.onDecadeSelect,renderFooter:h})),u.a.createElement("div",{className:n+"-header"},u.a.createElement("div",{style:{position:"relative"}},V(l&&!a,u.a.createElement("a",{className:n+"-prev-year-btn",role:"button",onClick:this.previousYear,title:r.previousYear})),V(l&&!a,u.a.createElement("a",{className:n+"-prev-month-btn",role:"button",onClick:this.previousMonth,title:r.previousMonth})),this.monthYearElement(a),V(s&&!a,u.a.createElement("a",{className:n+"-next-month-btn",onClick:this.nextMonth,title:r.nextMonth})),V(s&&!a,u.a.createElement("a",{className:n+"-next-year-btn",onClick:this.nextYear,title:r.nextYear}))),f)},t}(u.a.Component);W.propTypes={prefixCls:f.a.string,value:f.a.object,onValueChange:f.a.func,showTimePicker:f.a.bool,onPanelChange:f.a.func,locale:f.a.object,enablePrev:f.a.any,enableNext:f.a.any,disabledMonth:f.a.func,renderFooter:f.a.func,onMonthSelect:f.a.func},W.defaultProps={enableNext:1,enablePrev:1,onPanelChange:function(){},onValueChange:function(){}};var H=function(){var e=this;this.onMonthSelect=function(t){e.props.onPanelChange(t,"date"),e.props.onMonthSelect?e.props.onMonthSelect(t):e.props.onValueChange(t)},this.onYearSelect=function(t){var n=e.state.yearPanelReferer;e.setState({yearPanelReferer:null}),e.props.onPanelChange(t,n),e.props.onValueChange(t)},this.onDecadeSelect=function(t){e.props.onPanelChange(t,"year"),e.props.onValueChange(t)},this.changeYear=function(t){t>0?e.nextYear():e.previousYear()},this.monthYearElement=function(t){var n=e.props,r=n.prefixCls,i=n.locale,o=n.value,a=o.localeData(),s=i.monthBeforeYear,l=r+"-"+(s?"my-select":"ym-select"),c=t?" "+r+"-time-status":"",h=u.a.createElement("a",{className:r+"-year-select"+c,role:"button",onClick:t?null:function(){return e.showYearPanel("date")},title:t?null:i.yearSelect},o.format(i.yearFormat)),f=u.a.createElement("a",{className:r+"-month-select"+c,role:"button",onClick:t?null:e.showMonthPanel,title:t?null:i.monthSelect},i.monthFormat?o.format(i.monthFormat):a.monthsShort(o)),p=void 0;t&&(p=u.a.createElement("a",{className:r+"-day-select"+c,role:"button"},o.format(i.dayFormat)));var m=[];return m=s?[f,p,h]:[h,f,p],u.a.createElement("span",{className:l},Object(d["a"])(m))},this.showMonthPanel=function(){e.props.onPanelChange(null,"month")},this.showYearPanel=function(t){e.setState({yearPanelReferer:t}),e.props.onPanelChange(null,"year")},this.showDecadePanel=function(){e.props.onPanelChange(null,"decade")}};t["a"]=W},3:function(e,t){},"330p":function(e,t,n){"use strict";var r=n("7tNx"),i=RegExp.prototype.exec,o=String.prototype.replace,a=i,s="lastIndex",l=function(){var e=/a/,t=/b*/g;return i.call(e,"a"),i.call(t,"a"),0!==e[s]||0!==t[s]}(),c=void 0!==/()??/.exec("")[1],u=l||c;u&&(a=function(e){var t,n,a,u,h=this;return c&&(n=new RegExp("^"+h.source+"$(?!\\s)",r.call(h))),l&&(t=h[s]),a=i.call(h,e),l&&a&&(h[s]=h.global?a.index+a[0].length:t),c&&a&&a.length>1&&o.call(a[0],n,function(){for(u=1;u=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e){"string"!==typeof e&&(e+="");var t,n=0,r=-1,i=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!i){n=t+1;break}}else-1===r&&(i=!1,r=t+1);return-1===r?"":e.slice(n,r)}function i(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r=-1&&!r;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,r="/"===a.charAt(0))}return t=n(i(t.split("/"),function(e){return!!e}),!r).join("/"),(r?"/":"")+t||"."},t.normalize=function(e){var r=t.isAbsolute(e),a="/"===o(e,-1);return e=n(i(e.split("/"),function(e){return!!e}),!r).join("/"),e||r||(e="."),e&&a&&(e+="/"),(r?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(i(e,function(e,t){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t=0;n--)if(""!==e[n])break;return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var i=r(e.split("/")),o=r(n.split("/")),a=Math.min(i.length,o.length),s=a,l=0;l=1;--o)if(t=e.charCodeAt(o),47===t){if(!i){r=o;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},t.basename=function(e,t){var n=r(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},t.extname=function(e){"string"!==typeof e&&(e+="");for(var t=-1,n=0,r=-1,i=!0,o=0,a=e.length-1;a>=0;--a){var s=e.charCodeAt(a);if(47!==s)-1===r&&(i=!1,r=a+1),46===s?-1===t?t=a:1!==o&&(o=1):-1!==t&&(o=-1);else if(!i){n=a+1;break}}return-1===t||-1===r||0===o||1===o&&t===r-1&&t===n+1?"":e.slice(t,r)};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,n("Q2Ig"))},"3BRs":function(e,t,n){"use strict";(function(t,r){var i=n("lm0R");function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){D(t,e)}}e.exports=b;var a,s=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?setImmediate:i.nextTick;b.WritableState=y;var l=Object.create(n("Onz0"));l.inherits=n("P7XM");var c={deprecate:n("t9FE")},u=n("QpuX"),h=n("hwdV").Buffer,f=r.Uint8Array||function(){};function d(e){return h.from(e)}function p(e){return h.isBuffer(e)||e instanceof f}var m,g=n("RoFp");function v(){}function y(e,t){a=a||n("sZro"),e=e||{};var r=t instanceof a;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var i=e.highWaterMark,s=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(s||0===s)?s:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var c=!1===e.decodeStrings;this.decodeStrings=!c,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){O(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function b(e){if(a=a||n("sZro"),!m.call(b,this)&&!(this instanceof a))return new b(e);this._writableState=new y(e,this),this.writable=!0,e&&("function"===typeof e.write&&(this._write=e.write),"function"===typeof e.writev&&(this._writev=e.writev),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.final&&(this._final=e.final)),u.call(this)}function w(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}function x(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"===typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}function _(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!==typeof t||(t=h.from(t,n)),t}function E(e,t,n,r,i,o){if(!n){var a=_(t,r,i);r!==a&&(n=!0,i="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var l=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"===typeof e?(n=e,e=null,t=null):"function"===typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||N(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n("Q2Ig"),n("yLpj"))},"3CBa":function(e,t,n){"use strict";var r=n("einR"),i=n("y+Vt"),o=n("Dagg"),a=n("6GrX"),s=n("3U8f"),l=Math.sin,c=Math.cos,u=Math.PI,h=2*Math.PI,f=180/u,d=function(){function e(){}return e.prototype.reset=function(e){this._start=!0,this._d=[],this._str="",this._p=Math.pow(10,e||4)},e.prototype.moveTo=function(e,t){this._add("M",e,t)},e.prototype.lineTo=function(e,t){this._add("L",e,t)},e.prototype.bezierCurveTo=function(e,t,n,r,i,o){this._add("C",e,t,n,r,i,o)},e.prototype.quadraticCurveTo=function(e,t,n,r){this._add("Q",e,t,n,r)},e.prototype.arc=function(e,t,n,r,i,o){this.ellipse(e,t,n,n,0,r,i,o)},e.prototype.ellipse=function(e,t,n,i,o,a,s,d){var p=s-a,m=!d,g=Math.abs(p),v=Object(r["j"])(g-h)||(m?p>=h:-p>=h),y=p>0?p%h:p%h+h,b=!1;b=!!v||!Object(r["j"])(g)&&y>=u===!!m;var w=e+n*c(a),x=t+i*l(a);this._start&&this._add("M",w,x);var _=Math.round(o*f);if(v){var E=1/this._p,S=(m?1:-1)*(h-E);this._add("A",n,i,_,1,+m,e+n*c(a+S),t+i*l(a+S)),E>.01&&this._add("A",n,i,_,0,+m,w,x)}else{var k=e+n*c(s),C=t+i*l(s);this._add("A",n,i,_,+b,+m,k,C)}},e.prototype.rect=function(e,t,n,r){this._add("M",e,t),this._add("l",n,0),this._add("l",0,r),this._add("l",-n,0),this._add("Z")},e.prototype.closePath=function(){this._d.length>0&&this._add("Z")},e.prototype._add=function(e,t,n,r,i,o,a,s,l){for(var c=[],u=this._p,h=1;h"}function j(e){return""}function M(e,t){t=t||{};var n=t.newline?"\n":"";function r(e){var t=e.children,i=e.tag,o=e.attrs;return P(i,o)+Object(S["a"])(e.text)+(t?""+n+Object(g["D"])(t,function(e){return r(e)}).join(n)+n:"")+j(i)}return r(e)}function R(e,t,n){n=n||{};var r=n.newline?"\n":"",i=" {"+r,o=r+"}",a=Object(g["D"])(Object(g["B"])(e),function(t){return t+i+Object(g["D"])(Object(g["B"])(e[t]),function(n){return n+":"+e[t][n]+";"}).join(r)+o}).join(r),s=Object(g["D"])(Object(g["B"])(t),function(e){return"@keyframes "+e+i+Object(g["D"])(Object(g["B"])(t[e]),function(n){return n+i+Object(g["D"])(Object(g["B"])(t[e][n]),function(r){var i=t[e][n][r];return"d"===r&&(i='path("'+i+'")'),r+":"+i+";"}).join(r)+o}).join(r)+o}).join(r);return a||s?[""].join(r):""}function N(e){return{zrId:e,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssClassIdx:0,cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function D(e,t,n,r){return A("svg","root",{width:e,height:t,xmlns:k,"xmlns:xlink":C,version:"1.1",baseProfile:"full",viewBox:!!r&&"0 0 "+e+" "+t},n)}var I=n("Xnb7"),$=n("hYLj"),F=n("IMiH"),B=n("1MYJ"),V=n("s2Iz"),W={cubicIn:"0.32,0,0.67,0",cubicOut:"0.33,1,0.68,1",cubicInOut:"0.65,0,0.35,1",quadraticIn:"0.11,0,0.5,0",quadraticOut:"0.5,1,0.89,1",quadraticInOut:"0.45,0,0.55,1",quarticIn:"0.5,0,0.75,0",quarticOut:"0.25,1,0.5,1",quarticInOut:"0.76,0,0.24,1",quinticIn:"0.64,0,0.78,0",quinticOut:"0.22,1,0.36,1",quinticInOut:"0.83,0,0.17,1",sinusoidalIn:"0.12,0,0.39,0",sinusoidalOut:"0.61,1,0.88,1",sinusoidalInOut:"0.37,0,0.63,1",exponentialIn:"0.7,0,0.84,0",exponentialOut:"0.16,1,0.3,1",exponentialInOut:"0.87,0,0.13,1",circularIn:"0.55,0,1,0.45",circularOut:"0,0.55,0.45,1",circularInOut:"0.85,0,0.15,1"},H="transform-origin";function U(e,t,n){var i=Object(g["l"])({},e.shape);Object(g["l"])(i,t),e.buildPath(n,i);var o=new p;return o.reset(Object(r["f"])(e)),n.rebuildPath(o,1),o.generateStr(),o.getStr()}function z(e,t){var n=t.originX,r=t.originY;(n||r)&&(e[H]=n+"px "+r+"px")}var G={fill:"fill",opacity:"opacity",lineWidth:"stroke-width",lineDashOffset:"stroke-dashoffset"};function q(e,t){var n=t.zrId+"-ani-"+t.cssAnimIdx++;return t.cssAnims[n]=e,n}function K(e,t,n){var r,i,o=e.shape.paths,a={};if(Object(g["j"])(o,function(e){var t=N(n.zrId);t.animation=!0,X(e,{},t,!0);var o=t.cssAnims,s=t.cssNodes,l=Object(g["B"])(o),c=l.length;if(c){i=l[c-1];var u=o[i];for(var h in u){var f=u[h];a[h]=a[h]||{d:""},a[h].d+=f.d||""}for(var d in s){var p=s[d].animation;p.indexOf(i)>=0&&(r=p)}}}),r){t.d=!1;var s=q(a,n);return r.replace(i,s)}}function Y(e){return Object(g["y"])(e)?W[e]?"cubic-bezier("+W[e]+")":Object(V["a"])(e)?e:"":""}function X(e,t,n,i){var o=e.animators,a=o.length,s=[];if(e instanceof B["a"]){var l=K(e,t,n);if(l)s.push(l);else if(!a)return}else if(!a)return;for(var c={},u=0;u0}).length){var P=q(h,n);return P+" "+o[0]+" both"}}for(var y in c){l=v(c[y]);l&&s.push(l)}if(s.length){var b=n.zrId+"-cls-"+n.cssClassIdx++;n.cssNodes["."+b]={animation:s.join(",")},t["class"]=b}}var Q=n("dqUG"),Z=n("cm6r"),J=Math.round;function ee(e){return e&&Object(g["y"])(e.src)}function te(e){return e&&Object(g["u"])(e.toDataURL)}function ne(e,t,n,i){E(function(o,a){var s="fill"===o||"stroke"===o;s&&Object(r["k"])(a)?ge(t,e,o,i):s&&Object(r["n"])(a)?ve(n,e,o,i):e[o]=a},t,n,!1),me(n,e,i)}function re(e){return Object(r["j"])(e[0]-1)&&Object(r["j"])(e[1])&&Object(r["j"])(e[2])&&Object(r["j"])(e[3]-1)}function ie(e){return Object(r["j"])(e[4])&&Object(r["j"])(e[5])}function oe(e,t,n){if(t&&(!ie(t)||!re(t))){var i=n?10:1e4;e.transform=re(t)?"translate("+J(t[4]*i)/i+" "+J(t[5]*i)/i+")":Object(r["e"])(t)}}function ae(e,t,n){for(var r=e.points,i=[],o=0;oc?(a=null==n[f+1]?null:n[f+1].elm,Re(e,a,n,l,f)):Ne(e,t,s,c))}function $e(e,t){var n=t.elm=e.elm,r=e.children,i=t.children;e!==t&&(De(e,t),Le(t.text)?Ae(r)&&Ae(i)?r!==i&&Ie(n,r,i):Ae(i)?(Ae(e.text)&&ke(n,""),Re(n,null,i,0,i.length-1)):Ae(r)?Ne(n,r,0,r.length-1):Ae(e.text)&&ke(n,""):e.text!==t.text&&(Ae(r)&&Ne(n,r,0,r.length-1),ke(n,t.text)))}function Fe(e,t){if(je(e,t))$e(e,t);else{var n=e.elm,r=Ee(n);Me(t),null!==r&&(we(r,t.elm,Se(n)),Ne(r,[e],0,0))}return t}var Be=n("NDc/"),Ve=0,We=function(){function e(e,t,n){if(this.type="svg",this.refreshHover=He("refreshHover"),this.configLayer=He("configLayer"),this.storage=t,this._opts=n=Object(g["l"])({},n),this.root=e,this._id="zr"+Ve++,this._oldVNode=D(n.width,n.height),e&&!n.ssr){var r=this._viewport=document.createElement("div");r.style.cssText="position:relative;overflow:hidden";var i=this._svgDom=this._oldVNode.elm=L("svg");De(null,this._oldVNode),r.appendChild(i),e.appendChild(r)}this.resize(n.width,n.height)}return e.prototype.getType=function(){return this.type},e.prototype.getViewportRoot=function(){return this._viewport},e.prototype.getViewportRootOffset=function(){var e=this.getViewportRoot();if(e)return{offsetLeft:e.offsetLeft||0,offsetTop:e.offsetTop||0}},e.prototype.getSvgDom=function(){return this._svgDom},e.prototype.refresh=function(){if(this.root){var e=this.renderToVNode({willUpdate:!0});e.attrs.style="position:absolute;left:0;top:0;user-select:none",Fe(this._oldVNode,e),this._oldVNode=e}},e.prototype.renderOneToVNode=function(e){return pe(e,N(this._id))},e.prototype.renderToVNode=function(e){e=e||{};var t=this.storage.getDisplayList(!0),n=this._backgroundColor,i=this._width,o=this._height,a=N(this._id);a.animation=e.animation,a.willUpdate=e.willUpdate,a.compress=e.compress;var s=[];if(n&&"none"!==n){var l=Object(r["p"])(n),c=l.color,u=l.opacity;this._bgVNode=A("rect","bg",{width:i,height:o,x:"0",y:"0",id:"0",fill:c,"fill-opacity":u}),s.push(this._bgVNode)}else this._bgVNode=null;var h=e.compress?null:this._mainVNode=A("g","main",{},[]);this._paintList(t,a,h?h.children:s),h&&s.push(h);var f=Object(g["D"])(Object(g["B"])(a.defs),function(e){return a.defs[e]});if(f.length&&s.push(A("defs","defs",{},f)),e.animation){var d=R(a.cssNodes,a.cssAnims,{newline:!0});if(d){var p=A("style","stl",{},[],d);s.push(p)}}return D(i,o,s,e.useViewBox)},e.prototype.renderToString=function(e){return e=e||{},M(this.renderToVNode({animation:Object(g["K"])(e.cssAnimation,!0),willUpdate:!1,compress:!0,useViewBox:Object(g["K"])(e.useViewBox,!0)}),{newline:!0})},e.prototype.setBackgroundColor=function(e){this._backgroundColor=e;var t=this._bgVNode;if(t&&t.elm){var n=Object(r["p"])(e),i=n.color,o=n.opacity;t.elm.setAttribute("fill",i),o<1&&t.elm.setAttribute("fill-opacity",o)}},e.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},e.prototype._paintList=function(e,t,n){for(var r,i,o=e.length,a=[],s=0,l=0,c=0;c=0;p--)if(h&&i&&h[p]===i[p])break;for(var m=d-1;m>p;m--)s--,r=a[s-1];for(var g=p+1;g0},t.prototype.hasFill=function(){var e=this.style,t=e.fill;return null!=t&&"none"!==t},t.prototype.createStyle=function(e){return Object(s["g"])(c,e)},t.prototype.setBoundingRect=function(e){this._rect=e},t.prototype.getBoundingRect=function(){var e=this.style;if(!this._rect){var t=e.text;null!=t?t+="":t="";var n=Object(o["d"])(t,e.font,e.textAlign,e.textBaseline);if(n.x+=e.x||0,n.y+=e.y||0,this.hasStroke()){var r=e.lineWidth;n.x-=r/2,n.y-=r/2,n.width+=r,n.height+=r}this._rect=n}return this._rect},t.initDefaultProps=function(){var e=t.prototype;e.dirtyRectTolerance=10}(),t}(i["c"]);u.prototype.type="tspan",t["a"]=u},"3XVG":function(e,t,n){"use strict";n("bbsP");var r=n("/wGt"),i=(n("+L6B"),n("2/Rp")),o=(n("5Dmo"),n("3S7+")),a=(n("OaEy"),n("2fM7")),s=(n("5NDa"),n("5rEg")),l=(n("Pwec"),n("CtXQ")),c=n("p0pE"),u=n.n(c),h=(n("/xke"),n("TeRw")),f=n("q1tI"),d=n.n(f),p=n("/MKj"),m=(n("/zsF"),n("PArb"));class g extends d.a.Component{constructor(e){super(e),this.state={settings:this.props.settings||{servers:[],hosts:{}}}}addHost(){this.state.settings.hosts}addServer(){var e=this.state.settings.servers,t={address:"",port:53,domains:[],expectIPs:[]};e.push(t),this.setState({settings:u()({},this.state.settings,{servers:e})},()=>{this.props.onChange(this.state.settings)})}dropServer(e){var t=this.state.settings.servers;t.splice(e,1),this.setState({settings:u()({},this.state.settings,{servers:t})},()=>{this.props.onChange(this.state.settings)})}changeServer(e,t,n){var r=this.state.settings.servers;"domains"===t?r[e].domains=n.split("\n"):r[e][t]=n,this.setState({settings:u()({},this.state.settings,{servers:r})},()=>{this.props.onChange(this.state.settings)})}render(){var e=this.state.settings.servers;return d.a.createElement(d.a.Fragment,null,d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"DNS服务器表"),e.map((e,t)=>{var n;return d.a.createElement("div",{key:t},d.a.createElement("div",{className:"row"},d.a.createElement(m["a"],{type:"horizontal"},e.address||"服务器组".concat(t+1)," ",d.a.createElement(l["a"],{type:"delete",style:{color:"#ff4d4f"},onClick:()=>this.dropServer(t)})),d.a.createElement("div",{className:"form-group col-md-9 col-xs-12"},d.a.createElement("label",null,"DNS服务器地址"),d.a.createElement(s["a"],{placeholder:"请输入DNS服务器地址",value:e.address,onChange:e=>this.changeServer(t,"address",e.target.value)})),d.a.createElement("div",{className:"form-group col-md-3 col-xs-12"},d.a.createElement("label",null,"端口"),d.a.createElement(s["a"],{type:"number",placeholder:"端口",value:e.port,onChange:e=>this.changeServer(t,"port",parseInt(e.target.value))}))),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"域名"),d.a.createElement(s["a"].TextArea,{rows:5,onChange:e=>this.changeServer(t,"domains",e.target.value),value:null===(n=e.domains)||void 0===n?void 0:n.join("\n"),placeholder:"域名列表,此列表包含的域名,将优先使用此服务器进行查询。一行一条"})))}),d.a.createElement("div",null,d.a.createElement(i["a"],{type:"primary",style:{width:"100%"},onClick:()=>this.addServer()},"添加"))))}}class v extends d.a.Component{constructor(e){super(e);var t=this.props.settings;"{}"!==JSON.stringify(t)&&t||(t={domain:[],protocol:[]}),this.state={settings:t}}change(e,t){var n=this.state.settings;t=t.split("\n"),n[e]=t,this.setState({settings:n}),this.props.onChange(n)}render(){var e=this.state.settings,t=e.domain,n=e.protocol;return d.a.createElement(d.a.Fragment,null,d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"域名过滤器"),d.a.createElement(s["a"].TextArea,{value:t&&t.join("\n"),onChange:e=>this.change("domain",e.target.value),rows:5})),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"协议过滤器"),d.a.createElement(s["a"].TextArea,{value:n&&n.join("\n"),onChange:e=>this.change("protocol",e.target.value),rows:5})))}}n("BoS7");var y=n("Sdc0");class b extends d.a.Component{constructor(e){super(e);var t=this.props.settings;"{}"!==JSON.stringify(t)&&t||(t={serverName:"",allowInsecure:0}),this.state={settings:t}}change(e,t){var n=this.state.settings;n[e]=t,this.setState({settings:n}),this.props.onChange(this.state.settings)}render(){var e=this.state.settings,t=e.serverName,n=e.allowInsecure;return d.a.createElement(d.a.Fragment,null,d.a.createElement("div",null,d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"Server Name"),d.a.createElement(s["a"],{value:t,onChange:e=>this.change("serverName",e.target.value),placeholder:"不使用请留空"})),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"Allow Insecure"),d.a.createElement("div",null,d.a.createElement(y["a"],{checked:parseInt(n),onChange:e=>this.change("allowInsecure",e?"1":"0")})))))}}var w=n("lc5D"),x=n.n(w),_=(n("VeWa"),n("umNf"),n("8zNj"));class E extends d.a.Component{constructor(e){super(e),this.state={server:this.props.record||{tls:0,rate:1},visible:!1,childDrawer:{visible:!1}}}onShow(){if(this.setState({visible:!this.state.visible}),this.state.server.networkSettings&&"object"===typeof this.state.server.networkSettings){var e=this.state.server;e.networkSettings=JSON.stringify(e["networkSettings"],null,2),this.setState({server:e})}}save(){try{var e,t,n=this.state.server;n.networkSettings=n.networkSettings?"string"===typeof n.networkSettings&&JSON.parse(n.networkSettings):null,(null===(e=n.dnsSettings)||void 0===e?void 0:null===(t=e.servers)||void 0===t?void 0:t.length)||(n.dnsSettings=null),console.log(n),this.props.dispatch({type:"serverVmess/save",params:n,callback:()=>{this.onShow()}})}catch(e){h["a"].error({message:"请求失败",description:"传输协议配置格式有误"})}}showChildDrawer(e,t){this.setState({childDrawer:u()({},this.state.childDrawer,{visible:!this.state.childDrawer.visible,title:e,type:t})})}changeServer(e,t){this.setState({server:u()({},this.state.server,{[e]:t})})}renderChildDrawer(){var e=this.state.server,t=e.networkSettings,n=e.ruleSettings,r=e.tlsSettings,i=e.dnsSettings;switch(this.state.childDrawer.type){case"networkSettings":var o={tcp:"",ws:JSON.stringify({path:"/",headers:{Host:"v2ray.com"}},null,4),grpc:JSON.stringify({serviceName:"GunService"},null,4)};return d.a.createElement("div",{id:"v2ray-protocol"},d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"协议详细配置",d.a.createElement("a",{href:"https://www.v2ray.com/chapter_02/05_transport.html"},d.a.createElement(l["a"],{type:"link"}),"参考")),d.a.createElement(x.a,{placeholder:(null===o||void 0===o?void 0:o[this.state.server.network])||"",mode:"json",theme:"github",fontSize:14,showPrintMargin:!0,showGutter:!0,highlightActiveLine:!0,value:t||"",onChange:e=>this.formChange("networkSettings",e),setOptions:{enableBasicAutocompletion:!1,enableLiveAutocompletion:!1,enableSnippets:!1,showLineNumbers:!0,tabSize:2},ref:"editor"})));case"ruleSettings":return d.a.createElement(v,{settings:n,onChange:e=>this.changeServer("ruleSettings",e)});case"tlsSettings":return d.a.createElement(b,{settings:r,onChange:e=>this.changeServer("tlsSettings",e)});case"dnsSettings":return d.a.createElement(g,{settings:i,onChange:e=>this.changeServer("dnsSettings",e)})}}formChange(e,t){this.refs.editor&&this.refs.editor.editor.resize();var n=this.state.server;n[e]=t,this.setState({server:n})}render(){var e=this.state.server,t=this.props.serverVmess.saveLoading,n=this.props.serverManage.servers,c=this.props.serverGroup.groups,u=this.props.serverRoute.routes;return d.a.createElement(d.a.Fragment,null,d.a.cloneElement(this.props.children,{onClick:()=>this.onShow()}),d.a.createElement(r["a"],{id:"server",maskClosable:!0,title:e.id?"编辑节点":"新建节点",width:"80%",visible:this.state.visible,onClose:()=>this.onShow()},d.a.createElement("div",null,d.a.createElement("div",{className:"row"},d.a.createElement("div",{className:"form-group col-8"},d.a.createElement("label",null,"节点名称"),d.a.createElement(s["a"],{placeholder:"请输入节点名称",value:e.name,onChange:e=>this.formChange("name",e.target.value)})),d.a.createElement("div",{className:"form-group col-4"},d.a.createElement("label",null,"倍率"),d.a.createElement(s["a"],{addonAfter:"x",placeholder:"请输入节点倍率",value:e.rate,onChange:e=>this.formChange("rate",e.target.value)}))),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"节点标签"),d.a.createElement(a["a"],{mode:"tags",value:e.tags||[],style:{width:"100%"},placeholder:"输入后回车添加标签",onChange:e=>this.formChange("tags",e.length>0?e:null)})),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"订阅排除地区"),d.a.createElement(a["a"],{mode:"tags",value:e.excludes||[],style:{width:"100%"},placeholder:"输入后回车添加排除规则",onChange:e=>this.formChange("excludes",e.length>0?e:null)})),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"节点IPs"),d.a.createElement(a["a"],{mode:"tags",value:e.ips||[],style:{width:"100%"},placeholder:"输入后回车添加节点IP",onChange:e=>this.formChange("ips",e.length>0?e:null)})),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"权限组 ",d.a.createElement(_["a"],null,d.a.createElement("a",{href:"javascript:(0);"},"添加权限组"))),d.a.createElement(a["a"],{mode:"multiple",value:e.group_id,placeholder:"请选择权限组",style:{width:"100%"},onChange:e=>this.formChange("group_id",e)},c.map(e=>{return d.a.createElement(a["a"].Option,{key:e.id},e.name)}))),d.a.createElement("div",{className:"row"},d.a.createElement("div",{className:"form-group col-md-8 col-xs-12"},d.a.createElement("label",null,"节点地址"),d.a.createElement(s["a"],{placeholder:"请输入连接地址",value:e.host,onChange:e=>this.formChange("host",e.target.value)})),d.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},d.a.createElement("label",null,"TLS ",d.a.createElement("a",{href:"javascript:void(0);",onClick:()=>this.showChildDrawer("编辑TLS配置","tlsSettings")},"编辑配置")),d.a.createElement(a["a"],{value:parseInt(e.tls)?1:0,placeholder:"是否支持TLS",style:{width:"100%"},onChange:e=>this.formChange("tls",e)},d.a.createElement(a["a"].Option,{key:0,value:0},"不支持"),d.a.createElement(a["a"].Option,{key:1,value:1},"支持")))),d.a.createElement("div",{className:"row"},d.a.createElement("div",{className:"form-group col-md-6 col-xs-12"},d.a.createElement("label",null,"连接端口"),d.a.createElement(s["a"],{placeholder:"用户连接端口",value:e.port,onChange:e=>{this.formChange("port",e.target.value)}})),d.a.createElement("div",{className:"form-group col-md-6 col-xs-12"},d.a.createElement("label",null,"服务端口"),d.a.createElement(s["a"],{placeholder:"非NAT同连接端口",value:e.server_port,onChange:e=>this.formChange("server_port",e.target.value)}))),d.a.createElement("div",{className:"row"},d.a.createElement("div",{className:"form-group col-md-12 col-xs-12"},d.a.createElement("label",null,"传输协议 ",d.a.createElement("a",{href:"javascript:void(0);",onClick:()=>this.showChildDrawer("编辑协议配置","networkSettings")},"编辑配置")),d.a.createElement(a["a"],{value:e.network,placeholder:"选择传输协议",style:{width:"100%"},onChange:e=>this.formChange("network",e)},d.a.createElement(a["a"].Option,{value:"tcp"},"TCP"),d.a.createElement(a["a"].Option,{value:"ws"},"WebSocket"),d.a.createElement(a["a"].Option,{value:"grpc"},"gRPC")))),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,d.a.createElement(o["a"],{placement:"top"},"父节点 ",d.a.createElement("a",{target:"_blank",href:"https://docs.v2board.com/use/node.html#父节点与子节点关系",rel:"noreferrer"},d.a.createElement(l["a"],{type:"read"})))),d.a.createElement(a["a"],{value:e.parent_id||"",onChange:e=>this.formChange("parent_id",e),style:{width:"100%"}},d.a.createElement(a["a"].Option,{value:""},"无"),n.map(t=>{if("vmess"===t.type&&t.id!==e.id)return d.a.createElement(a["a"].Option,{key:Math.random(),value:t.id},t.name)}))),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",null,"路由组"),d.a.createElement(a["a"],{mode:"multiple",value:e.route_id||[],placeholder:"请选择路由组",style:{width:"100%"},onChange:e=>this.formChange("route_id",e.length>0?e:null)},u.map(e=>{return d.a.createElement(a["a"].Option,{key:e.id},e.remarks)})))),d.a.createElement("div",{className:"v2board-drawer-action"},d.a.createElement(i["a"],{style:{marginRight:8},onClick:()=>this.onShow()},"取消"),d.a.createElement(i["a"],{loading:t,onClick:()=>this.save(),type:"primary"},"提交")),d.a.createElement(r["a"],{closable:!1,id:"server",width:"80%",title:this.state.childDrawer.title,visible:this.state.childDrawer.visible,onClose:()=>this.showChildDrawer()},this.renderChildDrawer())))}}t["a"]=Object(p["c"])(e=>{var t=e.serverVmess,n=e.serverGroup,r=e.serverManage,i=e.serverRoute;return{serverVmess:t,serverGroup:n,serverManage:r,serverRoute:i}})(E)},"3a4m":function(e,t,n){e.exports=n("usdK").default},"3e3G":function(e,t,n){"use strict";var r=n("mrSG"),i=n("QuXc"),o=function(e){function t(t,n,r,i,o){var a=e.call(this,i)||this;return a.x=null==t?.5:t,a.y=null==n?.5:n,a.r=null==r?.5:r,a.type="radial",a.global=o||!1,a}return Object(r["a"])(t,e),t}(i["a"]);t["a"]=o},"3m+/":function(e,t,n){n("/sWw")("asyncIterator")},"3moC":function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={orders:[],fetchLoading:!1,assignLoading:!1,pagination:{pageSize:10,current:0},filter:[]};t["default"]={name:"order",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)},empty(e){return i()({},e,s)}},effects:{fetch(e,t){var n=t.put,r=t.select;return a().mark(function e(){var t,s;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,r(e=>e.order);case 2:return t=e.sent,e.next=5,n({type:"setState",payload:{fetchLoading:!0}});case 5:return e.next=7,Object(o["a"])("/"+window.settings.secure_path+"/order/fetch",i()({filter:t.filter},t.pagination));case 7:return s=e.sent,e.next=10,n({type:"setState",payload:{fetchLoading:!1}});case 10:if(200===s.code){e.next=12;break}return e.abrupt("return");case 12:return e.next=14,n({type:"setState",payload:{orders:s.data}});case 14:return e.next=16,n({type:"setState",payload:{pagination:i()({},t.pagination,{total:s.total})}});case 16:case"end":return e.stop()}},e)})()},filter(e,t){var n=e.filter,r=t.put,i=t.select;return a().mark(function e(){var t,o;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i(e=>e.order);case 2:return t=e.sent,o=t.pagination,o["current"]=1,e.next=7,r({type:"setState",payload:{filter:n}});case 7:return e.next=9,r({type:"fetch"});case 9:case"end":return e.stop()}},e)})()},addFilter(e,t){var n=e.key,r=e.condition,i=e.value,o=e.clear,s=t.put,l=t.select;return a().mark(function e(){var t,c,u;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:if(!o){e.next=3;break}return e.next=3,s({filter:[]});case 3:return e.next=5,l(e=>e.order);case 5:return t=e.sent,c=t.filter,u=t.pagination,c.push({key:n,condition:r,value:i}),u["current"]=1,e.next=12,s({type:"setState",payload:{filter:c,pagination:u}});case 12:return e.next=14,s({type:"fetch"});case 14:case"end":return e.stop()}},e)})()},update(e,t){var n=e.tradeNo,r=e.key,i=e.value,s=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/order/update",{trade_no:n,[r]:i});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,s({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},paid(e,t){var n=e.tradeNo,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/order/paid",{trade_no:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},cancel(e,t){var n=e.tradeNo,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/order/cancel",{trade_no:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},assign(e,t){var n=e.params,r=e.callback,s=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,s({type:"setState",payload:{assignLoading:!0}});case 2:return e.next=4,Object(o["b"])("/"+window.settings.secure_path+"/order/assign",i()({},n,{total_amount:100*n.total_amount}));case 4:return t=e.sent,e.next=7,s({type:"setState",payload:{assignLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,s({type:"fetch"});case 11:"function"===typeof r&&r();case 12:case"end":return e.stop()}},e)})()},changeTable(e,t){var n=e.pagination,r=t.select,o=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,r(e=>e.order);case 2:return t=e.sent,e.next=5,o({type:"setState",payload:{pagination:i()({},t.pagination,n)}});case 5:return e.next=7,o({type:"fetch"});case 7:case"end":return e.stop()}},e)})()}}}},4:function(e,t){},"43KI":function(e,t,n){t=e.exports=n("rXFu"),t.Stream=t,t.Readable=t,t.Writable=n("3BRs"),t.Duplex=n("sZro"),t.Transform=n("J78i"),t.PassThrough=n("eA/Y")},"48Dx":function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},"49sm":function(e,t){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},"4IlW":function(e,t,n){"use strict";var r={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=r.F1&&t<=r.F12)return!1;switch(t){case r.ALT:case r.CAPS_LOCK:case r.CONTEXT_MENU:case r.CTRL:case r.DOWN:case r.END:case r.ESC:case r.HOME:case r.INSERT:case r.LEFT:case r.MAC_FF_META:case r.META:case r.NUMLOCK:case r.NUM_CENTER:case r.PAGE_DOWN:case r.PAGE_UP:case r.PAUSE:case r.PRINT_SCREEN:case r.RIGHT:case r.SHIFT:case r.UP:case r.WIN_KEY:case r.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=r.ZERO&&e<=r.NINE)return!0;if(e>=r.NUM_ZERO&&e<=r.NUM_MULTIPLY)return!0;if(e>=r.A&&e<=r.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case r.SPACE:case r.QUESTION_MARK:case r.NUM_PLUS:case r.NUM_MINUS:case r.NUM_PERIOD:case r.NUM_DIVISION:case r.SEMICOLON:case r.DASH:case r.EQUALS:case r.COMMA:case r.PERIOD:case r.SLASH:case r.APOSTROPHE:case r.SINGLE_QUOTE:case r.OPEN_SQUARE_BRACKET:case r.BACKSLASH:case r.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};t["a"]=r},"4JlD":function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,s){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"===typeof e?o(a(e),function(a){var s=encodeURIComponent(r(a))+n;return i(e[a])?o(e[a],function(e){return s+encodeURIComponent(r(e))}).join(t):s+encodeURIComponent(r(e[a]))}).join(t):s?encodeURIComponent(r(s))+n+encodeURIComponent(r(e)):""};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function o(e,t){if(e.map)return e.map(t);for(var n=[],r=0;rl)r.f(e,n=a[l++],t[n]);return e}},"4mN7":function(e,t,n){"use strict";n.d(t,"d",function(){return d}),n.d(t,"c",function(){return p}),n.d(t,"b",function(){return v}),n.d(t,"e",function(){return y}),n.d(t,"a",function(){return b});var r=n("QBsz"),i=n("Sj9i"),o=Math.min,a=Math.max,s=Math.sin,l=Math.cos,c=2*Math.PI,u=r["d"](),h=r["d"](),f=r["d"]();function d(e,t,n){if(0!==e.length){for(var r=e[0],i=r[0],s=r[0],l=r[1],c=r[1],u=1;u1e-4)return p[0]=e-n,p[1]=t-i,m[0]=e+n,void(m[1]=t+i);if(u[0]=l(o)*n+e,u[1]=s(o)*i+t,h[0]=l(a)*n+e,h[1]=s(a)*i+t,g(p,u,h),v(m,u,h),o%=c,o<0&&(o+=c),a%=c,a<0&&(a+=c),o>a&&!d?a+=c:oo&&(f[0]=l(w)*n+e,f[1]=s(w)*i+t,g(p,f,p),v(m,f,m))}},"4nmR":function(e,t,n){"use strict";var r=n("vpQ4"),i=n("ANjH"),o=n("7bO/"),a=n("QLaP"),s=n.n(a),l=n("U8pU"),c=n("+0iv"),u=n.n(c),h=n("KQm4");function f(e){if(Array.isArray(e))return e}var d=n("25BE"),p=n("BsWD");function m(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(e){return f(e)||Object(d["a"])(e)||Object(p["a"])(e)||m()}var v=n("myn2"),y=n.n(v),b=n("1OyB"),w=n("vuIU"),x=n("QTEQ"),_=n.n(x);n("vgmO");function E(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,a,s=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n["return"]&&(a=n["return"](),Object(a)!==a))return}finally{if(c)throw i}}return s}}function S(e,t){return f(e)||E(e,t)||Object(p["a"])(e,t)||m()}var k=n("o0o1"),C=n.n(k);n.d(t,"a",function(){return oe}),n.d(t,"b",function(){return j});var O=Array.isArray.bind(Array),T=function(e){return"function"===typeof e},L=function(e){return e},A=function(){},P=function(e,t){for(var n=0,r=e.length;n-1&&(t[n]=e[n]),t},{})}var $=function(){function e(){Object(b["a"])(this,e),this._handleActions=null,this.hooks=D.reduce(function(e,t){return e[t]=[],e},{})}return Object(w["a"])(e,[{key:"use",value:function(e){s()(u()(e),"plugin.use: plugin should be plain object");var t=this.hooks;for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(s()(t[n],"plugin.use: unknown plugin property: ".concat(n)),"_handleActions"===n?this._handleActions=e[n]:"extraEnhancers"===n?t[n]=e[n]:t[n].push(e[n]))}},{key:"apply",value:function(e,t){var n=this.hooks,r=["onError","onHmr"];s()(r.indexOf(e)>-1,"plugin.apply: hook ".concat(e," cannot be applied"));var i=n[e];return function(){if(i.length){var e=!0,n=!1,r=void 0;try{for(var o,a=i[Symbol.iterator]();!(e=(o=a.next()).done);e=!0){var s=o.value;s.apply(void 0,arguments)}}catch(e){n=!0,r=e}finally{try{e||null==a.return||a.return()}finally{if(n)throw r}}}else t&&t.apply(void 0,arguments)}}},{key:"get",value:function(e){var t=this.hooks;return s()(e in t,"plugin.get: hook ".concat(e," cannot be got")),"extraReducers"===e?F(t[e]):"onReducer"===e?B(t[e]):t[e]}}]),e}();function F(e){var t={},n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done);n=!0){var l=a.value;t=Object(r["a"])({},t,l)}}catch(e){i=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return t}function B(e){return function(t){var n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var s=o.value;t=s(t)}}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return t}}function V(e){var t=e.reducers,n=e.initialState,r=e.plugin,o=e.sagaMiddleware,a=e.promiseMiddleware,c=e.createOpts.setupMiddlewares,u=void 0===c?L:c,f=r.get("extraEnhancers");s()(O(f),"[app.start] extraEnhancers should be array, but got ".concat(Object(l["a"])(f)));var d=r.get("onAction"),p=u([a,o].concat(Object(h["a"])(_()(d)))),m=i["c"],g=[i["a"].apply(void 0,Object(h["a"])(p))].concat(Object(h["a"])(f));return Object(i["d"])(t,n,m.apply(void 0,Object(h["a"])(g)))}function W(e,t){var n="".concat(t.namespace).concat(M).concat(e),r=n.replace(/\/@@[^/]+?$/,""),i=Array.isArray(t.reducers)?t.reducers[0][r]:t.reducers&&t.reducers[r];return i||t.effects&&t.effects[r]?n:e}function H(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return C.a.mark(function a(){var s;return C.a.wrap(function(a){while(1)switch(a.prev=a.next){case 0:a.t0=C.a.keys(e);case 1:if((a.t1=a.t0()).done){a.next=7;break}if(s=a.t1.value,!Object.prototype.hasOwnProperty.call(e,s)){a.next=5;break}return a.delegateYield(C.a.mark(function a(){var l,c;return C.a.wrap(function(a){while(1)switch(a.prev=a.next){case 0:return l=U(s,e[s],t,n,r,i),a.next=3,o["b"].fork(l);case 3:return c=a.sent,a.next=6,o["b"].fork(C.a.mark(function e(){return C.a.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,o["b"].take("".concat(t.namespace,"/@@CANCEL_EFFECTS"));case 2:return e.next=4,o["b"].cancel(c);case 4:case"end":return e.stop()}},e)}));case 6:case"end":return a.stop()}},a)})(),"t2",5);case 5:a.next=1;break;case 7:case"end":return a.stop()}},a)})}function U(e,t,n,r,i,a){var l,c,u=C.a.mark(v),f=t,d="takeEvery";if(Array.isArray(t)){var p=S(t,1);f=p[0];var m=t[1];m&&m.type&&(d=m.type,"throttle"===d&&(s()(m.ms,"app.start: opts.ms should be defined if type is throttle"),l=m.ms),"poll"===d&&(s()(m.delay,"app.start: opts.delay should be defined if type is poll"),c=m.delay)),s()(["watcher","takeEvery","takeLatest","throttle","poll"].indexOf(d)>-1,"app.start: effect type should be takeEvery, takeLatest, throttle, poll or watcher")}function g(){}function v(){var t,i,s,l,c,d,p,m,v,y=arguments;return C.a.wrap(function(u){while(1)switch(u.prev=u.next){case 0:for(t=y.length,i=new Array(t),s=0;s0?i[0]:{},c=l.__dva_resolve,d=void 0===c?g:c,p=l.__dva_reject,m=void 0===p?g:p,u.prev=2,u.next=5,o["b"].put({type:"".concat(e).concat(M,"@@start")});case 5:return u.next=7,f.apply(void 0,Object(h["a"])(i.concat(z(n,a))));case 7:return v=u.sent,u.next=10,o["b"].put({type:"".concat(e).concat(M,"@@end")});case 10:d(v),u.next=17;break;case 13:u.prev=13,u.t0=u["catch"](2),r(u.t0,{key:e,effectArgs:i}),u.t0._dontReject||m(u.t0);case 17:case"end":return u.stop()}},u,null,[[2,13]])}var y=G(i,v,n,e);switch(d){case"watcher":return v;case"takeLatest":return C.a.mark(function t(){return C.a.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,o["b"].takeLatest(e,y);case 2:case"end":return t.stop()}},t)});case"throttle":return C.a.mark(function t(){return C.a.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,o["b"].throttle(l,e,y);case 2:case"end":return t.stop()}},t)});case"poll":return C.a.mark(function t(){var n,r,i,a,s,l,u;return C.a.wrap(function(t){while(1)switch(t.prev=t.next){case 0:i=function(e,t){var i;return C.a.wrap(function(n){while(1)switch(n.prev=n.next){case 0:i=e.call;case 1:return n.next=4,i(y,t);case 4:return n.next=6,i(r,c);case 6:n.next=1;break;case 8:case"end":return n.stop()}},n)},r=function(e){return new Promise(function(t){return setTimeout(t,e)})},n=C.a.mark(i),a=o["b"].call,s=o["b"].take,l=o["b"].race;case 4:return t.next=7,s("".concat(e,"-start"));case 7:return u=t.sent,t.next=10,l([a(i,o["b"],u),s("".concat(e,"-stop"))]);case 10:t.next=4;break;case 12:case"end":return t.stop()}},t)});default:return C.a.mark(function t(){return C.a.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,o["b"].takeEvery(e,y);case 2:case"end":return t.stop()}},t)})}}function z(e,t){function n(n,r){s()(n,"dispatch: action should be a plain Object with type");var i=t.namespacePrefixWarning,o=void 0===i||i;o&&y()(0!==n.indexOf("".concat(e.namespace).concat(M)),"[".concat(r,"] ").concat(n," should not be prefixed with namespace ").concat(e.namespace))}function i(t){var i=t.type;return n(i,"sagaEffects.put"),o["b"].put(Object(r["a"])({},t,{type:W(i,e)}))}function a(t){var i=t.type;return n(i,"sagaEffects.put.resolve"),o["b"].put.resolve(Object(r["a"])({},t,{type:W(i,e)}))}function l(t){return"string"===typeof t?(n(t,"sagaEffects.take"),o["b"].take(W(t,e))):Array.isArray(t)?o["b"].take(t.map(function(t){return"string"===typeof t?(n(t,"sagaEffects.take"),W(t,e)):t})):o["b"].take(t)}return i.resolve=a,Object(r["a"])({},o["b"],{put:i,take:l})}function G(e,t,n,r){var i=!0,a=!1,s=void 0;try{for(var l,c=e[Symbol.iterator]();!(i=(l=c.next()).done);i=!0){var u=l.value;t=u(t,o["b"],n,r)}}catch(e){a=!0,s=e}finally{try{i||null==c.return||c.return()}finally{if(a)throw s}}return t}function q(e){return e}function K(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:q;return function(n,r){var i=r.type;return s()(i,"dispatch: action should be a plain Object with type"),e===i?t(n,r):n}}function Y(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:t,n=arguments.length>1?arguments[1]:void 0;return r(e,n)}}function Q(e,t,n){return Array.isArray(e)?e[1]((n||X)(e[0],t)):(n||X)(e||{},t)}function Z(e){return function(){return function(e){return function(n){var i=n.type;return t(i)?new Promise(function(t,i){e(Object(r["a"])({__dva_resolve:t,__dva_reject:i},n))}):e(n)}}};function t(t){if(!t||"string"!==typeof t)return!1;var n=t.split(M),r=S(n,1),i=r[0],o=e._models.filter(function(e){return e.namespace===i})[0];return!!(o&&o.effects&&o.effects[t])}}function J(e,t){return function(n){var i=n.type;return s()(i,"dispatch: action should be a plain Object with type"),y()(0!==i.indexOf("".concat(t.namespace).concat(M)),"dispatch: ".concat(i," should not be prefixed with namespace ").concat(t.namespace)),e(Object(r["a"])({},n,{type:W(i,t)}))}}function ee(e,t,n,r){var i=[],o=[];for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var s=e[a],l=s({dispatch:J(n._store.dispatch,t),history:n._history},r);T(l)?i.push(l):o.push(a)}return{funcs:i,nonFuncs:o}}function te(e,t){if(e[t]){var n=e[t],r=n.funcs,i=n.nonFuncs;y()(0===i.length,"[app.unmodel] subscription should return unlistener function, check these subscriptions ".concat(i.join(", ")));var o=!0,a=!1,s=void 0;try{for(var l,c=r[Symbol.iterator]();!(o=(l=c.next()).done);o=!0){var u=l.value;u()}}catch(e){a=!0,s=e}finally{try{o||null==c.return||c.return()}finally{if(a)throw s}}delete e[t]}}var ne=A,re=P,ie={namespace:"@@dva",state:0,reducers:{UPDATE:function(e){return e+1}}};function oe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.initialReducer,a=t.setupApp,l=void 0===a?ne:a,c=new $;c.use(I(e));var u={_models:[N(Object(r["a"])({},ie))],_store:null,_plugin:c,use:c.use.bind(c),model:h,start:m};return u;function h(e){var t=N(Object(r["a"])({},e));return u._models.push(t),t}function f(t,n,r,i){i=h(i);var o=u._store;o.asyncReducers[i.namespace]=Q(i.reducers,i.state,c._handleActions),o.replaceReducer(t()),i.effects&&o.runSaga(u._getSaga(i.effects,i,n,c.get("onEffect"),e)),i.subscriptions&&(r[i.namespace]=ee(i.subscriptions,i,u,n))}function d(e,t,n,r){var i=u._store;delete i.asyncReducers[r],delete t[r],i.replaceReducer(e()),i.dispatch({type:"@@dva/UPDATE"}),i.dispatch({type:"".concat(r,"/@@CANCEL_EFFECTS")}),te(n,r),u._models=u._models.filter(function(e){return e.namespace!==r})}function p(e,t,n,r,i){var o=u._store,a=i.namespace,s=re(u._models,function(e){return e.namespace===a});~s&&(o.dispatch({type:"".concat(a,"/@@CANCEL_EFFECTS")}),delete o.asyncReducers[a],delete t[a],te(n,a),u._models.splice(s,1)),u.model(i),o.dispatch({type:"@@dva/UPDATE"})}function m(){var a=function(e,t){e&&("string"===typeof e&&(e=new Error(e)),e.preventDefault=function(){e._dontReject=!0},c.apply("onError",function(e){throw new Error(e.stack||e)})(e,u._store.dispatch,t))},h=Object(o["a"])(),m=Z(u);u._getSaga=H.bind(null);var g=[],v=Object(r["a"])({},n),y=!0,b=!1,w=void 0;try{for(var x,_=u._models[Symbol.iterator]();!(y=(x=_.next()).done);y=!0){var E=x.value;v[E.namespace]=Q(E.reducers,E.state,c._handleActions),E.effects&&g.push(u._getSaga(E.effects,E,a,c.get("onEffect"),e))}}catch(e){b=!0,w=e}finally{try{y||null==_.return||_.return()}finally{if(b)throw w}}var S=c.get("onReducer"),k=c.get("extraReducers");s()(Object.keys(k).every(function(e){return!(e in v)}),"[app.start] extraReducers is conflict with other reducers, reducers list: ".concat(Object.keys(v).join(", "))),u._store=V({reducers:W(),initialState:e.initialState||{},plugin:c,createOpts:t,sagaMiddleware:h,promiseMiddleware:m});var C=u._store;C.runSaga=h.run,C.asyncReducers={};var O=c.get("onStateChange"),T=!0,L=!1,A=void 0;try{for(var P,j=function(){var e=P.value;C.subscribe(function(){e(C.getState())})},M=O[Symbol.iterator]();!(T=(P=M.next()).done);T=!0)j()}catch(e){L=!0,A=e}finally{try{T||null==M.return||M.return()}finally{if(L)throw A}}g.forEach(h.run),l(u);var R={},N=!0,D=!1,I=void 0;try{for(var $,F=this._models[Symbol.iterator]();!(N=($=F.next()).done);N=!0){var B=$.value;B.subscriptions&&(R[B.namespace]=ee(B.subscriptions,B,u,a))}}catch(e){D=!0,I=e}finally{try{N||null==F.return||F.return()}finally{if(D)throw I}}function W(){return S(Object(i["b"])(Object(r["a"])({},v,k,u._store?u._store.asyncReducers:{})))}u.model=f.bind(u,W,a,R),u.unmodel=d.bind(u,W,v,R),u.replaceModel=p.bind(u,W,v,R,a)}}},"4o36":function(e,t,n){var r=n("wHrr"),i=n("69SZ"),o=n("ULMT"),a=n("7vYJ"),s=n("OsVd"),l=n("BnQZ"),c={},u={};t=e.exports=function(e,t,n,h,f){var d,p,m,g,v=f?function(){return e}:l(e),y=r(n,h,t?2:1),b=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(o(v)){for(d=s(e.length);d>b;b++)if(g=t?y(a(p=e[b])[0],p[1]):y(e[b]),g===c||g===u)return g}else for(m=v.call(e);!(p=m.next()).done;)if(g=i(m,y,p.value,t),g===c||g===u)return g};t.BREAK=c,t.RETURN=u},5:function(e,t){},"57TA":function(e,t,n){"use strict";var r={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o=Object.defineProperty,a=Object.getOwnPropertyNames,s=Object.getOwnPropertySymbols,l=Object.getOwnPropertyDescriptor,c=Object.getPrototypeOf,u=c&&c(Object);function h(e,t,n){if("string"!==typeof t){if(u){var f=c(t);f&&f!==u&&h(e,f,n)}var d=a(t);s&&(d=d.concat(s(t)));for(var p=0;p0?b({},t,{},n):null}}]),t}(r["Component"]);T(P,"propTypes",{prefixCls:a.a.string,clearText:a.a.string,value:a.a.object,defaultOpenValue:a.a.object,inputReadOnly:a.a.bool,disabled:a.a.bool,allowEmpty:a.a.bool,defaultValue:a.a.object,open:a.a.bool,defaultOpen:a.a.bool,align:a.a.object,placement:a.a.any,transitionName:a.a.string,getPopupContainer:a.a.func,placeholder:a.a.string,format:a.a.string,showHour:a.a.bool,showMinute:a.a.bool,showSecond:a.a.bool,style:a.a.object,className:a.a.string,popupClassName:a.a.string,popupStyle:a.a.object,disabledHours:a.a.func,disabledMinutes:a.a.func,disabledSeconds:a.a.func,hideDisabledOptions:a.a.bool,onChange:a.a.func,onAmPmChange:a.a.func,onOpen:a.a.func,onClose:a.a.func,onFocus:a.a.func,onBlur:a.a.func,addon:a.a.func,name:a.a.string,autoComplete:a.a.string,use12Hours:a.a.bool,hourStep:a.a.number,minuteStep:a.a.number,secondStep:a.a.number,focusOnOpen:a.a.bool,onKeyDown:a.a.func,autoFocus:a.a.bool,id:a.a.string,inputIcon:a.a.node,clearIcon:a.a.node}),T(P,"defaultProps",{clearText:"clear",prefixCls:"rc-time-picker",defaultOpen:!1,inputReadOnly:!1,style:{},className:"",popupClassName:"",popupStyle:{},align:{},defaultOpenValue:c()(),allowEmpty:!0,showHour:!0,showMinute:!0,showSecond:!0,disabledHours:L,disabledMinutes:L,disabledSeconds:L,hideDisabledOptions:!1,placement:"bottomLeft",onChange:L,onAmPmChange:L,onOpen:L,onClose:L,onFocus:L,onBlur:L,addon:L,use12Hours:!1,focusOnOpen:!1,onKeyDown:L}),Object(u["polyfill"])(P);t["a"]=P},"5vMV":function(e,t,n){var r=n("B+OT"),i=n("NsO/"),o=n("W070")(!1),a=n("VVlx")("IE_PROTO");e.exports=function(e,t){var n,s=i(e),l=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);while(t.length>l)r(s,n=t[l++])&&(~o(c,n)||c.push(n));return c}},6:function(e,t){},"6+eU":function(e,t,n){"use strict";var r=n("YEIV"),i=n.n(r),o=n("QbLZ"),a=n.n(o),s=n("iCc5"),l=n.n(s),c=n("V7oC"),u=n.n(c),h=n("FYw3"),f=n.n(h),d=n("mRg0"),p=n.n(d),m=n("q1tI"),g=n.n(m),v=n("TSYQ"),y=n.n(v),b=n("17x9"),w=n.n(b),x=function(e){var t,n=e.rootPrefixCls+"-item",r=y()(n,n+"-"+e.page,(t={},i()(t,n+"-active",e.active),i()(t,e.className,!!e.className),i()(t,n+"-disabled",!e.page),t)),o=function(){e.onClick(e.page)},a=function(t){e.onKeyPress(t,e.onClick,e.page)};return g.a.createElement("li",{title:e.showTitle?e.page:null,className:r,onClick:o,onKeyPress:a,tabIndex:"0"},e.itemRender(e.page,"page",g.a.createElement("a",null,e.page)))};x.propTypes={page:w.a.number,active:w.a.bool,last:w.a.bool,locale:w.a.object,className:w.a.string,showTitle:w.a.bool,rootPrefixCls:w.a.string,onClick:w.a.func,onKeyPress:w.a.func,itemRender:w.a.func};var _=x,E={ZERO:48,NINE:57,NUMPAD_ZERO:96,NUMPAD_NINE:105,BACKSPACE:8,DELETE:46,ENTER:13,ARROW_UP:38,ARROW_DOWN:40},S=function(e){function t(){var e,n,r,i;l()(this,t);for(var o=arguments.length,a=Array(o),s=0;s=0||e.relatedTarget.className.indexOf(o+"-next")>=0)||i(r.getValidValue())},r.go=function(e){var t=r.state.goInputText;""!==t&&(e.keyCode!==E.ENTER&&"click"!==e.type||(r.setState({goInputText:""}),r.props.quickGo(r.getValidValue())))},i=n,f()(r,i)}return p()(t,e),u()(t,[{key:"getValidValue",value:function(){var e=this.state,t=e.goInputText,n=e.current;return!t||isNaN(t)?n:Number(t)}},{key:"render",value:function(){var e=this,t=this.props,n=t.pageSize,r=t.pageSizeOptions,i=t.locale,o=t.rootPrefixCls,a=t.changeSize,s=t.quickGo,l=t.goButton,c=t.selectComponentClass,u=t.buildOptionText,h=t.selectPrefixCls,f=t.disabled,d=this.state.goInputText,p=o+"-options",m=c,v=null,y=null,b=null;if(!a&&!s)return null;if(a&&m){var w=r.map(function(t,n){return g.a.createElement(m.Option,{key:n,value:t},(u||e.buildOptionText)(t))});v=g.a.createElement(m,{disabled:f,prefixCls:h,showSearch:!1,className:p+"-size-changer",optionLabelProp:"children",dropdownMatchSelectWidth:!1,value:(n||r[0]).toString(),onChange:this.changeSize,getPopupContainer:function(e){return e.parentNode}},w)}return s&&(l&&(b="boolean"===typeof l?g.a.createElement("button",{type:"button",onClick:this.go,onKeyUp:this.go,disabled:f},i.jump_to_confirm):g.a.createElement("span",{onClick:this.go,onKeyUp:this.go},l)),y=g.a.createElement("div",{className:p+"-quick-jumper"},i.jump_to,g.a.createElement("input",{disabled:f,type:"text",value:d,onChange:this.handleChange,onKeyUp:this.go,onBlur:this.handleBlur}),i.page,b)),g.a.createElement("li",{className:""+p},v,y)}}]),t}(g.a.Component);S.propTypes={disabled:w.a.bool,changeSize:w.a.func,quickGo:w.a.func,selectComponentClass:w.a.func,current:w.a.number,pageSizeOptions:w.a.arrayOf(w.a.string),pageSize:w.a.number,buildOptionText:w.a.func,locale:w.a.object,rootPrefixCls:w.a.string,selectPrefixCls:w.a.string,goButton:w.a.oneOfType([w.a.bool,w.a.node])},S.defaultProps={pageSizeOptions:["10","20","30","40"]};var k=S,C=n("N2Kk"),O=n("VCL8");function T(){}function L(e){return"number"===typeof e&&isFinite(e)&&Math.floor(e)===e}function A(e,t,n){return n}function P(e,t,n){var r=e;return"undefined"===typeof r&&(r=t.pageSize),Math.floor((n.total-1)/r)+1}var j=function(e){function t(e){l()(this,t);var n=f()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));M.call(n);var r=e.onChange!==T,i="current"in e;i&&!r&&console.warn("Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.");var o=e.defaultCurrent;"current"in e&&(o=e.current);var a=e.defaultPageSize;return"pageSize"in e&&(a=e.pageSize),o=Math.min(o,P(a,void 0,e)),n.state={current:o,currentInputValue:o,pageSize:a},n}return p()(t,e),u()(t,[{key:"componentDidUpdate",value:function(e,t){var n=this.props.prefixCls;if(t.current!==this.state.current&&this.paginationNode){var r=this.paginationNode.querySelector("."+n+"-item-"+t.current);r&&document.activeElement===r&&r.blur()}}},{key:"getValidValue",value:function(e){var t=e.target.value,n=P(void 0,this.state,this.props),r=this.state.currentInputValue,i=void 0;return i=""===t?t:isNaN(Number(t))?r:t>=n?n:Number(t),i}},{key:"render",value:function(){var e=this.props,t=e.prefixCls,n=e.className,r=e.disabled;if(!0===this.props.hideOnSinglePage&&this.props.total<=this.state.pageSize)return null;var o=this.props,s=o.locale,l=P(void 0,this.state,this.props),c=[],u=null,h=null,f=null,d=null,p=null,m=o.showQuickJumper&&o.showQuickJumper.goButton,v=o.showLessItems?1:2,b=this.state,w=b.current,x=b.pageSize,E=w-1>0?w-1:0,S=w+1=2*v&&3!==w&&(c[0]=g.a.cloneElement(c[0],{className:t+"-item-after-jump-prev"}),c.unshift(u)),l-w>=2*v&&w!==l-2&&(c[c.length-1]=g.a.cloneElement(c[c.length-1],{className:t+"-item-before-jump-next"}),c.push(h)),1!==N&&c.unshift(f),D!==l&&c.push(d)}var F=null;o.showTotal&&(F=g.a.createElement("li",{className:t+"-total-text"},o.showTotal(o.total,[0===o.total?0:(w-1)*x+1,w*x>o.total?o.total:w*x])));var B=!this.hasPrev()||!l,V=!this.hasNext()||!l;return g.a.createElement("ul",a()({className:y()(t,n,i()({},t+"-disabled",r)),style:o.style,unselectable:"unselectable",ref:this.savePaginationNode},C),F,g.a.createElement("li",{title:o.showTitle?s.prev_page:null,onClick:this.prev,tabIndex:B?null:0,onKeyPress:this.runIfEnterPrev,className:(B?t+"-disabled":"")+" "+t+"-prev","aria-disabled":B},o.itemRender(E,"prev",this.getItemIcon(o.prevIcon))),c,g.a.createElement("li",{title:o.showTitle?s.next_page:null,onClick:this.next,tabIndex:V?null:0,onKeyPress:this.runIfEnterNext,className:(V?t+"-disabled":"")+" "+t+"-next","aria-disabled":V},o.itemRender(S,"next",this.getItemIcon(o.nextIcon))),g.a.createElement(k,{disabled:r,locale:o.locale,rootPrefixCls:t,selectComponentClass:o.selectComponentClass,selectPrefixCls:o.selectPrefixCls,changeSize:this.props.showSizeChanger?this.changePageSize:null,current:this.state.current,pageSize:this.state.pageSize,pageSizeOptions:this.props.pageSizeOptions,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:m}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n={};if("current"in e&&(n.current=e.current,e.current!==t.current&&(n.currentInputValue=n.current)),"pageSize"in e&&e.pageSize!==t.pageSize){var r=t.current,i=P(e.pageSize,t,e);r=r>i?i:r,"current"in e||(n.current=r,n.currentInputValue=r),n.pageSize=e.pageSize}return n}}]),t}(g.a.Component);j.propTypes={disabled:w.a.bool,prefixCls:w.a.string,className:w.a.string,current:w.a.number,defaultCurrent:w.a.number,total:w.a.number,pageSize:w.a.number,defaultPageSize:w.a.number,onChange:w.a.func,hideOnSinglePage:w.a.bool,showSizeChanger:w.a.bool,showLessItems:w.a.bool,onShowSizeChange:w.a.func,selectComponentClass:w.a.func,showPrevNextJumpers:w.a.bool,showQuickJumper:w.a.oneOfType([w.a.bool,w.a.object]),showTitle:w.a.bool,pageSizeOptions:w.a.arrayOf(w.a.string),showTotal:w.a.func,locale:w.a.object,style:w.a.object,itemRender:w.a.func,prevIcon:w.a.oneOfType([w.a.func,w.a.node]),nextIcon:w.a.oneOfType([w.a.func,w.a.node]),jumpPrevIcon:w.a.oneOfType([w.a.func,w.a.node]),jumpNextIcon:w.a.oneOfType([w.a.func,w.a.node])},j.defaultProps={defaultCurrent:1,total:0,defaultPageSize:10,onChange:T,className:"",selectPrefixCls:"rc-select",prefixCls:"rc-pagination",selectComponentClass:null,hideOnSinglePage:!1,showPrevNextJumpers:!0,showQuickJumper:!1,showSizeChanger:!1,showLessItems:!1,showTitle:!0,onShowSizeChange:T,locale:C["a"],style:{},itemRender:A};var M=function(){var e=this;this.getJumpPrevPage=function(){return Math.max(1,e.state.current-(e.props.showLessItems?3:5))},this.getJumpNextPage=function(){return Math.min(P(void 0,e.state,e.props),e.state.current+(e.props.showLessItems?3:5))},this.getItemIcon=function(t){var n=e.props.prefixCls,r=t||g.a.createElement("a",{className:n+"-item-link"});return"function"===typeof t&&(r=g.a.createElement(t,a()({},e.props))),r},this.savePaginationNode=function(t){e.paginationNode=t},this.isValid=function(t){return L(t)&&t!==e.state.current},this.shouldDisplayQuickJumper=function(){var t=e.props,n=t.showQuickJumper,r=t.pageSize,i=t.total;return!(i<=r)&&n},this.handleKeyDown=function(e){e.keyCode!==E.ARROW_UP&&e.keyCode!==E.ARROW_DOWN||e.preventDefault()},this.handleKeyUp=function(t){var n=e.getValidValue(t),r=e.state.currentInputValue;n!==r&&e.setState({currentInputValue:n}),t.keyCode===E.ENTER?e.handleChange(n):t.keyCode===E.ARROW_UP?e.handleChange(n-1):t.keyCode===E.ARROW_DOWN&&e.handleChange(n+1)},this.changePageSize=function(t){var n=e.state.current,r=P(t,e.state,e.props);n=n>r?r:n,0===r&&(n=e.state.current),"number"===typeof t&&("pageSize"in e.props||e.setState({pageSize:t}),"current"in e.props||e.setState({current:n,currentInputValue:n})),e.props.onShowSizeChange(n,t)},this.handleChange=function(t){var n=e.props.disabled,r=t;if(e.isValid(r)&&!n){var i=P(void 0,e.state,e.props);r>i?r=i:r<1&&(r=1),"current"in e.props||e.setState({current:r,currentInputValue:r});var o=e.state.pageSize;return e.props.onChange(r,o),r}return e.state.current},this.prev=function(){e.hasPrev()&&e.handleChange(e.state.current-1)},this.next=function(){e.hasNext()&&e.handleChange(e.state.current+1)},this.jumpPrev=function(){e.handleChange(e.getJumpPrevPage())},this.jumpNext=function(){e.handleChange(e.getJumpNextPage())},this.hasPrev=function(){return e.state.current>1},this.hasNext=function(){return e.state.current2?n-2:0),i=2;i=0?parseFloat(e)/100*t:parseFloat(e):e}function p(e,t,n){var r=t.position||"inside",i=null!=t.distance?t.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,c=n.y,u="left",h="top";if(r instanceof Array)l+=d(r[0],n.width),c+=d(r[1],n.height),u=null,h=null;else switch(r){case"left":l-=i,c+=s,u="right",h="middle";break;case"right":l+=i+a,c+=s,h="middle";break;case"top":l+=a/2,c-=i,u="center",h="bottom";break;case"bottom":l+=a/2,c+=o+i,u="center";break;case"inside":l+=a/2,c+=s,u="center",h="middle";break;case"insideLeft":l+=i,c+=s,h="middle";break;case"insideRight":l+=a-i,c+=s,u="right",h="middle";break;case"insideTop":l+=a/2,c+=i,u="center";break;case"insideBottom":l+=a/2,c+=o-i,u="center",h="bottom";break;case"insideTopLeft":l+=i,c+=i;break;case"insideTopRight":l+=a-i,c+=i,u="right";break;case"insideBottomLeft":l+=i,c+=o-i,h="bottom";break;case"insideBottomRight":l+=a-i,c+=o-i,u="right",h="bottom";break}return e=e||{},e.x=l,e.y=c,e.align=u,e.verticalAlign=h,e}},"6Ogq":function(e,t,n){"use strict";var r,i;Object.defineProperty(t,"__esModule",{value:!0});var o={position:"absolute",top:"-9999px",width:"50px",height:"50px"};function a(e){var t=e.direction,n=void 0===t?"vertical":t,a=e.prefixCls;if("undefined"===typeof document||"undefined"===typeof window)return 0;var s="vertical"===n;if(s&&r)return r;if(!s&&i)return i;var l=document.createElement("div");Object.keys(o).forEach(function(e){l.style[e]=o[e]}),l.className="".concat(a,"-hide-scrollbar scroll-div-append-to-body"),s?l.style.overflowY="scroll":l.style.overflowX="scroll",document.body.appendChild(l);var c=0;return s?(c=l.offsetWidth-l.clientWidth,r=c):(c=l.offsetHeight-l.clientHeight,i=c),document.body.removeChild(l),c}function s(e,t,n){var r;function i(){for(var i=arguments.length,o=new Array(i),a=0;a=c?e?"":void 0:(o=s.charCodeAt(l),o<55296||o>56319||l+1===c||(a=s.charCodeAt(l+1))<56320||a>57343?e?s.charAt(l):o:e?s.slice(l,l+2):a-56320+(o-55296<<10)+65536)}}},"6lKK":function(e,t,n){"use strict";n.r(t);n("2qtc");var r=n("kLXV"),i=(n("miYZ"),n("tsqr")),o=n("p0pE"),a=n.n(o),s=n("q1tI"),l=n.n(s),c=n("t3Un");function u(){u=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var f={};function d(){}function p(){}function m(){}var g={};l(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var h={invite:{},site:{},subscribe:{},frontend:{},server:{},email:{},telegram:{},app:{},safe:{},tabs:"site",fetchLoading:!1,emailTemplate:[],themeTemplate:[],setTelegramWebhookLoading:!1};t["default"]={name:"config",state:a()({},h),reducers:{setState(e,t){var n=t.payload;return a()({},e,n)}},effects:{fetch(e,t){var n=e.key,r=t.put;return u().mark(function e(){var t,i,o;return u().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,r({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,Object(c["a"])("/"+window.settings.secure_path+"/config/fetch",{key:n});case 4:return o=e.sent,e.next=7,r({type:"setState",payload:{fetchLoading:!1}});case 7:if(200===o.code){e.next=9;break}return e.abrupt("return");case 9:return"string"===typeof(null===(t=o.data.invite)||void 0===t?void 0:t.commission_withdraw_method)&&(o.data.invite.commission_withdraw_method=o.data.invite.commission_withdraw_method.split(",")),"string"===typeof(null===(i=o.data.site)||void 0===i?void 0:i.email_whitelist_suffix)&&(o.data.site.email_whitelist_suffix=o.data.site.email_whitelist_suffix.split(",")),e.next=13,r({type:"setState",payload:a()({},o.data)});case 13:case"end":return e.stop()}},e)})()},save(e,t){var n=e.parentKey,r=t.put,o=t.select;return u().mark(function e(){var t,s;return u().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,o(e=>e.config);case 2:return t=e.sent,e.next=5,Object(c["b"])("/"+window.settings.secure_path+"/config/save",a()({},t[n]));case 5:if(s=e.sent,200===s.code){e.next=8;break}return e.abrupt("return");case 8:return i["a"].success("保存成功"),e.next=11,r({type:"fetch"});case 11:case"end":return e.stop()}},e)})()},getEmailTemplate(e,t){var n=t.put;return u().mark(function e(){var t;return u().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(c["a"])("/"+window.settings.secure_path+"/config/getEmailTemplate");case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,n({type:"setState",payload:{emailTemplate:t.data}});case 7:case"end":return e.stop()}},e)})()},getThemeTemplate(e,t){var n=t.put;return u().mark(function e(){var t;return u().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(c["a"])("/"+window.settings.secure_path+"/config/getThemeTemplate");case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,n({type:"setState",payload:{themeTemplate:t.data}});case 7:case"end":return e.stop()}},e)})()},setTelegramWebhook(e,t){var n=e.token,r=t.put;t.select;return u().mark(function e(){var t;return u().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,r({type:"setState",payload:{setTelegramWebhookLoading:!0}});case 2:return e.next=4,Object(c["b"])("/"+window.settings.secure_path+"/config/setTelegramWebhook",{telegram_bot_token:n});case 4:return t=e.sent,e.next=7,r({type:"setState",payload:{setTelegramWebhookLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:i["a"].success("webhook 设置成功");case 10:case"end":return e.stop()}},e)})()},testSendMail(e,t){var n=t.put;return u().mark(function e(){var t,i,o,a,s,h,f,d,p,m;return u().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"setState",payload:{testSendMailLoading:!0}});case 2:return e.next=4,Object(c["b"])("/"+window.settings.secure_path+"/config/testSendMail");case 4:return m=e.sent,e.next=7,n({type:"setState",payload:{testSendMailLoading:!1}});case 7:if(200===m.code){e.next=9;break}return e.abrupt("return");case 9:r["a"][(null===m||void 0===m?void 0:null===(t=m.log)||void 0===t?void 0:t.error)?"error":"success"]({title:(null===m||void 0===m?void 0:null===(i=m.log)||void 0===i?void 0:i.error)?"发送失败":"发送成功",content:l.a.createElement("div",null,(null===m||void 0===m?void 0:null===(o=m.log)||void 0===o?void 0:o.error)&&l.a.createElement("div",null,l.a.createElement("span",null,"失败原因:"),l.a.createElement("span",null,null===m||void 0===m?void 0:null===(a=m.log)||void 0===a?void 0:a.error)),l.a.createElement("div",null,l.a.createElement("span",null,"收信地址:"),l.a.createElement("span",null,null===m||void 0===m?void 0:null===(s=m.log)||void 0===s?void 0:s.email)),l.a.createElement("div",null,l.a.createElement("span",null,"发信服务器:"),l.a.createElement("span",null,null===m||void 0===m?void 0:null===(h=m.log)||void 0===h?void 0:h.config.host)),l.a.createElement("div",null,l.a.createElement("span",null,"发信端口:"),l.a.createElement("span",null,null===m||void 0===m?void 0:null===(f=m.log)||void 0===f?void 0:f.config.port)),l.a.createElement("div",null,l.a.createElement("span",null,"发信加密方式:"),l.a.createElement("span",null,null===m||void 0===m?void 0:null===(d=m.log)||void 0===d?void 0:d.config.encryption)),l.a.createElement("div",null,l.a.createElement("span",null,"发信用户名:"),l.a.createElement("span",null,null===m||void 0===m?void 0:null===(p=m.log)||void 0===p?void 0:p.config.username)))}),console.log(m);case 11:case"end":return e.stop()}},e)})()}}}},"6tYh":function(e,t,n){var r=n("93I4"),i=n("5K7Z"),o=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{r=n("2GTP")(Function.call,n("vwuL").f(Object.prototype,"__proto__").set,2),r(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:o}},"7Cbv":function(e,t,n){"use strict";var r,i=new Uint8Array(16);function o(){if(!r&&(r="undefined"!==typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!==typeof msCrypto&&"function"===typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),!r))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return r(i)}var a=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function s(e){return"string"===typeof e&&a.test(e)}for(var l=s,c=[],u=0;u<256;++u)c.push((u+256).toString(16).substr(1));function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(c[e[t+0]]+c[e[t+1]]+c[e[t+2]]+c[e[t+3]]+"-"+c[e[t+4]]+c[e[t+5]]+"-"+c[e[t+6]]+c[e[t+7]]+"-"+c[e[t+8]]+c[e[t+9]]+"-"+c[e[t+10]]+c[e[t+11]]+c[e[t+12]]+c[e[t+13]]+c[e[t+14]]+c[e[t+15]]).toLowerCase();if(!l(n))throw TypeError("Stringified UUID is invalid");return n}var f=h;function d(e,t,n){e=e||{};var r=e.random||(e.rng||o)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(var i=0;i<16;++i)t[n+i]=r[i];return t}return f(r)}t["a"]=d},"7ICb":function(e,t,n){"use strict";function r(e){return e.clone().startOf("month")}function i(e){return e.clone().endOf("month")}function o(e,t,n){return e.clone().add(t,n)}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],n=arguments[2];return e.some(function(e){return e.isSame(t,n)})}n.d(t,"b",function(){return r}),n.d(t,"a",function(){return i}),n.d(t,"c",function(){return o}),n.d(t,"d",function(){return a})},"7Inb":function(e,t,n){"use strict";var r=n("W6Rk")["default"];n(6),t=e.exports=r,t["default"]=t},"7RDE":function(e,t,n){"use strict";var r,i=n("c0Oy"),o=n("+o5p")(0),a=n("rKIl"),s=n("+y51"),l=n("lFUy"),c=n("2Os2"),u=n("u8+u"),h=n("Jc7p"),f=n("Jc7p"),d=!i.ActiveXObject&&"ActiveXObject"in i,p="WeakMap",m=s.getWeak,g=Object.isExtensible,v=c.ufstore,y=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},b={get:function(e){if(u(e)){var t=m(e);return!0===t?v(h(this,p)).get(e):t?t[this._i]:void 0}},set:function(e,t){return c.def(h(this,p),e,t)}},w=e.exports=n("nWMQ")(p,y,b,c,!0,!0);f&&d&&(r=c.getConstructor(y,p),l(r.prototype,b),s.NEED=!0,o(["delete","has","get","set"],function(e){var t=w.prototype,n=t[e];a(t,e,function(t,i){if(u(t)&&!g(t)){this._f||(this._f=new r);var o=this._f[e](t,i);return"set"==e?this:o}return n.call(this,t,i)})}))},"7Uk0":function(e,t,n){"use strict";var r=n("il4q"),i=n("Spc3"),o=n("OsVd");e.exports=function(e){var t=r(this),n=o(t.length),a=arguments.length,s=i(a>1?arguments[1]:void 0,n),l=a>2?arguments[2]:void 0,c=void 0===l?n:i(l,n);while(c>s)t[s++]=e;return t}},"7ixt":function(e,t,n){"use strict";n.d(t,"a",function(){return o});var r={adjustX:1,adjustY:1},i=[0,0],o={left:{points:["cr","cl"],overflow:r,offset:[-4,0],targetOffset:i},right:{points:["cl","cr"],overflow:r,offset:[4,0],targetOffset:i},top:{points:["bc","tc"],overflow:r,offset:[0,-4],targetOffset:i},bottom:{points:["tc","bc"],overflow:r,offset:[0,4],targetOffset:i},topLeft:{points:["bl","tl"],overflow:r,offset:[0,-4],targetOffset:i},leftTop:{points:["tr","tl"],overflow:r,offset:[-4,0],targetOffset:i},topRight:{points:["br","tr"],overflow:r,offset:[0,-4],targetOffset:i},rightTop:{points:["tl","tr"],overflow:r,offset:[4,0],targetOffset:i},bottomRight:{points:["tr","br"],overflow:r,offset:[0,4],targetOffset:i},rightBottom:{points:["bl","br"],overflow:r,offset:[4,0],targetOffset:i},bottomLeft:{points:["tl","bl"],overflow:r,offset:[0,4],targetOffset:i},leftBottom:{points:["br","bl"],overflow:r,offset:[-4,0],targetOffset:i}}},"7tDr":function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r);function o(){o=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,a,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,a)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}t["default"]={name:"layout",state:{showNav:!1},reducers:{save(e,t){return i()({},e,t.payload)}},effects:{showNav(e,t){var n=e.show,r=t.put,a=t.select;return o().mark(function e(){var t;return o().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,a(e=>e.layout);case 2:return t=e.sent,e.next=5,r({type:"save",payload:i()({},t,{showNav:"undefined"!==typeof n?n:!t.showNav})});case 5:case"end":return e.stop()}},e)})()}}}},"7tNx":function(e,t,n){"use strict";var r=n("7vYJ");e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},"7tlc":function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),l=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(n)?r.showHidden=n:n&&t._extend(r,n),S(r.showHidden)&&(r.showHidden=!1),S(r.depth)&&(r.depth=2),S(r.colors)&&(r.colors=!1),S(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=l),h(r,e,r.depth)}function l(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function c(e,t){return e}function u(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function h(e,n,r){if(e.customInspect&&n&&L(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return _(i)||(i=h(e,i,r)),i}var o=f(e,n);if(o)return o;var a=Object.keys(n),s=u(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),T(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return d(n);if(0===a.length){if(L(n)){var l=n.name?": "+n.name:"";return e.stylize("[Function"+l+"]","special")}if(k(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(O(n))return e.stylize(Date.prototype.toString.call(n),"date");if(T(n))return d(n)}var c,y="",b=!1,w=["{","}"];if(v(n)&&(b=!0,w=["[","]"]),L(n)){var x=n.name?": "+n.name:"";y=" [Function"+x+"]"}return k(n)&&(y=" "+RegExp.prototype.toString.call(n)),O(n)&&(y=" "+Date.prototype.toUTCString.call(n)),T(n)&&(y=" "+d(n)),0!==a.length||b&&0!=n.length?r<0?k(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),c=b?p(e,n,r,s,a):a.map(function(t){return m(e,n,r,s,t,b)}),e.seen.pop(),g(c,y,w)):w[0]+y+w[1]}function f(e,t){if(S(t))return e.stylize("undefined","undefined");if(_(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return x(t)?e.stylize(""+t,"number"):y(t)?e.stylize(""+t,"boolean"):b(t)?e.stylize("null","null"):void 0}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,n,r,i){for(var o=[],a=0,s=t.length;a-1&&(s=o?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n"))):s=e.stylize("[Circular]","special")),S(a)){if(o&&i.match(/^\d+$/))return s;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function g(e,t,n){var r=e.reduce(function(e,t){return 0,t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return r>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function v(e){return Array.isArray(e)}function y(e){return"boolean"===typeof e}function b(e){return null===e}function w(e){return null==e}function x(e){return"number"===typeof e}function _(e){return"string"===typeof e}function E(e){return"symbol"===typeof e}function S(e){return void 0===e}function k(e){return C(e)&&"[object RegExp]"===P(e)}function C(e){return"object"===typeof e&&null!==e}function O(e){return C(e)&&"[object Date]"===P(e)}function T(e){return C(e)&&("[object Error]"===P(e)||e instanceof Error)}function L(e){return"function"===typeof e}function A(e){return null===e||"boolean"===typeof e||"number"===typeof e||"string"===typeof e||"symbol"===typeof e||"undefined"===typeof e}function P(e){return Object.prototype.toString.call(e)}function j(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(S(o)&&(o=Object({NODE_ENV:"production"}).NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(o)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=v,t.isBoolean=y,t.isNull=b,t.isNullOrUndefined=w,t.isNumber=x,t.isString=_,t.isSymbol=E,t.isUndefined=S,t.isRegExp=k,t.isObject=C,t.isDate=O,t.isError=T,t.isFunction=L,t.isPrimitive=A,t.isBuffer=n("j/1Z");var M=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function R(){var e=new Date,t=[j(e.getHours()),j(e.getMinutes()),j(e.getSeconds())].join(":");return[e.getDate(),M[e.getMonth()],t].join(" ")}function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",R(),t.format.apply(t,arguments))},t.inherits=n("FfBw"),t._extend=function(e,t){if(!t||!C(t))return e;var n=Object.keys(t),r=n.length;while(r--)e[n[r]]=t[n[r]];return e};var D="undefined"!==typeof Symbol?Symbol("util.promisify.custom"):void 0;function I(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}function $(t){if("function"!==typeof t)throw new TypeError('The "original" argument must be of type Function');function n(){for(var n=[],r=0;r0)g=l(e,t,p,o(p.length),g,h-1)-1;else{if(g>=9007199254740991)throw TypeError();e[g]=p}g++}v++}return g}e.exports=l},"8Z/V":function(e,t,n){e.exports=!n("wUWy")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"8drl":function(e,t,n){"use strict";n.r(t);var r=n("jehZ"),i=n.n(r),o=n("1l/V"),a=n.n(o),s=n("q1tI"),l=n.n(s),c=n("Bl7J"),u=n("/MKj"),h=(n("2qtc"),n("kLXV")),f=(n("5NDa"),n("5rEg")),d=(n("OaEy"),n("2fM7")),p=(n("miYZ"),n("tsqr"));class m extends l.a.Component{constructor(e){super(e),this.state={params:{},visible:!1}}setParams(e,t){var n=this.state.params;n[e]=t,this.setState({params:n})}show(){this.setState({visible:!0}),this.getConfig()}hidden(){this.setState({visible:!1,params:{}})}getConfig(){var e=this.props.keyName;this.props.dispatch({type:"theme/getThemeConfig",name:e,complete:e=>{this.setState({params:e})}})}saveThemeConfig(){var e=this.props.keyName;this.props.dispatch({type:"theme/saveThemeConfig",config:window.btoa(unescape(encodeURIComponent(JSON.stringify(this.state.params)))),name:e,complete:e=>{p["a"].success("保存成功")}})}buildType(e){var t=this.state.params;switch(e.field_type){case"select":return l.a.createElement("div",null,l.a.createElement(d["a"],{style:{width:"100%"},placeholder:e.placeholder,value:t[e.field_name],onChange:t=>this.setParams(e.field_name,t)},Object.keys(e.select_options).map(t=>{return l.a.createElement(d["a"].Option,{value:t},e.select_options[t])})));case"input":return l.a.createElement(f["a"],{placeholder:e.placeholder,value:t[e.field_name],onChange:t=>this.setParams(e.field_name,t.target.value)});case"textarea":return l.a.createElement(f["a"].TextArea,{rows:"5",placeholder:e.placeholder,value:t[e.field_name],onChange:t=>this.setParams(e.field_name,t.target.value)})}}render(){var e=this.props.theme,t=(e.getThemeConfigLoading,e.saveThemeConfigLoading);return l.a.createElement(l.a.Fragment,null,l.a.cloneElement(this.props.children,{onClick:()=>this.show()}),l.a.createElement(h["a"],{onCancel:()=>this.hidden(),title:"配置".concat(this.props.themeName,"主题"),visible:this.state.visible,okButtonProps:{loading:t},onOk:()=>this.saveThemeConfig()},(this.props.configs||[]).map(e=>{return l.a.createElement("div",{className:"form-group"},l.a.createElement("label",null,e.label),this.buildType(e))})))}}var g=Object(u["c"])(e=>{var t=e.theme;return{theme:t}})(m),v=n("t3Un");function y(){y=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var o=t&&t.prototype instanceof f?t:f,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var h={};function f(){}function d(){}function p(){}var m={};l(m,o,function(){return this});var g=Object.getPrototypeOf,v=g&&g(g(O([])));v&&v!==t&&n.call(v,o)&&(m=v);var b=p.prototype=f.prototype=Object.create(m);function w(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=u(e[r],e,o);if("throw"!==l.type){var c=l.arg,h=c.value;return h&&"object"==typeof h&&n.call(h,"__await")?t.resolve(h.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(h).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===h)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=u(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var i=u(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,h;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},e}class b extends l.a.Component{constructor(e){super(e),this.state={visible:!1}}componentDidMount(){this.props.dispatch({type:"theme/getThemes"})}activeTheme(e){var t=this;return a()(y().mark(function n(){var r;return y().wrap(function(n){while(1)switch(n.prev=n.next){case 0:return n.next=2,Object(v["b"])("/"+window.settings.secure_path+"/config/save",{frontend_theme:e});case 2:if(r=n.sent,200===r.code){n.next=5;break}return n.abrupt("return");case 5:t.props.dispatch({type:"theme/getThemes"});case 6:case"end":return n.stop()}},n)}))()}render(){var e=this.props.theme,t=e.themes,n=e.active;e.getThemesLoading;return l.a.createElement(c["a"],i()({},this.props,{loading:Object.keys(t).length<=0,title:"主题配置"}),l.a.createElement("div",{className:"row"},l.a.createElement("div",{className:"col-lg-12"},l.a.createElement("div",{className:"alert alert-warning mb-0 mb-md-4",role:"alert"},l.a.createElement("p",{className:"mb-0"},"如果你采用前后分离的方式部署V2board,那么主题配置将不会生效。了解",l.a.createElement("b",null,l.a.createElement("a",{href:"https://docs.v2board.com/use/advanced.html#%E5%89%8D%E7%AB%AF%E5%88%86%E7%A6%BB"},"前后分离")))))),Object.keys(t).map(e=>{var r=t[e];return l.a.createElement("div",{className:"block block-transparent bg-image mb-0 mb-md-3 bg-primary",style:{backgroundImage:"url(https://images.unsplash.com/photo-1567095761054-7a02e69e5c43?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1374&q=80)"}},l.a.createElement("div",{className:"block-content block-content-full bg-gd-white-op-l"},l.a.createElement("div",{className:"d-md-flex justify-content-md-between align-items-md-center"},l.a.createElement("div",{className:"p-2 py-4"},l.a.createElement("h3",{className:"font-size-h4 font-w400 text-black mb-1"},r.name),l.a.createElement("p",{className:"text-black-75 mb-0"},r.description)),l.a.createElement("div",{className:"p-2 py-4"},l.a.createElement("button",{type:"button",className:"btn btn-sm rounded-pill btn-outline-light px-3 mr-2",onClick:()=>this.activeTheme(e),disabled:n===e},n===e?"当前主题":"激活主题"),l.a.createElement(g,{keyName:e,themeName:r.name,configs:r.configs},l.a.createElement("button",{type:"button",className:"btn btn-sm rounded-pill btn-outline-light px-3"},"主题设置"))))))}))}}t["default"]=Object(u["c"])(e=>{var t=e.theme;return{theme:t}})(b)},"8jRI":function(e,t,n){"use strict";var r="%[a-f0-9]{2}",i=new RegExp("("+r+")|([^%]+?)","gi"),o=new RegExp("("+r+")+","gi");function a(e,t){try{return[decodeURIComponent(e.join(""))]}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],a(n),a(r))}function s(e){try{return decodeURIComponent(e)}catch(r){for(var t=e.match(i)||[],n=1;n=n&&(e.updateKey=a[0].updateKey||a[0].key,a.shift()),a.push(e)),{notices:a}})},r.remove=function(e){r.setState(function(t){return{notices:t.notices.filter(function(t){return t.key!==e})}})},i=n,p()(r,i)}return g()(t,e),f()(t,[{key:"getTransitionName",value:function(){var e=this.props,t=e.transitionName;return!t&&e.animation&&(t=e.prefixCls+"-"+e.animation),t}},{key:"render",value:function(){var e,t=this,n=this.props,r=this.state.notices,i=r.map(function(e,i){var o=Boolean(i===r.length-1&&e.updateKey),a=e.updateKey?e.updateKey:e.key,s=Object(S["a"])(t.remove.bind(t,e.key),e.onClose);return y.a.createElement(T,l()({prefixCls:n.prefixCls},e,{key:a,update:o,onClose:s,onClick:e.onClick,closeIcon:n.closeIcon}),e.content)}),o=(e={},a()(e,n.prefixCls,1),a()(e,n.className,!!n.className),e);return y.a.createElement("div",{className:C()(o),style:n.style},y.a.createElement(E["a"],{transitionName:this.getTransitionName()},i))}}]),t}(v["Component"]);j.propTypes={prefixCls:w.a.string,transitionName:w.a.string,animation:w.a.oneOfType([w.a.string,w.a.object]),style:w.a.object,maxCount:w.a.number,closeIcon:w.a.node},j.defaultProps={prefixCls:"rc-notification",animation:"fade",style:{top:65,left:"50%"}},j.newInstance=function(e,t){var n=e||{},r=n.getContainer,o=i()(n,["getContainer"]),a=document.createElement("div");if(r){var s=r();s.appendChild(a)}else document.body.appendChild(a);var c=!1;function u(e){c||(c=!0,t({notice:function(t){e.add(t)},removeNotice:function(t){e.remove(t)},component:e,destroy:function(){_.a.unmountComponentAtNode(a),a.parentNode.removeChild(a)}}))}_.a.render(y.a.createElement(j,l()({},o,{ref:u})),a)};var M=j;t["a"]=M},"8zNj":function(e,t,n){"use strict";n("2qtc");var r=n("kLXV"),i=(n("5NDa"),n("5rEg")),o=(n("Pwec"),n("CtXQ")),a=n("p0pE"),s=n.n(a),l=n("q1tI"),c=n.n(l),u=(n("Bl7J"),n("/MKj"));class h extends c.a.Component{constructor(e){super(e),this.state={submit:s()({},this.props.record),visible:!1}}save(){var e=s()({},this.state.submit);this.props.dispatch({type:"serverGroup/save",params:e,callback:()=>{this.setState({visible:!1})}})}render(){var e=this.props.serverGroup.fetchLoading;return c.a.createElement(c.a.Fragment,null,c.a.cloneElement(this.props.children,{onClick:()=>this.setState({visible:!0})}),c.a.createElement(r["a"],{title:"".concat(this.state.submit.id?"编辑组":"创建组"),visible:this.state.visible,onCancel:()=>this.setState({visible:!1}),onOk:()=>e||this.save(),okText:e?c.a.createElement(o["a"],{type:"loading"}):"提交",cancelText:"取消"},c.a.createElement("div",null,c.a.createElement("div",{className:"form-group"},c.a.createElement("label",{for:"example-text-input-alt"},"组名"),c.a.createElement(i["a"],{placeholder:"请输入组名",value:this.state.submit.name,onChange:e=>{this.setState({submit:s()({},this.state.submit,{name:e.target.value})})}})))))}}t["a"]=Object(u["c"])(e=>{var t=e.serverGroup;return{serverGroup:t}})(h)},"93I4":function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},"9Do8":function(e,t,n){"use strict";e.exports=n("zt9T")},"9HFh":function(e,t,n){var r=n("xJie"),i=n("WFJy").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},"9R94":function(e,t,n){"use strict";n.d(t,"a",function(){return o});var r=!0,i="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(i);var n="function"===typeof t?t():t,o=n?"".concat(i,": ").concat(n):i;throw new Error(o)}}},"9WFV":function(e,t,n){var r=n("2we2");e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},"9lTW":function(e,t,n){"use strict";(function(t){function r(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i=0;c--)if(u[c]!==h[c])return!1;for(c=u.length-1;c>=0;c--)if(l=u[c],!b(e[l],t[l],n,r))return!1;return!0}function _(e,t,n){b(e,t,!0)&&v(e,t,n,"notDeepStrictEqual",_)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function S(e){var t;try{e()}catch(e){t=e}return t}function k(e,t,n,r){var i;if("function"!==typeof t)throw new TypeError('"block" argument must be a function');"string"===typeof n&&(r=n,n=null),i=S(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&v(i,n,"Missing expected exception"+r);var a="string"===typeof r,s=!e&&o.isError(i),l=!e&&i&&!n;if((s&&a&&E(i,n)||l)&&v(i,n,"Got unwanted exception"+r),e&&i&&n&&!E(i,n)||!e&&i)throw i}h.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=g(this),this.generatedMessage=!0);var t=e.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=d(t),o=r.indexOf("\n"+i);if(o>=0){var a=r.indexOf("\n",o+1);r=r.substring(a+1)}this.stack=r}}},o.inherits(h.AssertionError,Error),h.fail=v,h.ok=y,h.equal=function(e,t,n){e!=t&&v(e,t,n,"==",h.equal)},h.notEqual=function(e,t,n){e==t&&v(e,t,n,"!=",h.notEqual)},h.deepEqual=function(e,t,n){b(e,t,!1)||v(e,t,n,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(e,t,n){b(e,t,!0)||v(e,t,n,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(e,t,n){b(e,t,!1)&&v(e,t,n,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=_,h.strictEqual=function(e,t,n){e!==t&&v(e,t,n,"===",h.strictEqual)},h.notStrictEqual=function(e,t,n){e===t&&v(e,t,n,"!==",h.notStrictEqual)},h.throws=function(e,t,n){k(!0,e,t,n)},h.doesNotThrow=function(e,t,n){k(!1,e,t,n)},h.ifError=function(e){if(e)throw e};var C=Object.keys||function(e){var t=[];for(var n in e)a.call(e,n)&&t.push(n);return t}}).call(this,n("yLpj"))},"9nSz":function(e,t,n){"use strict";var r=n("WGNW"),i=n("Y/ne"),o=n("08Qx"),a=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);r(r.P+r.F*a,"String",{padStart:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0,!0)}})},A22h:function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e===1/t:e!=e&&t!=t}},A5Xg:function(e,t,n){var r=n("NsO/"),i=n("ar/p").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch(e){return a.slice()}};e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?s(e):i(r(e))}},"A7R+":function(e,t,n){e.exports=!n("8Z/V")&&!n("wUWy")(function(){return 7!=Object.defineProperty(n("SfDG")("div"),"a",{get:function(){return 7}}).a})},AHJs:function(e,t,n){"use strict";function r(e){"@babel/helpers - typeof";return r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}function a(e,t){return a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},a(e,t)}function s(e){return function(){var t,n=h(e);if(u()){var r=h(this).constructor;t=Reflect.construct(n,arguments,r)}else t=n.apply(this,arguments);return l(this,t)}}function l(e,t){return!t||"object"!==r(t)&&"function"!==typeof t?c(e):t}function c(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function u(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function h(e){return h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},h(e)}var f=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t};Object.defineProperty(t,"__esModule",{value:!0});var d=f(n("q1tI")),p=function(e){o(n,e);var t=s(n);function n(){return i(this,n),t.apply(this,arguments)}return n}(d.Component);t.default=p,p.isTableColumnGroup=!0},AMgb:function(e,t,n){e.exports=n("j/9B").default},ANjH:function(e,t,n){"use strict";var r=n("rePB");function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e){for(var t=1;t2&&void 0!==arguments[2]&&arguments[2];return{type:r,payload:{location:e,action:t,isFirstRendering:n}}},o="@@router/CALL_HISTORY_METHOD",a=function(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r0?r:n)(e)}},AUvm:function(e,t,n){"use strict";var r=n("5T2Y"),i=n("B+OT"),o=n("jmDH"),a=n("Y7ZC"),s=n("kTiW"),l=n("6/1s").KEY,c=n("KUxP"),u=n("29s/"),h=n("RfKB"),f=n("YqAc"),d=n("UWiX"),p=n("zLkG"),m=n("Zxgi"),g=n("R+7+"),v=n("kAMH"),y=n("5K7Z"),b=n("93I4"),w=n("JB68"),x=n("NsO/"),_=n("G8Mo"),E=n("rr1i"),S=n("oVml"),k=n("A5Xg"),C=n("vwuL"),O=n("mqlF"),T=n("2faE"),L=n("w6GO"),A=C.f,P=T.f,j=k.f,M=r.Symbol,R=r.JSON,N=R&&R.stringify,D="prototype",I=d("_hidden"),$=d("toPrimitive"),F={}.propertyIsEnumerable,B=u("symbol-registry"),V=u("symbols"),W=u("op-symbols"),H=Object[D],U="function"==typeof M&&!!O.f,z=r.QObject,G=!z||!z[D]||!z[D].findChild,q=o&&c(function(){return 7!=S(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=A(H,t);r&&delete H[t],P(e,t,n),r&&e!==H&&P(H,t,r)}:P,K=function(e){var t=V[e]=S(M[D]);return t._k=e,t},Y=U&&"symbol"==typeof M.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof M},X=function(e,t,n){return e===H&&X(W,t,n),y(e),t=_(t,!0),y(n),i(V,t)?(n.enumerable?(i(e,I)&&e[I][t]&&(e[I][t]=!1),n=S(n,{enumerable:E(0,!1)})):(i(e,I)||P(e,I,E(1,{})),e[I][t]=!0),q(e,t,n)):P(e,t,n)},Q=function(e,t){y(e);var n,r=g(t=x(t)),i=0,o=r.length;while(o>i)X(e,n=r[i++],t[n]);return e},Z=function(e,t){return void 0===t?S(e):Q(S(e),t)},J=function(e){var t=F.call(this,e=_(e,!0));return!(this===H&&i(V,e)&&!i(W,e))&&(!(t||!i(this,e)||!i(V,e)||i(this,I)&&this[I][e])||t)},ee=function(e,t){if(e=x(e),t=_(t,!0),e!==H||!i(V,t)||i(W,t)){var n=A(e,t);return!n||!i(V,t)||i(e,I)&&e[I][t]||(n.enumerable=!0),n}},te=function(e){var t,n=j(x(e)),r=[],o=0;while(n.length>o)i(V,t=n[o++])||t==I||t==l||r.push(t);return r},ne=function(e){var t,n=e===H,r=j(n?W:x(e)),o=[],a=0;while(r.length>a)!i(V,t=r[a++])||n&&!i(H,t)||o.push(V[t]);return o};U||(M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===H&&t.call(W,n),i(this,I)&&i(this[I],e)&&(this[I][e]=!1),q(this,e,E(1,n))};return o&&G&&q(H,e,{configurable:!0,set:t}),K(e)},s(M[D],"toString",function(){return this._k}),C.f=ee,T.f=X,n("ar/p").f=k.f=te,n("NV0k").f=J,O.f=ne,o&&!n("uOPS")&&s(H,"propertyIsEnumerable",J,!0),p.f=function(e){return K(d(e))}),a(a.G+a.W+a.F*!U,{Symbol:M});for(var re="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ie=0;re.length>ie;)d(re[ie++]);for(var oe=L(d.store),ae=0;oe.length>ae;)m(oe[ae++]);a(a.S+a.F*!U,"Symbol",{for:function(e){return i(B,e+="")?B[e]:B[e]=M(e)},keyFor:function(e){if(!Y(e))throw TypeError(e+" is not a symbol!");for(var t in B)if(B[t]===e)return t},useSetter:function(){G=!0},useSimple:function(){G=!1}}),a(a.S+a.F*!U,"Object",{create:Z,defineProperty:X,defineProperties:Q,getOwnPropertyDescriptor:ee,getOwnPropertyNames:te,getOwnPropertySymbols:ne});var se=c(function(){O.f(1)});a(a.S+a.F*se,"Object",{getOwnPropertySymbols:function(e){return O.f(w(e))}}),R&&a(a.S+a.F*(!U||c(function(){var e=M();return"[null]"!=N([e])||"{}"!=N({a:e})||"{}"!=N(Object(e))})),"JSON",{stringify:function(e){var t,n,r=[e],i=1;while(arguments.length>i)r.push(arguments[i++]);if(n=t=r[1],(b(t)||void 0!==e)&&!Y(e))return v(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!Y(t))return t}),r[1]=t,N.apply(R,r)}}),M[D][$]||n("NegM")(M[D],$,M[D].valueOf),h(M,"Symbol"),h(Math,"Math",!0),h(r.JSON,"JSON",!0)},AyUB:function(e,t,n){e.exports={default:n("3GJH"),__esModule:!0}},"B+OT":function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},B6Jk:function(e,t,n){},B9Yq:function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},BC81:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return null};t.default=r},BFt8:function(e,t,n){var r=n("oxo0"),i=n("il4q"),o=n("J57/")("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},"BGR+":function(e,t,n){"use strict";var r=n("QbLZ"),i=n.n(r);function o(e,t){for(var n=i()({},e),r=0;r=r)t|=1&e,e>>=1;return e+t}function a(e,t,n,r){var i=t+1;if(i===n)return 1;if(r(e[i++],e[t])<0){while(i=0)i++;return i-t}function s(e,t,n){n--;while(t>>1,i(a,e[o])<0?l=o:s=o+1;var c=r-s;switch(c){case 3:e[s+3]=e[s+2];case 2:e[s+2]=e[s+1];case 1:e[s+1]=e[s];break;default:while(c>0)e[s+c]=e[s+c-1],c--}e[s]=a}}function c(e,t,n,r,i,o){var a=0,s=0,l=1;if(o(e,t[n+i])>0){s=r-i;while(l0)a=l,l=1+(l<<1),l<=0&&(l=s);l>s&&(l=s),a+=i,l+=i}else{s=i+1;while(ls&&(l=s);var c=a;a=i-l,l=i-c}a++;while(a>>1);o(e,t[n+u])>0?a=u+1:l=u}return l}function u(e,t,n,r,i,o){var a=0,s=0,l=1;if(o(e,t[n+i])<0){s=i+1;while(ls&&(l=s);var c=a;a=i-l,l=i-c}else{s=r-i;while(l=0)a=l,l=1+(l<<1),l<=0&&(l=s);l>s&&(l=s),a+=i,l+=i}a++;while(a>>1);o(e,t[n+u])<0?l=u:a=u+1}return l}function h(e,t){var n,r,o=i,a=0,s=0;a=e.length;var l=[];function h(e,t){n[s]=e,r[s]=t,s+=1}function f(){while(s>1){var e=s-2;if(e>=1&&r[e-1]<=r[e]+r[e+1]||e>=2&&r[e-2]<=r[e]+r[e-1])r[e-1]r[e+1])break;p(e)}}function d(){while(s>1){var e=s-2;e>0&&r[e-1]=i||g>=i);if(v)break;y<0&&(y=0),y+=2}if(o=y,o<1&&(o=1),1===r){for(h=0;h=0;h--)e[g+h]=e[m+h];if(0===r){w=!0;break}}if(e[p--]=l[d--],1===--s){w=!0;break}if(b=s-c(e[f],l,0,s,s-1,t),0!==b){for(p-=b,d-=b,s-=b,g=p+1,m=d+1,h=0;h=i||b>=i);if(w)break;v<0&&(v=0),v+=2}if(o=v,o<1&&(o=1),1===s){for(p-=r,f-=r,g=p+1,m=f+1,h=r-1;h>=0;h--)e[g+h]=e[m+h];e[p]=l[d]}else{if(0===s)throw new Error;for(m=p-(s-1),h=0;h=0;h--)e[g+h]=e[m+h];e[p]=l[d]}else for(m=p-(s-1),h=0;hf&&(d=f),l(e,n,n+d,n+c,t),c=d}u.pushRun(n,c),u.mergeRuns(),s-=c,n+=c}while(0!==s);u.forceMergeRuns()}}},BjZs:function(e,t,n){"use strict";function r(e){return s(e)||a(e)||o(e)||i()}function i(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(e,t){if(e){if("string"===typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}function a(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}function s(e){if(Array.isArray(e))return l(e)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];i[n]=i[n]||[];var o=[],a=function(e){var t=i.length-n;e&&!e.children&&t>1&&(!e.rowSpan||e.rowSpan0?(c.children=e(c.children,n+1,c,i),r.colSpan+=c.colSpan):r.colSpan+=1;for(var h=0;h{s.a.push(n),this.props.dispatch({type:"layout/showNav",show:!1})}},r&&r,o.a.createElement("span",{className:"nav-main-link-name"},t)));case"href":return o.a.createElement("li",{key:Math.random(),className:"nav-main-item"},o.a.createElement("a",{className:"nav-main-link",target:"_blank",href:n,rel:"noreferrer"},r&&r,o.a.createElement("span",{className:"nav-main-link-name"},t)))}}isAdmin(){return-1!==this.props.location.pathname.indexOf("admin")}render(){return o.a.createElement("nav",{id:"sidebar"},o.a.createElement("div",{className:"smini-hidden bg-header-dark"},o.a.createElement("div",{className:"content-header justify-content-lg-center bg-black-10"},o.a.createElement("a",{className:"link-fx font-size-lg text-white",href:"/"},o.a.createElement("span",{className:"text-white-75"},window.settings.title?window.settings.title:"V2Board")),o.a.createElement("div",{className:"d-lg-none"},o.a.createElement("a",{className:"text-white ml-2","data-toggle":"layout","data-action":"sidebar_close",href:"javascript:void(0);",onClick:()=>this.props.dispatch({type:"layout/showNav"})},o.a.createElement("i",{className:"fa fa-times-circle"}))))),o.a.createElement("div",{className:"content-side content-side-full"},o.a.createElement("ul",{className:"nav-main"},this.state.nav.map(e=>{return this.renderMenu(e.type,e.title,e.href,e.icon)}))),o.a.createElement("div",{className:"v2board-copyright"},window.settings.title?window.settings.title:"XBoard"," v1.0.0"))}}var u=Object(l["c"])(e=>{var t=e.layout;return{layout:t}})(c),h=(n("t3Un"),n("nDCI")),f=n("yWgo"),d=window.settings.theme;class p extends o.a.Component{constructor(e){super(e),this.state={showAvatarMenu:!1,showSearchBar:!1}}componentDidMount(){var e=this.props.user.userInfo;e.email||this.props.dispatch({type:"user/getUserInfo"})}showAvatarMenu(){var e=this;this.setState({showAvatarMenu:!this.state.showAvatarMenu},()=>{document.onclick=function(t){e.state.showAvatarMenu&&e.setState({showAvatarMenu:!1}),document.onclick=void 0}})}logout(){Object(f["g"])(),s.a.push("/login")}darkMode(){"1"===Object(f["d"])("dark_mode")?(Object(h["disable"])(),Object(f["i"])("dark_mode",0)):(Object(h["enable"])({brightness:100,contrast:90,sepia:10}),Object(f["i"])("dark_mode",1)),this.forceUpdate()}render(){var e=this.props.user.userInfo;return o.a.createElement("header",{id:"page-header"},o.a.createElement("div",{className:"content-header",style:{maxWidth:"unset"}},o.a.createElement("div",{className:"sidebar-toggle",style:{display:this.props.search?"block":"none"}},o.a.createElement("button",{type:"button",className:"dark"===d.header?"btn btn-primary mr-1 d-lg-none":"btn mr-1 d-lg-none",onClick:()=>this.props.dispatch({type:"layout/showNav"})},o.a.createElement("i",{className:"fa fa-fw fa-bars"})),this.props.search&&o.a.createElement("button",{type:"button",className:"dark"===d.header?"btn btn-primary":"btn",onClick:()=>{this.setState({showSearchBar:!0})}},o.a.createElement("i",{className:"fa fa-fw fa-search"})," ",o.a.createElement("span",{className:"ml-1 d-none d-sm-inline-block"},"搜索"))),o.a.createElement("div",{className:"dark"===d.header?"v2board-container-title text-white":"v2board-container-title text-black"},this.props.title),o.a.createElement("div",null,o.a.createElement("div",{className:"dropdown d-inline-block"},o.a.createElement("button",{type:"button",className:"dark"===d.header?"btn btn-primary mr-1":"btn mr-1",onClick:()=>this.darkMode()},"1"===Object(f["d"])("dark_mode")?o.a.createElement("i",{className:"far fa fa-moon"}):o.a.createElement("i",{className:"far fa fa-sun"}))),this.state.loading?o.a.createElement("div",{className:"spinner-grow text-primary"}):o.a.createElement("div",{className:"dropdown d-inline-block"},o.a.createElement("button",{type:"button",className:"dark"===d.header?"btn btn-primary":"btn",id:"page-header-user-dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",onClick:()=>this.showAvatarMenu()},o.a.createElement("i",{className:"far fa fa-user-circle"}),o.a.createElement("span",{className:"d-none d-lg-inline ml-1"},e.email),o.a.createElement("i",{className:"fa fa-fw fa-angle-down ml-1"})),o.a.createElement("div",{className:"dropdown-menu dropdown-menu-right dropdown-menu-lg p-0 ".concat(this.state.showAvatarMenu&&"show"),"aria-labelledby":"page-header-user-dropdown"},o.a.createElement("div",{className:"p-2"},o.a.createElement("a",{className:"dropdown-item d-flex justify-content-between align-items-center",href:"javascript:void(0);",onClick:()=>this.logout()},"登出",o.a.createElement("i",{className:"fa fa-fw fa-sign-out-alt text-danger ml-1"}))))))),this.props.search&&o.a.createElement("div",{className:"overlay-header bg-dark ".concat(this.state.showSearchBar?"show":"")},o.a.createElement("div",{className:"content-header bg-dark"},o.a.createElement("div",{className:"w-100"},o.a.createElement("div",{className:"input-group"},o.a.createElement("div",{className:"input-group-prepend"},o.a.createElement("button",{type:"button",className:"btn btn-dark",onClick:()=>{this.setState({showSearchBar:!1})}},o.a.createElement("i",{className:"fa fa-fw fa-times-circle"}))),o.a.createElement("input",{type:"text",className:"form-control border-0",placeholder:this.props.search.placeholder,onChange:e=>this.props.search.onChange(e.target.value),defaultValue:this.props.search.defaultValue}))))))}}var m=Object(l["c"])(e=>{var t=e.layout,n=e.user;return{layout:t,user:n}})(p);var g=n("+Gva"),v=window.settings.theme;class y extends o.a.Component{componentDidMount(){window.scrollTo(0,0)}render(){return o.a.createElement(r["a"],{locale:g["a"]},o.a.createElement("div",{id:"page-container",className:"sidebar-o ".concat("dark"===v.sidebar?"sidebar-dark":""," ").concat("dark"===v.header?"page-header-dark":""," side-scroll page-header-fixed main-content-boxed side-trans-enabled ").concat(this.props.layout.showNav&&"sidebar-o-xs")},o.a.createElement("div",{onClick:()=>this.props.dispatch({type:"layout/showNav"}),className:"v2board-nav-mask",style:{display:this.props.layout.showNav?"block":"none"}}),o.a.createElement(u,this.props),o.a.createElement(m,{search:this.props.search,title:this.props.title}),this.props.loading?o.a.createElement("main",{id:"main-container"},o.a.createElement("div",{className:"content content-full text-center pt-5"},o.a.createElement("div",{className:"spinner-grow text-primary",role:"status"},o.a.createElement("span",{className:"sr-only"},"Loading...")))):o.a.createElement("main",{id:"main-container"},o.a.createElement("div",{className:"p-0 p-lg-4"},this.props.children))))}}t["a"]=Object(l["c"])(e=>{var t=e.layout;return{layout:t}})(y)},BnQZ:function(e,t,n){var r=n("2a/h"),i=n("gL7N")("iterator"),o=n("yw4e");e.exports=n("bV5f").getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},Bq2U:function(e,t,n){"use strict";var r={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return.5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return 0===e?0:Math.pow(1024,e-1)},exponentialOut:function(e){return 1===e?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(2-Math.pow(2,-10*(e-1)))},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,n=.1,r=.4;return 0===e?0:1===e?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/r))},elasticOut:function(e){var t,n=.1,r=.4;return 0===e?0:1===e?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/r)+1)},elasticInOut:function(e){var t,n=.1,r=.4;return 0===e?0:1===e?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),(e*=2)<1?n*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/r)*-.5:n*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/r)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-r.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?.5*r.bounceIn(2*e):.5*r.bounceOut(2*e-1)+.5}},i=r,o=n("bYtY"),a=n("s2Iz"),s=function(){function e(e){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=e.life||1e3,this._delay=e.delay||0,this.loop=e.loop||!1,this.onframe=e.onframe||o["G"],this.ondestroy=e.ondestroy||o["G"],this.onrestart=e.onrestart||o["G"],e.easing&&this.setEasing(e.easing)}return e.prototype.step=function(e,t){if(this._inited||(this._startTime=e+this._delay,this._inited=!0),!this._paused){var n=this._life,r=e-this._startTime-this._pausedTime,i=r/n;i<0&&(i=0),i=Math.min(i,1);var o=this.easingFunc,a=o?o(i):i;if(this.onframe(a),1===i){if(!this.loop)return!0;var s=r%n;this._startTime=e-s,this._pausedTime=0,this.onrestart()}return!1}this._pausedTime+=t},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(e){this.easing=e,this.easingFunc=Object(o["u"])(e)?e:i[e]||Object(a["a"])(e)},e}(),l=s,c=n("Qe9p"),u=n("einR");n.d(t,"a",function(){return b});var h=Array.prototype.slice;function f(e,t,n){return(t-e)*n+e}function d(e,t,n,r){for(var i=t.length,o=0;or?t:e,o=Math.min(n,r),a=i[o-1]||{color:[0,0,0,0],offset:0},s=o;sa;if(s)r.length=a;else for(var l=o;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(e,t,n){this._needsSort=!0;var r=this.keyframes,s=r.length,l=!1,h=T,f=t;if(Object(o["s"])(t)){var d=x(t);h=d,(1===d&&!Object(o["w"])(t[0])||2===d&&!Object(o["w"])(t[0][0]))&&(l=!0)}else if(Object(o["w"])(t)&&!Object(o["k"])(t))h=_;else if(Object(o["y"])(t))if(isNaN(+t)){var p=c["d"](t);p&&(f=p,h=k)}else h=_;else if(Object(o["v"])(t)){var m=Object(o["l"])({},f);m.colorStops=Object(o["D"])(t.colorStops,function(e){return{offset:e.offset,color:c["d"](e.color)}}),Object(u["m"])(t)?h=C:Object(u["o"])(t)&&(h=O),f=m}0===s?this.valType=h:h===this.valType&&h!==T||(l=!0),this.discrete=this.discrete||l;var g={time:e,value:f,rawValue:t,percent:0};return n&&(g.easing=n,g.easingFunc=Object(o["u"])(n)?n:i[n]||Object(a["a"])(n)),r.push(g),g},e.prototype.prepare=function(e,t){var n=this.keyframes;this._needsSort&&n.sort(function(e,t){return e.time-t.time});for(var r=this.valType,i=n.length,o=n[i-1],a=this.discrete,s=A(r),l=L(r),c=0;c=0;n--)if(c[n].percent<=t)break;n=v(n,u-2)}else{for(n=g;nt)break;n=v(n-1,u-2)}i=c[n+1],r=c[n]}if(r&&i){this._lastFr=n,this._lastFrP=t;var b=i.percent-r.percent,x=0===b?1:v((t-r.percent)/b,1);i.easingFunc&&(x=i.easingFunc(x));var _=a?this._additiveValue:m?P:e[h];if(!A(l)&&!m||_||(_=this._additiveValue=[]),this.discrete)e[h]=x<1?r.rawValue:i.rawValue;else if(A(l))l===E?d(_,r[s],i[s],x):p(_,r[s],i[s],x);else if(L(l)){var S=r[s],O=i[s],T=l===C;e[h]={type:T?"linear":"radial",x:f(S.x,O.x,x),y:f(S.y,O.y,x),colorStops:Object(o["D"])(S.colorStops,function(e,t){var n=O.colorStops[t];return{offset:f(e.offset,n.offset,x),color:w(d([],e.color,n.color,x))}}),global:O.global},T?(e[h].x2=f(S.x2,O.x2,x),e[h].y2=f(S.y2,O.y2,x)):e[h].r=f(S.r,O.r,x)}else if(m)d(_,r[s],i[s],x),a||(e[h]=w(_));else{var j=f(r[s],i[s],x);a?this._additiveValue=j:e[h]=j}a&&this._addToTarget(e)}}},e.prototype._addToTarget=function(e){var t=this.valType,n=this.propName,r=this._additiveValue;t===_?e[n]=e[n]+r:t===k?(c["d"](e[n],P),m(P,P,r,1),e[n]=w(P)):t===E?m(e[n],e[n],r,1):t===S&&g(e[n],e[n],r,1)},e}(),M=function(){function e(e,t,n,r){this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=e,this._loop=t,t&&r?Object(o["C"])("Can' use additive animation on looped animation."):(this._additiveAnimators=r,this._allowDiscrete=n)}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(e){this._target=e},e.prototype.when=function(e,t,n){return this.whenWithKeys(e,t,Object(o["B"])(t),n)},e.prototype.whenWithKeys=function(e,t,n,r){for(var i=this._tracks,o=0;o0&&s.addKeyframe(0,b(l),r),this._trackKeys.push(a)}s.addKeyframe(e,b(t[a]),r)}return this._maxTime=Math.max(this._maxTime,e),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(e){return this._maxTime=e,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var e=this._doneCbs;if(e)for(var t=e.length,n=0;n0)){this._started=1;for(var t=this,n=[],r=this._maxTime||0,i=0;i1){var s=a.pop();i.addKeyframe(s.time,e[r]),i.prepare(this._maxTime,i.getAdditiveTrack())}}}},e}();t["b"]=M},BsWD:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("a3WO");function i(e,t){if(e){if("string"===typeof e)return Object(r["a"])(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Object(r["a"])(e,t):void 0}}},Bus3:function(e,t,n){n("Jaki")("Int8",1,function(e){return function(t,n,r){return e(this,t,n,r)}})},Bz7s:function(e,t,n){n("8Z/V")&&"g"!=/./g.flags&&n("V5/1").f(RegExp.prototype,"flags",{configurable:!0,get:n("7tNx")})},CTsd:function(e,t,n){var r=n("OeOC"),i=n("9HFh").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch(e){return a.slice()}};e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?s(e):i(r(e))}},CfL3:function(e,t,n){"use strict";var r=n("7vYJ"),i=n("8BMt"),o="number";e.exports=function(e){if("string"!==e&&e!==o&&"default"!==e)throw TypeError("Incorrect hint");return i(r(this),e!=o)}},CgOb:function(e,t,n){"use strict";n("bbsP");var r=n("/wGt"),i=(n("+L6B"),n("2/Rp")),o=(n("BoS7"),n("Sdc0")),a=(n("5Dmo"),n("3S7+")),s=(n("Pwec"),n("CtXQ")),l=(n("OaEy"),n("2fM7")),c=(n("iQDF"),n("+eQT")),u=(n("5NDa"),n("5rEg")),h=n("p0pE"),f=n.n(h),d=n("q1tI"),p=n.n(d),m=n("/MKj"),g=n("wd/R"),v=n.n(g);class y extends p.a.Component{constructor(e){super(e),this.state={visible:!1}}show(){this.props.userId&&this.setState({visible:!0},()=>{this.props.dispatch({type:"user/getUserInfoById",id:this.props.userId})})}hide(){this.setState({visible:!1},()=>{this.props.dispatch({type:"user/setState",payload:{user:{}}})})}formChange(e,t){this.props.dispatch({type:"user/setState",payload:{user:f()({},this.props.user.user,{[e]:t})}})}submit(){var e=f()({},this.props.user.user);this.props.dispatch({type:"user/update",params:e,callback:()=>{this.hide()}})}render(){var e=this.props.user,t=e.user,n=e.updateLoading,h=this.props.plan.plans,f=this.state.visible;return p.a.createElement(p.a.Fragment,null,p.a.cloneElement(this.props.children,{onClick:()=>this.show()}),p.a.createElement(r["a"],{id:"user",width:"80%",title:"用户管理",visible:f,onClose:()=>this.hide(),cancelText:"取消"},t.email?p.a.createElement("div",null,p.a.createElement("div",null,p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"邮箱"),p.a.createElement(u["a"],{placeholder:"请输入邮箱",defaultValue:t.email,onChange:e=>this.formChange("email",e.target.value)})),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"邀请人邮箱"),p.a.createElement(u["a"],{placeholder:"请输入邀请人邮箱",defaultValue:t.invite_user_email,onChange:e=>this.formChange("invite_user_email",e.target.value)})),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"密码"),p.a.createElement(u["a"],{defaultValue:t.password,placeholder:"如需修改密码请输入",onChange:e=>this.formChange("password",e.target.value)})),p.a.createElement("div",{className:"row"},p.a.createElement("div",{className:"form-group col-md-6 col-xs-12"},p.a.createElement("label",null,"余额"),p.a.createElement(u["a"],{type:"number",addonAfter:"¥",placeholder:"余额",defaultValue:t.balance,onChange:e=>this.formChange("balance",e.target.value)})),p.a.createElement("div",{className:"form-group col-md-6 col-xs-12"},p.a.createElement("label",null,"推广佣金"),p.a.createElement(u["a"],{type:"number",addonAfter:"¥",placeholder:"推广佣金",defaultValue:t.commission_balance,onChange:e=>this.formChange("commission_balance",e.target.value)}))),p.a.createElement("div",{className:"row"},p.a.createElement("div",{className:"form-group col-md-6 col-xs-12"},p.a.createElement("label",null,"已用上行"),p.a.createElement(u["a"],{type:"number",addonAfter:"GB",placeholder:"已用上行",defaultValue:t.u,onChange:e=>this.formChange("u",e.target.value)})),p.a.createElement("div",{className:"form-group col-md-6 col-xs-12"},p.a.createElement("label",null,"已用下行"),p.a.createElement(u["a"],{type:"number",addonAfter:"GB",placeholder:"已用下行",defaultValue:t.d,onChange:e=>this.formChange("d",e.target.value)}))),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"流量"),p.a.createElement(u["a"],{type:"number",addonAfter:"GB",defaultValue:t.transfer_enable,placeholder:"请输入流量",onChange:e=>this.formChange("transfer_enable",e.target.value)})),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"到期时间"),p.a.createElement("div",null,p.a.createElement(c["a"],{placeholder:"长期有效",defaultValue:null!==t.expired_at&&v()(1e3*t.expired_at),style:{width:"100%"},onChange:e=>this.formChange("expired_at",e?e.format("X"):null)}))),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"订阅计划"),p.a.createElement(l["a"],{placeholder:"请选择用户订阅计划",style:{width:"100%"},defaultValue:t.plan_id||null,onChange:e=>this.formChange("plan_id",e)},p.a.createElement(l["a"].Option,{value:null},"无"),h.map(e=>{return p.a.createElement(l["a"].Option,{key:Math.random(),value:e.id},e.name)}))),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"账户状态"),p.a.createElement(l["a"],{style:{width:"100%"},defaultValue:t.banned?1:0,onChange:e=>this.formChange("banned",e)},p.a.createElement(l["a"].Option,{key:1,value:1},"封禁"),p.a.createElement(l["a"].Option,{key:0,value:0},"正常"))),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"推荐返利类型"),p.a.createElement(l["a"],{style:{width:"100%"},defaultValue:parseInt(t.commission_type),onChange:e=>this.formChange("commission_type",e)},p.a.createElement(l["a"].Option,{key:0,value:0},"跟随系统设置"),p.a.createElement(l["a"].Option,{key:1,value:1},"循环返利"),p.a.createElement(l["a"].Option,{key:2,value:2},"首次返利"))),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"推荐返利比例"),p.a.createElement(u["a"],{addonAfter:"%",defaultValue:t.commission_rate,placeholder:"请输入推荐返利比例(为空则跟随站点设置返利比例)",onChange:e=>this.formChange("commission_rate",e.target.value)})),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"专享折扣比例 ",p.a.createElement(a["a"],{placement:"top",title:"设置后该用户购买任何订阅将始终享受该折扣"},p.a.createElement(s["a"],{type:"question-circle"}))),p.a.createElement(u["a"],{addonAfter:"%",defaultValue:t.discount,placeholder:"请输入专享折扣比例",onChange:e=>this.formChange("discount",e.target.value)})),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"限速"),p.a.createElement(u["a"],{addonAfter:"Mbps",defaultValue:t.speed_limit,placeholder:"留空则不限制",onChange:e=>this.formChange("speed_limit",e.target.value)})),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{for:"example-text-input-alt"},"是否管理员"),p.a.createElement("div",null,p.a.createElement(o["a"],{checked:t.is_admin,onChange:e=>this.formChange("is_admin",e?1:0)}))),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{htmlFor:"example-text-input-alt"},"是否员工"),p.a.createElement("div",null,p.a.createElement(o["a"],{checked:t.is_staff,onChange:e=>this.formChange("is_staff",e?1:0)}))),p.a.createElement("div",{className:"form-group"},p.a.createElement("label",{htmlFor:"example-text-input-alt"},"备注"),p.a.createElement("div",null,p.a.createElement(u["a"].TextArea,{rows:4,placeholder:"请在这里记录..",defaultValue:t.remarks,onChange:e=>this.formChange("remarks",e.target.value)})))),p.a.createElement("div",{className:"v2board-drawer-action"},p.a.createElement(i["a"],{style:{marginRight:8},onClick:()=>this.hide()},"取消"),p.a.createElement(i["a"],{disabled:n,loading:n,onClick:()=>this.submit(),type:"primary"},"提交"))):p.a.createElement(s["a"],{type:"loading",style:{fontSize:24,color:"#415A94"}})))}}t["a"]=Object(m["c"])(e=>{var t=e.user,n=e.plan;return{user:t,plan:n}})(y)},Cit5:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=i(n("q1tI")),s=i(n("17x9")),l=o(n("TSYQ")),c=n("6Ogq"),u=o(n("UNrv"));function h(e,t){var n=t.table,i=n.props,o=i.prefixCls,s=i.scroll,h=i.showHeader,f=e.columns,d=e.fixed,p=e.tableClassName,m=e.handleBodyScrollLeft,g=e.expander,v=n.saveRef,y=n.props.useFixedHeader,b={},w=c.measureScrollbar({direction:"vertical"});if(s.y){y=!0;var x=c.measureScrollbar({direction:"horizontal",prefixCls:o});x>0&&!d&&(b.marginBottom="-".concat(x,"px"),b.paddingBottom="0px",b.minWidth="".concat(w,"px"),b.overflowX="scroll",b.overflowY=0===w?"hidden":"scroll")}return y&&h?a.createElement("div",{key:"headTable",ref:d?null:v("headTable"),className:l.default("".concat(o,"-header"),r({},"".concat(o,"-hide-scrollbar"),w>0)),style:b,onScroll:m},a.createElement(u.default,{tableClassName:p,hasHead:!0,hasBody:!1,fixed:d,columns:f,expander:g})):null}t.default=h,h.contextTypes={table:s.any}},CnBM:function(e,t,n){"use strict";var r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=n("q1tI"),l=n("17x9"),c=[],u=[];function h(e){return"object"===r(n.m)&&e().every(function(e){return"undefined"!==typeof e&&"undefined"!==typeof n.m[e]})}function f(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then(function(e){return n.loading=!1,n.loaded=e,e}).catch(function(e){throw n.loading=!1,n.error=e,e}),n}function d(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach(function(r){var i=f(e[r]);i.loading?t.loading=!0:(t.loaded[r]=i.loaded,t.error=i.error),n.push(i.promise),i.promise.then(function(e){t.loaded[r]=e}).catch(function(e){t.error=e})})}catch(e){t.error=e}return t.promise=Promise.all(n).then(function(e){return t.loading=!1,e}).catch(function(e){throw t.loading=!1,e}),t}function p(e){return e&&e.__esModule?e.default:e}function m(e,t){return s.createElement(p(e),t)}function g(e,t){var n,r;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var f=Object.assign({loader:null,loading:null,delay:200,timeout:null,render:m,webpack:null,modules:null},t),d=null;function p(){return d||(d=e(f.loader)),d.promise}return c.push(p),"function"===typeof f.webpack&&u.push(function(){if(h(f.webpack))return p()}),r=n=function(t){function n(r){i(this,n);var a=o(this,t.call(this,r));return a.retry=function(){a.setState({error:null,loading:!0,timedOut:!1}),d=e(f.loader),a._loadModule()},p(),a.state={error:d.error,pastDelay:!1,timedOut:!1,loading:d.loading,loaded:d.loaded},a}return a(n,t),n.preload=function(){return p()},n.prototype.componentWillMount=function(){this._mounted=!0,this._loadModule()},n.prototype._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(f.modules)&&f.modules.forEach(function(t){e.context.loadable.report(t)}),d.loading){"number"===typeof f.delay&&(0===f.delay?this.setState({pastDelay:!0}):this._delay=setTimeout(function(){e.setState({pastDelay:!0})},f.delay)),"number"===typeof f.timeout&&(this._timeout=setTimeout(function(){e.setState({timedOut:!0})},f.timeout));var t=function(){e._mounted&&(e.setState({error:d.error,loaded:d.loaded,loading:d.loading}),e._clearTimeouts())};d.promise.then(function(){t()}).catch(function(e){t()})}},n.prototype.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},n.prototype._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},n.prototype.render=function(){return this.state.loading||this.state.error?s.createElement(f.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?f.render(this.state.loaded,this.props):null},n}(s.Component),n.contextTypes={loadable:l.shape({report:l.func.isRequired})},r}function v(e){return g(f,e)}function y(e){if("function"!==typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return g(d,e)}v.Map=y;var b=function(e){function t(){return i(this,t),o(this,e.apply(this,arguments))}return a(t,e),t.prototype.getChildContext=function(){return{loadable:{report:this.props.report}}},t.prototype.render=function(){return s.Children.only(this.props.children)},t}(s.Component);function w(e){var t=[];while(e.length){var n=e.pop();t.push(n())}return Promise.all(t).then(function(){if(e.length)return w(e)})}b.propTypes={report:l.func.isRequired},b.childContextTypes={loadable:l.shape({report:l.func.isRequired}).isRequired},v.Capture=b,v.preloadAll=function(){return new Promise(function(e,t){w(c).then(e,t)})},v.preloadReady=function(){return new Promise(function(e,t){w(u).then(e,e)})},e.exports=v},Crw4:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=P;var r=o(n("q1tI")),i=n("6YkS");function o(e){return e&&e.__esModule?e:{default:e}}function a(e){"@babel/helpers - typeof";return a="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function s(e,t,n,r,i,o,a){try{var s=e[o](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,i)}function l(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function a(e){s(o,r,i,a,l,"next",e)}function l(e){s(o,r,i,a,l,"throw",e)}a(void 0)})}}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function S(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}var k={get:function(e){return e._routeInternalComponent},has:function(e){return void 0!==e._routeInternalComponent},set:function(e,t){e._routeInternalComponent=t}},C=function(e){var t=e.path,n=e.exact,o=e.strict,a=e.render,s=e.location,l=e.sensitive,c=E(e,["path","exact","strict","render","location","sensitive"]);return r.default.createElement(i.Route,{path:t,exact:n,strict:o,location:s,sensitive:l,render:function(e){return a(x({},e,{},c))}})};function O(e){var t={};return t}function T(e){if(k.has(e))return k.get(e);var t=e.Routes,n=t.length-1,i=function(e){var t=e.render,n=E(e,["render"]);return t(n)},o=function(){var e=t[n],o=i;i=function(t){return r.default.createElement(e,t,r.default.createElement(o,t))},n-=1};while(n>=0)o();var a=function(t){var n=t.render,o=E(t,["render"]);return r.default.createElement(C,b({},o,{render:function(t){return r.default.createElement(i,b({},t,{route:e,render:n}))}}))};return k.set(e,a),a}var L=!1;function A(e,t){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n=function(n){f(a,n);var o=p(a);function a(e){var t;return c(this,a),t=o.call(this,e),t.wrappedWithInitialProps=!0,t.state={extraProps:x({},i)},L||(L=!window.g_useSSR||e.history&&"POP"!==e.history.action),t}return h(a,[{key:"componentDidMount",value:function(){var e=l(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:L&&this.getInitialProps();case 1:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"componentDidUpdate",value:function(e){var t=this.props.location;e.location.pathname!==t.pathname&&(L=!0,this.getInitialProps())}},{key:"componentWillUnmount",value:function(){L=!0}},{key:"getInitialProps",value:function(){var n=l(regeneratorRuntime.mark(function n(){var r,i,o,a,s;return regeneratorRuntime.wrap(function(n){while(1)switch(n.prev=n.next){case 0:return r=this.props,i=r.match,o=r.location,a=this.state.extraProps,this.setState({extraProps:x({},a,{fetchingProps:!0})}),n.next=5,e.getInitialProps(x({isServer:!1,route:i,location:o,prevInitialProps:a},t));case 5:if(n.t0=n.sent,n.t0){n.next=8;break}n.t0={};case 8:s=n.t0,s.fetchingProps=!1,this.setState({extraProps:s});case 11:case"end":return n.stop()}},n,this)}));function r(){return n.apply(this,arguments)}return r}()},{key:"render",value:function(){return r.default.createElement(e,x({},this.props,{},this.state.extraProps))}}]),a}(r.default.Component),n}function P(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n("PszG");return e?r.default.createElement(i.Switch,o,e.map(function(e,n){if(e.redirect)return r.default.createElement(i.Redirect,{key:e.key||n,from:e.path,to:e.redirect,exact:e.exact,strict:e.strict});var o=e.Routes?T(e):C;return r.default.createElement(o,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,sensitive:e.sensitive,render:function(n){var i=n.location;L&&(t={});var o=P(e.routes,t,{location:i});if(e.component){var s=O(x({},n,{},t)),l=a.apply("modifyRouteProps",{initialValue:x({},n,{},t,{},s),args:{route:e}}),c=e.component;if(c.getInitialProps){var u=a.apply("modifyInitialProps",{initialValue:{}});c.wrappedWithInitialProps||(c=A(c,u,t),e.component=c)}return r.default.createElement(c,b({key:e.path},l,{route:e}),o)}return o}})})):null}},Ctgt:function(e,t,n){"use strict";n.r(t);var r=n("q1tI"),i=n.n(r),o=n("17x9"),a=n.n(o),s=n("VCL8");function l(){return l=Object.assign||function(e){for(var t=1;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function u(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n1?arguments[1]:void 0,3);while(n=n?n.n:this._f){r(n.v,n.k,this);while(n&&n.r)n=n.p}},has:function(e){return!!g(p(this,t),e)}}),f&&r(u.prototype,"size",{get:function(){return p(this,t)[m]}}),u},def:function(e,t,n){var r,i,o=g(e,t);return o?o.v=n:(e._l=o={i:i=d(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=o),r&&(r.n=o),e[m]++,"F"!==i&&(e._i[i]=o)),e},getEntry:g,setStrong:function(e,t,n){c(e,t,function(e,n){this._t=p(e,t),this._k=n,this._l=void 0},function(){var e=this,t=e._k,n=e._l;while(n&&n.r)n=n.p;return e._t&&(e._l=n=n?n.n:e._t._f)?u(0,"keys"==t?n.k:"values"==t?n.v:[n.k,n.v]):(e._t=void 0,u(1))},n?"entries":"values",!n,!0),h(t)}}},CxY0:function(e,t,n){"use strict";var r=n("GYWy"),i=n("Nehr");function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=x,t.resolve=E,t.resolveObject=S,t.format=_,t.Url=o;var a=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["<",">",'"',"`"," ","\r","\n","\t"],u=["{","}","|","\\","^","`"].concat(c),h=["'"].concat(u),f=["%","/","?",";","#"].concat(h),d=["/","?","#"],p=255,m=/^[+a-z0-9A-Z_-]{0,63}$/,g=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},w=n("s4NR");function x(e,t,n){if(e&&i.isObject(e)&&e instanceof o)return e;var r=new o;return r.parse(e,t,n),r}function _(e){return i.isString(e)&&(e=x(e)),e instanceof o?e.format():o.prototype.format.call(e)}function E(e,t){return x(e,!1,!0).resolve(t)}function S(e,t){return e?x(e,!1,!0).resolveObject(t):t}o.prototype.parse=function(e,t,n){if(!i.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),s=-1!==o&&o127?N+="x":N+=R[D];if(!N.match(m)){var $=j.slice(0,L),F=j.slice(L+1),B=R.match(g);B&&($.push(B[1]),F.unshift(B[2])),F.length&&(x="/"+F.join(".")+x),this.hostname=$.join(".");break}}}this.hostname.length>p?this.hostname="":this.hostname=this.hostname.toLowerCase(),P||(this.hostname=r.toASCII(this.hostname));var V=this.port?":"+this.port:"",W=this.hostname||"";this.host=W+V,this.href+=this.host,P&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==x[0]&&(x="/"+x))}if(!v[S])for(L=0,M=h.length;L0)&&n.host.split("@");k&&(n.auth=k.shift(),n.host=n.hostname=k.shift())}return n.search=e.search,n.query=e.query,i.isNull(n.pathname)&&i.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!E.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var C=E.slice(-1)[0],O=(n.host||e.host||E.length>1)&&("."===C||".."===C)||""===C,T=0,L=E.length;L>=0;L--)C=E[L],"."===C?E.splice(L,1):".."===C?(E.splice(L,1),T++):T&&(E.splice(L,1),T--);if(!x&&!_)for(;T--;T)E.unshift("..");!x||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),O&&"/"!==E.join("/").substr(-1)&&E.push("");var A=""===E[0]||E[0]&&"/"===E[0].charAt(0);if(S){n.hostname=n.host=A?"":E.length?E.shift():"";k=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@");k&&(n.auth=k.shift(),n.host=n.hostname=k.shift())}return x=x||n.host&&E.length,x&&!A&&E.unshift(""),E.length?n.pathname=E.join("/"):(n.pathname=null,n.path=null),i.isNull(n.pathname)&&i.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},D8kY:function(e,t,n){var r=n("Ojgd"),i=Math.max,o=Math.min;e.exports=function(e,t){return e=r(e),e<0?i(e+t,0):o(e,t)}},DBt0:function(e,t,n){"use strict";var r=n("7vYJ"),i=n("il4q"),o=n("OsVd"),a=n("AUWw"),s=n("ETUh"),l=n("bsDr"),c=Math.max,u=Math.min,h=Math.floor,f=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g,p=function(e){return void 0===e?e:String(e)};n("h7Gi")("replace",2,function(e,t,n,m){return[function(r,i){var o=e(this),a=void 0==r?void 0:r[t];return void 0!==a?a.call(r,o,i):n.call(String(o),r,i)},function(e,t){var i=m(n,e,this,t);if(i.done)return i.value;var h=r(e),f=String(this),d="function"===typeof t;d||(t=String(t));var v=h.global;if(v){var y=h.unicode;h.lastIndex=0}var b=[];while(1){var w=l(h,f);if(null===w)break;if(b.push(w),!v)break;var x=String(w[0]);""===x&&(h.lastIndex=s(f,o(h.lastIndex),y))}for(var _="",E=0,S=0;S=E&&(_+=f.slice(E,C)+P,E=C+k.length)}return _+f.slice(E)}];function g(e,t,r,o,a,s){var l=r+e.length,c=o.length,u=d;return void 0!==a&&(a=i(a),u=f),n.call(s,u,function(n,i){var s;switch(i.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,r);case"'":return t.slice(l);case"<":s=a[i.slice(1,-1)];break;default:var u=+i;if(0===u)return n;if(u>c){var f=h(u/10);return 0===f?n:f<=c?void 0===o[f-1]?i.charAt(1):o[f-1]+i.charAt(1):n}s=o[u-1]}return void 0===s?"":s})}})},DFAo:function(e,t,n){"use strict";n("Bz7s");var r=n("7vYJ"),i=n("7tNx"),o=n("8Z/V"),a="toString",s=/./[a],l=function(e){n("rKIl")(RegExp.prototype,a,e,!0)};n("wUWy")(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?l(function(){var e=r(this);return"/".concat(e.source,"/","flags"in e?e.flags:!o&&e instanceof RegExp?i.call(e):void 0)}):s.name!=a&&l(function(){return s.call(this)})},DIcO:function(e,t,n){var r=n("gL7N")("unscopables"),i=Array.prototype;void 0==i[r]&&n("VPOE")(i,r,{}),e.exports=function(e){i[r][e]=!0}},DN2a:function(e,t){window.MutationObserver||(window.MutationObserver=function(e){function t(e){this.i=[],this.m=e}function n(e){(function n(){var r=e.takeRecords();r.length&&e.m(r,e),e.h=setTimeout(n,t._period)})()}function r(t){var n,r={type:null,target:null,addedNodes:[],removedNodes:[],previousSibling:null,nextSibling:null,attributeName:null,attributeNamespace:null,oldValue:null};for(n in t)r[n]!==e&&t[n]!==e&&(r[n]=t[n]);return r}function i(e,t){var n=c(e,t);return function(i){var o=i.length;if(t.a&&3===e.nodeType&&e.nodeValue!==n.a&&i.push(new r({type:"characterData",target:e,oldValue:n.a})),t.b&&n.b&&s(i,e,n.b,t.f),t.c||t.g)var a=l(i,e,n,t);(a||i.length!==o)&&(n=c(e,t))}}function o(e,t){return t.value}function a(e,t){return"style"!==t.name?t.value:e.style.cssText}function s(t,n,i,o){for(var a,s,l={},c=n.attributes,u=c.length;u--;)a=c[u],s=a.name,o&&o[s]===e||(m(n,a)!==i[s]&&t.push(r({type:"attributes",target:n,attributeName:s,oldValue:i[s],attributeNamespace:a.namespaceURI})),l[s]=!0);for(s in i)l[s]||t.push(r({target:n,type:"attributes",attributeName:s,oldValue:i[s]}))}function l(t,n,i,o){function a(e,n,i,a,c){var u,h,f,d=e.length-1;for(c=-~((d-c)/2);f=e.pop();)u=i[f.j],h=a[f.l],o.c&&c&&Math.abs(f.j-f.l)>=d&&(t.push(r({type:"childList",target:n,addedNodes:[u],removedNodes:[u],nextSibling:u.nextSibling,previousSibling:u.previousSibling})),c--),o.b&&h.b&&s(t,u,h.b,o.f),o.a&&3===u.nodeType&&u.nodeValue!==h.a&&t.push(r({type:"characterData",target:u,oldValue:h.a})),o.g&&l(u,h)}function l(n,i){for(var h,f,p,m,g,v=n.childNodes,y=i.c,b=v.length,w=y?y.length:0,x=0,_=0,E=0;_2&&l.push(t),t=[e,n]}function p(e,n,r,i){v(e,r)&&v(n,i)||t.push(e,n,r,i,r,i)}function m(e,n,r,i,o,a){var s=Math.abs(n-e),l=4*Math.tan(s/4)/3,c=nC:L2&&l.push(t),l}function b(e,t,n,i,o,a,s,l,c,u){if(v(e,n)&&v(t,i)&&v(o,s)&&v(a,l))c.push(s,l);else{var h=2/u,f=h*h,d=s-e,p=l-t,m=Math.sqrt(d*d+p*p);d/=m,p/=m;var g=n-e,y=i-t,w=o-s,x=a-l,_=g*g+y*y,E=w*w+x*x;if(_=0&&O=0)c.push(s,l);else{var T=[],L=[];Object(r["g"])(e,n,o,s,.5,T),Object(r["g"])(t,i,a,l,.5,L),b(T[0],L[0],T[1],L[1],T[2],L[2],T[3],L[3],c,u),b(T[4],L[4],T[5],L[5],T[6],L[6],T[7],L[7],c,u)}}}}function w(e,t){var n=y(e),r=[];t=t||1;for(var i=0;i0)for(c=0;cMath.abs(c),h=x([l,c],u?0:1,t),f=(u?s:c)/h.length,d=0;di,a=x([r,i],o?0:1,t),s=o?"width":"height",l=o?"height":"width",c=o?"x":"y",u=o?"y":"x",h=e[s]/a.length,f=0;f1?null:new h["a"](g*l+e,g*c+t)}function C(e,t,n){var r=new h["a"];h["a"].sub(r,n,t),r.normalize();var i=new h["a"];h["a"].sub(i,e,t);var o=i.dot(r);return o}function O(e,t){var n=e[e.length-1];n&&n[0]===t[0]&&n[1]===t[1]||e.push(t)}function T(e,t,n){for(var r=e.length,i=[],o=0;oa?(f.x=d.x=s+o/2,f.y=l,d.y=l+a):(f.y=d.y=l+a/2,f.x=s,d.x=s+o),T(t,f,d)}function A(e,t,n,r){if(1===n)r.push(t);else{var i=Math.floor(n/2),o=e(t);A(e,o[0],i,r),A(e,o[1],n-i,r)}return r}function P(e,t){for(var n=[],r=0;r0)for(var x=r/n,_=-r/2;_<=r/2;_+=x){var E=Math.sin(_),S=Math.cos(_),k=0;for(b=0;b0;c/=2){var u=0,h=0;(e&c)>0&&(u=1),(t&c)>0&&(h=1),l+=c*c*(3*u^h),0===h&&(1===u&&(e=c-1-e,t=c-1-t),s=e,e=t,t=s)}return l}function X(e){var t=1/0,n=1/0,r=-1/0,i=-1/0,a=Object(o["D"])(e,function(e){var o=e.getBoundingRect(),a=e.getComputedTransform(),s=o.x+o.width/2+(a?a[4]:0),l=o.y+o.height/2+(a?a[5]:0);return t=Math.min(s,t),n=Math.min(l,n),r=Math.max(s,r),i=Math.max(l,i),[s,l]}),s=Object(o["D"])(a,function(o,a){return{cp:o,z:Y(o[0],o[1],t,n,r,i),path:e[a]}});return s.sort(function(e,t){return e.z-t.z}).map(function(e){return e.path})}function Q(e){return R(e.path,e.count)}function Z(){return{fromIndividuals:[],toIndividuals:[],count:0}}function J(e,t,n){var r=[];function a(e){for(var t=0;t=0?t:0)+"#"+e)},b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,s.default)(f.canUseDOM,"Hash history needs a DOM");var t=window.history,n=(0,f.supportsGoWithoutReloadUsingHash)(),i=e.getUserConfirmation,a=void 0===i?f.getConfirmation:i,u=e.hashType,d=void 0===u?"slash":u,b=e.basename?(0,c.stripTrailingSlash)((0,c.addLeadingSlash)(e.basename)):"",w=m[d],x=w.encodePath,_=w.decodePath,E=function(){var e=_(g());return(0,o.default)(!b||(0,c.hasBasename)(e,b),'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "'+e+'" to begin with "'+b+'".'),b&&(e=(0,c.stripBasename)(e,b)),(0,l.createLocation)(e)},S=(0,h.default)(),k=function(e){r(G,e),G.length=t.length,S.notifyListeners(G.location,G.action)},C=!1,O=null,T=function(){var e=g(),t=x(e);if(e!==t)y(t);else{var n=E(),r=G.location;if(!C&&(0,l.locationsAreEqual)(r,n))return;if(O===(0,c.createPath)(n))return;O=null,L(n)}},L=function(e){if(C)C=!1,k();else{var t="POP";S.confirmTransitionTo(e,t,a,function(n){n?k({action:t,location:e}):A(e)})}},A=function(e){var t=G.location,n=R.lastIndexOf((0,c.createPath)(t));-1===n&&(n=0);var r=R.lastIndexOf((0,c.createPath)(e));-1===r&&(r=0);var i=n-r;i&&(C=!0,$(i))},P=g(),j=x(P);P!==j&&y(j);var M=E(),R=[(0,c.createPath)(M)],N=function(e){return"#"+x(b+(0,c.createPath)(e))},D=function(e,t){(0,o.default)(void 0===t,"Hash history cannot push state; it is ignored");var n="PUSH",r=(0,l.createLocation)(e,void 0,void 0,G.location);S.confirmTransitionTo(r,n,a,function(e){if(e){var t=(0,c.createPath)(r),i=x(b+t),a=g()!==i;if(a){O=t,v(i);var s=R.lastIndexOf((0,c.createPath)(G.location)),l=R.slice(0,-1===s?0:s+1);l.push(t),R=l,k({action:n,location:r})}else(0,o.default)(!1,"Hash history cannot PUSH the same path; a new entry will not be added to the history stack"),k()}})},I=function(e,t){(0,o.default)(void 0===t,"Hash history cannot replace state; it is ignored");var n="REPLACE",r=(0,l.createLocation)(e,void 0,void 0,G.location);S.confirmTransitionTo(r,n,a,function(e){if(e){var t=(0,c.createPath)(r),i=x(b+t),o=g()!==i;o&&(O=t,y(i));var a=R.indexOf((0,c.createPath)(G.location));-1!==a&&(R[a]=t),k({action:n,location:r})}})},$=function(e){(0,o.default)(n,"Hash history go(n) causes a full page reload in this browser"),t.go(e)},F=function(){return $(-1)},B=function(){return $(1)},V=0,W=function(e){V+=e,1===V?window.addEventListener(p,T):0===V&&window.removeEventListener(p,T)},H=!1,U=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=S.setPrompt(e);return H||(W(1),H=!0),function(){return H&&(H=!1,W(-1)),t()}},z=function(e){var t=S.appendListener(e);return W(1),function(){W(-1),t()}},G={length:t.length,action:"POP",location:M,createHref:N,push:D,replace:I,go:$,goBack:F,goForward:B,block:U,listen:z};return G};t.default=b},ERIh:function(e,t,n){"use strict";n.r(t),n.d(t,"dva",function(){return h});var r=n("yWgo"),i=n("nDCI"),o=n("wd/R"),a=n.n(o),s=(n("XDpg"),window.settings),l=s.theme,c=s.host,u=document.createElement("link");u.rel="stylesheet",u.href=c?"./theme/".concat(l.color,".css"):"./assets/admin/theme/".concat(l.color,".css"),document.getElementsByTagName("head")[0].appendChild(u),a.a.locale("zh-cn"),"1"===Object(r["d"])("dark_mode")&&Object(i["enable"])({brightness:100,contrast:90,sepia:10});var h={config:{onError(e){e.preventDefault()}}}},ETUh:function(e,t,n){"use strict";var r=n("6RnP")(!0);e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},EVqI:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t{return e.is_me?o.a.createElement("div",null,o.a.createElement("div",{className:"font-size-sm text-muted my-2 text-right"},h()(1e3*e.created_at).format("YYYY/MM/DD HH:mm")),o.a.createElement("div",{className:"text-right ml-4"},o.a.createElement("div",{className:"d-inline-block bg-gray-lighter px-3 py-2 mb-2 mw-100 rounded text-left"},e.message))):o.a.createElement("div",null,o.a.createElement("div",{className:"font-size-sm text-muted my-2"},h()(1e3*e.created_at).format("YYYY/MM/DD HH:mm")),o.a.createElement("div",{className:"mr-4"},o.a.createElement("div",{className:"d-inline-block bg-success-lighter px-3 py-2 mb-2 mw-100 rounded text-left"},e.message)))})),o.a.createElement("div",{className:"js-chat-form block-content p-2 bg-body-dark ".concat(d.a.input)},o.a.createElement("input",{onKeyDown:e=>this.props.onKeyDown(e,()=>{this.refs.message&&(this.refs.message.value="")}),ref:"message",type:"text",className:"js-chat-input bg-body-dark border-0 form-control form-control-alt",placeholder:"输入内容回复工单...",onChange:e=>this.props.onChange(e)})))}}class v extends o.a.Component{constructor(e){super(e),this.state={message:void 0,submit:{}}}componentDidMount(){this.props.dispatch({type:"ticket/fetchById",id:this.props.match.params.ticket_id}),this.props.dispatch({type:"plan/fetch"}),this.check()}check(){r=setTimeout(()=>{this.props.dispatch({type:"ticket/fetchById",id:this.props.match.params.ticket_id}),this.check()},5e3)}componentWillUnmount(){clearTimeout(r)}reply(e){this.props.dispatch({type:"ticket/reply",id:this.props.match.params.ticket_id,msg:this.state.message,callback:()=>{e()}})}render(){var e=this.props.user.user,t=this.props.ticket,n=t.ticket,r=t.replyLoading;return o.a.createElement(g,{ticket:n,user:e,onKeyDown:(e,t)=>{13!==e.keyCode||r||this.reply(t)},onChange:e=>{this.setState({message:e.target.value})}})}}t["default"]=Object(a["c"])(e=>{var t=e.user,n=e.ticket;return{user:t,ticket:n}})(v)},FYw3:function(e,t,n){"use strict";t.__esModule=!0;var r=n("EJiy"),i=o(r);function o(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"===typeof t?"undefined":(0,i.default)(t))&&"function"!==typeof t?e:t}},FfBw:function(e,t){"function"===typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},FlQf:function(e,t,n){"use strict";var r=n("ccE7")(!0);n("MPFp")(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},Fofx:function(e,t,n){"use strict";function r(){return[1,0,0,1,0,0]}function i(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function o(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function a(e,t,n){var r=t[0]*n[0]+t[2]*n[1],i=t[1]*n[0]+t[3]*n[1],o=t[0]*n[2]+t[2]*n[3],a=t[1]*n[2]+t[3]*n[3],s=t[0]*n[4]+t[2]*n[5]+t[4],l=t[1]*n[4]+t[3]*n[5]+t[5];return e[0]=r,e[1]=i,e[2]=o,e[3]=a,e[4]=s,e[5]=l,e}function s(e,t,n){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+n[0],e[5]=t[5]+n[1],e}function l(e,t,n){var r=t[0],i=t[2],o=t[4],a=t[1],s=t[3],l=t[5],c=Math.sin(n),u=Math.cos(n);return e[0]=r*u+a*c,e[1]=-r*c+a*u,e[2]=i*u+s*c,e[3]=-i*c+u*s,e[4]=u*o+c*l,e[5]=u*l-c*o,e}function c(e,t,n){var r=n[0],i=n[1];return e[0]=t[0]*r,e[1]=t[1]*i,e[2]=t[2]*r,e[3]=t[3]*i,e[4]=t[4]*r,e[5]=t[5]*i,e}function u(e,t){var n=t[0],r=t[2],i=t[4],o=t[1],a=t[3],s=t[5],l=n*a-o*r;return l?(l=1/l,e[0]=a*l,e[1]=-o*l,e[2]=-r*l,e[3]=n*l,e[4]=(r*s-a*i)*l,e[5]=(o*i-n*s)*l,e):null}n.d(t,"b",function(){return r}),n.d(t,"c",function(){return i}),n.d(t,"a",function(){return o}),n.d(t,"e",function(){return a}),n.d(t,"h",function(){return s}),n.d(t,"f",function(){return l}),n.d(t,"g",function(){return c}),n.d(t,"d",function(){return u})},FpHa:function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},FqPH:function(e,t){e.exports=!1},FwrZ:function(e,t,n){"use strict";t.__esModule=!0;t.addLeadingSlash=function(e){return"/"===e.charAt(0)?e:"/"+e},t.stripLeadingSlash=function(e){return"/"===e.charAt(0)?e.substr(1):e};var r=t.hasBasename=function(e,t){return new RegExp("^"+t+"(\\/|\\?|#|$)","i").test(e)};t.stripBasename=function(e,t){return r(e,t)?e.substr(t.length):e},t.stripTrailingSlash=function(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e},t.parsePath=function(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}},t.createPath=function(e){var t=e.pathname,n=e.search,r=e.hash,i=t||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i}},G7Hh:function(e,t,n){"use strict";var r=n("7vYJ"),i=n("A22h"),o=n("bsDr");n("h7Gi")("search",1,function(e,t,n,a){return[function(n){var r=e(this),i=void 0==n?void 0:n[t];return void 0!==i?i.call(n,r):new RegExp(n)[t](String(r))},function(e){var t=a(n,e,this);if(t.done)return t.value;var s=r(e),l=String(this),c=s.lastIndex;i(c,0)||(s.lastIndex=0);var u=o(s,l);return i(s.lastIndex,c)||(s.lastIndex=c),null===u?-1:u.index}]})},G8Mo:function(e,t,n){var r=n("93I4");e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},"GB+t":function(e,t,n){"use strict";var r=function(){};e.exports=r},GYWy:function(e,t,n){(function(e,r){var i;(function(o){t&&t.nodeType,e&&e.nodeType;var a="object"==typeof r&&r;a.global!==a&&a.window!==a&&a.self;var s,l=2147483647,c=36,u=1,h=26,f=38,d=700,p=72,m=128,g="-",v=/^xn--/,y=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,w={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},x=c-u,_=Math.floor,E=String.fromCharCode;function S(e){throw new RangeError(w[e])}function k(e,t){var n=e.length,r=[];while(n--)r[n]=t(e[n]);return r}function C(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(b,".");var i=e.split("."),o=k(i,t).join(".");return r+o}function O(e){var t,n,r=[],i=0,o=e.length;while(i=55296&&t<=56319&&i65535&&(e-=65536,t+=E(e>>>10&1023|55296),e=56320|1023&e),t+=E(e),t}).join("")}function L(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:c}function A(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function P(e,t,n){var r=0;for(e=n?_(e/d):e>>1,e+=_(e/t);e>x*h>>1;r+=c)e=_(e/x);return _(r+(x+1)*e/(e+f))}function j(e){var t,n,r,i,o,a,s,f,d,v,y=[],b=e.length,w=0,x=m,E=p;for(n=e.lastIndexOf(g),n<0&&(n=0),r=0;r=128&&S("not-basic"),y.push(e.charCodeAt(r));for(i=n>0?n+1:0;i=b&&S("invalid-input"),f=L(e.charCodeAt(i++)),(f>=c||f>_((l-w)/a))&&S("overflow"),w+=f*a,d=s<=E?u:s>=E+h?h:s-E,f_(l/v)&&S("overflow"),a*=v}t=y.length+1,E=P(w-o,t,0==o),_(w/t)>l-x&&S("overflow"),x+=_(w/t),w%=t,y.splice(w++,0,x)}return T(y)}function M(e){var t,n,r,i,o,a,s,f,d,v,y,b,w,x,k,C=[];for(e=O(e),b=e.length,t=m,n=0,o=p,a=0;a=t&&y_((l-n)/w)&&S("overflow"),n+=(s-t)*w,t=s,a=0;al&&S("overflow"),y==t){for(f=n,d=c;;d+=c){if(v=d<=o?u:d>=o+h?h:d-o,f=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var l={plans:[],fetchLoading:!1};t["default"]={name:"plan",state:i()({},l),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{fetch(e,t){var n=t.put;return s().mark(function e(){var t;return s().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/plan/fetch");case 4:return t=e.sent,e.next=7,n({type:"setState",payload:{fetchLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return t.data.forEach(e=>{Object.keys(a["a"].periodText).forEach(t=>{null!==e[t]&&(e[t]=null!==e[t]?e[t]/100:null)})}),e.next=12,n({type:"setState",payload:{plans:t.data}});case 12:case"end":return e.stop()}},e)})()},save(e,t){var n=e.params,r=e.callback,i=t.put;return s().mark(function e(){var t;return s().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{saveLoading:!0}});case 2:return Object.keys(a["a"].periodText).forEach(e=>{null!==n[e]&&(n[e]=null!==n[e]?Math.round(100*n[e]):null)}),e.next=5,Object(o["b"])("/"+window.settings.secure_path+"/plan/save",n);case 5:return t=e.sent,e.next=8,i({type:"setState",payload:{saveLoading:!1}});case 8:if(200===t.code){e.next=10;break}return e.abrupt("return");case 10:return e.next=12,i({type:"fetch"});case 12:"function"===typeof r&&r();case 13:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return s().mark(function e(){var t;return s().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/plan/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},update(e,t){var n=e.id,r=e.key,i=e.value,a=t.put;return s().mark(function e(){var t;return s().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/plan/update",{id:n,[r]:i});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,a({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},sort(e,t){var n=e.fromIndex,r=e.toIndex,i=t.select,a=t.put;return s().mark(function e(){var t,l,c;return s().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,a({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,i(e=>e.plan);case 4:return t=e.sent,l=t.plans,ne.id)});case 11:if(c=e.sent,200===c.code){e.next=14;break}return e.abrupt("return");case 14:return e.next=16,a({type:"fetch"});case 16:case"end":return e.stop()}},e)})()}}}},GrtH:function(e,t,n){"use strict";n.d(t,"e",function(){return l}),n.d(t,"d",function(){return c}),n.d(t,"f",function(){return u}),n.d(t,"b",function(){return h}),n.d(t,"h",function(){return f}),n.d(t,"c",function(){return d}),n.d(t,"g",function(){return g}),n.d(t,"a",function(){return v});var r=n("QbLZ"),i=n.n(r),o=n("wd/R"),a=n.n(o),s={disabledHours:function(){return[]},disabledMinutes:function(){return[]},disabledSeconds:function(){return[]}};function l(e){var t=a()();return t.locale(e.locale()).utcOffset(e.utcOffset()),t}function c(e){return e.format("LL")}function u(e){var t=l(e);return c(t)}function h(e){var t=e.locale(),n=e.localeData();return n["zh-cn"===t?"months":"monthsShort"](e)}function f(e,t){a.a.isMoment(e)&&a.a.isMoment(t)&&(t.hour(e.hour()),t.minute(e.minute()),t.second(e.second()),t.millisecond(e.millisecond()))}function d(e,t){var n=t?t(e):{};return n=i()({},s,n),n}function p(e,t){var n=!1;if(e){var r=e.hour(),i=e.minute(),o=e.second(),a=t.disabledHours();if(-1===a.indexOf(r)){var s=t.disabledMinutes(r);if(-1===s.indexOf(i)){var l=t.disabledSeconds(r,i);n=-1!==l.indexOf(o)}else n=!0}else n=!0}return!n}function m(e,t){var n=d(e,t);return p(e,n)}function g(e,t,n){return(!t||!t(e))&&!(n&&!m(e,n))}function v(e,t){return e?(Array.isArray(t)&&(t=t[0]),e.format(t)):""}},GsrZ:function(e,t){e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},Gytx:function(e,t){e.exports=function(e,t,n,r){var i=n?n.call(r,e,t):void 0;if(void 0!==i)return!!i;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var o=Object.keys(e),a=Object.keys(t);if(o.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");-1===n&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function u(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r}function h(e,t,n){return 3*(t+n)/4-n}function f(e){var t,n,r=c(e),a=r[0],s=r[1],l=new o(h(e,a,s)),u=0,f=s>0?a-4:a;for(n=0;n>16&255,l[u++]=t>>8&255,l[u++]=255&t;return 2===s&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,l[u++]=255&t),1===s&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t),l}function d(e){return r[e>>18&63]+r[e>>12&63]+r[e>>6&63]+r[63&e]}function p(e,t,n){for(var r,i=[],o=t;ol?l:s+a));return 1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},H9LU:function(e,t,n){"use strict";n("bbsP");var r=n("/wGt"),i=(n("+L6B"),n("2/Rp")),o=(n("5Dmo"),n("3S7+")),a=(n("OaEy"),n("2fM7")),s=(n("5NDa"),n("5rEg")),l=n("p0pE"),c=n.n(l),u=n("q1tI"),h=n.n(u),f=n("/MKj"),d=(n("lc5D"),n("VeWa"),n("umNf"),n("8zNj"));class p extends h.a.Component{constructor(e){super(e),this.state={server:this.props.record||{cipher:"chacha20-ietf-poly1305",rate:1},visible:!1,childDrawer:{visible:!1}}}onShow(){this.setState({visible:!this.state.visible})}save(){var e=this.state.server;this.props.dispatch({type:"serverShadowsocks/save",params:e,callback:()=>{this.onShow()}})}showChildDrawer(e,t){this.setState({childDrawer:c()({},this.state.childDrawer,{visible:!this.state.childDrawer.visible,title:e,type:t})})}changeServer(e,t){this.setState({server:c()({},this.state.server,{[e]:t})})}formChange(e,t){this.setState({server:c()({},this.state.server,{[e]:t})})}setObfsSettings(e,t){var n=this.state.server,r=n.obfs_settings||{};r[e]=t,this.setState({server:c()({},this.state.server,{obfs_settings:r})})}renderObfs(){var e=this.state.server;switch(e.obfs){case"http":var t,n;return h.a.createElement("div",{className:"row mt-2"},h.a.createElement("div",{className:"form-group col-4 mb-0"},h.a.createElement(s["a"],{placeholder:"路径",value:null===(t=e.obfs_settings)||void 0===t?void 0:t.path,onChange:e=>this.setObfsSettings("path",e.target.value)})),h.a.createElement("div",{className:"form-group col-8 mb-0"},h.a.createElement(s["a"],{placeholder:"Host",value:null===(n=e.obfs_settings)||void 0===n?void 0:n.host,onChange:e=>this.setObfsSettings("host",e.target.value)})))}}render(){var e=this.state.server,t=this.props.serverShadowsocks.saveLoading,n=this.props.serverManage.servers,l=this.props.serverGroup.groups,c=this.props.serverRoute.routes;return h.a.createElement(h.a.Fragment,null,h.a.cloneElement(this.props.children,{onClick:()=>this.setState({visible:!0})}),h.a.createElement(r["a"],{id:"server",maskClosable:!0,title:e.id?"编辑节点":"新建节点",width:"80%",visible:this.state.visible,onClose:()=>this.onShow()},h.a.createElement("div",null,h.a.createElement("div",{className:"row"},h.a.createElement("div",{className:"form-group col-8"},h.a.createElement("label",null,"节点名称"),h.a.createElement(s["a"],{placeholder:"请输入节点名称",value:e.name,onChange:e=>this.formChange("name",e.target.value)})),h.a.createElement("div",{className:"form-group col-4"},h.a.createElement("label",null,"倍率"),h.a.createElement(s["a"],{addonAfter:"x",placeholder:"请输入节点倍率",value:e.rate,onChange:e=>this.formChange("rate",e.target.value)}))),h.a.createElement("div",{className:"form-group"},h.a.createElement("label",null,"节点标签"),h.a.createElement(a["a"],{mode:"tags",value:e.tags||[],style:{width:"100%"},placeholder:"输入后回车添加标签",onChange:e=>this.formChange("tags",e.length>0?e:null)})),h.a.createElement("div",{className:"form-group"},h.a.createElement("label",null,"订阅排除地区"),h.a.createElement(a["a"],{mode:"tags",value:e.excludes||[],style:{width:"100%"},placeholder:"输入后回车添加排除规则",onChange:e=>this.formChange("excludes",e.length>0?e:null)})),h.a.createElement("div",{className:"form-group"},h.a.createElement("label",null,"节点IPs"),h.a.createElement(a["a"],{mode:"tags",value:e.ips||[],style:{width:"100%"},placeholder:"输入后回车添加节点IP",onChange:e=>this.formChange("ips",e.length>0?e:null)})),h.a.createElement("div",{className:"form-group"},h.a.createElement("label",null,"权限组 ",h.a.createElement(d["a"],null,h.a.createElement("a",{href:"javascript:(0);"},"添加权限组"))),h.a.createElement(a["a"],{mode:"multiple",value:e.group_id,placeholder:"请选择权限组",style:{width:"100%"},onChange:e=>this.formChange("group_id",e)},l.map(e=>{return h.a.createElement(a["a"].Option,{key:e.id},e.name)}))),h.a.createElement("div",{className:"row"},h.a.createElement("div",{className:"form-group col-md-12 col-xs-12"},h.a.createElement("label",null,"节点地址"),h.a.createElement(s["a"],{placeholder:"地址或IP",value:e.host,onChange:e=>this.formChange("host",e.target.value)}))),h.a.createElement("div",{className:"row"},h.a.createElement("div",{className:"form-group col-md-6 col-xs-12"},h.a.createElement("label",null,"连接端口"),h.a.createElement(s["a"],{placeholder:"用户连接端口",value:e.port,onChange:e=>{this.formChange("port",e.target.value)}})),h.a.createElement("div",{className:"form-group col-md-6 col-xs-12"},h.a.createElement("label",null,"服务端口"),h.a.createElement(s["a"],{placeholder:"服务端开放端口",value:e.server_port,onChange:e=>{this.formChange("server_port",e.target.value)}}))),h.a.createElement("div",{className:"form-group"},h.a.createElement("label",null,"加密算法"),h.a.createElement(a["a"],{value:e.cipher,onChange:e=>this.formChange("cipher",e),style:{width:"100%"}},h.a.createElement(a["a"].Option,{value:"aes-128-gcm"},"aes-128-gcm"),h.a.createElement(a["a"].Option,{value:"aes-192-gcm"},"aes-192-gcm"),h.a.createElement(a["a"].Option,{value:"aes-256-gcm"},"aes-256-gcm"),h.a.createElement(a["a"].Option,{value:"chacha20-ietf-poly1305"},"chacha20-ietf-poly1305"),h.a.createElement(a["a"].Option,{value:"2022-blake3-aes-128-gcm"},"2022-blake3-aes-128-gcm"),h.a.createElement(a["a"].Option,{value:"2022-blake3-aes-256-gcm"},"2022-blake3-aes-256-gcm"))),h.a.createElement("div",{className:"form-group"},h.a.createElement("label",null,"混淆"),h.a.createElement(a["a"],{value:e.obfs||"",onChange:e=>this.formChange("obfs",e),style:{width:"100%"}},h.a.createElement(a["a"].Option,{value:""},"无"),h.a.createElement(a["a"].Option,{value:"http"},"HTTP")),h.a.createElement("div",null,this.renderObfs())),h.a.createElement("div",{className:"form-group"},h.a.createElement("label",null,h.a.createElement(o["a"],{placement:"top"},"父节点 ",h.a.createElement("a",{target:"_blank",href:"https://docs.v2board.com/use/node.html#父节点与子节点关系",rel:"noreferrer"},"更多解答"))),h.a.createElement(a["a"],{value:e.parent_id||"",onChange:e=>this.formChange("parent_id",e),style:{width:"100%"}},h.a.createElement(a["a"].Option,{value:""},"无"),n.map(t=>{if("shadowsocks"===t.type&&t.id!==e.id)return h.a.createElement(a["a"].Option,{key:Math.random(),value:t.id},t.name)}))),h.a.createElement("div",{className:"form-group"},h.a.createElement("label",null,"路由组"),h.a.createElement(a["a"],{mode:"multiple",value:e.route_id||[],placeholder:"请选择路由组",style:{width:"100%"},onChange:e=>this.formChange("route_id",e.length>0?e:null)},c.map(e=>{return h.a.createElement(a["a"].Option,{key:e.id},e.remarks)})))),h.a.createElement("div",{className:"v2board-drawer-action"},h.a.createElement(i["a"],{style:{marginRight:8},onClick:()=>this.onShow()},"取消"),h.a.createElement(i["a"],{loading:t,onClick:()=>this.save(),type:"primary"},"提交"))))}}t["a"]=Object(f["c"])(e=>{var t=e.serverShadowsocks,n=e.serverGroup,r=e.serverManage,i=e.serverRoute;return{serverShadowsocks:t,serverGroup:n,serverManage:r,serverRoute:i}})(p)},HCMe:function(e,t,n){n("Jaki")("Int32",4,function(e){return function(t,n,r){return e(this,t,n,r)}})},HKjm:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("2UD4"),i=n("jBYB"),o=n("obDU");t.default=l;var a=["second","second-short","minute","minute-short","hour","hour-short","day","day-short","month","month-short","year","year-short"],s=["best fit","numeric"];function l(e,t){t=t||{},o.isArray(e)&&(e=e.concat()),o.defineProperty(this,"_locale",{value:this._resolveLocale(e)}),o.defineProperty(this,"_options",{value:{style:this._resolveStyle(t.style),units:this._isValidUnits(t.units)&&t.units}}),o.defineProperty(this,"_locales",{value:e}),o.defineProperty(this,"_fields",{value:this._findFields(this._locale)}),o.defineProperty(this,"_messages",{value:o.objCreate(null)});var n=this;this.format=function(e,t){return n._format(e,t)}}o.defineProperty(l,"__localeData__",{value:o.objCreate(null)}),o.defineProperty(l,"__addLocaleData",{value:function(){for(var e=0;e=0)return!0;if("string"===typeof e){var t=/s$/.test(e)&&e.substr(0,e.length-1);if(t&&o.arrIndexOf.call(a,t)>=0)throw new Error('"'+e+'" is not a valid IntlRelativeFormat `units` value, did you mean: '+t)}throw new Error('"'+e+'" is not a valid IntlRelativeFormat `units` value, it must be one of: "'+a.join('", "')+'"')},l.prototype._resolveLocale=function(e){"string"===typeof e&&(e=[e]),e=(e||[]).concat(l.defaultLocale);var t,n,r,i,o=l.__localeData__;for(t=0,n=e.length;t=0)return e;throw new Error('"'+e+'" is not a valid IntlRelativeFormat `style` value, it must be one of: "'+s.join('", "')+'"')},l.prototype._selectUnits=function(e){var t,n,r,i=a.filter(function(e){return e.indexOf("-short")<1});for(t=0,n=i.length;to)a(n[o++]);e._c=[],e._n=!1,t&&!e._h&&N(e)})}},N=function(e){v.call(l,function(){var t,n,r,i=e._v,o=D(e);if(o&&(t=w(function(){L?k.emit("unhandledRejection",i,e):(n=l.onunhandledrejection)?n({promise:e,reason:i}):(r=l.console)&&r.error&&r.error("Unhandled promise rejection",i)}),e._h=L||D(e)?2:1),e._a=void 0,o&&t.e)throw t.v})},D=function(e){return 1!==e._h&&0===(e._a||e._c).length},I=function(e){v.call(l,function(){var t;L?k.emit("rejectionHandled",e):(t=l.onrejectionhandled)&&t({promise:e,reason:e._v})})},$=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),R(t,!0))},F=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw S("Promise can't be resolved itself");(t=M(e))?y(function(){var r={_w:n,_d:!1};try{t.call(e,c(F,r,1),c($,r,1))}catch(e){$.call(r,e)}}):(n._v=e,n._s=1,R(n,!1))}catch(e){$.call({_w:n,_d:!1},e)}}};j||(T=function(e){p(this,T,E,"_h"),d(e),r.call(this);try{e(c(F,this,1),c($,this,1))}catch(e){$.call(this,e)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n("zNw+")(T.prototype,{then:function(e,t){var n=P(g(this,T));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=L?k.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&R(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new r;this.promise=e,this.resolve=c(F,e,1),this.reject=c($,e,1)},b.f=P=function(e){return e===T||e===a?new o(e):i(e)}),h(h.G+h.W+h.F*!j,{Promise:T}),n("lvAo")(T,E),n("gRqi")(E),a=n("bV5f")[E],h(h.S+h.F*!j,E,{reject:function(e){var t=P(this),n=t.reject;return n(e),t.promise}}),h(h.S+h.F*(s||!j),E,{resolve:function(e){return _(s&&this===a?T:this,e)}}),h(h.S+h.F*!(j&&n("cQyX")(function(e){T.all(e)["catch"](A)})),E,{all:function(e){var t=this,n=P(t),r=n.resolve,i=n.reject,o=w(function(){var n=[],o=0,a=1;m(e,!1,function(e){var s=o++,l=!1;n.push(void 0),a++,t.resolve(e).then(function(e){l||(l=!0,n[s]=e,--a||r(n))},i)}),--a||r(n)});return o.e&&i(o.v),n.promise},race:function(e){var t=this,n=P(t),r=n.reject,i=w(function(){m(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}})},Hfiw:function(e,t,n){var r=n("Y7ZC");r(r.S,"Object",{setPrototypeOf:n("6tYh").set})},Hsns:function(e,t,n){var r=n("93I4"),i=n("5T2Y").document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},HzlJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={locale:"en",pluralRuleFunction:function(e,t){var n=String(e).split("."),r=!n[1],i=Number(n[0])==e,o=i&&n[0].slice(-1),a=i&&n[0].slice(-2);return t?1==o&&11!=a?"one":2==o&&12!=a?"two":3==o&&13!=a?"few":"other":1==e&&r?"one":"other"},fields:{year:{displayName:"year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{one:"in {0} year",other:"in {0} years"},past:{one:"{0} year ago",other:"{0} years ago"}}},"year-short":{displayName:"yr.",relative:{0:"this yr.",1:"next yr.","-1":"last yr."},relativeTime:{future:{one:"in {0} yr.",other:"in {0} yr."},past:{one:"{0} yr. ago",other:"{0} yr. ago"}}},month:{displayName:"month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{one:"in {0} month",other:"in {0} months"},past:{one:"{0} month ago",other:"{0} months ago"}}},"month-short":{displayName:"mo.",relative:{0:"this mo.",1:"next mo.","-1":"last mo."},relativeTime:{future:{one:"in {0} mo.",other:"in {0} mo."},past:{one:"{0} mo. ago",other:"{0} mo. ago"}}},week:{displayName:"week",relativePeriod:"the week of {0}",relative:{0:"this week",1:"next week","-1":"last week"},relativeTime:{future:{one:"in {0} week",other:"in {0} weeks"},past:{one:"{0} week ago",other:"{0} weeks ago"}}},"week-short":{displayName:"wk.",relativePeriod:"the week of {0}",relative:{0:"this wk.",1:"next wk.","-1":"last wk."},relativeTime:{future:{one:"in {0} wk.",other:"in {0} wk."},past:{one:"{0} wk. ago",other:"{0} wk. ago"}}},day:{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},"day-short":{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},hour:{displayName:"hour",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hour",other:"in {0} hours"},past:{one:"{0} hour ago",other:"{0} hours ago"}}},"hour-short":{displayName:"hr.",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hr.",other:"in {0} hr."},past:{one:"{0} hr. ago",other:"{0} hr. ago"}}},minute:{displayName:"minute",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} minute",other:"in {0} minutes"},past:{one:"{0} minute ago",other:"{0} minutes ago"}}},"minute-short":{displayName:"min.",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} min.",other:"in {0} min."},past:{one:"{0} min. ago",other:"{0} min. ago"}}},second:{displayName:"second",relative:{0:"now"},relativeTime:{future:{one:"in {0} second",other:"in {0} seconds"},past:{one:"{0} second ago",other:"{0} seconds ago"}}},"second-short":{displayName:"sec.",relative:{0:"now"},relativeTime:{future:{one:"in {0} sec.",other:"in {0} sec."},past:{one:"{0} sec. ago",other:"{0} sec. ago"}}}}}},IMiH:function(e,t,n){"use strict";var r=n("QBsz"),i=n("mFDi"),o=n("LPTA"),a=n("4mN7"),s=n("Sj9i"),l={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},c=[],u=[],h=[],f=[],d=[],p=[],m=Math.min,g=Math.max,v=Math.cos,y=Math.sin,b=Math.abs,w=Math.PI,x=2*w,_="undefined"!==typeof Float32Array,E=[];function S(e){var t=Math.round(e/w*1e8)/1e8;return t%2*w}function k(e,t){var n=S(e[0]);n<0&&(n+=x);var r=n-e[0],i=e[1];i+=r,!t&&i-n>=x?i=n+x:t&&n-i>=x?i=n-x:!t&&n>i?i=n+(x-S(n-i)):t&&n0&&(this._ux=b(n/o["e"]/e)||0,this._uy=b(n/o["e"]/t)||0)},e.prototype.setDPR=function(e){this.dpr=e},e.prototype.setContext=function(e){this._ctx=e},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(e,t){return this._drawPendingPt(),this.addData(l.M,e,t),this._ctx&&this._ctx.moveTo(e,t),this._x0=e,this._y0=t,this._xi=e,this._yi=t,this},e.prototype.lineTo=function(e,t){var n=b(e-this._xi),r=b(t-this._yi),i=n>this._ux||r>this._uy;if(this.addData(l.L,e,t),this._ctx&&i&&this._ctx.lineTo(e,t),i)this._xi=e,this._yi=t,this._pendingPtDist=0;else{var o=n*n+r*r;o>this._pendingPtDist&&(this._pendingPtX=e,this._pendingPtY=t,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(e,t,n,r,i,o){return this._drawPendingPt(),this.addData(l.C,e,t,n,r,i,o),this._ctx&&this._ctx.bezierCurveTo(e,t,n,r,i,o),this._xi=i,this._yi=o,this},e.prototype.quadraticCurveTo=function(e,t,n,r){return this._drawPendingPt(),this.addData(l.Q,e,t,n,r),this._ctx&&this._ctx.quadraticCurveTo(e,t,n,r),this._xi=n,this._yi=r,this},e.prototype.arc=function(e,t,n,r,i,o){this._drawPendingPt(),E[0]=r,E[1]=i,k(E,o),r=E[0],i=E[1];var a=i-r;return this.addData(l.A,e,t,n,n,r,a,0,o?0:1),this._ctx&&this._ctx.arc(e,t,n,r,i,o),this._xi=v(i)*n+e,this._yi=y(i)*n+t,this},e.prototype.arcTo=function(e,t,n,r,i){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(e,t,n,r,i),this},e.prototype.rect=function(e,t,n,r){return this._drawPendingPt(),this._ctx&&this._ctx.rect(e,t,n,r),this.addData(l.R,e,t,n,r),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(l.Z);var e=this._ctx,t=this._x0,n=this._y0;return e&&e.closePath(),this._xi=t,this._yi=n,this},e.prototype.fill=function(e){e&&e.fill(),this.toStatic()},e.prototype.stroke=function(e){e&&e.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(e){var t=e.length;this.data&&this.data.length===t||!_||(this.data=new Float32Array(t));for(var n=0;nc.length&&(this._expandData(),c=this.data);for(var u=0;u0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var e=[],t=0;t11&&(this.data=new Float32Array(e)))}},e.prototype.getBoundingRect=function(){h[0]=h[1]=d[0]=d[1]=Number.MAX_VALUE,f[0]=f[1]=p[0]=p[1]=-Number.MAX_VALUE;var e,t=this.data,n=0,o=0,s=0,c=0;for(e=0;en||b(C)>r||d===t-1)&&(_=Math.sqrt(k*k+C*C),i=E,o=S);break;case l.C:var O=e[d++],T=e[d++],L=(E=e[d++],S=e[d++],e[d++]),A=e[d++];_=Object(s["d"])(i,o,O,T,E,S,L,A,10),i=L,o=A;break;case l.Q:O=e[d++],T=e[d++],E=e[d++],S=e[d++];_=Object(s["k"])(i,o,O,T,E,S,10),i=E,o=S;break;case l.A:var P=e[d++],j=e[d++],M=e[d++],R=e[d++],N=e[d++],D=e[d++],I=D+N;d+=1;e[d++];w&&(a=v(N)*M+P,c=y(N)*R+j),_=g(M,R)*m(x,Math.abs(D)),i=v(I)*M+P,o=y(I)*R+j;break;case l.R:a=i=e[d++],c=o=e[d++];var $=e[d++],F=e[d++];_=2*$+2*F;break;case l.Z:k=a-i,C=c-o;_=Math.sqrt(k*k+C*C),i=a,o=c;break}_>=0&&(u[f++]=_,h+=_)}return this._pathLen=h,h},e.prototype.rebuildPath=function(e,t){var n,r,i,o,a,h,f,d,p,w,x,_=this.data,E=this._ux,S=this._uy,k=this._len,C=t<1,O=0,T=0,L=0;if(!C||(this._pathSegLen||this._calculateLength(),f=this._pathSegLen,d=this._pathLen,p=t*d,p))e:for(var A=0;A0&&(e.lineTo(w,x),L=0),P){case l.M:n=i=_[A++],r=o=_[A++],e.moveTo(i,o);break;case l.L:a=_[A++],h=_[A++];var M=b(a-i),R=b(h-o);if(M>E||R>S){if(C){var N=f[T++];if(O+N>p){var D=(p-O)/N;e.lineTo(i*(1-D)+a*D,o*(1-D)+h*D);break e}O+=N}e.lineTo(a,h),i=a,o=h,L=0}else{var I=M*M+R*R;I>L&&(w=a,x=h,L=I)}break;case l.C:var $=_[A++],F=_[A++],B=_[A++],V=_[A++],W=_[A++],H=_[A++];if(C){N=f[T++];if(O+N>p){D=(p-O)/N;Object(s["g"])(i,$,B,W,D,c),Object(s["g"])(o,F,V,H,D,u),e.bezierCurveTo(c[1],u[1],c[2],u[2],c[3],u[3]);break e}O+=N}e.bezierCurveTo($,F,B,V,W,H),i=W,o=H;break;case l.Q:$=_[A++],F=_[A++],B=_[A++],V=_[A++];if(C){N=f[T++];if(O+N>p){D=(p-O)/N;Object(s["n"])(i,$,B,D,c),Object(s["n"])(o,F,V,D,u),e.quadraticCurveTo(c[1],u[1],c[2],u[2]);break e}O+=N}e.quadraticCurveTo($,F,B,V),i=B,o=V;break;case l.A:var U=_[A++],z=_[A++],G=_[A++],q=_[A++],K=_[A++],Y=_[A++],X=_[A++],Q=!_[A++],Z=G>q?G:q,J=b(G-q)>.001,ee=K+Y,te=!1;if(C){N=f[T++];O+N>p&&(ee=K+Y*(p-O)/N,te=!0),O+=N}if(J&&e.ellipse?e.ellipse(U,z,G,q,X,K,ee,Q):e.arc(U,z,Z,K,ee,Q),te)break e;j&&(n=v(K)*G+U,r=y(K)*q+z),i=v(ee)*G+U,o=y(ee)*q+z;break;case l.R:n=i=_[A],r=o=_[A+1],a=_[A++],h=_[A++];var ne=_[A++],re=_[A++];if(C){N=f[T++];if(O+N>p){var ie=p-O;e.moveTo(a,h),e.lineTo(a+m(ie,ne),h),ie-=ne,ie>0&&e.lineTo(a+ne,h+m(ie,re)),ie-=re,ie>0&&e.lineTo(a+g(ne-ie,0),h+re),ie-=ne,ie>0&&e.lineTo(a,h+g(re-ie,0));break e}O+=N}e.rect(a,h,ne,re);break;case l.Z:if(C){N=f[T++];if(O+N>p){D=(p-O)/N;e.lineTo(i*(1-D)+n*D,o*(1-D)+r*D);break e}O+=N}e.closePath(),i=n,o=r}}},e.prototype.clone=function(){var t=new e,n=this.data;return t.data=n.slice?n.slice():Array.prototype.slice.call(n),t._len=this._len,t},e.CMD=l,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();t["a"]=C},IR7R:function(e,t,n){"use strict";var r=n("WGNW"),i=n("Y/ne"),o=n("08Qx"),a=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);r(r.P+r.F*a,"String",{padEnd:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0,!1)}})},IX3V:function(e,t){function n(e,t){var n,r=0,i=e.length;for(r;r18),a&&(n.weChat=!0),t.svgSupported="undefined"!==typeof SVGRect,t.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,t.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),t.domSupported="undefined"!==typeof document;var s=document.documentElement.style;t.transform3dSupported=(n.ie&&"transition"in s||n.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||n.ie&&+n.version>=9}"object"===typeof wx&&"function"===typeof wx.getSystemInfoSync?(o.wxa=!0,o.touchEventsSupported=!0):"undefined"===typeof document&&"undefined"!==typeof self?o.worker=!0:"undefined"===typeof navigator?(o.node=!0,o.svgSupported=!0):a(navigator.userAgent,o),t["a"]=o},IuST:function(e,t){function n(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(n.push(a.value),t&&n.length===t)break}catch(e){i=!0,o=e}finally{try{r||null==s["return"]||s["return"]()}finally{if(i)throw o}}return n}e.exports=n},IzUq:function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},"J57/":function(e,t,n){var r=n("VyuQ")("keys"),i=n("kCK5");e.exports=function(e){return r[e]||(r[e]=i(e))}},J78i:function(e,t,n){"use strict";e.exports=a;var r=n("sZro"),i=Object.create(n("Onz0"));function o(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length0&&void 0!==arguments[0]?arguments[0]:[],t=Array.isArray(e)?e:[e];t.forEach(function(e){e&&e.locale&&(a.a.__addLocaleData(e),l.a.__addLocaleData(e))})}function E(e){var t=(e||"").split("-");while(t.length>0){if(S(t.join("-")))return!0;t.pop()}return!1}function S(e){var t=e&&e.toLowerCase();return!(!a.a.__localeData__[t]||!l.a.__localeData__[t])}var k="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C=(function(){function e(e){this.value=e}function t(t){var n,r;function i(e,t){return new Promise(function(i,a){var s={key:e,arg:t,resolve:i,reject:a,next:null};r?r=r.next=s:(n=r=s,o(e,t))})}function o(n,r){try{var i=t[n](r),s=i.value;s instanceof e?Promise.resolve(s.value).then(function(e){o("next",e)},function(e){o("throw",e)}):a(i.done?"return":"normal",i.value)}catch(e){a("throw",e)}}function a(e,t){switch(e){case"return":n.resolve({value:t,done:!0});break;case"throw":n.reject(t);break;default:n.resolve({value:t,done:!1});break}n=n.next,n?o(n.key,n.arg):r=null}this._invoke=i,"function"!==typeof t.return&&(this.return=void 0)}"function"===typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),O=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},j=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t},M=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t":">","<":"<",'"':""","'":"'"},ne=/[&><"']/g;function re(e){return(""+e).replace(ne,function(e){return te[e]})}function ie(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.reduce(function(t,r){return e.hasOwnProperty(r)?t[r]=e[r]:n.hasOwnProperty(r)&&(t[r]=n[r]),t},{})}function oe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.intl;g()(t,"[React Intl] Could not find required `intl` object. needs to exist in the component ancestry.")}function ae(e,t){if(e===t)return!0;if("object"!==("undefined"===typeof e?"undefined":k(e))||null===e||"object"!==("undefined"===typeof t?"undefined":k(t))||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=Object.prototype.hasOwnProperty.bind(t),o=0;o3&&void 0!==arguments[3]?arguments[3]:{},l=a.intl,c=void 0===l?{}:l,u=s.intl,h=void 0===u?{}:u;return!ae(t,r)||!ae(n,i)||!(h===c||ae(ie(h,ee),ie(c,ee)))}function le(e,t){var n=t?"\n"+t:"";return"[React Intl] "+e+n}function ce(e){0}function ue(e){return e.displayName||e.name||"Component"}function he(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.intlPropName,r=void 0===n?"intl":n,i=t.withRef,o=void 0!==i&&i,a=function(t){function n(e,t){C(this,n);var r=j(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,e,t));return oe(t),r}return A(n,t),O(n,[{key:"getWrappedInstance",value:function(){return g()(o,"[React Intl] To access the wrapped instance, the `{withRef: true}` option must be set when calling: `injectIntl()`"),this._wrappedInstance}},{key:"render",value:function(){var t=this;return f.a.createElement(e,L({},this.props,T({},r,this.context.intl),{ref:o?function(e){return t._wrappedInstance=e}:null}))}}]),n}(h["Component"]);return a.displayName="InjectIntl("+ue(e)+")",a.contextTypes={intl:Y},a.WrappedComponent=e,p()(a,e)}function fe(e){return e}function de(e){return a.a.prototype._resolveLocale(e)}function pe(e){return a.a.prototype._findPluralRuleFunction(e)}var me=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};C(this,e);var r="ordinal"===n.style,i=pe(de(t));this.format=function(e){return i(e,r)}},ge=Object.keys(X),ve=Object.keys(Q),ye=Object.keys(Z),be=Object.keys(J),we={second:60,minute:60,hour:24,day:30,month:12};function xe(e){var t=l.a.thresholds;t.second=e.second,t.minute=e.minute,t.hour=e.hour,t.day=e.day,t.month=e.month,t["second-short"]=e["second-short"],t["minute-short"]=e["minute-short"],t["hour-short"]=e["hour-short"],t["day-short"]=e["day-short"],t["month-short"]=e["month-short"]}function _e(e,t,n,r){var i=e&&e[t]&&e[t][n];if(i)return i;r(le("No "+t+" format named: "+n))}function Ee(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=e.locale,o=e.formats,a=e.timeZone,s=r.format,l=e.onError||ce,c=new Date(n),u=L({},a&&{timeZone:a},s&&_e(o,"date",s,l)),h=ie(r,ge,u);try{return t.getDateTimeFormat(i,h).format(c)}catch(e){l(le("Error formatting date.",e))}return String(c)}function Se(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=e.locale,o=e.formats,a=e.timeZone,s=r.format,l=e.onError||ce,c=new Date(n),u=L({},a&&{timeZone:a},s&&_e(o,"time",s,l)),h=ie(r,ge,u);h.hour||h.minute||h.second||(h=L({},h,{hour:"numeric",minute:"numeric"}));try{return t.getDateTimeFormat(i,h).format(c)}catch(e){l(le("Error formatting time.",e))}return String(c)}function ke(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=e.locale,o=e.formats,a=r.format,s=e.onError||ce,c=new Date(n),u=new Date(r.now),h=a&&_e(o,"relative",a,s),f=ie(r,ye,h),d=L({},l.a.thresholds);xe(we);try{return t.getRelativeFormat(i,f).format(c,{now:isFinite(u)?u:t.now()})}catch(e){s(le("Error formatting relative time.",e))}finally{xe(d)}return String(c)}function Ce(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=e.locale,o=e.formats,a=r.format,s=e.onError||ce,l=a&&_e(o,"number",a,s),c=ie(r,ve,l);try{return t.getNumberFormat(i,c).format(n)}catch(e){s(le("Error formatting number.",e))}return String(n)}function Oe(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=e.locale,o=ie(r,be),a=e.onError||ce;try{return t.getPluralFormat(i,o).format(n)}catch(e){a(le("Error formatting plural.",e))}return"other"}function Te(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=e.locale,o=e.formats,a=e.messages,s=e.defaultLocale,l=e.defaultFormats,c=n.id,u=n.defaultMessage;g()(c,"[React Intl] An `id` must be provided to format a message.");var h=a&&a[c],f=Object.keys(r).length>0;if(!f)return h||u||c;var d=void 0,p=e.onError||ce;if(h)try{var m=t.getMessageFormat(h,i,o);d=m.format(r)}catch(e){p(le('Error formatting message: "'+c+'" for locale: "'+i+'"'+(u?", using default message as fallback.":""),e))}else(!u||i&&i.toLowerCase()!==s.toLowerCase())&&p(le('Missing message: "'+c+'" for locale: "'+i+'"'+(u?", using default message as fallback.":"")));if(!d&&u)try{var v=t.getMessageFormat(u,s,l);d=v.format(r)}catch(e){p(le('Error formatting the default message for: "'+c+'"',e))}return d||p(le('Cannot format message: "'+c+'", using message '+(h||u?"source":"id")+" as fallback.")),d||h||u||c}function Le(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=Object.keys(r).reduce(function(e,t){var n=r[t];return e[t]="string"===typeof n?re(n):n,e},{});return Te(e,t,n,i)}var Ae=Object.freeze({formatDate:Ee,formatTime:Se,formatRelative:ke,formatNumber:Ce,formatPlural:Oe,formatMessage:Te,formatHTMLMessage:Le}),Pe=Object.keys(q),je=Object.keys(K),Me={formats:{},messages:{},timeZone:null,textComponent:"span",defaultLocale:"en",defaultFormats:{},onError:ce},Re=function(e){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};C(this,t);var r=j(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));g()("undefined"!==typeof Intl,"[React Intl] The `Intl` APIs must be available in the runtime, and do not appear to be built-in. An `Intl` polyfill should be loaded.\nSee: http://formatjs.io/guides/runtime-environments/");var i=n.intl,o=void 0;o=isFinite(e.initialNow)?Number(e.initialNow):i?i.now():Date.now();var s=i||{},c=s.formatters,u=void 0===c?{getDateTimeFormat:w(Intl.DateTimeFormat),getNumberFormat:w(Intl.NumberFormat),getMessageFormat:w(a.a),getRelativeFormat:w(l.a),getPluralFormat:w(me)}:c;return r.state=L({},u,{now:function(){return r._didDisplay?Date.now():o}}),r}return A(t,e),O(t,[{key:"getConfig",value:function(){var e=this.context.intl,t=ie(this.props,Pe,e);for(var n in Me)void 0===t[n]&&(t[n]=Me[n]);if(!E(t.locale)){var r=t,i=r.locale,o=r.defaultLocale,a=r.defaultFormats,s=r.onError;s(le('Missing locale data for locale: "'+i+'". Using default locale: "'+o+'" as fallback.')),t=L({},t,{locale:o,formats:a,messages:Me.messages})}return t}},{key:"getBoundFormatFns",value:function(e,t){return je.reduce(function(n,r){return n[r]=Ae[r].bind(null,e,t),n},{})}},{key:"getChildContext",value:function(){var e=this.getConfig(),t=this.getBoundFormatFns(e,this.state),n=this.state,r=n.now,i=P(n,["now"]);return{intl:L({},e,t,{formatters:i,now:r})}}},{key:"shouldComponentUpdate",value:function(){for(var e=arguments.length,t=Array(e),n=0;n1?i-1:0),a=1;a0;if(v){var y=Math.floor(1099511627776*Math.random()).toString(16),b=function(){var e=0;return function(){return"ELEMENT-"+y+"-"+(e+=1)}}();p="@__"+y+"__@",m={},g={},Object.keys(c).forEach(function(e){var t=c[e];if(Object(h["isValidElement"])(t)){var n=b();m[e]=p+n+p,g[n]=t}else m[e]=t})}var w={id:a,description:s,defaultMessage:l},x=n(w,m||c),_=void 0,E=g&&Object.keys(g).length>0;return _=E?x.split(p).filter(function(e){return!!e}).map(function(e){return g[e]||e}):[x],"function"===typeof d?d.apply(void 0,M(_)):h["createElement"].apply(void 0,[f,null].concat(M(_)))}}]),t}(h["Component"]);Ye.displayName="FormattedMessage",Ye.contextTypes={intl:Y},Ye.defaultProps={values:{}};var Xe=function(e){function t(e,n){C(this,t);var r=j(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));return oe(n),r}return A(t,e),O(t,[{key:"shouldComponentUpdate",value:function(e){var t=this.props.values,n=e.values;if(!ae(n,t))return!0;for(var r=L({},e,{values:t}),i=arguments.length,o=Array(i>1?i-1:0),a=1;a{this.state.visible||this.setState({submit:{}})})}save(){this.props.dispatch({type:"notice/save",params:p()({},this.state.submit),callback:()=>{this.modalVisible()}})}drop(e){this.props.dispatch({type:"notice/drop",id:e.id})}render(){var e=this.props.notice,t=e.notices,n=e.fetchLoading,r=[{title:"#",dataIndex:"id",key:"id"},{title:"显示",dataIndex:"show",key:"show",render:(e,t)=>{return g.a.createElement(f["a"],{size:"small",onChange:()=>this.props.dispatch({type:"notice/show",id:t.id}),checked:e})}},{title:"标题",dataIndex:"title",key:"title"},{title:"创建时间",dataIndex:"created_at",key:"created_at",align:"right",render:e=>{return b()(1e3*e).format("YYYY/MM/DD HH:mm")}},{title:"操作",dataIndex:"action",key:"action",align:"right",fixed:"right",render:(e,n,r)=>{return g.a.createElement("div",null,g.a.createElement("a",{onClick:()=>this.setState({submit:t[r]},()=>this.modalVisible()),href:"javascript:void(0);"},"编辑"),g.a.createElement(h["a"],{type:"vertical"}),g.a.createElement("a",{onClick:()=>this.drop(n),href:"javascript:void(0);"},"删除"))}}];return g.a.createElement(v["a"],i()({},this.props,{title:"公告管理"}),g.a.createElement("div",{className:"d-flex justify-content-between align-items-center"}),g.a.createElement(x["a"],{loading:n},g.a.createElement("div",{className:"block block-rounded"},g.a.createElement("div",{className:"bg-white"},g.a.createElement("div",{style:{padding:15}},g.a.createElement(c["a"],{onClick:()=>this.modalVisible()},g.a.createElement(u["a"],{type:"plus"})," 添加公告")),g.a.createElement(l["a"],{tableLayout:"auto",dataSource:t,pagination:!1,columns:r,scroll:{x:950}})))),g.a.createElement(o["a"],{title:"".concat(this.state.submit.id?"编辑公告":"新建公告"),visible:this.state.visible,onCancel:()=>this.modalVisible(),onOk:()=>this.state.saveLoading||this.save(),okText:this.state.saveLoading?g.a.createElement(u["a"],{type:"loading"}):"提交",cancelText:"取消"},g.a.createElement("div",null,g.a.createElement("div",{className:"form-group"},g.a.createElement("label",{for:"example-text-input-alt"},"标题"),g.a.createElement(s["a"],{placeholder:"请输入公告标题",value:this.state.submit.title,onChange:e=>{this.setState({submit:p()({},this.state.submit,{title:e.target.value})})}})),g.a.createElement("div",{className:"form-group"},g.a.createElement("label",{for:"example-text-input-alt"},"公告内容"),g.a.createElement(s["a"].TextArea,{rows:12,value:this.state.submit.content,placeholder:"请输入公告内容",onChange:e=>{this.setState({submit:p()({},this.state.submit,{content:e.target.value})})}})),g.a.createElement("div",{className:"form-group"},g.a.createElement("label",{htmlFor:"example-text-input-alt"},"公告标签"),g.a.createElement(a["a"],{mode:"tags",value:this.state.submit.tags||[],style:{width:"100%"},placeholder:"输入后回车添加标签",onChange:e=>{this.setState({submit:p()({},this.state.submit,{tags:e.length>0?e:null})})}})),g.a.createElement("div",{className:"form-group"},g.a.createElement("label",{for:"example-text-input-alt"},"图片URL"),g.a.createElement(s["a"],{placeholder:"请输入图片URL",value:this.state.submit.img_url,onChange:e=>{this.setState({submit:p()({},this.state.submit,{img_url:e.target.value})})}})))))}}t["default"]=Object(w["c"])(e=>{var t=e.notice;return{notice:t}})(_)},Jaki:function(e,t,n){"use strict";if(n("8Z/V")){var r=n("FqPH"),i=n("c0Oy"),o=n("wUWy"),a=n("WGNW"),s=n("88Vn"),l=n("yLMY"),c=n("wHrr"),u=n("YEVI"),h=n("pQGJ"),f=n("VPOE"),d=n("zNw+"),p=n("AUWw"),m=n("OsVd"),g=n("nYLq"),v=n("Spc3"),y=n("8BMt"),b=n("oxo0"),w=n("2a/h"),x=n("u8+u"),_=n("il4q"),E=n("ULMT"),S=n("/Mfd"),k=n("BFt8"),C=n("9HFh").f,O=n("BnQZ"),T=n("kCK5"),L=n("gL7N"),A=n("+o5p"),P=n("Lnex"),j=n("VeyY"),M=n("OERk"),R=n("yw4e"),N=n("cQyX"),D=n("gRqi"),I=n("7Uk0"),$=n("wlPd"),F=n("V5/1"),B=n("15BC"),V=F.f,W=B.f,H=i.RangeError,U=i.TypeError,z=i.Uint8Array,G="ArrayBuffer",q="Shared"+G,K="BYTES_PER_ELEMENT",Y="prototype",X=Array[Y],Q=l.ArrayBuffer,Z=l.DataView,J=A(0),ee=A(2),te=A(3),ne=A(4),re=A(5),ie=A(6),oe=P(!0),ae=P(!1),se=M.values,le=M.keys,ce=M.entries,ue=X.lastIndexOf,he=X.reduce,fe=X.reduceRight,de=X.join,pe=X.sort,me=X.slice,ge=X.toString,ve=X.toLocaleString,ye=L("iterator"),be=L("toStringTag"),we=T("typed_constructor"),xe=T("def_constructor"),_e=s.CONSTR,Ee=s.TYPED,Se=s.VIEW,ke="Wrong length!",Ce=A(1,function(e,t){return Pe(j(e,e[xe]),t)}),Oe=o(function(){return 1===new z(new Uint16Array([1]).buffer)[0]}),Te=!!z&&!!z[Y].set&&o(function(){new z(1).set({})}),Le=function(e,t){var n=p(e);if(n<0||n%t)throw H("Wrong offset!");return n},Ae=function(e){if(x(e)&&Ee in e)return e;throw U(e+" is not a typed array!")},Pe=function(e,t){if(!(x(e)&&we in e))throw U("It is not a typed array constructor!");return new e(t)},je=function(e,t){return Me(j(e,e[xe]),t)},Me=function(e,t){var n=0,r=t.length,i=Pe(e,r);while(r>n)i[n]=t[n++];return i},Re=function(e,t,n){V(e,t,{get:function(){return this._d[n]}})},Ne=function(e){var t,n,r,i,o,a,s=_(e),l=arguments.length,u=l>1?arguments[1]:void 0,h=void 0!==u,f=O(s);if(void 0!=f&&!E(f)){for(a=f.call(s),r=[],t=0;!(o=a.next()).done;t++)r.push(o.value);s=r}for(h&&l>2&&(u=c(u,arguments[2],2)),t=0,n=m(s.length),i=Pe(this,n);n>t;t++)i[t]=h?u(s[t],t):s[t];return i},De=function(){var e=0,t=arguments.length,n=Pe(this,t);while(t>e)n[e]=arguments[e++];return n},Ie=!!z&&o(function(){ve.call(new z(1))}),$e=function(){return ve.apply(Ie?me.call(Ae(this)):Ae(this),arguments)},Fe={copyWithin:function(e,t){return $.call(Ae(this),e,t,arguments.length>2?arguments[2]:void 0)},every:function(e){return ne(Ae(this),e,arguments.length>1?arguments[1]:void 0)},fill:function(e){return I.apply(Ae(this),arguments)},filter:function(e){return je(this,ee(Ae(this),e,arguments.length>1?arguments[1]:void 0))},find:function(e){return re(Ae(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function(e){return ie(Ae(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function(e){J(Ae(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function(e){return ae(Ae(this),e,arguments.length>1?arguments[1]:void 0)},includes:function(e){return oe(Ae(this),e,arguments.length>1?arguments[1]:void 0)},join:function(e){return de.apply(Ae(this),arguments)},lastIndexOf:function(e){return ue.apply(Ae(this),arguments)},map:function(e){return Ce(Ae(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return he.apply(Ae(this),arguments)},reduceRight:function(e){return fe.apply(Ae(this),arguments)},reverse:function(){var e,t=this,n=Ae(t).length,r=Math.floor(n/2),i=0;while(i1?arguments[1]:void 0)},sort:function(e){return pe.call(Ae(this),e)},subarray:function(e,t){var n=Ae(this),r=n.length,i=v(e,r);return new(j(n,n[xe]))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,m((void 0===t?r:v(t,r))-i))}},Be=function(e,t){return je(this,me.call(Ae(this),e,t))},Ve=function(e){Ae(this);var t=Le(arguments[1],1),n=this.length,r=_(e),i=m(r.length),o=0;if(i+t>n)throw H(ke);while(o255?255:255&r),i.v[d](n*t+i.o,r,Oe)},L=function(e,t){V(e,t,{get:function(){return O(this,t)},set:function(e){return T(this,t,e)},enumerable:!0})};b?(p=n(function(e,n,r,i){u(e,p,c,"_d");var o,a,s,l,h=0,d=0;if(x(n)){if(!(n instanceof Q||(l=w(n))==G||l==q))return Ee in n?Me(p,n):Ne.call(p,n);o=n,d=Le(r,t);var v=n.byteLength;if(void 0===i){if(v%t)throw H(ke);if(a=v-d,a<0)throw H(ke)}else if(a=m(i)*t,a+d>v)throw H(ke);s=a/t}else s=g(n),a=s*t,o=new Q(a);f(e,"_d",{b:o,o:d,l:a,e:s,v:new Z(o)});while(h{this.getData()},3e3)}render(){var e=this.props.system,t=e.queueStats,n=(e.getQueueStatsLoading,e.queueWorkload);e.getQueueWorkloadLoading;return s.a.createElement(l["a"],i()({},this.props,{title:"队列监控"}),s.a.createElement(u["a"],{loading:!t},s.a.createElement("div",{className:"block block-rounded "},s.a.createElement("div",{className:"block-header block-header-default"},s.a.createElement("h3",{className:"block-title"},"总览")),s.a.createElement("div",{className:"block-content p-0"},s.a.createElement("div",{className:"row no-gutters"},s.a.createElement("div",{className:"col-lg-6 col-xl-3 border-right p-4 border-bottom"},s.a.createElement("div",null,s.a.createElement("div",null,"当前作业量"),s.a.createElement("div",{className:"mt-4 font-size-h3"},(null===t||void 0===t?void 0:t.jobsPerMinute)||"0"))),s.a.createElement("div",{className:"col-lg-6 col-xl-3 border-right p-4 border-bottom"},s.a.createElement("div",null,s.a.createElement("div",null,"近一小时处理量"),s.a.createElement("div",{className:"mt-4 font-size-h3"},(null===t||void 0===t?void 0:t.recentJobs)||"0"))),s.a.createElement("div",{className:"col-lg-6 col-xl-3 border-right p-4 border-bottom"},s.a.createElement("div",null,s.a.createElement("div",null,"7日内报错数量"),s.a.createElement("div",{className:"mt-4 font-size-h3"},(null===t||void 0===t?void 0:t.failedJobs)||"0"))),s.a.createElement("div",{className:"col-lg-6 col-xl-3 p-4 border-bottom overflow-hidden"},s.a.createElement("div",null,s.a.createElement("div",null,"状态"),s.a.createElement("div",{className:"mt-4 font-size-h3"},t&&((null===t||void 0===t?void 0:t.status)?"运行中":"未启动")),t&&((null===t||void 0===t?void 0:t.status)?s.a.createElement("i",{class:"si si-check text-success",style:{position:"absolute",fontSize:100,right:-20,bottom:-20}}):s.a.createElement("i",{class:"si si-close text-danger",style:{position:"absolute",fontSize:100,right:-20,bottom:-20}})))))))),s.a.createElement(u["a"],{loading:!n},s.a.createElement("div",{className:"block block-rounded "},s.a.createElement("div",{className:"block-header block-header-default"},s.a.createElement("h3",{className:"block-title"},"当前作业详情")),s.a.createElement("div",{className:"block-content p-0"},s.a.createElement(o["a"],{columns:[{title:"队列名称",dataIndex:"name",key:"name",render:e=>{var t={order_handle:"订单队列",send_email:"邮件队列",send_email_mass:"邮件群发队列",send_telegram:"Telegram消息队列",stat:"统计队列",traffic_fetch:"流量消费队列",batch_traffic_fetch:"流量消费队列(高速)"};return t[e]}},{title:"作业量",dataIndex:"processes",key:"processes"},{title:"任务量",dataIndex:"length",key:"length"},{title:"占用时间",dataIndex:"wait",key:"wait",align:"right",render:e=>e+"s"}],dataSource:n&&n.filter(e=>"default"!==e.name),pagination:!1})))))}}t["default"]=Object(c["c"])(e=>{var t=e.system;return{system:t}})(h)},Ji7U:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("s4An");function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Object(r["a"])(e,t)}},KQm4:function(e,t,n){"use strict";var r=n("a3WO");function i(e){if(Array.isArray(e))return Object(r["a"])(e)}var o=n("25BE"),a=n("BsWD");function s(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(e){return i(e)||Object(o["a"])(e)||Object(a["a"])(e)||s()}n.d(t,"a",function(){return l})},KUxP:function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},KbcA:function(e,t,n){"use strict";var r=n("QbLZ"),i=n.n(r),o=n("iCc5"),a=n.n(o),s=n("FYw3"),l=n.n(s),c=n("mRg0"),u=n.n(c),h=n("q1tI"),f=n.n(h),d=n("17x9"),p=n.n(d),m=n("4IlW"),g=n("VCL8"),v=n("2zpS"),y=n("JDzL"),b=n("jBZG"),w=n("F4Vz"),x=n("wd/R"),_=n.n(x),E=function(e){function t(n){a()(this,t);var r=l()(this,e.call(this,n));return r.onKeyDown=function(e){var t=e.keyCode,n=e.ctrlKey||e.metaKey,i=r.state.value,o=r.props.disabledDate,a=i;switch(t){case m["a"].DOWN:a=i.clone(),a.add(3,"months");break;case m["a"].UP:a=i.clone(),a.add(-3,"months");break;case m["a"].LEFT:a=i.clone(),n?a.add(-1,"years"):a.add(-1,"months");break;case m["a"].RIGHT:a=i.clone(),n?a.add(1,"years"):a.add(1,"months");break;case m["a"].ENTER:return o&&o(i)||r.onSelect(i),e.preventDefault(),1;default:return}if(a!==i)return r.setValue(a),e.preventDefault(),1},r.handlePanelChange=function(e,t){"date"!==t&&r.setState({mode:t})},r.state={mode:"month",value:n.value||n.defaultValue||_()(),selectedValue:n.selectedValue||n.defaultSelectedValue},r}return u()(t,e),t.prototype.render=function(){var e=this.props,t=this.state,n=t.mode,r=t.value,i=f.a.createElement("div",{className:e.prefixCls+"-month-calendar-content"},f.a.createElement("div",{className:e.prefixCls+"-month-header-wrap"},f.a.createElement(v["a"],{prefixCls:e.prefixCls,mode:n,value:r,locale:e.locale,disabledMonth:e.disabledDate,monthCellRender:e.monthCellRender,monthCellContentRender:e.monthCellContentRender,onMonthSelect:this.onSelect,onValueChange:this.setValue,onPanelChange:this.handlePanelChange})),f.a.createElement(y["a"],{prefixCls:e.prefixCls,renderFooter:e.renderFooter}));return this.renderRoot({className:e.prefixCls+"-month-calendar",children:i})},t}(f.a.Component);E.propTypes=i()({},b["b"],w["c"],{monthCellRender:p.a.func,value:p.a.object,defaultValue:p.a.object,selectedValue:p.a.object,defaultSelectedValue:p.a.object,disabledDate:p.a.func}),E.defaultProps=i()({},w["b"],b["a"]),t["a"]=Object(g["polyfill"])(Object(b["c"])(Object(w["a"])(E)))},Kwbf:function(e,t,n){"use strict";var r={};function i(e,t){0}function o(e,t,n){t||r[n]||(e(!1,n),r[n]=!0)}function a(e,t){o(i,e,t)}t["a"]=a},KyW6:function(e,t,n){"use strict";n.r(t);n("Y/ft"),n("qIgq");var r=n("p0pE"),i=n.n(r),o=n("1l/V"),a=n.n(o),s=(n("0wlq"),n("dcFJ"),n("VxKu"),n("QsMh"),n("kgWH"),n("/gYn"),n("Q6cQ"),n("nwK/"),n("O42g"),n("XrRV"),n("jN/G"),n("PkQq"),n("er1Y"),n("/mWb"),n("jjMW"),n("OHgp"),n("EEQl"),n("HXXR"),n("kWR5"),n("Bz7s"),n("lZXM"),n("DBt0"),n("hIUm"),n("G7Hh"),n("DFAo"),n("0sxA"),n("rUcv"),n("3m+/"),n("9nSz"),n("IR7R"),n("UQt1"),n("u2w5"),n("zxrt"),n("Bus3"),n("OR3X"),n("o175"),n("XP1/"),n("w8uh"),n("HCMe"),n("QEzc"),n("QeHl"),n("SPFY"),n("7RDE"),n("fKm+"),n("N4uP"),n("zr8x"),n("zQzA"),n("wOl0"),n("RFCh"),n("q1tI")),l=n.n(s),c=n("i8i4"),u=n.n(c),h=n("sa7a"),f=n.n(h);function d(){d=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var o=t&&t.prototype instanceof f?t:f,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var h={};function f(){}function p(){}function m(){}var g={};l(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=f.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=u(e[r],e,o);if("throw"!==l.type){var c=l.arg,h=c.value;return h&&"object"==typeof h&&n.call(h,"__await")?t.resolve(h.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(h).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===h)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=u(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var i=u(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,h;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},e}n.d(t,"ReactDOMServer",function(){return g});var p=n("PszG");window.g_plugins=p,p.init({validKeys:["patchRoutes","render","rootContainer","modifyRouteProps","onRouteChange","modifyInitialProps","initialProps","dva"]}),p.use(n("3JrO")),p.use(n("ERIh"));var m=n("xg5P")._onCreate();window.g_app=m;var g,v=function(){var e=a()(d().mark(function e(){var t,r,o,a,s;return d().wrap(function(e){while(1)switch(e.prev=e.next){case 0:if(window.g_isBrowser=!0,t={},!window.g_useSSR){e.next=6;break}t=window.g_initialData,e.next=18;break;case 6:if(r=location.pathname,o=f()(n("i4x8").routes,r),!(o&&o.component&&o.component.getInitialProps)){e.next=18;break}if(a=p.apply("modifyInitialProps",{initialValue:{}}),!o.component.getInitialProps){e.next=16;break}return e.next=13,o.component.getInitialProps(i()({route:o,isServer:!1,location:location},a));case 13:e.t0=e.sent,e.next=17;break;case 16:e.t0={};case 17:t=e.t0;case 18:s=p.apply("rootContainer",{initialValue:l.a.createElement(n("i4x8").default,t)}),u.a[window.g_useSSR?"hydrate":"render"](s,document.getElementById("root"));case 20:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}(),y=p.compose("render",{initialValue:v}),b=[];Promise.all(b).then(()=>{y()}).catch(e=>{window.console&&window.console.error(e)});t["default"]=null;n("hh8c")},L9pr:function(e,t,n){"use strict";t["a"]={today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",yearFormat:"YYYY年",dayFormat:"D日",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH时mm分ss秒",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪"}},LIAx:function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=a;var i=n("E0u0"),o=r(i);function a(e,t,n,r){function i(t){var r=new o["default"](t);n.call(e,r)}if(e.addEventListener){var a=function(){var n=!1;return"object"===typeof r?n=r.capture||!1:"boolean"===typeof r&&(n=r),e.addEventListener(t,i,r||!1),{v:{remove:function(){e.removeEventListener(t,i,n)}}}}();if("object"===typeof a)return a.v}else if(e.attachEvent)return e.attachEvent("on"+t,i),{remove:function(){e.detachEvent("on"+t,i)}}}e.exports=t["default"]},LLXN:function(e,t,n){"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t1&&void 0!==arguments[1])||arguments[1],n=window,r=n.g_langSeparator,i=void 0===r?"-":r,o=new RegExp("^([a-z]{2})".concat(i,"?([A-Z]{2})?$"));if(void 0!==e&&!o.test(e))throw new Error("setLocale lang format error");if(u()!==e&&(window.g_lang=e,window.localStorage.setItem("umi_locale",e||""),a&&!t&&a.reloadAppLocale(),t&&window.location.reload(),window.dispatchEvent)){var s=new Event("languagechange");window.dispatchEvent(s)}}function u(){var e=window,t=e.g_langSeparator,n=void 0===t?"-":t,r=e.g_lang,i="undefined"!==typeof localStorage?window.localStorage.getItem("umi_locale"):"",o="undefined"!==typeof navigator&&"string"===typeof navigator.language,a=o?navigator.language.split("-").join(n):"";return i||r||a}var h,f=l({lang:u()}),d={};function p(e){h=e}function m(e){a=e}["formatMessage","formatHTMLMessage","formatDate","formatTime","formatRelative","formatNumber","formatPlural","LangContext","now","onError"].forEach(function(e){d[e]=function(){var t;return h&&h[e]?(t=h[e]).call.apply(t,[h].concat(Array.prototype.slice.call(arguments))):(console&&console.warn&&console.warn("[umi-plugin-locale] ".concat(e," not initialized yet, you should use it after react app mounted.")),null)}}),e.exports=i({},s,{},d,{setLocale:c,getLocale:u,_setIntlObject:p,LangContext:f,_setLocaleContext:m})},LMyI:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={switchLoading:{},saveLoading:!1};t["default"]={name:"serverShadowsocks",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{update(e,t){var n=e.id,r=e.key,i=e.value,s=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/shadowsocks/update",{id:n,[r]:i});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,s({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/shadowsocks/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},copy(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/shadowsocks/copy",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},save(e,t){var n=e.params,r=e.callback,i=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{saveLoading:!0}});case 2:return e.next=4,Object(o["b"])("/"+window.settings.secure_path+"/server/shadowsocks/save",n);case 4:return t=e.sent,e.next=7,i({type:"setState",payload:{saveLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,i({type:"serverManage/getNodes"});case 11:"function"===typeof r&&r();case 12:case"end":return e.stop()}},e)})()}}}},LPTA:function(e,t,n){"use strict";n.d(t,"e",function(){return o}),n.d(t,"b",function(){return a}),n.d(t,"a",function(){return s}),n.d(t,"d",function(){return l}),n.d(t,"c",function(){return c});var r=n("ItGF"),i=1;r["a"].hasGlobalWindow&&(i=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var o=i,a=.4,s="#333",l="#ccc",c="#eee"},LcXL:function(e,t,n){"use strict";var r=n("mrSG"),i=n("bYtY"),o=n("1bdT"),a=n("mFDi"),s=function(e){function t(t){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(t),n}return Object(r["a"])(t,e),t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(e){return this._children[e]},t.prototype.childOfName=function(e){for(var t=this._children,n=0;n=0&&(n.splice(r,0,e),this._doAdd(e))}return this},t.prototype.replace=function(e,t){var n=i["p"](this._children,e);return n>=0&&this.replaceAt(t,n),this},t.prototype.replaceAt=function(e,t){var n=this._children,r=n[t];if(e&&e!==this&&e.parent!==this&&e!==r){n[t]=e,r.parent=null;var i=this.__zr;i&&r.removeSelfFromZr(i),this._doAdd(e)}return this},t.prototype._doAdd=function(e){e.parent&&e.parent.remove(e),e.parent=this;var t=this.__zr;t&&t!==e.__zr&&e.addSelfToZr(t),t&&t.refresh()},t.prototype.remove=function(e){var t=this.__zr,n=this._children,r=i["p"](n,e);return r<0?this:(n.splice(r,1),e.parent=null,t&&e.removeSelfFromZr(t),t&&t.refresh(),this)},t.prototype.removeAll=function(){for(var e=this._children,t=this.__zr,n=0;n0)return!0;return!1}function ce(e,t){var n=new RegExp("[".concat(t.join(),"]"));return e.split(n).filter(function(e){return e})}function ue(e,t){if(t.props.disabled)return!1;var n=J(q(t,this.props.optionFilterProp)).join("");return n.toLowerCase().indexOf(e.toLowerCase())>-1}function he(e,t){if(!Z(t)&&!K(t)&&"string"!==typeof e)throw new Error("Invalid `value` of type `".concat(typeof e,"` supplied to Option, ")+"expected `string` when `tags/combobox` is `true`.")}function fe(e,t){return function(n){e[t]=n}}function de(){var e=(new Date).getTime(),t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?n:7&n|8).toString(16)});return t}function pe(){return pe=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},r=t.needFocus,i=t.fireSearch,o=n.props,a=n.state;if(a.open!==e){n.props.onDropdownVisibleChange&&n.props.onDropdownVisibleChange(e);var s={open:e,backfillValue:""};!e&&Z(o)&&o.showSearch&&n.setInputValue("",i),e||n.maybeFocus(e,!!r),n.setState($e({open:e},s),function(){e&&n.maybeFocus(e,!!r)})}else n.maybeFocus(e,!!r)},n.setInputValue=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=n.props.onSearch;e!==n.state.inputValue&&n.setState(function(n){return t&&e!==n.inputValue&&r&&r(e),{inputValue:e}},n.forcePopupAlign)},n.getValueByInput=function(e){var t=n.props,r=t.multiple,i=t.tokenSeparators,o=n.state.value,a=!1;return ce(e,i).forEach(function(e){var t=[e];if(r){var i=n.getValueByLabel(e);i&&-1===ne(o,i)&&(o=o.concat(i),a=!0,n.fireSelect(i))}else-1===ne(o,e)&&(o=o.concat(t),a=!0,n.fireSelect(e))}),a?o:void 0},n.getRealOpenState=function(e){var t=n.props.open;if("boolean"===typeof t)return t;var r=(e||n.state).open,i=n._options||[];return!Q(n.props)&&n.props.showSearch||r&&!i.length&&(r=!1),r},n.markMouseDown=function(){n._mouseDown=!0},n.markMouseLeave=function(){n._mouseDown=!1},n.handleBackfill=function(e){if(n.props.backfill&&(Z(n.props)||Y(n.props))){var t=G(e);Y(n.props)&&n.setInputValue(t,!1),n.setState({value:[t],backfillValue:t})}},n.filterOption=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ue,i=n.state.value,o=i[i.length-1];if(!e||o&&o===n.state.backfillValue)return!0;var a=n.props.filterOption;return"filterOption"in n.props?!0===a&&(a=r.bind(Ue(n))):a=r.bind(Ue(n)),!a||("function"===typeof a?a.call(Ue(n),e,t):!t.props.disabled)},n.timeoutFocus=function(){var e=n.props.onFocus;n.focusTimer&&n.clearFocusTime(),n.focusTimer=window.setTimeout(function(){e&&e()},10)},n.clearFocusTime=function(){n.focusTimer&&(clearTimeout(n.focusTimer),n.focusTimer=null)},n.clearBlurTime=function(){n.blurTimer&&(clearTimeout(n.blurTimer),n.blurTimer=null)},n.clearComboboxTime=function(){n.comboboxTimer&&(clearTimeout(n.comboboxTimer),n.comboboxTimer=null)},n.updateFocusClassName=function(){var e=n.rootRef,t=n.props;n._focused?A()(e).add("".concat(t.prefixCls,"-focused")):A()(e).remove("".concat(t.prefixCls,"-focused"))},n.maybeFocus=function(e,t){if(t||e){var r=n.getInputDOMNode(),i=document,o=i.activeElement;r&&(e||Q(n.props))?o!==r&&(r.focus(),n._focused=!0):o!==n.selectionRef&&n.selectionRef&&(n.selectionRef.focus(),n._focused=!0)}},n.removeSelected=function(e,t){var r=n.props;if(!r.disabled&&!n.isChildDisabled(e)){t&&t.stopPropagation&&t.stopPropagation();var i=n.state.value,o=i.filter(function(t){return t!==e}),a=X(r);if(a){var s=e;r.labelInValue&&(s={key:e,label:n.getLabelBySingleValue(e)}),r.onDeselect&&r.onDeselect(s,n.getOptionBySingleValue(e))}n.fireChange(o)}},n.openIfHasChildren=function(){var e=n.props;(r["Children"].count(e.children)||Z(e))&&n.setOpenState(!0)},n.fireSelect=function(e){n.props.onSelect&&n.props.onSelect(n.getVLBySingleValue(e),n.getOptionBySingleValue(e))},n.fireChange=function(e){var t=n.props;"value"in t||n.setState({value:e},n.forcePopupAlign);var r=n.getVLForOnChange(e),i=n.getOptionsBySingleValue(e);t.onChange&&t.onChange(r,X(n.props)?i:i[0])},n.isChildDisabled=function(e){return R(n.props.children).some(function(t){var n=G(t);return n===e&&t.props&&t.props.disabled})},n.forcePopupAlign=function(){n.state.open&&n.selectTriggerRef&&n.selectTriggerRef.triggerRef&&n.selectTriggerRef.triggerRef.forcePopupAlign()},n.renderFilterOptions=function(){var e=n.state.inputValue,t=n.props,i=t.children,o=t.tags,a=t.notFoundContent,s=[],l=[],c=!1,u=n.renderFilterOptionsFromChildren(i,l,s);if(o){var h=n.state.value;h=h.filter(function(t){return-1===l.indexOf(t)&&(!e||String(t).indexOf(String(e))>-1)}),h.sort(function(e,t){return e.length-t.length}),h.forEach(function(e){var t=e,n=r["createElement"](j["b"],{style:oe,role:"option",attribute:ae,value:t,key:t},t);u.push(n),s.push(n)}),e&&s.every(function(t){return G(t)!==e})&&u.unshift(r["createElement"](j["b"],{style:oe,role:"option",attribute:ae,value:e,key:e},e))}return!u.length&&a&&(c=!0,u=[r["createElement"](j["b"],{style:oe,attribute:ae,disabled:!0,role:"option",value:"NOT_FOUND",key:"NOT_FOUND"},a)]),{empty:c,options:u}},n.renderFilterOptionsFromChildren=function(e,t,i){var o=[],a=n.props,s=n.state.inputValue,l=a.tags;return r["Children"].forEach(e,function(e){if(e){var a=e.type;if(a.isSelectOptGroup){var c=e.props.label,u=e.key;if(u||"string"!==typeof c?!c&&u&&(c=u):u=c,s&&n.filterOption(s,e)){var h=R(e.props.children).map(function(e){var t=G(e)||e.key;return r["createElement"](j["b"],$e({key:t,value:t},e.props))});o.push(r["createElement"](j["c"],{key:u,title:c},h))}else{var f=n.renderFilterOptionsFromChildren(e.props.children,t,i);f.length&&o.push(r["createElement"](j["c"],{key:u,title:c},f))}}else{F()(a.isSelectOption,"the children of `Select` should be `Select.Option` or `Select.OptGroup`, "+"instead of `".concat(a.name||a.displayName||e.type,"`."));var d=G(e);if(he(d,n.props),n.filterOption(s,e)){var p=r["createElement"](j["b"],$e({style:oe,attribute:ae,value:d,key:d,role:"option"},e.props));o.push(p),i.push(p)}l&&t.push(d)}}}),o},n.renderTopControlNode=function(){var e=n.state,t=e.open,i=e.inputValue,o=n.state.value,a=n.props,s=a.choiceTransitionName,l=a.prefixCls,c=a.maxTagTextLength,u=a.maxTagCount,h=a.showSearch,f=a.removeIcon,d=a.maxTagPlaceholder,p="".concat(l,"-selection__rendered"),m=null;if(Z(a)){var g=null;if(o.length){var v=!1,y=1;h&&t?(v=!i,v&&(y=.4)):v=!0;var b=o[0],w=n.getOptionInfoBySingleValue(b),x=w.label,_=w.title;g=r["createElement"]("div",{key:"value",className:"".concat(l,"-selection-selected-value"),title:z(_||x),style:{display:v?"block":"none",opacity:y}},x)}m=h?[g,r["createElement"]("div",{className:"".concat(l,"-search ").concat(l,"-search--inline"),key:"input",style:{display:t?"block":"none"}},n.getInputElement())]:[g]}else{var E,S=[],k=o;if(void 0!==u&&o.length>u){k=k.slice(0,u);var C=n.getVLForOnChange(o.slice(u,o.length)),O="+ ".concat(o.length-u," ...");d&&(O="function"===typeof d?d(C):d),E=r["createElement"]("li",$e({style:oe},ae,{role:"presentation",onMouseDown:te,className:"".concat(l,"-selection__choice ").concat(l,"-selection__choice__disabled"),key:"maxTagPlaceholder",title:z(O)}),r["createElement"]("div",{className:"".concat(l,"-selection__choice__content")},O))}X(a)&&(S=k.map(function(e){var t=n.getOptionInfoBySingleValue(e),i=t.label,o=t.title||i;c&&"string"===typeof i&&i.length>c&&(i="".concat(i.slice(0,c),"..."));var a=n.isChildDisabled(e),s=a?"".concat(l,"-selection__choice ").concat(l,"-selection__choice__disabled"):"".concat(l,"-selection__choice");return r["createElement"]("li",$e({style:oe},ae,{onMouseDown:te,className:s,role:"presentation",key:e||Ke,title:z(o)}),r["createElement"]("div",{className:"".concat(l,"-selection__choice__content")},i),a?null:r["createElement"]("span",{onClick:function(t){n.removeSelected(e,t)},className:"".concat(l,"-selection__choice__remove")},f||r["createElement"]("i",{className:"".concat(l,"-selection__choice__remove-icon")},"×")))})),E&&S.push(E),S.push(r["createElement"]("li",{className:"".concat(l,"-search ").concat(l,"-search--inline"),key:"__input"},n.getInputElement())),m=X(a)&&s?r["createElement"](P["a"],{onLeave:n.onChoiceAnimationLeave,component:"ul",transitionName:s},S):r["createElement"]("ul",null,S)}return r["createElement"]("div",{className:p,ref:n.saveTopCtrlRef},n.getPlaceholderElement(),m)};var i=t.getOptionsInfoFromProps(e);if(e.tags&&"function"!==typeof e.filterOption){var o=Object.keys(i).some(function(e){return i[e].disabled});F()(!o,"Please avoid setting option to disabled in tags mode since user can always type text as tag.")}return n.state={value:t.getValueFromProps(e,!0),inputValue:e.combobox?t.getInputValueForCombobox(e,i,!0):"",open:e.defaultOpen,optionsInfo:i,backfillValue:"",skipBuildOptionsInfo:!0,ariaId:""},n.saveInputRef=fe(Ue(n),"inputRef"),n.saveInputMirrorRef=fe(Ue(n),"inputMirrorRef"),n.saveTopCtrlRef=fe(Ue(n),"topCtrlRef"),n.saveSelectTriggerRef=fe(Ue(n),"selectTriggerRef"),n.saveRootRef=fe(Ue(n),"rootRef"),n.saveSelectionRef=fe(Ue(n),"selectionRef"),n}return ze(t,e),Ve(t,[{key:"componentDidMount",value:function(){(this.props.autoFocus||this.state.open)&&this.focus(),this.setState({ariaId:de()})}},{key:"componentDidUpdate",value:function(){if(X(this.props)){var e=this.getInputDOMNode(),t=this.getInputMirrorDOMNode();e&&e.value&&t?(e.style.width="",e.style.width="".concat(t.clientWidth,"px")):e&&(e.style.width="")}this.forcePopupAlign()}},{key:"componentWillUnmount",value:function(){this.clearFocusTime(),this.clearBlurTime(),this.clearComboboxTime(),this.dropdownContainer&&(D["unmountComponentAtNode"](this.dropdownContainer),document.body.removeChild(this.dropdownContainer),this.dropdownContainer=null)}},{key:"focus",value:function(){Z(this.props)&&this.selectionRef?this.selectionRef.focus():this.getInputDOMNode()&&this.getInputDOMNode().focus()}},{key:"blur",value:function(){Z(this.props)&&this.selectionRef?this.selectionRef.blur():this.getInputDOMNode()&&this.getInputDOMNode().blur()}},{key:"renderArrow",value:function(e){var t=this.props,n=t.showArrow,i=void 0===n?!e:n,o=t.loading,a=t.inputIcon,s=t.prefixCls;if(!i&&!o)return null;var l=o?r["createElement"]("i",{className:"".concat(s,"-arrow-loading")}):r["createElement"]("i",{className:"".concat(s,"-arrow-icon")});return r["createElement"]("span",$e({key:"arrow",className:"".concat(s,"-arrow"),style:oe},ae,{onClick:this.onArrowClick}),a||l)}},{key:"renderClear",value:function(){var e=this.props,t=e.prefixCls,n=e.allowClear,i=e.clearIcon,o=this.state.inputValue,a=this.state.value,s=r["createElement"]("span",$e({key:"clear",className:"".concat(t,"-selection__clear"),onMouseDown:te,style:oe},ae,{onClick:this.onClearSelection}),i||r["createElement"]("i",{className:"".concat(t,"-selection__clear-icon")},"×"));return n?Y(this.props)?o?s:null:o||a.length?s:null:null}},{key:"render",value:function(){var e,t=this.props,n=X(t),i=t.showArrow,o=void 0===i||i,a=this.state,s=t.className,l=t.disabled,c=t.prefixCls,u=t.loading,h=this.renderTopControlNode(),f=this.state,d=f.open,p=f.ariaId;if(d){var m=this.renderFilterOptions();this._empty=m.empty,this._options=m.options}var g=this.getRealOpenState(),v=this._empty,y=this._options||[],b={};Object.keys(t).forEach(function(e){!Object.prototype.hasOwnProperty.call(t,e)||"data-"!==e.substr(0,5)&&"aria-"!==e.substr(0,5)&&"role"!==e||(b[e]=t[e])});var w=$e({},b);Q(t)||(w=$e($e({},w),{onKeyDown:this.onKeyDown,tabIndex:t.disabled?-1:t.tabIndex}));var x=(e={},Ie(e,s,!!s),Ie(e,c,1),Ie(e,"".concat(c,"-open"),d),Ie(e,"".concat(c,"-focused"),d||!!this._focused),Ie(e,"".concat(c,"-combobox"),Y(t)),Ie(e,"".concat(c,"-disabled"),l),Ie(e,"".concat(c,"-enabled"),!l),Ie(e,"".concat(c,"-allow-clear"),!!t.allowClear),Ie(e,"".concat(c,"-no-arrow"),!o),Ie(e,"".concat(c,"-loading"),!!u),e);return r["createElement"](De,{onPopupFocus:this.onPopupFocus,onMouseEnter:this.props.onMouseEnter,onMouseLeave:this.props.onMouseLeave,dropdownAlign:t.dropdownAlign,dropdownClassName:t.dropdownClassName,dropdownMatchSelectWidth:t.dropdownMatchSelectWidth,defaultActiveFirstOption:t.defaultActiveFirstOption,dropdownMenuStyle:t.dropdownMenuStyle,transitionName:t.transitionName,animation:t.animation,prefixCls:t.prefixCls,dropdownStyle:t.dropdownStyle,combobox:t.combobox,showSearch:t.showSearch,options:y,empty:v,multiple:n,disabled:l,visible:g,inputValue:a.inputValue,value:a.value,backfillValue:a.backfillValue,firstActiveValue:t.firstActiveValue,onDropdownVisibleChange:this.onDropdownVisibleChange,getPopupContainer:t.getPopupContainer,onMenuSelect:this.onMenuSelect,onMenuDeselect:this.onMenuDeselect,onPopupScroll:t.onPopupScroll,showAction:t.showAction,ref:this.saveSelectTriggerRef,menuItemSelectedIcon:t.menuItemSelectedIcon,dropdownRender:t.dropdownRender,ariaId:p},r["createElement"]("div",{id:t.id,style:t.style,ref:this.saveRootRef,onBlur:this.onOuterBlur,onFocus:this.onOuterFocus,className:T()(x),onMouseDown:this.markMouseDown,onMouseUp:this.markMouseLeave,onMouseOut:this.markMouseLeave},r["createElement"]("div",$e({ref:this.saveSelectionRef,key:"selection",className:"".concat(c,"-selection\n ").concat(c,"-selection--").concat(n?"multiple":"single"),role:"combobox","aria-autocomplete":"list","aria-haspopup":"true","aria-controls":p,"aria-expanded":g},w),h,this.renderClear(),this.renderArrow(!!n))))}}]),t}(r["Component"]);Qe.propTypes=C,Qe.defaultProps={prefixCls:"rc-select",defaultOpen:!1,labelInValue:!1,defaultActiveFirstOption:!0,showSearch:!0,allowClear:!1,placeholder:"",onChange:Ye,onFocus:Ye,onBlur:Ye,onSelect:Ye,onSearch:Ye,onDeselect:Ye,onInputKeyDown:Ye,dropdownMatchSelectWidth:!0,dropdownStyle:{},dropdownMenuStyle:{},optionFilterProp:"value",optionLabelProp:"value",notFoundContent:"Not Found",backfill:!1,showAction:["click"],tokenSeparators:[],autoClearSearchValue:!0,tabIndex:0,dropdownRender:function(e){return e}},Qe.getDerivedStateFromProps=function(e,t){var n=t.skipBuildOptionsInfo?t.optionsInfo:Qe.getOptionsInfoFromProps(e,t),r={optionsInfo:n,skipBuildOptionsInfo:!1};if("open"in e&&(r.open=e.open),e.disabled&&t.open&&(r.open=!1),"value"in e){var i=Qe.getValueFromProps(e);r.value=i,e.combobox&&(r.inputValue=Qe.getInputValueForCombobox(e,n))}return r},Qe.getOptionsFromChildren=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return r["Children"].forEach(e,function(e){if(e){var n=e.type;n.isSelectOptGroup?Qe.getOptionsFromChildren(e.props.children,t):t.push(e)}}),t},Qe.getInputValueForCombobox=function(e,t,n){var r=[];if("value"in e&&!n&&(r=J(e.value)),"defaultValue"in e&&n&&(r=J(e.defaultValue)),!r.length)return"";r=r[0];var i=r;return e.labelInValue?i=r.label:t[ee(r)]&&(i=t[ee(r)].label),void 0===i&&(i=""),i},Qe.getLabelFromOption=function(e,t){return q(t,e.optionLabelProp)},Qe.getOptionsInfoFromProps=function(e,t){var n=Qe.getOptionsFromChildren(e.children),r={};if(n.forEach(function(t){var n=G(t);r[ee(n)]={option:t,value:n,label:Qe.getLabelFromOption(e,t),title:t.props.title,disabled:t.props.disabled}}),t){var i=t.optionsInfo,o=t.value;o&&o.forEach(function(e){var t=ee(e);r[t]||void 0===i[t]||(r[t]=i[t])})}return r},Qe.getValueFromProps=function(e,t){var n=[];return"value"in e&&!t&&(n=J(e.value)),"defaultValue"in e&&t&&(n=J(e.defaultValue)),e.labelInValue&&(n=n.map(function(e){return e.key})),n},Qe.displayName="Select",Object(I["polyfill"])(Qe);var Ze=Qe;n.d(t,"b",function(){return b}),n.d(t,"a",function(){return h}),Ze.Option=b,Ze.OptGroup=h;t["c"]=Ze},Lnex:function(e,t,n){var r=n("OeOC"),i=n("OsVd"),o=n("Spc3");e.exports=function(e){return function(t,n,a){var s,l=r(t),c=i(l.length),u=o(a,c);if(e&&n!=n){while(c>u)if(s=l[u++],s!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}}},LpSC:function(e,t,n){n("bZMm"),e.exports=self.fetch.bind(self)},LsAW:function(e,t){t.f={}.propertyIsEnumerable},M1xp:function(e,t,n){var r=n("a0xu");e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},MFj2:function(e,t,n){"use strict";var r=n("QbLZ"),i=n.n(r),o=n("YEIV"),a=n.n(o),s=n("iCc5"),l=n.n(s),c=n("V7oC"),u=n.n(c),h=n("FYw3"),f=n.n(h),d=n("mRg0"),p=n.n(d),m=n("q1tI"),g=n.n(m),v=n("17x9"),y=n.n(v),b=function(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");return"function"!==typeof t.componentWillReceiveProps?e:g.a.Profiler?(t.UNSAFE_componentWillReceiveProps=t.componentWillReceiveProps,delete t.componentWillReceiveProps,e):e},w=b;function x(e){var t=[];return g.a.Children.forEach(e,function(e){t.push(e)}),t}function _(e,t){var n=null;return e&&e.forEach(function(e){n||e&&e.key===t&&(n=e)}),n}function E(e,t,n){var r=null;return e&&e.forEach(function(e){if(e&&e.key===t&&e.props[n]){if(r)throw new Error("two child with same key for children");r=e}}),r}function S(e,t,n){var r=e.length===t.length;return r&&e.forEach(function(e,i){var o=t[i];e&&o&&(e&&!o||!e&&o?r=!1:e.key!==o.key?r=!1:n&&e.props[n]!==o.props[n]&&(r=!1))}),r}function k(e,t){var n=[],r={},i=[];return e.forEach(function(e){e&&_(t,e.key)?i.length&&(r[e.key]=i,i=[]):i.push(e)}),t.forEach(function(e){e&&Object.prototype.hasOwnProperty.call(r,e.key)&&(n=n.concat(r[e.key])),n.push(e)}),n=n.concat(i),n}var C=n("i8i4"),O=n.n(C),T=n("EJiy"),L=n.n(T),A=n("/dDc"),P=n("PFWz"),j=n.n(P),M=0!==A["a"].endEvents.length,R=["Webkit","Moz","O","ms"],N=["-webkit-","-moz-","-o-","ms-",""];function D(e,t){for(var n=window.getComputedStyle(e,null),r="",i=0;i children");return g.a.createElement(z,{key:n.key,ref:function(t){e.childrenRefs[n.key]=t},animation:t.animation,transitionName:t.transitionName,transitionEnter:t.transitionEnter,transitionAppear:t.transitionAppear,transitionLeave:t.transitionLeave},n)}));var o=t.component;if(o){var a=t;return"string"===typeof o&&(a=i()({className:t.className,style:t.style},t.componentProps)),g.a.createElement(o,a,r)}return r[0]||null}}]),t}(g.a.Component);Y.isAnimate=!0,Y.propTypes={className:y.a.string,style:y.a.object,component:y.a.any,componentProps:y.a.object,animation:y.a.object,transitionName:y.a.oneOfType([y.a.string,y.a.object]),transitionEnter:y.a.bool,transitionAppear:y.a.bool,exclusive:y.a.bool,transitionLeave:y.a.bool,onEnd:y.a.func,onEnter:y.a.func,onLeave:y.a.func,onAppear:y.a.func,showProp:y.a.string,children:y.a.node},Y.defaultProps={animation:{},component:"span",componentProps:{},transitionEnter:!0,transitionLeave:!0,transitionAppear:!1,onEnd:K,onEnter:K,onLeave:K,onAppear:K};var X=function(){var e=this;this.performEnter=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillEnter(e.handleDoneAdding.bind(e,t,"enter")))},this.performAppear=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillAppear(e.handleDoneAdding.bind(e,t,"appear")))},this.handleDoneAdding=function(t,n){var r=e.props;if(delete e.currentlyAnimatingKeys[t],!r.exclusive||r===e.nextProps){var i=x(q(r));e.isValidChildByKey(i,t)?"appear"===n?W.allowAppearCallback(r)&&(r.onAppear(t),r.onEnd(t,!0)):W.allowEnterCallback(r)&&(r.onEnter(t),r.onEnd(t,!0)):e.performLeave(t)}},this.performLeave=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillLeave(e.handleDoneLeaving.bind(e,t)))},this.handleDoneLeaving=function(t){var n=e.props;if(delete e.currentlyAnimatingKeys[t],!n.exclusive||n===e.nextProps){var r=x(q(n));if(e.isValidChildByKey(r,t))e.performEnter(t);else{var i=function(){W.allowLeaveCallback(n)&&(n.onLeave(t),n.onEnd(t,!1))};S(e.state.children,r,n.showProp)?i():e.setState({children:r},i)}}}};t["a"]=w(Y)},MPFp:function(e,t,n){"use strict";var r=n("uOPS"),i=n("Y7ZC"),o=n("kTiW"),a=n("NegM"),s=n("SBuE"),l=n("j2DC"),c=n("RfKB"),u=n("U+KD"),h=n("UWiX")("iterator"),f=!([].keys&&"next"in[].keys()),d="@@iterator",p="keys",m="values",g=function(){return this};e.exports=function(e,t,n,v,y,b,w){l(n,t,v);var x,_,E,S=function(e){if(!f&&e in T)return T[e];switch(e){case p:return function(){return new n(this,e)};case m:return function(){return new n(this,e)}}return function(){return new n(this,e)}},k=t+" Iterator",C=y==m,O=!1,T=e.prototype,L=T[h]||T[d]||y&&T[y],A=L||S(y),P=y?C?S("entries"):A:void 0,j="Array"==t&&T.entries||L;if(j&&(E=u(j.call(new e)),E!==Object.prototype&&E.next&&(c(E,k,!0),r||"function"==typeof E[h]||a(E,h,g))),C&&L&&L.name!==m&&(O=!0,A=function(){return L.call(this)}),r&&!w||!f&&!O&&T[h]||a(T,h,A),s[t]=A,s[k]=g,y)if(x={values:C?A:S(m),keys:b?A:S(p),entries:P},w)for(_ in x)_ in T||o(T,_,x[_]);else i(i.P+i.F*(f||O),t,x);return x}},MWgS:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}n.d(t,"a",function(){return r})},MgzW:function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function a(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function s(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(e){i[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(e){return!1}}e.exports=s()?Object.assign:function(e,t){for(var n,s,l=a(e),c=1;c=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function i(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a(e){for(var t=1;t1&&0===n&&i&&"auto"!==i?parseInt(i.toString(),10):i},m);return u.createElement(h,Object.assign({},p,{style:g}),t.map(function(e,t){var n,i=e.column,o=e.isLast,l=r(e,["column","isLast"]),h=i.onHeaderCell?i.onHeaderCell(i):{};return i.align&&(h.style=a({},h.style,{textAlign:i.align})),h.className=f.default(h.className,i.className,(n={},s(n,"".concat(c,"-align-").concat(i.align),!!i.align),s(n,"".concat(c,"-row-cell-ellipsis"),!!i.ellipsis),s(n,"".concat(c,"-row-cell-break-word"),!!i.width),s(n,"".concat(c,"-row-cell-last"),o),n)),u.createElement(d,Object.assign({},l,h,{key:i.key||i.dataIndex||t}))}))}function p(e,t){var n=e.fixedColumnsHeadRowsHeight,r=t.columns,i=t.rows,o=t.fixed,a=n[0];return o&&a&&r?"auto"===a?"auto":a/i.length:null}t.default=h.connect(function(e,t){return{height:p(e,t)}})(d)},MvwC:function(e,t,n){var r=n("5T2Y").document;e.exports=r&&r.documentElement},N2Kk:function(e,t,n){"use strict";t["a"]={items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页"}},N4uP:function(e,t,n){var r=n("c0Oy"),i=n("WGNW"),o=n("08Qx"),a=[].slice,s=/MSIE .\./.test(o),l=function(e){return function(t,n){var r=arguments.length>2,i=!!r&&a.call(arguments,2);return e(r?function(){("function"==typeof t?t:Function(t)).apply(this,i)}:t,n)}};i(i.G+i.B+i.F*s,{setTimeout:l(r.setTimeout),setInterval:l(r.setInterval)})},N9RS:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");n("tI4l");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={payments:[],fetchLoading:!1};t["default"]={name:"payment",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{fetch(e,t){var n=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/payment/fetch");case 4:return t=e.sent,e.next=7,n({type:"setState",payload:{fetchLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,n({type:"setState",payload:{payments:t.data}});case 11:case"end":return e.stop()}},e)})()},getPaymentMethods(e){var t=e.complete;return a().mark(function e(){var n;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["a"])("/"+window.settings.secure_path+"/payment/getPaymentMethods");case 2:if(n=e.sent,200===n.code){e.next=5;break}return e.abrupt("return");case 5:t(n.data);case 6:case"end":return e.stop()}},e)})()},getPaymentForm(e){var t=e.complete,n=e.payment,r=e.id;return a().mark(function e(){var i;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/payment/getPaymentForm",{payment:n,id:r});case 2:if(i=e.sent,200===i.code){e.next=5;break}return e.abrupt("return");case 5:t(i.data);case 6:case"end":return e.stop()}},e)})()},save(e,t){var n=e.params,r=e.complete,s=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/payment/save",i()({},n));case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return"function"===typeof r&&r(t.data),e.next=8,s({type:"fetch"});case 8:case"end":return e.stop()}},e)})()},show(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/payment/show",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/payment/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},sort(e,t){var n=e.fromIndex,r=e.toIndex,i=t.select,s=t.put;return a().mark(function e(){var t,l,c;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,s({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,i(e=>e.payment);case 4:return t=e.sent,l=t.payments,ne.id)});case 11:if(c=e.sent,200===c.code){e.next=14;break}return e.abrupt("return");case 14:return e.next=16,s({type:"fetch"});case 16:case"end":return e.stop()}},e)})()}}}},NC18:function(e,t,n){"use strict";var r=n("mrSG"),i=n("y+Vt"),o=n("IMiH"),a=n("QBsz"),s=o["a"].CMD,l=[[],[],[]],c=Math.sqrt,u=Math.atan2;function h(e,t){if(t){var n,r,i,o,h,f,d=e.data,p=e.len(),m=s.M,g=s.C,v=s.L,y=s.R,b=s.A,w=s.Q;for(i=0,o=0;i1&&(a*=d(w),s*=d(w));var x=(i===o?-1:1)*d((a*a*(s*s)-a*a*(v*v)-s*s*(f*f))/(a*a*(v*v)+s*s*(f*f)))||0,_=x*a*v/s,E=x*-s*f/a,S=(e+n)/2+m(h)*_-p(h)*E,k=(t+r)/2+p(h)*_+m(h)*E,C=b([1,0],[(f-_)/a,(v-E)/s]),O=[(f-_)/a,(v-E)/s],T=[(-1*f-_)/a,(-1*v-E)/s],L=b(O,T);if(y(O,T)<=-1&&(L=g),y(O,T)>=1&&(L=0),L<0){var A=Math.round(L/g*1e6)/1e6;L=2*g+A%2*g}u.addData(c,S,k,a,s,C,L,h,o)}var x=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,_=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function E(e){var t=new o["a"];if(!e)return t;var n,r=0,i=0,a=r,s=i,l=o["a"].CMD,c=e.match(x);if(!c)return t;for(var u=0;u=0&&r(c)?c:.5;var u=e.createRadialGradient(s,l,0,s,l,c);return u}function a(e,t,n){for(var r="radial"===t.type?o(e,t,n):i(e,t,n),a=t.colorStops,s=0;s0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(i(this,o),e);return t&&t.v},set:function(e,t){return r.def(i(this,o),0===e?0:e,t)}},r,!0)},O8oq:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");n("tI4l");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={themes:[],active:void 0};t["default"]={name:"theme",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{getThemes(e,t){var n=t.put;return a().mark(function e(){var t,r,i;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"setState",payload:{getThemesLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/theme/getThemes");case 4:return i=e.sent,e.next=7,n({type:"setState",payload:{getThemesLoading:!1}});case 7:if(200===i.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,n({type:"setState",payload:{themes:null===i||void 0===i?void 0:null===(t=i.data)||void 0===t?void 0:t.themes,active:null===i||void 0===i?void 0:null===(r=i.data)||void 0===r?void 0:r.active}});case 11:case"end":return e.stop()}},e)})()},getThemeConfig(e,t){var n=e.name,r=e.complete,i=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{getThemeConfigLoading:!0}});case 2:return e.next=4,Object(o["b"])("/"+window.settings.secure_path+"/theme/getThemeConfig",{name:n});case 4:return t=e.sent,e.next=7,i({type:"setState",payload:{getThemeConfigLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:"function"===typeof r&&r(t.data);case 10:case"end":return e.stop()}},e)})()},saveThemeConfig(e,t){var n=e.config,r=e.name,i=e.complete,s=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,s({type:"setState",payload:{saveThemeConfigLoading:!0}});case 2:return e.next=4,Object(o["b"])("/"+window.settings.secure_path+"/theme/saveThemeConfig",{config:n,name:r});case 4:return t=e.sent,e.next=7,s({type:"setState",payload:{saveThemeConfigLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,s({type:"getThemes"});case 11:"function"===typeof i&&i(t.data);case 12:case"end":return e.stop()}},e)})()}}}},OERk:function(e,t,n){"use strict";var r=n("DIcO"),i=n("48Dx"),o=n("yw4e"),a=n("OeOC");e.exports=n("XdPT")(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},OHgp:function(e,t,n){"use strict";var r=n("2a/h"),i={};i[n("gL7N")("toStringTag")]="z",i+""!="[object z]"&&n("rKIl")(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},OJuA:function(e,t,n){"use strict";e.exports=n("FqPH")||!n("wUWy")(function(){var e=Math.random();__defineSetter__.call(null,e,function(){}),delete n("c0Oy")[e]})},OLES:function(e,t,n){"use strict";var r=n("QbLZ"),i=n.n(r),o=n("jo6Y"),a=n.n(o),s=n("iCc5"),l=n.n(s),c=n("FYw3"),u=n.n(c),h=n("mRg0"),f=n.n(h),d=n("q1tI"),p=n.n(d),m=n("17x9"),g=n.n(m),v=n("uciX"),y=n("7ixt"),b=function(e){function t(){return l()(this,t),u()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.componentDidUpdate=function(){var e=this.props.trigger;e&&e.forcePopupAlign()},t.prototype.render=function(){var e=this.props,t=e.overlay,n=e.prefixCls,r=e.id;return p.a.createElement("div",{className:n+"-inner",id:r,role:"tooltip"},"function"===typeof t?t():t)},t}(p.a.Component);b.propTypes={prefixCls:g.a.string,overlay:g.a.oneOfType([g.a.node,g.a.func]).isRequired,id:g.a.string,trigger:g.a.any};var w=b,x=function(e){function t(){var n,r,i;l()(this,t);for(var o=arguments.length,a=Array(o),s=0;s{if(!this.props.disableRightClick)return{onClick:e=>{this.props.onContextMenu&&(this.props.onContextMenu(void 0),document.getElementById("v2board-table-dropdown").style="display:none;")},onDoubleClick:e=>{},onContextMenu:t=>{this.props.onContextMenu&&(t.preventDefault(),this.forceUpdate(),this.props.onContextMenu&&this.props.onContextMenu(e),document.getElementById("v2board-table-dropdown").style="top: ".concat(t.clientY,"px; left: ").concat(t.clientX,"px;display:unset;"))},onMouseEnter:e=>{},onMouseLeave:e=>{}}}})),s.a.createElement("div",{id:"v2board-table-dropdown",className:"ant-dropdown ant-dropdown-placement-bottomLeft",style:{display:"none",position:"fixed",top:0,left:0},onClick:()=>{this.props.onContextMenu&&(document.getElementById("v2board-table-dropdown").style="display:none;")}},this.props.children))}}},OeOC:function(e,t,n){var r=n("9WFV"),i=n("ZDr/");e.exports=function(e){return r(i(e))}},Ojgd:function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},Onz0:function(e,t,n){function r(e){return Array.isArray?Array.isArray(e):"[object Array]"===v(e)}function i(e){return"boolean"===typeof e}function o(e){return null===e}function a(e){return null==e}function s(e){return"number"===typeof e}function l(e){return"string"===typeof e}function c(e){return"symbol"===typeof e}function u(e){return void 0===e}function h(e){return"[object RegExp]"===v(e)}function f(e){return"object"===typeof e&&null!==e}function d(e){return"[object Date]"===v(e)}function p(e){return"[object Error]"===v(e)||e instanceof Error}function m(e){return"function"===typeof e}function g(e){return null===e||"boolean"===typeof e||"number"===typeof e||"string"===typeof e||"symbol"===typeof e||"undefined"===typeof e}function v(e){return Object.prototype.toString.call(e)}t.isArray=r,t.isBoolean=i,t.isNull=o,t.isNullOrUndefined=a,t.isNumber=s,t.isString=l,t.isSymbol=c,t.isUndefined=u,t.isRegExp=h,t.isObject=f,t.isDate=d,t.isError=p,t.isFunction=m,t.isPrimitive=g,t.isBuffer=n("tjlA").Buffer.isBuffer},OsVd:function(e,t,n){var r=n("AUWw"),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},P2sY:function(e,t,n){e.exports={default:n("UbbE"),__esModule:!0}},P7XM:function(e,t){"function"===typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},PFWz:function(e,t,n){try{var r=n("zs13")}catch(e){r=n("zs13")}var i=/\s+/,o=Object.prototype.toString;function a(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}e.exports=function(e){return new a(e)},a.prototype.add=function(e){if(this.list)return this.list.add(e),this;var t=this.array(),n=r(t,e);return~n||t.push(e),this.el.className=t.join(" "),this},a.prototype.remove=function(e){if("[object RegExp]"==o.call(e))return this.removeMatching(e);if(this.list)return this.list.remove(e),this;var t=this.array(),n=r(t,e);return~n&&t.splice(n,1),this.el.className=t.join(" "),this},a.prototype.removeMatching=function(e){for(var t=this.array(),n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n4&&void 0!==arguments[4]&&arguments[4];n&&n.stopPropagation();var a=r.props,l=a.onExpandedRowsChange,c=a.onExpand,u=r.store.getState(),h=u.expandedRowKeys;if(e)h=[].concat(s(h),[i]);else{var f=h.indexOf(i);-1!==f&&(h=A.remove(h,i))}r.props.expandedRowKeys||r.store.setState({expandedRowKeys:h}),r.latestExpandedRows&&T.default(r.latestExpandedRows,h)||(r.latestExpandedRows=h,l(h)),o||c(e,t)},r.renderExpandIndentCell=function(e,t){var n=r.props,i=n.prefixCls,a=n.expandIconAsCell;if(a&&"right"!==t&&e.length){var s={key:"rc-table-expand-icon-cell",className:"".concat(i,"-expand-icon-th"),title:"",rowSpan:e.length};e[0].unshift(o({},s,{column:s}))}},r.renderRows=function(e,t,n,i,o,a,l,c){var u=r.props,h=u.expandedRowClassName,f=u.expandedRowRender,d=u.childrenColumnName,p=n[d],m=[].concat(s(c),[l]),g=o+1;f&&t.push(r.renderExpandedRow(n,i,f,h(n,i,o),m,g,a)),p&&t.push.apply(t,s(e(p,g,m)))};var i=e.data,a=e.childrenColumnName,l=e.defaultExpandAllRows,c=e.expandedRowKeys,u=e.defaultExpandedRowKeys,h=e.getRowKey,f=[],p=s(i);if(l)for(var m=0;m{this.state.visible||this.setState({submit:this.defaultValue})})}generate(){var e=v()({},this.state.submit);this.props.dispatch({type:"coupon/generate",params:e,callback:()=>{this.modalVisible()}})}drop(e){this.props.dispatch({type:"coupon/drop",id:e.id})}tableOnChange(e,t){this.props.dispatch({type:"coupon/changeTable",pagination:e,sort:{sort_type:"ascend"===t.order?"ASC":"DESC",sort:t.columnKey}})}render(){var e=this.props.coupon,t=e.coupons,n=e.fetchLoading,r=e.saveLoading,g=e.pagination,y=this.props.plan.plans,x=[{title:"#",dataIndex:"id",key:"id"},{title:"启用",dataIndex:"show",key:"show",render:(e,t)=>{return b.a.createElement(m["a"],{size:"small",onChange:()=>this.props.dispatch({type:"coupon/show",id:t.id}),checked:e})}},{title:"券名称",dataIndex:"name",key:"name"},{title:"类型",dataIndex:"type",key:"type",render:e=>{return 1===e?"金额":"比例"}},{title:"券码",dataIndex:"code",key:"code",render:e=>{return b.a.createElement(d["a"],{style:{cursor:"pointer"},onClick:()=>{S()(e),p["a"].success("复制成功")}},e)}},{title:"剩余次数",dataIndex:"limit_use",key:"limit_use",render:e=>{return b.a.createElement(d["a"],null,null!==e?e:"无限")}},{title:"有效期",dataIndex:"started_at",key:"started_at",align:"left",render:(e,t)=>{return"".concat(_()(1e3*t.started_at).format("YYYY/MM/DD HH:mm")," ~ ").concat(_()(1e3*t.ended_at).format("YYYY/MM/DD HH:mm"))}},{title:"操作",dataIndex:"action",key:"action",align:"right",fixed:"right",render:(e,n,r)=>{return b.a.createElement("div",null,b.a.createElement("a",{onClick:()=>{this.setState({submit:t[r]},()=>{this.modalVisible()})},href:"javascript:void(0);"},"编辑"),b.a.createElement(f["a"],{type:"vertical"}),b.a.createElement("a",{onClick:()=>{h["a"].confirm({title:"警告",content:"确定要删除该条项目吗?",onOk:()=>this.drop(n),okText:"确定",cancelText:"取消"})},href:"javascript:void(0);"},"删除"))}}];return b.a.createElement(w["a"],i()({},this.props,{title:"优惠券管理"}),b.a.createElement(O["a"],{loading:n},b.a.createElement("div",{className:"block border-bottom"},b.a.createElement("div",{className:"bg-white"},b.a.createElement("div",{style:{padding:15}},b.a.createElement(c["a"],{onClick:()=>this.modalVisible()},b.a.createElement(u["a"],{type:"plus"})," 添加优惠券")),b.a.createElement(l["a"],{tableLayout:"auto",dataSource:t,columns:x,scroll:{x:1050},pagination:v()({},g,{size:"small",showSizeChanger:!0,pageSizeOptions:[10,50,100,150]}),onChange:(e,t,n)=>this.tableOnChange(e,n)})))),b.a.createElement(h["a"],{title:"".concat(this.state.submit.id?"编辑优惠券":"新建优惠券"),visible:this.state.visible,onCancel:()=>this.modalVisible(),onOk:()=>this.generate(),okText:"提交",cancelText:"取消",okButtonProps:{loading:r},key:this.key},b.a.createElement("div",null,b.a.createElement("div",{className:"form-group"},b.a.createElement("label",{for:"example-text-input-alt"},"名称"),b.a.createElement(s["a"],{placeholder:"请输入优惠券名称",value:this.state.submit.name,onChange:e=>{this.setState({submit:v()({},this.state.submit,{name:e.target.value})})}})),!this.state.submit.generate_count&&b.a.createElement("div",{className:"form-group"},b.a.createElement("label",{for:"example-text-input-alt"},"自定义优惠券码"),b.a.createElement(s["a"],{placeholder:"自定义优惠券码(留空随机生成)",value:this.state.submit.code,onChange:e=>{this.setState({submit:v()({},this.state.submit,{code:e.target.value,generate_count:void 0})})}})),b.a.createElement("div",{className:"form-group"},b.a.createElement("label",{for:"example-text-input-alt"},"优惠信息"),b.a.createElement(s["a"],{type:"number",addonBefore:b.a.createElement(a["a"],{style:{width:120},value:this.state.submit.type,onChange:e=>{this.setState({submit:v()({},this.state.submit,{type:e})})}},b.a.createElement(a["a"].Option,{value:1},"按金额优惠"),b.a.createElement(a["a"].Option,{value:2},"按比例优惠")),addonAfter:1===this.state.submit.type?"¥":"%",placeholder:"请输入值",value:this.state.submit.value,onChange:e=>{this.setState({submit:v()({},this.state.submit,{value:e.target.value})})}})),b.a.createElement("div",{className:"form-group"},b.a.createElement("label",{for:"example-text-input-alt"},"优惠券有效期"),b.a.createElement(o["a"].RangePicker,{style:{width:"100%"},showTime:{format:"HH:mm"},format:"YYYY-MM-DD HH:mm",placeholder:["Start Time","End Time"],value:[this.state.submit.started_at?_()(1e3*this.state.submit.started_at):null,this.state.submit.ended_at?_()(1e3*this.state.submit.ended_at):null],onChange:e=>this.setState({submit:v()({},this.state.submit,{started_at:e[0]?e[0].format("X"):null,ended_at:e[1]?e[1].format("X"):null})}),onOk:e=>this.setState({submit:v()({},this.state.submit,{started_at:e[0]?e[0].format("X"):null,ended_at:e[1]?e[1].format("X"):null})})})),b.a.createElement("div",{className:"form-group"},b.a.createElement("label",{for:"example-text-input-alt"},"最大使用次数"),b.a.createElement(s["a"],{placeholder:"限制最大使用次数,用完则无法使用(为空则不限制)",value:this.state.submit.limit_use,onChange:e=>{this.setState({submit:v()({},this.state.submit,{limit_use:e.target.value})})}})),b.a.createElement("div",{className:"form-group"},b.a.createElement("label",{htmlFor:"example-text-input-alt"},"每个用户可使用次数"),b.a.createElement(s["a"],{placeholder:"限制每个用户可使用次数(为空则不限制)",value:this.state.submit.limit_use_with_user,onChange:e=>{this.setState({submit:v()({},this.state.submit,{limit_use_with_user:e.target.value})})}})),b.a.createElement("div",{className:"form-group"},b.a.createElement("label",{for:"example-text-input-alt"},"指定订阅"),b.a.createElement("div",null,b.a.createElement(a["a"],{value:this.state.submit.limit_plan_ids||[],onChange:e=>{this.setState({submit:v()({},this.state.submit,{limit_plan_ids:e.length?e:null})})},mode:"multiple",placeholder:"限制指定订阅可以使用优惠(为空则不限制)",style:{width:"100%"}},y.map(e=>{return b.a.createElement(a["a"].Option,{key:Math.random(),value:"".concat(e.id)},e.name)})))),b.a.createElement("div",{className:"form-group"},b.a.createElement("label",{htmlFor:"example-text-input-alt"},"指定周期"),b.a.createElement("div",null,b.a.createElement(a["a"],{value:this.state.submit.limit_period||[],onChange:e=>{this.setState({submit:v()({},this.state.submit,{limit_period:e.length?e:null})})},mode:"multiple",placeholder:"限制指定周期可以使用优惠(为空则不限制)",style:{width:"100%"}},Object.keys(C["a"].periodText).map(e=>{return b.a.createElement(a["a"].Option,{key:Math.random(),value:e},C["a"].periodText[e])})))),!this.state.submit.code&&!this.state.submit.id&&b.a.createElement("div",{className:"form-group"},b.a.createElement("label",{htmlFor:"example-text-input-alt"},"生成数量"),b.a.createElement(s["a"],{placeholder:"输入数量批量生成",value:this.state.submit.generate_count,onChange:e=>{this.setState({submit:v()({},this.state.submit,{generate_count:e.target.value,code:void 0})})}})))))}}t["default"]=Object(k["c"])(e=>{var t=e.coupon,n=e.plan;return{coupon:t,plan:n}})(T)},Q6cQ:function(e,t,n){"use strict";var r=n("u8+u"),i=n("BFt8"),o=n("gL7N")("hasInstance"),a=Function.prototype;o in a||n("V5/1").f(a,o,{value:function(e){if("function"!=typeof this||!r(e))return!1;if(!r(this.prototype))return e instanceof this;while(e=i(e))if(this.prototype===e)return!0;return!1}})},QBsz:function(e,t,n){"use strict";function r(e,t){return null==e&&(e=0),null==t&&(t=0),[e,t]}function i(e){return[e[0],e[1]]}function o(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function a(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function s(e){return Math.sqrt(l(e))}n.d(t,"d",function(){return r}),n.d(t,"c",function(){return i}),n.d(t,"a",function(){return o}),n.d(t,"m",function(){return a}),n.d(t,"l",function(){return c}),n.d(t,"k",function(){return u}),n.d(t,"g",function(){return h}),n.d(t,"e",function(){return f}),n.d(t,"f",function(){return p}),n.d(t,"h",function(){return m}),n.d(t,"b",function(){return g}),n.d(t,"j",function(){return v}),n.d(t,"i",function(){return y});function l(e){return e[0]*e[0]+e[1]*e[1]}function c(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function u(e,t){var n=s(t);return 0===n?(e[0]=0,e[1]=0):(e[0]=t[0]/n,e[1]=t[1]/n),e}function h(e,t){return Math.sqrt((e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1]))}var f=h;function d(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}var p=d;function m(e,t,n,r){return e[0]=t[0]+r*(n[0]-t[0]),e[1]=t[1]+r*(n[1]-t[1]),e}function g(e,t,n){var r=t[0],i=t[1];return e[0]=n[0]*r+n[2]*i+n[4],e[1]=n[1]*r+n[3]*i+n[5],e}function v(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e}function y(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e}},"QC+M":function(e,t,n){"use strict";n.d(t,"a",function(){return w});var r=n("q1tI"),i=n.n(r),o=n("i8i4"),a=n.n(o),s=n("17x9"),l=n.n(s);function c(e){"@babel/helpers - typeof";return c="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n255?255:e}function a(e){return e<0?0:e>1?1:e}function s(e){var t=e;return t.length&&"%"===t.charAt(t.length-1)?o(parseFloat(t)/100*255):o(parseInt(t,10))}function l(e){var t=e;return t.length&&"%"===t.charAt(t.length-1)?a(parseFloat(t)/100):a(parseFloat(t))}function c(e,t,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?e+(t-e)*n*6:2*n<1?t:3*n<2?e+(t-e)*(2/3-n)*6:e}function u(e,t,n){return e+(t-e)*n}function h(e,t,n,r,i){return e[0]=t,e[1]=n,e[2]=r,e[3]=i,e}function f(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var d=new r["a"](20),p=null;function m(e,t){p&&f(p,t),p=d.put(e,p||t.slice())}function g(e,t){if(e){t=t||[];var n=d.get(e);if(n)return f(t,n);e+="";var r=e.replace(/ /g,"").toLowerCase();if(r in i)return f(t,i[r]),m(e,t),t;var o=r.length;if("#"!==r.charAt(0)){var a=r.indexOf("("),c=r.indexOf(")");if(-1!==a&&c+1===o){var u=r.substr(0,a),p=r.substr(a+1,c-(a+1)).split(","),g=1;switch(u){case"rgba":if(4!==p.length)return 3===p.length?h(t,+p[0],+p[1],+p[2],1):h(t,0,0,0,1);g=l(p.pop());case"rgb":return p.length>=3?(h(t,s(p[0]),s(p[1]),s(p[2]),3===p.length?g:l(p[3])),m(e,t),t):void h(t,0,0,0,1);case"hsla":return 4!==p.length?void h(t,0,0,0,1):(p[3]=l(p[3]),v(p,t),m(e,t),t);case"hsl":return 3!==p.length?void h(t,0,0,0,1):(v(p,t),m(e,t),t);default:return}}h(t,0,0,0,1)}else{if(4===o||5===o){var y=parseInt(r.slice(1,4),16);return y>=0&&y<=4095?(h(t,(3840&y)>>4|(3840&y)>>8,240&y|(240&y)>>4,15&y|(15&y)<<4,5===o?parseInt(r.slice(4),16)/15:1),m(e,t),t):void h(t,0,0,0,1)}if(7===o||9===o){y=parseInt(r.slice(1,7),16);return y>=0&&y<=16777215?(h(t,(16711680&y)>>16,(65280&y)>>8,255&y,9===o?parseInt(r.slice(7),16)/255:1),m(e,t),t):void h(t,0,0,0,1)}}}}function v(e,t){var n=(parseFloat(e[0])%360+360)%360/360,r=l(e[1]),i=l(e[2]),a=i<=.5?i*(r+1):i+r-i*r,s=2*i-a;return t=t||[],h(t,o(255*c(s,a,n+1/3)),o(255*c(s,a,n)),o(255*c(s,a,n-1/3)),1),4===e.length&&(t[3]=e[3]),t}function y(e,t){var n=g(e);if(n){for(var r=0;r<3;r++)n[r]=t<0?n[r]*(1-t)|0:(255-n[r])*t+n[r]|0,n[r]>255?n[r]=255:n[r]<0&&(n[r]=0);return w(n,4===n.length?"rgba":"rgb")}}function b(e,t,n){if(t&&t.length&&e>=0&&e<=1){var r=e*(t.length-1),i=Math.floor(r),s=Math.ceil(r),l=g(t[i]),c=g(t[s]),h=r-i,f=w([o(u(l[0],c[0],h)),o(u(l[1],c[1],h)),o(u(l[2],c[2],h)),a(u(l[3],c[3],h))],"rgba");return n?{color:f,leftIndex:i,rightIndex:s,value:r}:f}}function w(e,t){if(e&&e.length){var n=e[0]+","+e[1]+","+e[2];return"rgba"!==t&&"hsva"!==t&&"hsla"!==t||(n+=","+e[3]),t+"("+n+")"}}function x(e,t){var n=g(e);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*t:0}},QeHl:function(e,t,n){n("Jaki")("Float32",4,function(e){return function(t,n,r){return e(this,t,n,r)}})},Qg4q:function(e,t,n){"use strict";n("2qtc");var r=n("kLXV"),i=(n("OaEy"),n("2fM7")),o=(n("iQDF"),n("+eQT")),a=(n("5NDa"),n("5rEg")),s=n("p0pE"),l=n.n(s),c=n("q1tI"),u=n.n(c),h=n("/MKj"),f=n("wd/R"),d=n.n(f);class p extends u.a.Component{constructor(e){super(e),this.state={visible:!1,submit:{}}}show(){this.setState({visible:!0})}hide(){this.setState({visible:!1,submit:{}})}formChange(e,t){var n=this.state.submit;n[e]=t,this.setState({submit:n})}submit(){var e=l()({},this.state.submit);this.props.dispatch({type:"user/generate",params:e,callback:()=>{this.hide()}})}render(){var e=this.props.user,t=e.user,n=e.generateLoading,s=this.props.plan.plans,l=this.state,c=l.visible,h=l.submit;return u.a.createElement(u.a.Fragment,null,u.a.cloneElement(this.props.children,{onClick:()=>this.show()}),u.a.createElement(r["a"],{title:"创建用户",visible:c,onCancel:()=>this.hide(),cancelText:"取消",onOk:()=>this.submit(),okButtonProps:{loading:n},okText:"生成"},u.a.createElement("div",null,u.a.createElement("div",{className:"form-group"},u.a.createElement("label",{htmlFor:"example-text-input-alt"},"邮箱"),u.a.createElement(a["a"].Group,{compact:!0},!h.generate_count&&u.a.createElement(a["a"],{placeholder:"账号(批量生成请留空)",style:{width:"45%"},value:h.email_prefix,onChange:e=>this.formChange("email_prefix",e.target.value)}),u.a.createElement(a["a"],{placeholder:"@",style:{width:"10%",textAlign:"center"},disabled:!0}),u.a.createElement(a["a"],{placeholder:"域",style:{width:"45%"},value:h.email_suffix,onChange:e=>this.formChange("email_suffix",e.target.value)}))),u.a.createElement("div",{className:"form-group"},u.a.createElement("label",{htmlFor:"example-text-input-alt"},"密码"),u.a.createElement(a["a"],{value:h.password,placeholder:"留空则密码与邮箱相同",onChange:e=>this.formChange("password",e.target.value)})),u.a.createElement("div",{className:"form-group"},u.a.createElement("label",{htmlFor:"example-text-input-alt"},"到期时间"),u.a.createElement("div",null,u.a.createElement(o["a"],{placeholder:"请选择用户到期日期,为空则不限制到期时间",defaultValue:h.expired_at&&d()(1e3*t.expired_at),style:{width:"100%"},onChange:e=>this.formChange("expired_at",e?e.format("X"):null)}))),u.a.createElement("div",{className:"form-group"},u.a.createElement("label",{htmlFor:"example-text-input-alt"},"订阅计划"),u.a.createElement(i["a"],{placeholder:"请选择用户订阅计划",style:{width:"100%"},value:h.plan_id||null,onChange:e=>this.formChange("plan_id",e)},u.a.createElement(i["a"].Option,{value:null},"无"),s.map(e=>{return u.a.createElement(i["a"].Option,{key:Math.random(),value:e.id},e.name)}))),!h.email_prefix&&u.a.createElement("div",{className:"form-group"},u.a.createElement("label",{htmlFor:"example-text-input-alt"},"生成数量"),u.a.createElement(a["a"],{value:h.generate_count,placeholder:"如果为批量生成请输入生成数量",onChange:e=>this.formChange("generate_count",e.target.value)})))))}}t["a"]=Object(h["c"])(e=>{var t=e.user,n=e.plan;return{user:t,plan:n}})(p)},QpuX:function(e,t,n){e.exports=n("+qE3").EventEmitter},QsMh:function(e,t,n){"use strict";var r=n("WGNW"),i=n("wYm8"),o=n("il4q"),a=n("wUWy"),s=[].sort,l=[1,2,3];r(r.P+r.F*(a(function(){l.sort(void 0)})||!a(function(){l.sort(null)})||!n("l0kz")(s)),"Array",{sort:function(e){return void 0===e?s.call(o(this)):s.call(o(this),i(e))}})},QuXc:function(e,t,n){"use strict";var r=function(){function e(e){this.colorStops=e||[]}return e.prototype.addColorStop=function(e,t){this.colorStops.push({offset:e,color:t})},e}();t["a"]=r},"R+7+":function(e,t,n){var r=n("w6GO"),i=n("mqlF"),o=n("NV0k");e.exports=function(e){var t=r(e),n=i.f;if(n){var a,s=n(e),l=o.f,c=0;while(s.length>c)l.call(e,a=s[c++])&&t.push(a)}return t}},R1X6:function(e,t,n){"use strict";var r=Math.round(9*Math.random()),i="function"===typeof Object.defineProperty,o=function(){function e(){this._id="__ec_inner_"+r++}return e.prototype.get=function(e){return this._guard(e)[this._id]},e.prototype.set=function(e,t){var n=this._guard(e);return i?Object.defineProperty(n,this._id,{value:t,enumerable:!1,configurable:!0}):n[this._id]=t,this},e.prototype["delete"]=function(e){return!!this.has(e)&&(delete this._guard(e)[this._id],!0)},e.prototype.has=function(e){return!!this._guard(e)[this._id]},e.prototype._guard=function(e){if(e!==Object(e))throw TypeError("Value of WeakMap is not a non-null object.");return e},e}();t["a"]=o},R5jr:function(e,t,n){"use strict";t["default"]={locale:"en",pluralRuleFunction:function(e,t){var n=String(e).split("."),r=!n[1],i=Number(n[0])==e,o=i&&n[0].slice(-1),a=i&&n[0].slice(-2);return t?1==o&&11!=a?"one":2==o&&12!=a?"two":3==o&&13!=a?"few":"other":1==e&&r?"one":"other"}}},"R64+":function(e,t,n){"use strict";t.__esModule=!0;var r=n("GB+t"),i=o(r);function o(e){return e&&e.__esModule?e:{default:e}}var a=function(){var e=null,t=function(t){return(0,i.default)(null==e,"A history supports only one prompt at a time"),e=t,function(){e===t&&(e=null)}},n=function(t,n,r,o){if(null!=e){var a="function"===typeof e?e(t,n):e;"string"===typeof a?"function"===typeof r?r(a,o):((0,i.default)(!1,"A history needs a getUserConfirmation function in order to use a prompt message"),o(!0)):o(!1!==a)}else o(!0)},r=[],o=function(e){var t=!0,n=function(){t&&e.apply(void 0,arguments)};return r.push(n),function(){t=!1,r=r.filter(function(e){return e!==n})}},a=function(){for(var e=arguments.length,t=Array(e),n=0;n{this.props.dispatch({type:"ticket/filter",filter:{[e]:t},pagination:{pageSize:10,current:1}})},300)}render(){var e=this.props.ticket,t=e.tickets,n=e.fetchLoading,r=e.pagination,a=e.filter,f=["低","中","高"],m=[{title:"#",dataIndex:"id",key:"id"},{title:"主题",dataIndex:"subject",key:"subject"},{title:"工单级别",dataIndex:"level",key:"level",render:e=>{return f[e]}},{title:"工单状态",dataIndex:"reply_status",key:"reply_status",filters:1!==a.status&&[{text:"已回复",value:0},{text:"待回复",value:1}],render:(e,t)=>{return 1===t.status?d.a.createElement("span",null,d.a.createElement(h["a"],{status:"success"}),"已关闭"):d.a.createElement("span",null,d.a.createElement(h["a"],{status:e?"error":"processing"}),e?"待回复":"已回复")}},{title:"创建时间",dataIndex:"created_at",key:"created_at",render:e=>{return v()(1e3*e).format("YYYY/MM/DD HH:mm")}},{title:"最后回复",dataIndex:"updated_at",key:"updated_at",render:e=>{return v()(1e3*e).format("YYYY/MM/DD HH:mm")}},{title:"操作",dataIndex:"action",key:"action",align:"right",fixed:"right",render:(e,t)=>{return d.a.createElement("div",null,d.a.createElement("a",{href:"javascript:void(0);",onClick:()=>this.toChat(t.id)},"查看"),d.a.createElement(u["a"],{type:"vertical"}),d.a.createElement("a",{disabled:t.status,href:"javascript:void(0);",onClick:()=>this.close(t.id)},"关闭"))}}];return d.a.createElement(p["a"],i()({},this.props,{title:"工单管理"}),d.a.createElement(y["a"],{loading:n},d.a.createElement("div",{className:"block border-bottom"},d.a.createElement("div",{className:"bg-white"},d.a.createElement("div",{className:"p-3"},d.a.createElement(c["a"].Group,{value:a.status,onChange:e=>this.filter("status",e.target.value)},d.a.createElement(c["a"].Button,{value:0},"已开启"),d.a.createElement(c["a"].Button,{value:1},"已关闭")),d.a.createElement("div",{style:{float:"right"}},d.a.createElement(l["a"],{placeholder:"输入邮箱搜索",onChange:e=>this.onSearch("email",e.target.value)}))),d.a.createElement(o["a"],{tableLayout:"auto",dataSource:t,pagination:s()({},r,{size:"small"}),columns:m,scroll:{x:900},onChange:(e,t,n)=>this.tableOnChange(e,n,t)})))))}}t["default"]=Object(m["c"])(e=>{var t=e.ticket;return{ticket:t}})(b)},"RU/L":function(e,t,n){n("Rqdy");var r=n("WEpk").Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},RXBc:function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});var r=n("q1tI"),i=n.n(r),o=n("3a4m"),a=n.n(o);class s extends i.a.Component{componentDidMount(){a.a.push("/login")}render(){return i.a.createElement("div",null)}}},RXMa:function(e,t,n){"use strict";var r=n("mrSG"),i=n("y+Vt"),o=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),a=function(e){function t(t){return e.call(this,t)||this}return Object(r["a"])(t,e),t.prototype.getDefaultShape=function(){return new o},t.prototype.buildPath=function(e,t){var n=t.cx,r=t.cy,i=2*Math.PI;e.moveTo(n+t.r,r),e.arc(n,r,t.r,0,i,!1),e.moveTo(n+t.r0,r),e.arc(n,r,t.r0,0,i,!0)},t}(i["b"]);a.prototype.type="ring",t["a"]=a},RfKB:function(e,t,n){var r=n("2faE").f,i=n("B+OT"),o=n("UWiX")("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},RoFp:function(e,t,n){"use strict";var r=n("lm0R");function i(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return i||o?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(a,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?(r.nextTick(a,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)}),this)}function o(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(e,t){e.emit("error",t)}e.exports={destroy:i,undestroy:o}},Rqdy:function(e,t,n){var r=n("Y7ZC");r(r.S+r.F*!n("jmDH"),"Object",{defineProperty:n("2faE").f})},S8SX:function(e,t,n){"use strict";n.d(t,"a",function(){return r}),n.d(t,"c",function(){return i}),n.d(t,"b",function(){return o});var r=1,i=2,o=4},SBuE:function(e,t){e.exports={}},SEkw:function(e,t,n){e.exports={default:n("RU/L"),__esModule:!0}},SGa5:function(e,t,n){"use strict";n.r(t);n("2qtc");var r=n("kLXV"),i=(n("Pwec"),n("CtXQ")),o=n("q1tI"),a=n.n(o),s=n("/MKj");class l extends a.a.Component{constructor(e){super(e),this.state={},this.keyDown=this.keyDown.bind(this)}keyDown(e){13===e.keyCode&&this.login()}componentDidMount(){var e=this.props.location.query.verify,t=this.props.location.query.redirect;e&&this.props.dispatch({type:"passport/token2Login",verify:e,redirect:t}),this.props.dispatch({type:"user/checkLogin",redirect:t}),window.addEventListener("keydown",this.keyDown,!1)}componentWillUnmount(){window.removeEventListener("keydown",this.keyDown,!1)}login(){this.props.dispatch({type:"passport/login",email:this.refs.email.value,password:this.refs.password.value})}render(){var e=this.props.passport.loginLoading;return a.a.createElement("div",{id:"page-container"},a.a.createElement("main",{id:"main-container"},a.a.createElement("div",{className:"v2board-background",style:{backgroundImage:window.settings.background_url&&"url(".concat(window.settings.background_url,")")}}),a.a.createElement("div",{className:"no-gutters v2board-auth-box"},a.a.createElement("div",{className:"",style:{maxWidth:450,width:"100%",margin:"auto"}},a.a.createElement("div",{className:"mx-2 mx-sm-0"},a.a.createElement("div",{className:"block block-rounded block-transparent block-fx-pop w-100 mb-0 overflow-hidden bg-image",style:{boxShadow:"0 0.5rem 2rem #0000000d"}},a.a.createElement("div",{className:"row no-gutters"},a.a.createElement("div",{className:"col-md-12 order-md-1 bg-white"},a.a.createElement("div",{className:"block-content block-content-full px-lg-4 py-md-4 py-lg-4"},a.a.createElement("div",{className:"mb-3 text-center"},a.a.createElement("a",{className:"font-size-h1",href:"javascript:void(0);"},window.settings.logo?a.a.createElement("img",{className:"v2board-logo mb-3",src:window.settings.logo}):a.a.createElement("span",{className:"text-dark"},window.settings.title||"V2Board")),a.a.createElement("p",{className:"font-size-sm text-muted mb-3"},"登录到管理中心")),a.a.createElement("div",{className:"form-group"},a.a.createElement("input",{type:"text",className:"form-control form-control-alt",placeholder:"邮箱",ref:"email"})),a.a.createElement("div",{className:"form-group"},a.a.createElement("input",{type:"password",className:"form-control form-control-alt",placeholder:"密码",ref:"password"})),a.a.createElement("div",{className:"form-group mb-0"},a.a.createElement("button",{disabled:e,type:"submit",className:"btn btn-block btn-primary font-w400",onClick:()=>this.login()},e?a.a.createElement(i["a"],{type:"loading"}):a.a.createElement("span",null,a.a.createElement("i",{className:"si si-login mr-1"}),"登入")))))),a.a.createElement("div",{className:"text-center bg-gray-lighter p-3 px-4"},a.a.createElement("a",{onClick:()=>{r["a"].info({title:"忘记密码",content:a.a.createElement("div",null,a.a.createElement("div",null,"在站点目录下执行命令找回密码"),a.a.createElement("code",null,"php artisan reset:password 管理员邮箱")),centered:!0,okText:"我知道了",onOk(){}})}},"忘记密码"))))))))}}t["default"]=Object(s["c"])(e=>{var t=e.passport;return{passport:t}})(l)},SKnc:function(e,t,n){"use strict";var r=n("mrSG"),i=n("QuXc"),o=function(e){function t(t,n,r,i,o,a){var s=e.call(this,o)||this;return s.x=null==t?0:t,s.y=null==n?0:n,s.x2=null==r?1:r,s.y2=null==i?0:i,s.type="linear",s.global=a||!1,s}return Object(r["a"])(t,e),t}(i["a"]);t["a"]=o},SPFY:function(e,t,n){n("Jaki")("Float64",8,function(e){return function(t,n,r){return e(this,t,n,r)}})},SfDG:function(e,t,n){var r=n("u8+u"),i=n("c0Oy").document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},Sj9i:function(e,t,n){"use strict";n.d(t,"a",function(){return m}),n.d(t,"b",function(){return g}),n.d(t,"f",function(){return v}),n.d(t,"c",function(){return y}),n.d(t,"g",function(){return b}),n.d(t,"e",function(){return w}),n.d(t,"d",function(){return x}),n.d(t,"h",function(){return _}),n.d(t,"i",function(){return E}),n.d(t,"m",function(){return S}),n.d(t,"j",function(){return k}),n.d(t,"n",function(){return C}),n.d(t,"l",function(){return O}),n.d(t,"k",function(){return T});var r=n("QBsz"),i=Math.pow,o=Math.sqrt,a=1e-8,s=1e-4,l=o(3),c=1/3,u=Object(r["d"])(),h=Object(r["d"])(),f=Object(r["d"])();function d(e){return e>-a&&ea||e<-a}function m(e,t,n,r,i){var o=1-i;return o*o*(o*e+3*i*t)+i*i*(i*r+3*o*n)}function g(e,t,n,r,i){var o=1-i;return 3*(((t-e)*o+2*(n-t)*i)*o+(r-n)*i*i)}function v(e,t,n,r,a,s){var u=r+3*(t-n)-e,h=3*(n-2*t+e),f=3*(t-e),p=e-a,m=h*h-3*u*f,g=h*f-9*u*p,v=f*f-3*h*p,y=0;if(d(m)&&d(g))if(d(h))s[0]=0;else{var b=-f/h;b>=0&&b<=1&&(s[y++]=b)}else{var w=g*g-4*m*v;if(d(w)){var x=g/m,_=(b=-h/u+x,-x/2);b>=0&&b<=1&&(s[y++]=b),_>=0&&_<=1&&(s[y++]=_)}else if(w>0){var E=o(w),S=m*h+1.5*u*(-g+E),k=m*h+1.5*u*(-g-E);S=S<0?-i(-S,c):i(S,c),k=k<0?-i(-k,c):i(k,c);b=(-h-(S+k))/(3*u);b>=0&&b<=1&&(s[y++]=b)}else{var C=(2*m*h-3*u*g)/(2*o(m*m*m)),O=Math.acos(C)/3,T=o(m),L=Math.cos(O),A=(b=(-h-2*T*L)/(3*u),_=(-h+T*(L+l*Math.sin(O)))/(3*u),(-h+T*(L-l*Math.sin(O)))/(3*u));b>=0&&b<=1&&(s[y++]=b),_>=0&&_<=1&&(s[y++]=_),A>=0&&A<=1&&(s[y++]=A)}}return y}function y(e,t,n,r,i){var a=6*n-12*t+6*e,s=9*t+3*r-3*e-9*n,l=3*t-3*e,c=0;if(d(s)){if(p(a)){var u=-l/a;u>=0&&u<=1&&(i[c++]=u)}}else{var h=a*a-4*s*l;if(d(h))i[0]=-a/(2*s);else if(h>0){var f=o(h),m=(u=(-a+f)/(2*s),(-a-f)/(2*s));u>=0&&u<=1&&(i[c++]=u),m>=0&&m<=1&&(i[c++]=m)}}return c}function b(e,t,n,r,i,o){var a=(t-e)*i+e,s=(n-t)*i+t,l=(r-n)*i+n,c=(s-a)*i+a,u=(l-s)*i+s,h=(u-c)*i+c;o[0]=e,o[1]=a,o[2]=c,o[3]=h,o[4]=h,o[5]=u,o[6]=l,o[7]=r}function w(e,t,n,i,a,l,c,d,p,g,v){var y,b,w,x,_,E=.005,S=1/0;u[0]=p,u[1]=g;for(var k=0;k<1;k+=.05)h[0]=m(e,n,a,c,k),h[1]=m(t,i,l,d,k),x=Object(r["f"])(u,h),x=0&&x=0&&u<=1&&(i[c++]=u)}}else{var h=s*s-4*a*l;if(d(h)){u=-s/(2*a);u>=0&&u<=1&&(i[c++]=u)}else if(h>0){var f=o(h),m=(u=(-s+f)/(2*a),(-s-f)/(2*a));u>=0&&u<=1&&(i[c++]=u),m>=0&&m<=1&&(i[c++]=m)}}return c}function k(e,t,n){var r=e+n-2*t;return 0===r?.5:(e-t)/r}function C(e,t,n,r,i){var o=(t-e)*r+e,a=(n-t)*r+t,s=(a-o)*r+o;i[0]=e,i[1]=o,i[2]=s,i[3]=s,i[4]=a,i[5]=n}function O(e,t,n,i,a,l,c,d,p){var m,g=.005,v=1/0;u[0]=c,u[1]=d;for(var y=0;y<1;y+=.05){h[0]=_(e,n,a,y),h[1]=_(t,i,l,y);var b=Object(r["f"])(u,h);b=0&&bj*j+M*M&&(C=T,O=L),{cx:C,cy:O,x0:-u,y0:-h,x1:C*(i/E-1),y1:O*(i/E-1)}}function b(e){var t;if(Object(o["r"])(e)){var n=e.length;if(!n)return e;t=1===n?[e[0],e[0],0,0]:2===n?[e[0],e[0],e[1],e[1]]:3===n?e.concat(e[2]):e}else t=[e,e,e,e];return t}function w(e,t){var n,r=p(t.r,0),i=p(t.r0||0,0),o=r>0,w=i>0;if(o||w){if(o||(r=i,i=0),i>r){var x=r;r=i,i=x}var _=t.startAngle,E=t.endAngle;if(!isNaN(_)&&!isNaN(E)){var S=t.cx,k=t.cy,C=!!t.clockwise,O=f(E-_),T=O>s&&O%s;if(T>g&&(O=T),r>g)if(O>s-g)e.moveTo(S+r*c(_),k+r*l(_)),e.arc(S,k,r,_,E,!C),i>g&&(e.moveTo(S+i*c(E),k+i*l(E)),e.arc(S,k,i,E,_,C));else{var L=void 0,A=void 0,P=void 0,j=void 0,M=void 0,R=void 0,N=void 0,D=void 0,I=void 0,$=void 0,F=void 0,B=void 0,V=void 0,W=void 0,H=void 0,U=void 0,z=r*c(_),G=r*l(_),q=i*c(E),K=i*l(E),Y=O>g;if(Y){var X=t.cornerRadius;X&&(n=b(X),L=n[0],A=n[1],P=n[2],j=n[3]);var Q=f(r-i)/2;if(M=m(Q,P),R=m(Q,j),N=m(Q,L),D=m(Q,A),F=I=p(M,R),B=$=p(N,D),(I>g||$>g)&&(V=r*c(E),W=r*l(E),H=i*c(_),U=i*l(_),Og){var oe=m(P,F),ae=m(j,F),se=y(H,U,z,G,r,oe,C),le=y(V,W,q,K,r,ae,C);e.moveTo(S+se.cx+se.x0,k+se.cy+se.y0),F0&&e.arc(S+se.cx,k+se.cy,oe,h(se.y0,se.x0),h(se.y1,se.x1),!C),e.arc(S,k,r,h(se.cy+se.y1,se.cx+se.x1),h(le.cy+le.y1,le.cx+le.x1),!C),ae>0&&e.arc(S+le.cx,k+le.cy,ae,h(le.y1,le.x1),h(le.y0,le.x0),!C))}else e.moveTo(S+z,k+G),e.arc(S,k,r,_,E,!C);else e.moveTo(S+z,k+G);if(i>g&&Y)if(B>g){oe=m(L,B),ae=m(A,B),se=y(q,K,V,W,i,-ae,C),le=y(z,G,H,U,i,-oe,C);e.lineTo(S+se.cx+se.x0,k+se.cy+se.y0),B<$&&oe===ae?e.arc(S+se.cx,k+se.cy,B,h(se.y0,se.x0),h(le.y0,le.x0),!C):(ae>0&&e.arc(S+se.cx,k+se.cy,ae,h(se.y0,se.x0),h(se.y1,se.x1),!C),e.arc(S,k,i,h(se.cy+se.y1,se.cx+se.x1),h(le.cy+le.y1,le.cx+le.x1),C),oe>0&&e.arc(S+le.cx,k+le.cy,oe,h(le.y1,le.x1),h(le.y0,le.x0),!C))}else e.lineTo(S+q,k+K),e.arc(S,k,i,E,_,C);else e.lineTo(S+q,k+K)}else e.moveTo(S,k);e.closePath()}}}var x=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0}return e}(),_=function(e){function t(t){return e.call(this,t)||this}return Object(r["a"])(t,e),t.prototype.getDefaultShape=function(){return new x},t.prototype.buildPath=function(e,t){w(e,t)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(i["b"]);_.prototype.type="sector";t["a"]=_},T1nr:function(e,t,n){var r=n("Igga"),i=n("e6w7"),o=n("LsAW");e.exports=function(e){var t=r(e),n=i.f;if(n){var a,s=n(e),l=o.f,c=0;while(s.length>c)l.call(e,a=s[c++])&&t.push(a)}return t}},T4gb:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={};t["default"]={name:"stat",state:i()({},s),reducers:{save(e,t){var n=t.payload;return i()({},e,n)}},effects:{getOverride(e,t){var n=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["a"])("/"+window.settings.secure_path+"/stat/getOverride");case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,n({type:"save",payload:i()({},t.data)});case 7:case"end":return e.stop()}},e)})()},getOrder(e){var t=e.complete;return a().mark(function e(){var n;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["a"])("/"+window.settings.secure_path+"/stat/getOrder");case 2:if(n=e.sent,200===n.code){e.next=5;break}return e.abrupt("return");case 5:t(n.data);case 6:case"end":return e.stop()}},e)})()},getServerLastRank(e){var t=e.complete;return a().mark(function e(){var n;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["a"])("/"+window.settings.secure_path+"/stat/getServerLastRank");case 2:if(n=e.sent,200===n.code){e.next=5;break}return e.abrupt("return");case 5:t(n.data);case 6:case"end":return e.stop()}},e)})()},getServerYesterdayRank(e){var t=e.complete;return a().mark(function e(){var n;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["a"])("/"+window.settings.secure_path+"/stat/getServerYesterdayRank");case 2:if(n=e.sent,200===n.code){e.next=5;break}return e.abrupt("return");case 5:t(n.data);case 6:case"end":return e.stop()}},e)})()}}}},T6xi:function(e,t,n){"use strict";var r=n("QBsz");function i(e,t,n,i){var o,a,s,l,c=[],u=[],h=[],f=[];if(i){s=[1/0,1/0],l=[-1/0,-1/0];for(var d=0,p=e.length;d=2){if(r){var a=i(o,r,n,t.smoothConstraint);e.moveTo(o[0][0],o[0][1]);for(var s=o.length,l=0;l<(n?s:s-1);l++){var c=a[2*l],u=a[2*l+1],h=o[(l+1)%s];e.bezierCurveTo(c[0],c[1],u[0],u[1],h[0],h[1])}}else{e.moveTo(o[0][0],o[0][1]);l=1;for(var f=o.length;l2&&void 0!==arguments[2]?arguments[2]:[],i=e.context.table,o=i.columnManager,a=i.components,s=i.props,l=s.prefixCls,c=s.childrenColumnName,u=s.rowClassName,h=s.rowRef,f=s.onRowClick,d=s.onRowDoubleClick,p=s.onRowContextMenu,m=s.onRowMouseEnter,g=s.onRowMouseLeave,v=s.onRow,y=e.props,w=y.getRowKey,x=y.fixed,_=y.expander,E=y.isAnyColumnsFixed,S=[],O=function(i){var s=t[i],y=w(s,i),O="string"===typeof u?u:u(s,i,n),T={};o.isAnyColumnsFixed()&&(T.onHover=e.handleRowHover);var L=void 0;L="left"===x?o.leftLeafColumns():"right"===x?o.rightLeafColumns():e.getColumns(o.leafColumns());var A="".concat(l,"-row"),P=b.createElement(C.default,Object.assign({},_.props,{fixed:x,index:i,prefixCls:A,record:s,key:y,rowKey:y,onRowClick:f,needIndentSpaced:_.needIndentSpaced,onExpandedChange:_.handleExpandChange}),function(e){return b.createElement(k.default,Object.assign({fixed:x,indent:n,className:O,record:s,index:i,prefixCls:A,childrenColumnName:c,columns:L,onRow:v,onRowDoubleClick:d,onRowContextMenu:p,onRowMouseEnter:m,onRowMouseLeave:g},T,{rowKey:y,ancestorKeys:r,ref:h(s,i,n),components:a,isAnyColumnsFixed:E},e))});S.push(P),_.renderRows(e.renderRows,S,s,i,n,x,y,r)},T=0;T0))}function g(e){return"string"===typeof e&&"none"!==e}function v(e){var t=e.fill;return null!=t&&"none"!==t}function y(e,t){if(null!=t.fillOpacity&&1!==t.fillOpacity){var n=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=n}else e.fill()}function b(e,t){if(null!=t.strokeOpacity&&1!==t.strokeOpacity){var n=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=n}else e.stroke()}function w(e,t,n){var r=Object(o["a"])(t.image,t.__image,n);if(Object(o["c"])(r)){var i=e.createPattern(r,t.repeat||"repeat");if("function"===typeof DOMMatrix&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*u["a"]),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function x(e,t,n,r){var i,o=m(n),s=v(n),l=n.strokePercent,c=l<1,u=!t.path;t.silent&&!c||!u||t.createPathProxy();var d=t.path||p,g=t.__dirty;if(!r){var x=n.fill,_=n.stroke,E=s&&!!x.colorStops,S=o&&!!_.colorStops,k=s&&!!x.image,C=o&&!!_.image,O=void 0,T=void 0,L=void 0,A=void 0,P=void 0;(E||S)&&(P=t.getBoundingRect()),E&&(O=g?Object(a["a"])(e,x,P):t.__canvasFillGradient,t.__canvasFillGradient=O),S&&(T=g?Object(a["a"])(e,_,P):t.__canvasStrokeGradient,t.__canvasStrokeGradient=T),k&&(L=g||!t.__canvasFillPattern?w(e,x,t):t.__canvasFillPattern,t.__canvasFillPattern=L),C&&(A=g||!t.__canvasStrokePattern?w(e,_,t):t.__canvasStrokePattern,t.__canvasStrokePattern=L),E?e.fillStyle=O:k&&(L?e.fillStyle=L:s=!1),S?e.strokeStyle=T:C&&(A?e.strokeStyle=A:o=!1)}var j,M,R=t.getGlobalScale();d.setScale(R[0],R[1],t.segmentIgnoreThreshold),e.setLineDash&&n.lineDash&&(i=Object(h["a"])(t),j=i[0],M=i[1]);var N=!0;(u||g&f["b"])&&(d.setDPR(e.dpr),c?d.setContext(null):(d.setContext(e),N=!1),d.reset(),t.buildPath(d,t.shape,r),d.toStatic(),t.pathUpdated()),N&&d.rebuildPath(e,c?l:1),j&&(e.setLineDash(j),e.lineDashOffset=M),r||(n.strokeFirst?(o&&b(e,n),s&&y(e,n)):(s&&y(e,n),o&&b(e,n))),j&&e.setLineDash([])}function _(e,t,n){var r=t.__image=Object(o["a"])(n.image,t.__image,t,t.onload);if(r&&Object(o["c"])(r)){var i=n.x||0,a=n.y||0,s=t.getWidth(),l=t.getHeight(),c=r.width/r.height;if(null==s&&null!=l?s=l*c:null==l&&null!=s?l=s/c:null==s&&null==l&&(s=r.width,l=r.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;e.drawImage(r,u,h,n.sWidth,n.sHeight,i,a,s,l)}else if(n.sx&&n.sy){u=n.sx,h=n.sy;var f=s-u,d=l-h;e.drawImage(r,u,h,f,d,i,a,s,l)}else e.drawImage(r,i,a,s,l)}}function E(e,t,n){var r,i=n.text;if(null!=i&&(i+=""),i){e.font=n.font||d["a"],e.textAlign=n.textAlign,e.textBaseline=n.textBaseline;var o=void 0,a=void 0;e.setLineDash&&n.lineDash&&(r=Object(h["a"])(t),o=r[0],a=r[1]),o&&(e.setLineDash(o),e.lineDashOffset=a),n.strokeFirst?(m(n)&&e.strokeText(i,n.x,n.y),v(n)&&e.fillText(i,n.x,n.y)):(v(n)&&e.fillText(i,n.x,n.y),m(n)&&e.strokeText(i,n.x,n.y)),o&&e.setLineDash([])}}var S=["shadowBlur","shadowOffsetX","shadowOffsetY"],k=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function C(e,t,n,i,o){var a=!1;if(!i&&(n=n||{},t===n))return!1;if(i||t.opacity!==n.opacity){I(e,o),a=!0;var s=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(s)?r["b"].opacity:s}(i||t.blend!==n.blend)&&(a||(I(e,o),a=!0),e.globalCompositeOperation=t.blend||r["b"].blend);for(var l=0;l0})}var c=function(e,t){var n=t.table,r=n.components,i=n.props,a=i.prefixCls,c=i.showHeader,u=i.onHeaderRow,h=e.expander,f=e.columns,d=e.fixed;if(!c)return null;var p=l({columns:f});h.renderExpandIndentCell(p,d);var m=r.header.wrapper;return o.createElement(m,{className:"".concat(a,"-thead")},p.map(function(e,t){return o.createElement(s.default,{prefixCls:a,key:t,index:t,fixed:d,columns:f,rows:p,row:e,components:r,onHeaderRow:u})}))};c.contextTypes={table:a.any},t.default=c},VPOE:function(e,t,n){var r=n("V5/1"),i=n("pQGJ");e.exports=n("8Z/V")?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},VVlx:function(e,t,n){var r=n("29s/")("keys"),i=n("YqAc");e.exports=function(e){return r[e]||(r[e]=i(e))}},VbXa:function(e,t,n){var r=n("SksO");function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}e.exports=i,e.exports.__esModule=!0,e.exports["default"]=e.exports},VeWa:function(e,t,n){(function(e){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};r.inherits(o,i),t.JsonHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var o=i[1].length,a=e.findMatchingBracket({row:t,column:o});if(!a||a.row==t)return 0;var s=this.$getIndent(e.getLine(a.row));e.replace(new r(t,0,t,o-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,o=e("./fold_mode").FoldMode,a=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(a,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var o=i.match(this.foldingStartMarker);if(o){var a=o.index;if(o[1])return this.openingBracketBlock(e,o[1],n,a);var s=e.getCommentFoldRange(n,a+o[0].length,1);return s&&!s.isMultiLine()&&(r?s=this.getSectionRange(e,n):"all"!=t&&(s=null)),s}if("markbegin"!==t){o=i.match(this.foldingStopMarker);if(o){a=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],n,a):e.getCommentFoldRange(n,a,-1)}}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),o=t,a=n.length;t+=1;var s=t,l=e.getLength();while(++tc)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=o)break;if(u.isMultiLine())t=u.end.row;else if(r==c)break}s=t}}return new i(o,a,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),o=e.getLength(),a=n,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;while(++na)return new i(a,r,u,t.length)}}.call(a.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,o=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=e("../worker/worker_client").WorkerClient,u=function(){this.HighlightRules=o,this.$outdent=new a,this.$behaviour=new s,this.foldingRules=new l};r.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if("start"==e){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new c(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(u.prototype),t.Mode=u}),function(){ace.require(["ace/mode/json"],function(t){e&&(e.exports=t)})}()}).call(this,n("YuTi")(e))},Vegh:function(e,t,n){"use strict";var r=n("iCc5"),i=n.n(r),o=n("FYw3"),a=n.n(o),s=n("mRg0"),l=n.n(s),c=n("q1tI"),u=n.n(c),h=n("i8i4"),f=n.n(h),d=n("17x9"),p=n.n(d),m=n("4IlW"),g=n("VCL8"),v=n("wd/R"),y=n.n(v),b=n("GrtH"),w=void 0,x=void 0,_=void 0,E=function(e){function t(n){i()(this,t);var r=a()(this,e.call(this,n));S.call(r);var o=n.selectedValue;return r.state={str:Object(b["a"])(o,r.props.format),invalid:!1,hasFocus:!1},r}return l()(t,e),t.prototype.componentDidUpdate=function(){!_||!this.state.hasFocus||this.state.invalid||0===w&&0===x||_.setSelectionRange(w,x)},t.getDerivedStateFromProps=function(e,t){var n={};_&&(w=_.selectionStart,x=_.selectionEnd);var r=e.selectedValue;return t.hasFocus||(n={str:Object(b["a"])(r,e.format),invalid:!1}),n},t.getInstance=function(){return _},t.prototype.render=function(){var e=this.props,t=this.state,n=t.invalid,r=t.str,i=e.locale,o=e.prefixCls,a=e.placeholder,s=e.clearIcon,l=e.inputMode,c=n?o+"-input-invalid":"";return u.a.createElement("div",{className:o+"-input-wrap"},u.a.createElement("div",{className:o+"-date-input-wrap"},u.a.createElement("input",{ref:this.saveDateInput,className:o+"-input "+c,value:r,disabled:e.disabled,placeholder:a,onChange:this.onInputChange,onKeyDown:this.onKeyDown,onFocus:this.onFocus,onBlur:this.onBlur,inputMode:l})),e.showClear?u.a.createElement("a",{role:"button",title:i.clear,onClick:this.onClear},s||u.a.createElement("span",{className:o+"-clear-btn"})):null)},t}(u.a.Component);E.propTypes={prefixCls:p.a.string,timePicker:p.a.object,value:p.a.object,disabledTime:p.a.any,format:p.a.oneOfType([p.a.string,p.a.arrayOf(p.a.string)]),locale:p.a.object,disabledDate:p.a.func,onChange:p.a.func,onClear:p.a.func,placeholder:p.a.string,onSelect:p.a.func,selectedValue:p.a.object,clearIcon:p.a.node,inputMode:p.a.string};var S=function(){var e=this;this.onClear=function(){e.setState({str:""}),e.props.onClear(null)},this.onInputChange=function(t){var n=t.target.value,r=e.props,i=r.disabledDate,o=r.format,a=r.onChange,s=r.selectedValue;if(!n)return a(null),void e.setState({invalid:!1,str:n});var l=y()(n,o,!0);if(l.isValid()){var c=e.props.value.clone();c.year(l.year()).month(l.month()).date(l.date()).hour(l.hour()).minute(l.minute()).second(l.second()),!c||i&&i(c)?e.setState({invalid:!0,str:n}):(s!==c||s&&c&&!s.isSame(c))&&(e.setState({invalid:!1,str:n}),a(c))}else e.setState({invalid:!0,str:n})},this.onFocus=function(){e.setState({hasFocus:!0})},this.onBlur=function(){e.setState(function(e,t){return{hasFocus:!1,str:Object(b["a"])(t.value,t.format)}})},this.onKeyDown=function(t){var n=t.keyCode,r=e.props,i=r.onSelect,o=r.value,a=r.disabledDate;if(n===m["a"].ENTER&&i){var s=!a||!a(o);s&&i(o.clone()),t.preventDefault()}},this.getRootDOMNode=function(){return f.a.findDOMNode(e)},this.focus=function(){_&&_.focus()},this.saveDateInput=function(e){_=e}};Object(g["polyfill"])(E),t["a"]=E},VeyY:function(e,t,n){var r=n("7vYJ"),i=n("wYm8"),o=n("gL7N")("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||void 0==(n=r(a)[o])?t:i(n)}},VxKu:function(e,t,n){"use strict";var r=n("WGNW"),i=n("Lnex")(!0);r(r.P,"Array",{includes:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),n("DIcO")("includes")},VyuQ:function(e,t,n){var r=n("bV5f"),i=n("c0Oy"),o="__core-js_shared__",a=i[o]||(i[o]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n("FqPH")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},W070:function(e,t,n){var r=n("NsO/"),i=n("tEej"),o=n("D8kY");e.exports=function(e){return function(t,n,a){var s,l=r(t),c=i(l.length),u=o(a,c);if(e&&n!=n){while(c>u)if(s=l[u++],s!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}}},W3Xk:function(e,t,n){var r=n("WGNW"),i=n("ZDr/"),o=n("wUWy"),a=n("GsrZ"),s="["+a+"]",l="​…",c=RegExp("^"+s+s+"*"),u=RegExp(s+s+"*$"),h=function(e,t,n){var i={},s=o(function(){return!!a[e]()||l[e]()!=l}),c=i[e]=s?t(f):a[e];n&&(i[n]=c),r(r.P+r.F*s,"String",i)},f=h.trim=function(e,t){return e=String(i(e)),1&t&&(e=e.replace(c,"")),2&t&&(e=e.replace(u,"")),e};e.exports=h},W5Cv:function(e,t,n){"use strict";function r(e,t){var n=window.Element.prototype,r=n.matches||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector;if(!e||1!==e.nodeType)return!1;var i=e.parentNode;if(r)return r.call(e,t);for(var o=i.querySelectorAll(t),a=o.length,s=0;s=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},e}class v extends u.a.Component{constructor(e){super(e),this.state={visible:!1,records:[],loading:!1,pagination:{page:1,pageSize:10,total:0}}}show(){this.setState({visible:!0}),this.getStatUser()}getStatUser(){var e=this,t=this.state.pagination;this.setState({loading:!0},l()(g().mark(function n(){var r;return g().wrap(function(n){while(1)switch(n.prev=n.next){case 0:return n.next=2,Object(h["a"])("/"+window.settings.secure_path+"/stat/getStatUser",a()({user_id:e.props.userId},t));case 2:if(r=n.sent,e.setState({loading:!1}),200===r.code){n.next=6;break}return n.abrupt("return");case 6:t.total=r.total,e.setState({records:r.data,pagination:t});case 8:case"end":return n.stop()}},n)})))}render(){var e=this.state,t=e.visible,n=e.records,o=e.pagination,s=e.loading,l=[{title:"日期",dataIndex:"record_at",key:"record_at",render:e=>d()(1e3*e).format("YYYY-MM-DD")},{title:"上行",dataIndex:"u",key:"d",align:"right",render:e=>Object(p["b"])(e)},{title:"下行",dataIndex:"d",key:"d",align:"right",render:e=>Object(p["b"])(e)},{title:"倍率",dataIndex:"server_rate",key:"server_rate",align:"right"}];return u.a.createElement(u.a.Fragment,null,u.a.cloneElement(this.props.children,{onClick:()=>this.show()}),u.a.createElement(r["a"],{width:"100%",style:{maxWidth:1e3,padding:"0 10px",top:20},onCancel:()=>this.setState({visible:!1}),bodyStyle:{padding:0},footer:!1,visible:t,title:"流量记录"},u.a.createElement(m["a"],{loading:s},u.a.createElement(i["a"],{pagination:a()({},o,{size:"small"}),columns:l,dataSource:n,onChange:e=>{this.setState({pagination:e},()=>{this.getStatUser()})}}))))}}},XI6d:function(e,t,n){var r=n("c0Oy").document;e.exports=r&&r.documentElement},XIdC:function(e,t,n){e.exports=n("Ctgt")},"XP1/":function(e,t,n){n("Jaki")("Int16",2,function(e){return function(t,n,r){return e(this,t,n,r)}})},XUei:function(e,t,n){"use strict";function r(e,t,n){this.locales=e,this.formats=t,this.pluralFn=n}function i(e){this.id=e}function o(e,t,n,r,i){this.id=e,this.useOrdinal=t,this.offset=n,this.options=r,this.pluralFn=i}function a(e,t,n,r){this.id=e,this.offset=t,this.numberFormat=n,this.string=r}function s(e,t){this.id=e,this.options=t}t["default"]=r,r.prototype.compile=function(e){return this.pluralStack=[],this.currentPlural=null,this.pluralNumberFormat=null,this.compileMessage(e)},r.prototype.compileMessage=function(e){if(!e||"messageFormatPattern"!==e.type)throw new Error('Message AST is not of type: "messageFormatPattern"');var t,n,r,i=e.elements,o=[];for(t=0,n=i.length;t-1}function Xe(e,t){var n=this.__data__,r=dt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Qe(e){var t=-1,n=null==e?0:e.length;this.clear();while(++tc))return!1;var h=s.get(e);if(h&&s.get(t))return h==t;var f=-1,d=!0,p=n&a?new rt:void 0;s.set(e,t),s.set(t,e);while(++f-1&&e%1==0&&e-1&&e%1==0&&e<=s}function zt(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Gt(e){return null!=e&&"object"==typeof e}var qt=Q?ne(Q):wt;function Kt(e){return Bt(e)?ft(e):xt(e)}function Yt(){return[]}function Xt(){return!1}n.exports=Wt}).call(this,n("yLpj"),n("YuTi")(e))},XaS2:function(e,t,n){"use strict";function r(e){"@babel/helpers - typeof";return r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){if(null==e)return{};var n,r,i=o(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function o(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0&&this.setRowHeight())}},{key:"render",value:function(){if(!this.state.shouldRender)return null;var e=this.props,t=e.prefixCls,n=e.columns,r=e.record,o=e.rowKey,a=e.index,l=e.onRow,c=e.indent,u=e.indentSize,h=e.hovered,f=e.height,d=e.visible,p=e.components,m=e.hasExpandIcon,g=e.renderExpandIcon,v=e.renderExpandIconCell,y=e.onRowClick,b=e.onRowDoubleClick,w=e.onRowMouseEnter,_=e.onRowMouseLeave,S=e.onRowContextMenu,k=p.body.row,T=p.body.cell,L=this.props.className;h&&(L+=" ".concat(t,"-hover"));var A=[];v(A);for(var P=0;P0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";var t=this.head,n=""+t.data;while(t=t.next)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;var t=i.allocUnsafe(e>>>0),n=this.head,r=0;while(n)a(n.data,t,r),r+=n.data.length,n=n.next;return t},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},Xnb7:function(e,t,n){"use strict";n.d(t,"b",function(){return a}),n.d(t,"a",function(){return s}),n.d(t,"c",function(){return c});var r=n("1RvN"),i=n("cm6r"),o=new r["a"](50);function a(e){if("string"===typeof e){var t=o.get(e);return t&&t.image}return e}function s(e,t,n,r,a){if(e){if("string"===typeof e){if(t&&t.__zrImageSrc===e||!n)return t;var s=o.get(e),u={hostEl:n,cb:r,cbPayload:a};return s?(t=s.image,!c(t)&&s.pending.push(u)):(t=i["d"].loadImage(e,l,l),t.__zrImageSrc=e,o.put(e,t.__cachedImgObj={image:t,pending:[u]})),t}return e}return t}function l(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}e.exports=i},"Y/ne":function(e,t,n){var r=n("OsVd"),i=n("03ni"),o=n("ZDr/");e.exports=function(e,t,n,a){var s=String(o(e)),l=s.length,c=void 0===n?" ":String(n),u=r(t);if(u<=l||""==c)return s;var h=u-l,f=i.call(c,Math.ceil(h/c.length));return f.length>h&&(f=f.slice(0,h)),a?f+s:s+f}},Y2fQ:function(e,t,n){e.exports=n("LLXN").default||n("LLXN")},Y7ZC:function(e,t,n){var r=n("5T2Y"),i=n("WEpk"),o=n("2GTP"),a=n("NegM"),s=n("B+OT"),l="prototype",c=function(e,t,n){var u,h,f,d=e&c.F,p=e&c.G,m=e&c.S,g=e&c.P,v=e&c.B,y=e&c.W,b=p?i:i[t]||(i[t]={}),w=b[l],x=p?r:m?r[t]:(r[t]||{})[l];for(u in p&&(n=t),n)h=!d&&x&&void 0!==x[u],h&&s(b,u)||(f=h?x[u]:n[u],b[u]=p&&"function"!=typeof x[u]?n[u]:v&&h?o(f,r):y&&x[u]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t[l]=e[l],t}(f):g&&"function"==typeof f?o(Function.call,f):f,g&&((b.virtual||(b.virtual={}))[u]=f,e&c.R&&w&&!w[u]&&a(w,u,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},YEIV:function(e,t,n){"use strict";t.__esModule=!0;var r=n("SEkw"),i=o(r);function o(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t,n){return t in e?(0,i.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},YEVI:function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},YH21:function(e,t,n){"use strict";n.d(t,"b",function(){return l}),n.d(t,"c",function(){return u}),n.d(t,"d",function(){return h}),n.d(t,"a",function(){return d}),n.d(t,"e",function(){return p}),n.d(t,"f",function(){return m});var r=n("ItGF"),i=n("Ze12"),o=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,a=[],s=r["a"].browser.firefox&&+r["a"].browser.version.split(".")[0]<39;function l(e,t,n,r){return n=n||{},r?c(e,t,n):s&&null!=t.layerX&&t.layerX!==t.offsetX?(n.zrX=t.layerX,n.zrY=t.layerY):null!=t.offsetX?(n.zrX=t.offsetX,n.zrY=t.offsetY):c(e,t,n),n}function c(e,t,n){if(r["a"].domSupported&&e.getBoundingClientRect){var o=t.clientX,s=t.clientY;if(Object(i["b"])(e)){var l=e.getBoundingClientRect();return n.zrX=o-l.left,void(n.zrY=s-l.top)}if(Object(i["c"])(a,e,o,s))return n.zrX=a[0],void(n.zrY=a[1])}n.zrX=n.zrY=0}function u(e){return e||window.event}function h(e,t,n){if(t=u(t),null!=t.zrX)return t;var r=t.type,i=r&&r.indexOf("touch")>=0;if(i){var a="touchend"!==r?t.targetTouches[0]:t.changedTouches[0];a&&l(e,a,t,n)}else{l(e,t,t,n);var s=f(t);t.zrDelta=s?s/120:-(t.detail||0)/3}var c=t.button;return null==t.which&&void 0!==c&&o.test(t.type)&&(t.which=1&c?1:2&c?3:4&c?2:0),t}function f(e){var t=e.wheelDelta;if(t)return t;var n=e.deltaX,r=e.deltaY;if(null==n||null==r)return t;var i=0!==r?Math.abs(r):Math.abs(n),o=r>0?-1:r<0?1:n>0?-1:1;return 3*i*o}function d(e,t,n,r){e.addEventListener(t,n,r)}function p(e,t,n,r){e.removeEventListener(t,n,r)}var m=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0}},YVYq:function(e,t,n){"use strict";n.d(t,"a",function(){return o});var r=n("q1tI"),i=n.n(r);function o(e){var t=e.prefixCls,n=e.locale,r=e.okDisabled,o=e.onOk,a=t+"-ok-btn";return r&&(a+=" "+t+"-ok-btn-disabled"),i.a.createElement("a",{className:a,role:"button",onClick:r?null:o},n.ok)}},Yf6U:function(e,t,n){var r=n("W5Cv");e.exports=function(e,t,n){n=n||document,e={parentNode:e};while((e=e.parentNode)&&e!==n)if(r(e,t))return e}},YqAc:function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},YqDF:function(e,t,n){"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t0&&c&&(w.marginBottom="-".concat(_,"px"),w.paddingBottom="0px")}var E,S=l.createElement(h.default,{tableClassName:f,hasHead:!b,hasBody:!0,fixed:c,columns:s,expander:g,getRowKey:d,isAnyColumnsFixed:v});if(c&&s.length)return"left"===s[0].fixed||!0===s[0].fixed?E="fixedColumnsBodyLeft":"right"===s[0].fixed&&(E="fixedColumnsBodyRight"),delete w.overflowX,delete w.overflowY,l.createElement("div",{key:"bodyTable",className:"".concat(o,"-body-outer"),style:i({},w)},l.createElement("div",{className:"".concat(o,"-body-inner"),style:x,ref:y(E),onWheel:m,onScroll:p},S));var k=a&&(a.x||a.y);return l.createElement("div",{tabIndex:k?-1:void 0,key:"bodyTable",className:"".concat(o,"-body"),style:w,ref:y("bodyTable"),onWheel:m,onScroll:p},S)}t.default=f,f.contextTypes={table:c.any}},YuTi:function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},Z4ex:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;nt.length?e:t,u=e.length>t.length?t:e,h=c.indexOf(u);if(-1!=h)return l=[new n.Diff(i,c.substring(0,h)),new n.Diff(o,u),new n.Diff(i,c.substring(h+u.length))],e.length>t.length&&(l[0][0]=l[2][0]=r),l;if(1==u.length)return[new n.Diff(r,e),new n.Diff(i,t)];var f=this.diff_halfMatch_(e,t);if(f){var d=f[0],p=f[1],m=f[2],g=f[3],v=f[4],y=this.diff_main(d,m,a,s),b=this.diff_main(p,g,a,s);return y.concat([new n.Diff(o,v)],b)}return a&&e.length>100&&t.length>100?this.diff_lineMode_(e,t,s):this.diff_bisect_(e,t,s)},n.prototype.diff_lineMode_=function(e,t,a){var s=this.diff_linesToChars_(e,t);e=s.chars1,t=s.chars2;var l=s.lineArray,c=this.diff_main(e,t,!1,a);this.diff_charsToLines_(c,l),this.diff_cleanupSemantic(c),c.push(new n.Diff(o,""));var u=0,h=0,f=0,d="",p="";while(u=1&&f>=1){c.splice(u-h-f,h+f),u=u-h-f;for(var m=this.diff_main(d,p,!1,a),g=m.length-1;g>=0;g--)c.splice(u,0,m[g]);u+=m.length}f=0,h=0,d="",p="";break}u++}return c.pop(),c},n.prototype.diff_bisect_=function(e,t,o){for(var a=e.length,s=t.length,l=Math.ceil((a+s)/2),c=l,u=2*l,h=new Array(u),f=new Array(u),d=0;do)break;for(var x=-w+g;x<=w-v;x+=2){var _=c+x;T=x==-w||x!=w&&h[_-1]a)v+=2;else if(E>s)g+=2;else if(m){var S=c+p-x;if(S>=0&&S=k)return this.diff_bisectSplit_(e,t,T,E,o)}}}for(var C=-w+y;C<=w-b;C+=2){S=c+C;k=C==-w||C!=w&&f[S-1]a)b+=2;else if(O>s)y+=2;else if(!m){_=c+p-C;if(_>=0&&_=k)return this.diff_bisectSplit_(e,t,T,E,o)}}}}return[new n.Diff(r,e),new n.Diff(i,t)]},n.prototype.diff_bisectSplit_=function(e,t,n,r,i){var o=e.substring(0,n),a=t.substring(0,r),s=e.substring(n),l=t.substring(r),c=this.diff_main(o,a,!1,i),u=this.diff_main(s,l,!1,i);return c.concat(u)},n.prototype.diff_linesToChars_=function(e,t){var n=[],r={};function i(e){var t="",i=0,a=-1,s=n.length;while(ar?e=e.substring(n-r):nt.length?e:t,r=e.length>t.length?t:e;if(n.length<4||2*r.length=e.length?[r,o,a,s,u]:null}var a,s,l,c,u,h=o(n,r,Math.ceil(n.length/4)),f=o(n,r,Math.ceil(n.length/2));if(!h&&!f)return null;a=f?h&&h[4].length>f[4].length?h:f:h,e.length>t.length?(s=a[0],l=a[1],c=a[2],u=a[3]):(c=a[0],u=a[1],s=a[2],l=a[3]);var d=a[4];return[s,l,c,u,d]},n.prototype.diff_cleanupSemantic=function(e){var t=!1,a=[],s=0,l=null,c=0,u=0,h=0,f=0,d=0;while(c0?a[s-1]:-1,u=0,h=0,f=0,d=0,l=null,t=!0)),c++;t&&this.diff_cleanupMerge(e),this.diff_cleanupSemanticLossless(e),c=1;while(c=v?(g>=p.length/2||g>=m.length/2)&&(e.splice(c,0,new n.Diff(o,m.substring(0,g))),e[c-1][1]=p.substring(0,p.length-g),e[c+1][1]=m.substring(g),c++):(v>=p.length/2||v>=m.length/2)&&(e.splice(c,0,new n.Diff(o,p.substring(0,v))),e[c-1][0]=i,e[c-1][1]=m.substring(0,m.length-v),e[c+1][0]=r,e[c+1][1]=p.substring(v),c++),c++}c++}},n.prototype.diff_cleanupSemanticLossless=function(e){function t(e,t){if(!e||!t)return 6;var r=e.charAt(e.length-1),i=t.charAt(0),o=r.match(n.nonAlphaNumericRegex_),a=i.match(n.nonAlphaNumericRegex_),s=o&&r.match(n.whitespaceRegex_),l=a&&i.match(n.whitespaceRegex_),c=s&&r.match(n.linebreakRegex_),u=l&&i.match(n.linebreakRegex_),h=c&&e.match(n.blanklineEndRegex_),f=u&&t.match(n.blanklineStartRegex_);return h||f?5:c||u?4:o&&!s&&l?3:s||l?2:o||a?1:0}var r=1;while(r=d&&(d=p,u=i,h=a,f=s)}e[r-1][1]!=u&&(u?e[r-1][1]=u:(e.splice(r-1,1),r--),e[r][1]=h,f?e[r+1][1]=f:(e.splice(r+1,1),r--))}r++}},n.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,n.whitespaceRegex_=/\s/,n.linebreakRegex_=/[\r\n]/,n.blanklineEndRegex_=/\n\r?\n$/,n.blanklineStartRegex_=/^\r?\n\r?\n/,n.prototype.diff_cleanupEfficiency=function(e){var t=!1,a=[],s=0,l=null,c=0,u=!1,h=!1,f=!1,d=!1;while(c0?a[s-1]:-1,f=d=!1),t=!0)),c++;t&&this.diff_cleanupMerge(e)},n.prototype.diff_cleanupMerge=function(e){e.push(new n.Diff(o,""));var t,a=0,s=0,l=0,c="",u="";while(a1?(0!==s&&0!==l&&(t=this.diff_commonPrefix(u,c),0!==t&&(a-s-l>0&&e[a-s-l-1][0]==o?e[a-s-l-1][1]+=u.substring(0,t):(e.splice(0,0,new n.Diff(o,u.substring(0,t))),a++),u=u.substring(t),c=c.substring(t)),t=this.diff_commonSuffix(u,c),0!==t&&(e[a][1]=u.substring(u.length-t)+e[a][1],u=u.substring(0,u.length-t),c=c.substring(0,c.length-t))),a-=s+l,e.splice(a,s+l),c.length&&(e.splice(a,0,new n.Diff(r,c)),a++),u.length&&(e.splice(a,0,new n.Diff(i,u)),a++),a++):0!==a&&e[a-1][0]==o?(e[a-1][1]+=e[a][1],e.splice(a,1)):a++,l=0,s=0,c="",u="";break}""===e[e.length-1][1]&&e.pop();var h=!1;a=1;while(at)break;s=o,l=a}return e.length!=n&&e[n][0]===r?l:l+(t-s)},n.prototype.diff_prettyHtml=function(e){for(var t=[],n=/&/g,a=//g,l=/\n/g,c=0;c");switch(u){case i:t[c]=''+f+"";break;case r:t[c]=''+f+"";break;case o:t[c]=""+f+"";break}}return t.join("")},n.prototype.diff_text1=function(e){for(var t=[],n=0;nthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var r=this.match_alphabet_(t),i=this;function o(e,r){var o=e/t.length,a=Math.abs(n-r);return i.Match_Distance?o+a/i.Match_Distance:a?1:o}var a=this.Match_Threshold,s=e.indexOf(t,n);-1!=s&&(a=Math.min(o(0,s),a),s=e.lastIndexOf(t,n+t.length),-1!=s&&(a=Math.min(o(0,s),a)));var l,c,u=1<=p;v--){var y=r[e.charAt(v-1)];if(g[v]=0===d?(g[v+1]<<1|1)&y:(g[v+1]<<1|1)&y|(h[v+1]|h[v])<<1|1|h[v+1],g[v]&u){var b=o(d,v-1);if(b<=a){if(a=b,s=v-1,!(s>n))break;p=Math.max(1,2*n-s)}}}if(o(d+1,n)>a)break;h=g}return s},n.prototype.match_alphabet_=function(e){for(var t={},n=0;n2&&(this.diff_cleanupSemantic(l),this.diff_cleanupEfficiency(l));else if(e&&"object"==typeof e&&"undefined"==typeof t&&"undefined"==typeof a)l=e,s=this.diff_text1(l);else if("string"==typeof e&&t&&"object"==typeof t&&"undefined"==typeof a)s=e,l=t;else{if("string"!=typeof e||"string"!=typeof t||!a||"object"!=typeof a)throw new Error("Unknown call format to patch_make.");s=e,l=a}if(0===l.length)return[];for(var c=[],u=new n.patch_obj,h=0,f=0,d=0,p=s,m=s,g=0;g=2*this.Patch_Margin&&h&&(this.patch_addContext_(u,p),c.push(u),u=new n.patch_obj,h=0,p=m,f=d);break}v!==i&&(f+=y.length),v!==r&&(d+=y.length)}return h&&(this.patch_addContext_(u,p),c.push(u)),c},n.prototype.patch_deepCopy=function(e){for(var t=[],r=0;rthis.Match_MaxBits?(c=this.match_main(t,f.substring(0,this.Match_MaxBits),h),-1!=c&&(d=this.match_main(t,f.substring(f.length-this.Match_MaxBits),h+f.length-this.Match_MaxBits),(-1==d||c>=d)&&(c=-1))):c=this.match_main(t,f,h),-1==c)s[l]=!1,a-=e[l].length2-e[l].length1;else if(s[l]=!0,a=c-h,u=-1==d?t.substring(c,c+f.length):t.substring(c,d+this.Match_MaxBits),f==u)t=t.substring(0,c)+this.diff_text2(e[l].diffs)+t.substring(c+f.length);else{var p=this.diff_main(f,u,!1);if(f.length>this.Match_MaxBits&&this.diff_levenshtein(p)/f.length>this.Patch_DeleteThreshold)s[l]=!1;else{this.diff_cleanupSemanticLossless(p);for(var m,g=0,v=0;vs[0][1].length){var l=t-s[0][1].length;s[0][1]=r.substring(s[0][1].length)+s[0][1],a.start1-=l,a.start2-=l,a.length1+=l,a.length2+=l}if(a=e[e.length-1],s=a.diffs,0==s.length||s[s.length-1][0]!=o)s.push(new n.Diff(o,r)),a.length1+=t,a.length2+=t;else if(t>s[s.length-1][1].length){l=t-s[s.length-1][1].length;s[s.length-1][1]+=r.substring(0,l),a.length1+=l,a.length2+=l}return r},n.prototype.patch_splitMax=function(e){for(var t=this.Match_MaxBits,a=0;a2*t?(h.length1+=p.length,l+=p.length,f=!1,h.diffs.push(new n.Diff(d,p)),s.diffs.shift()):(p=p.substring(0,t-h.length1-this.Patch_Margin),h.length1+=p.length,l+=p.length,d===o?(h.length2+=p.length,c+=p.length):f=!1,h.diffs.push(new n.Diff(d,p)),p==s.diffs[0][1]?s.diffs.shift():s.diffs[0][1]=s.diffs[0][1].substring(p.length))}u=this.diff_text2(h.diffs),u=u.substring(u.length-this.Patch_Margin);var m=this.diff_text1(s.diffs).substring(0,this.Patch_Margin);""!==m&&(h.length1+=m.length,h.length2+=m.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===o?h.diffs[h.diffs.length-1][1]+=m:h.diffs.push(new n.Diff(o,m))),f||e.splice(++a,0,h)}}},n.prototype.patch_toText=function(e){for(var t=[],n=0;n>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",r[l]+":0",i[c]+":0",r[1-l]+":auto",i[1-c]+":auto",""].join("!important;"),e.appendChild(a),n.push(a)}return n}function f(e,t,n){for(var r=n?"invTrans":"trans",i=t[r],o=t.srcCoords,s=[],l=[],c=!0,u=0;u<4;u++){var h=e[u].getBoundingClientRect(),f=2*u,d=h.left,p=h.top;s.push(d,p),c=c&&o&&d===o[f]&&p===o[f+1],l.push(e[u].offsetLeft,e[u].offsetTop)}return c&&i?i:(t.srcCoords=s,t[r]=n?a(l,s):a(s,l))}function d(e){return"CANVAS"===e.nodeName.toUpperCase()}var p=/([&<>"'])/g,m={"&":"&","<":"<",">":">",'"':""","'":"'"};function g(e){return null==e?"":(e+"").replace(p,function(e,t){return m[t]})}},Zgoe:function(e,t,n){var r=n("9HFh"),i=n("e6w7"),o=n("7vYJ"),a=n("c0Oy").Reflect;e.exports=a&&a.ownKeys||function(e){var t=r.f(o(e)),n=i.f;return n?t.concat(n(e)):t}},ZlA7:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={groups:[],switchLoading:{},saveLoading:!1,fetchLoading:!1};t["default"]={name:"serverGroup",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{fetch(e,t){var n=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/server/group/fetch");case 4:return t=e.sent,e.next=7,n({type:"setState",payload:{fetchLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,n({type:"setState",payload:{groups:t.data}});case 11:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/group/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},save(e,t){var n=e.params,r=e.callback,i=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/group/save",n);case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,i({type:"fetch"});case 7:"function"===typeof r&&r();case 8:case"end":return e.stop()}},e)})()}}}},Zss7:function(e,t,n){var r;(function(i){var o=/^\s+/,a=/\s+$/,s=0,l=i.round,c=i.min,u=i.max,h=i.random;function f(e,t){if(e=e||"",t=t||{},e instanceof f)return e;if(!(this instanceof f))return new f(e,t);var n=d(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=l(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=l(this._r)),this._g<1&&(this._g=l(this._g)),this._b<1&&(this._b=l(this._b)),this._ok=n.ok,this._tc_id=s++}function d(e){var t={r:0,g:0,b:0},n=1,r=null,i=null,o=null,a=!1,s=!1;return"string"==typeof e&&(e=X(e)),"object"==typeof e&&(Y(e.r)&&Y(e.g)&&Y(e.b)?(t=p(e.r,e.g,e.b),a=!0,s="%"===String(e.r).substr(-1)?"prgb":"rgb"):Y(e.h)&&Y(e.s)&&Y(e.v)?(r=z(e.s),i=z(e.v),t=y(e.h,r,i),a=!0,s="hsv"):Y(e.h)&&Y(e.s)&&Y(e.l)&&(r=z(e.s),o=z(e.l),t=g(e.h,r,o),a=!0,s="hsl"),e.hasOwnProperty("a")&&(n=e.a)),n=$(n),{ok:a,format:e.format||s,r:c(255,u(t.r,0)),g:c(255,u(t.g,0)),b:c(255,u(t.b,0)),a:n}}function p(e,t,n){return{r:255*F(e,255),g:255*F(t,255),b:255*F(n,255)}}function m(e,t,n){e=F(e,255),t=F(t,255),n=F(n,255);var r,i,o=u(e,t,n),a=c(e,t,n),s=(o+a)/2;if(o==a)r=i=0;else{var l=o-a;switch(i=s>.5?l/(2-o-a):l/(o+a),o){case e:r=(t-n)/l+(t1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=F(e,360),t=F(t,100),n=F(n,100),0===t)r=i=o=n;else{var s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;r=a(l,s,e+1/3),i=a(l,s,e),o=a(l,s,e-1/3)}return{r:255*r,g:255*i,b:255*o}}function v(e,t,n){e=F(e,255),t=F(t,255),n=F(n,255);var r,i,o=u(e,t,n),a=c(e,t,n),s=o,l=o-a;if(i=0===o?0:l/o,o==a)r=0;else{switch(o){case e:r=(t-n)/l+(t>1)+720)%360;--t;)r.h=(r.h+i)%360,o.push(f(r));return o}function R(e,t){t=t||6;var n=f(e).toHsv(),r=n.h,i=n.s,o=n.v,a=[],s=1/t;while(t--)a.push(f({h:r,s:i,v:o})),o=(o+s)%1;return a}f.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r,o,a,s=this.toRgb();return e=s.r/255,t=s.g/255,n=s.b/255,r=e<=.03928?e/12.92:i.pow((e+.055)/1.055,2.4),o=t<=.03928?t/12.92:i.pow((t+.055)/1.055,2.4),a=n<=.03928?n/12.92:i.pow((n+.055)/1.055,2.4),.2126*r+.7152*o+.0722*a},setAlpha:function(e){return this._a=$(e),this._roundA=l(100*this._a)/100,this},toHsv:function(){var e=v(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=v(this._r,this._g,this._b),t=l(360*e.h),n=l(100*e.s),r=l(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=m(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=m(this._r,this._g,this._b),t=l(360*e.h),n=l(100*e.s),r=l(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+r+"%)":"hsla("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return b(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return w(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:l(this._r),g:l(this._g),b:l(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+l(this._r)+", "+l(this._g)+", "+l(this._b)+")":"rgba("+l(this._r)+", "+l(this._g)+", "+l(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:l(100*F(this._r,255))+"%",g:l(100*F(this._g,255))+"%",b:l(100*F(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+l(100*F(this._r,255))+"%, "+l(100*F(this._g,255))+"%, "+l(100*F(this._b,255))+"%)":"rgba("+l(100*F(this._r,255))+"%, "+l(100*F(this._g,255))+"%, "+l(100*F(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(D[b(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+x(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var i=f(e);n="#"+x(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0,i=!t&&r&&("hex"===e||"hex6"===e||"hex3"===e||"hex4"===e||"hex8"===e||"name"===e);return i?"name"===e&&0===this._a?this.toName():this.toRgbString():("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString())},clone:function(){return f(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(k,arguments)},brighten:function(){return this._applyModification(C,arguments)},darken:function(){return this._applyModification(O,arguments)},desaturate:function(){return this._applyModification(_,arguments)},saturate:function(){return this._applyModification(E,arguments)},greyscale:function(){return this._applyModification(S,arguments)},spin:function(){return this._applyModification(T,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(M,arguments)},complement:function(){return this._applyCombination(L,arguments)},monochromatic:function(){return this._applyCombination(R,arguments)},splitcomplement:function(){return this._applyCombination(j,arguments)},triad:function(){return this._applyCombination(A,arguments)},tetrad:function(){return this._applyCombination(P,arguments)}},f.fromRatio=function(e,t){if("object"==typeof e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:z(e[r]));e=n}return f(e,t)},f.equals=function(e,t){return!(!e||!t)&&f(e).toRgbString()==f(t).toRgbString()},f.random=function(){return f.fromRatio({r:h(),g:h(),b:h()})},f.mix=function(e,t,n){n=0===n?0:n||50;var r=f(e).toRgb(),i=f(t).toRgb(),o=n/100,a={r:(i.r-r.r)*o+r.r,g:(i.g-r.g)*o+r.g,b:(i.b-r.b)*o+r.b,a:(i.a-r.a)*o+r.a};return f(a)},f.readability=function(e,t){var n=f(e),r=f(t);return(i.max(n.getLuminance(),r.getLuminance())+.05)/(i.min(n.getLuminance(),r.getLuminance())+.05)},f.isReadable=function(e,t,n){var r,i,o=f.readability(e,t);switch(i=!1,r=Q(n),r.level+r.size){case"AAsmall":case"AAAlarge":i=o>=4.5;break;case"AAlarge":i=o>=3;break;case"AAAsmall":i=o>=7;break}return i},f.mostReadable=function(e,t,n){var r,i,o,a,s=null,l=0;n=n||{},i=n.includeFallbackColors,o=n.level,a=n.size;for(var c=0;cl&&(l=r,s=f(t[c]));return f.isReadable(e,s,{level:o,size:a})||!i?s:(n.includeFallbackColors=!1,f.mostReadable(e,["#fff","#000"],n))};var N=f.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},D=f.hexNames=I(N);function I(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function $(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function F(e,t){W(e)&&(e="100%");var n=H(e);return e=c(t,u(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),i.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function B(e){return c(1,u(0,e))}function V(e){return parseInt(e,16)}function W(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)}function H(e){return"string"===typeof e&&-1!=e.indexOf("%")}function U(e){return 1==e.length?"0"+e:""+e}function z(e){return e<=1&&(e=100*e+"%"),e}function G(e){return i.round(255*parseFloat(e)).toString(16)}function q(e){return V(e)/255}var K=function(){var e="[-\\+]?\\d+%?",t="[-\\+]?\\d*\\.\\d+%?",n="(?:"+t+")|(?:"+e+")",r="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?",i="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?";return{CSS_UNIT:new RegExp(n),rgb:new RegExp("rgb"+r),rgba:new RegExp("rgba"+i),hsl:new RegExp("hsl"+r),hsla:new RegExp("hsla"+i),hsv:new RegExp("hsv"+r),hsva:new RegExp("hsva"+i),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Y(e){return!!K.CSS_UNIT.exec(e)}function X(e){e=e.replace(o,"").replace(a,"").toLowerCase();var t,n=!1;if(N[e])e=N[e],n=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};return(t=K.rgb.exec(e))?{r:t[1],g:t[2],b:t[3]}:(t=K.rgba.exec(e))?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=K.hsl.exec(e))?{h:t[1],s:t[2],l:t[3]}:(t=K.hsla.exec(e))?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=K.hsv.exec(e))?{h:t[1],s:t[2],v:t[3]}:(t=K.hsva.exec(e))?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=K.hex8.exec(e))?{r:V(t[1]),g:V(t[2]),b:V(t[3]),a:q(t[4]),format:n?"name":"hex8"}:(t=K.hex6.exec(e))?{r:V(t[1]),g:V(t[2]),b:V(t[3]),format:n?"name":"hex"}:(t=K.hex4.exec(e))?{r:V(t[1]+""+t[1]),g:V(t[2]+""+t[2]),b:V(t[3]+""+t[3]),a:q(t[4]+""+t[4]),format:n?"name":"hex8"}:!!(t=K.hex3.exec(e))&&{r:V(t[1]+""+t[1]),g:V(t[2]+""+t[2]),b:V(t[3]+""+t[3]),format:n?"name":"hex"}}function Q(e){var t,n;return e=e||{level:"AA",size:"small"},t=(e.level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA"),"small"!==n&&"large"!==n&&(n="small"),{level:t,size:n}}e.exports?e.exports=f:(r=function(){return f}.call(t,n,t,e),void 0===r||(e.exports=r))})(Math)},Zxgi:function(e,t,n){var r=n("5T2Y"),i=n("WEpk"),o=n("uOPS"),a=n("zLkG"),s=n("2faE").f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},Zy53:function(e,t,n){"use strict";t=e.exports=n("oOsv")["default"],t["default"]=t},a0xu:function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},a3WO:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&r&&r.length>1){var o=d(r)/d(i);!isFinite(o)&&(o=1),t.pinchScale=o;var a=p(r);return t.pinchX=a[0],t.pinchY=a[1],{type:"pinch",target:e[0].target,event:t}}}}},g=n("mFDi"),v="silent";function y(e,t,n){return{type:e,event:n,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:b}}function b(){h["f"](this.event)}var w=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.handler=null,t}return Object(o["a"])(t,e),t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(u["a"]),x=function(){function e(e,t){this.x=e,this.y=t}return e}(),_=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],E=new g["a"](0,0,0,0),S=function(e){function t(t,n,r,i,o){var a=e.call(this)||this;return a._hovered=new x(0,0),a.storage=t,a.painter=n,a.painterRoot=i,a._pointerSize=o,r=r||new w,a.proxy=null,a.setHandlerProxy(r),a._draggingMgr=new c(a),a}return Object(o["a"])(t,e),t.prototype.setHandlerProxy=function(e){this.proxy&&this.proxy.dispose(),e&&(i["j"](_,function(t){e.on&&e.on(t,this[t],this)},this),e.handler=this),this.proxy=e},t.prototype.mousemove=function(e){var t=e.zrX,n=e.zrY,r=O(this,t,n),i=this._hovered,o=i.target;o&&!o.__zr&&(i=this.findHover(i.x,i.y),o=i.target);var a=this._hovered=r?new x(t,n):this.findHover(t,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(i,"mouseout",e),this.dispatchToElement(a,"mousemove",e),s&&s!==o&&this.dispatchToElement(a,"mouseover",e)},t.prototype.mouseout=function(e){var t=e.zrEventControl;"only_globalout"!==t&&this.dispatchToElement(this._hovered,"mouseout",e),"no_globalout"!==t&&this.trigger("globalout",{type:"globalout",event:e})},t.prototype.resize=function(){this._hovered=new x(0,0)},t.prototype.dispatch=function(e,t){var n=this[e];n&&n.call(this,t)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(e){var t=this.proxy;t.setCursor&&t.setCursor(e)},t.prototype.dispatchToElement=function(e,t,n){e=e||{};var r=e.target;if(!r||!r.silent){var i="on"+t,o=y(t,e,n);while(r)if(r[i]&&(o.cancelBubble=!!r[i].call(r,o)),r.trigger(t,o),r=r.__hostTarget?r.__hostTarget:r.parent,o.cancelBubble)break;o.cancelBubble||(this.trigger(t,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(e){"function"===typeof e[i]&&e[i].call(e,o),e.trigger&&e.trigger(t,o)}))}},t.prototype.findHover=function(e,t,n){var r=this.storage.getDisplayList(),i=new x(e,t);if(C(r,i,e,t,n),this._pointerSize&&!i.target){for(var o=[],a=this._pointerSize,s=a/2,l=new g["a"](e-s,t-s,a,a),c=r.length-1;c>=0;c--){var u=r[c];u===n||u.ignore||u.ignoreCoarsePointer||u.parent&&u.parent.ignoreCoarsePointer||(E.copy(u.getBoundingRect()),u.transform&&E.applyTransform(u.transform),E.intersect(l)&&o.push(u))}if(o.length)for(var h=4,f=Math.PI/12,d=2*Math.PI,p=0;p=0;o--){var a=e[o],s=void 0;if(a!==i&&!a.ignore&&(s=k(a,n,r))&&(!t.topTarget&&(t.topTarget=a),s!==v)){t.target=a;break}}}function O(e,t,n){var r=e.painter;return t<0||t>r.getWidth()||n<0||n>r.getHeight()}i["j"](["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(e){S.prototype[e]=function(t){var n,r,i=t.zrX,o=t.zrY,s=O(this,i,o);if("mouseup"===e&&s||(n=this.findHover(i,o),r=n.target),"mousedown"===e)this._downEl=r,this._downPoint=[t.zrX,t.zrY],this._upEl=r;else if("mouseup"===e)this._upEl=r;else if("click"===e){if(this._downEl!==this._upEl||!this._downPoint||a["e"](this._downPoint,[t.zrX,t.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,e,t)}});var T=S,L=n("BPZU"),A=n("S8SX"),P=!1;function j(){P||(P=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function M(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var R,N=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=M}return e.prototype.traverse=function(e,t){for(var n=0;n0&&(c.__clipPaths=[]),isNaN(c.z)&&(j(),c.z=0),isNaN(c.z2)&&(j(),c.z2=0),isNaN(c.zlevel)&&(j(),c.zlevel=0),this._displayList[this._displayListLen++]=c}var u=e.getDecalElement&&e.getDecalElement();u&&this._updateAndAddDisplayable(u,t,n);var h=e.getTextGuideLine();h&&this._updateAndAddDisplayable(h,t,n);var f=e.getTextContent();f&&this._updateAndAddDisplayable(f,t,n)}},e.prototype.addRoot=function(e){e.__zr&&e.__zr.storage===this||this._roots.push(e)},e.prototype.delRoot=function(e){if(e instanceof Array)for(var t=0,n=e.length;t=0&&this._roots.splice(r,1)}},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}(),D=N;R=r["a"].hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};var I=R,$=n("Bq2U");function F(){return(new Date).getTime()}var B=function(e){function t(t){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,t=t||{},n.stage=t.stage||{},n}return Object(o["a"])(t,e),t.prototype.addClip=function(e){e.animation&&this.removeClip(e),this._head?(this._tail.next=e,e.prev=this._tail,e.next=null,this._tail=e):this._head=this._tail=e,e.animation=this},t.prototype.addAnimator=function(e){e.animation=this;var t=e.getClip();t&&this.addClip(t)},t.prototype.removeClip=function(e){if(e.animation){var t=e.prev,n=e.next;t?t.next=n:this._head=n,n?n.prev=t:this._tail=t,e.next=e.prev=e.animation=null}},t.prototype.removeAnimator=function(e){var t=e.getClip();t&&this.removeClip(t),e.animation=null},t.prototype.update=function(e){var t=F()-this._pausedTime,n=t-this._time,r=this._head;while(r){var i=r.next,o=r.step(t,n);o?(r.ondestroy(),this.removeClip(r),r=i):r=i}this._time=t,e||(this.trigger("frame",n),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var e=this;function t(){e._running&&(I(t),!e._paused&&e.update())}this._running=!0,I(t)},t.prototype.start=function(){this._running||(this._time=F(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=F(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=F()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){var e=this._head;while(e){var t=e.next;e.prev=e.next=e.animation=null,e=t}this._head=this._tail=null},t.prototype.isFinished=function(){return null==this._head},t.prototype.animate=function(e,t){t=t||{},this.start();var n=new $["b"](e,t.loop);return this.addAnimator(n),n},t}(u["a"]),V=B,W=300,H=r["a"].domSupported,U=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],n={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},r=i["D"](e,function(e){var t=e.replace("mouse","pointer");return n.hasOwnProperty(t)?t:e});return{mouse:e,touch:t,pointer:r}}(),z={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},G=!1;function q(e){var t=e.pointerType;return"pen"===t||"touch"===t}function K(e){e.touching=!0,null!=e.touchTimer&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function Y(e){e&&(e.zrByTouch=!0)}function X(e,t){return Object(h["d"])(e.dom,new Z(e,t),!0)}function Q(e,t){var n=t,r=!1;while(n&&9!==n.nodeType&&!(r=n.domBelongToZr||n!==t&&n===e.painterRoot))n=n.parentNode;return r}var Z=function(){function e(e,t){this.stopPropagation=i["G"],this.stopImmediatePropagation=i["G"],this.preventDefault=i["G"],this.type=t.type,this.target=this.currentTarget=e.dom,this.pointerType=t.pointerType,this.clientX=t.clientX,this.clientY=t.clientY}return e}(),J={mousedown:function(e){e=Object(h["d"])(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Object(h["d"])(this.dom,e);var t=this.__mayPointerCapture;!t||e.zrX===t[0]&&e.zrY===t[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Object(h["d"])(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Object(h["d"])(this.dom,e);var t=e.toElement||e.relatedTarget;Q(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){G=!0,e=Object(h["d"])(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){G||(e=Object(h["d"])(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Object(h["d"])(this.dom,e),Y(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),J.mousemove.call(this,e),J.mousedown.call(this,e)},touchmove:function(e){e=Object(h["d"])(this.dom,e),Y(e),this.handler.processGesture(e,"change"),J.mousemove.call(this,e)},touchend:function(e){e=Object(h["d"])(this.dom,e),Y(e),this.handler.processGesture(e,"end"),J.mouseup.call(this,e),+new Date-+this.__lastTouchMoment0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(e){this._sleepAfterStill=e},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},e.prototype.resize=function(e){e=e||{},this.painter.resize(e.width,e.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(e){this.handler.setCursorStyle(e)},e.prototype.findHover=function(e,t){return this.handler.findHover(e,t)},e.prototype.on=function(e,t,n){return this.handler.on(e,t,n),this},e.prototype.off=function(e,t){this.handler.off(e,t)},e.prototype.trigger=function(e,t){this.handler.trigger(e,t)},e.prototype.clear=function(){for(var e=this.storage.getRoots(),t=0;t1&&void 0!==arguments[1]?arguments[1]:{},r=e.props;"value"in r||e.setState({value:t}),("keyboard"===n.source||"dateInputSelect"===n.source||!r.calendar.props.timePicker&&"dateInput"!==n.source||"todayButton"===n.source)&&e.close(e.focus),r.onChange(t)},this.onKeyDown=function(t){e.state.open||t.keyCode!==v["a"].DOWN&&t.keyCode!==v["a"].ENTER||(e.open(),t.preventDefault())},this.onCalendarOk=function(){e.close(e.focus)},this.onCalendarClear=function(){e.close(e.focus)},this.onCalendarBlur=function(){e.setOpen(!1)},this.onVisibleChange=function(t){e.setOpen(t)},this.getCalendarElement=function(){var t=e.props,n=e.state,r=t.calendar.props,i=n.value,o=i,a={ref:e.saveCalendarRef,defaultValue:o||r.defaultValue,selectedValue:i,onKeyDown:e.onCalendarKeyDown,onOk:Object(g["a"])(r.onOk,e.onCalendarOk),onSelect:Object(g["a"])(r.onSelect,e.onCalendarSelect),onClear:Object(g["a"])(r.onClear,e.onCalendarClear),onBlur:Object(g["a"])(r.onBlur,e.onCalendarBlur)};return u.a.cloneElement(t.calendar,a)},this.setOpen=function(t,n){var r=e.props.onOpenChange;e.state.open!==t&&("open"in e.props||e.setState({open:t},n),r(t))},this.open=function(t){e.setOpen(!0,t)},this.close=function(t){e.setOpen(!1,t)},this.focus=function(){e.state.open||f.a.findDOMNode(e).focus()},this.focusCalendar=function(){e.state.open&&e.calendarInstance&&e.calendarInstance.focus()}};Object(m["polyfill"])(k);t["a"]=k},"ar/p":function(e,t,n){var r=n("5vMV"),i=n("FpHa").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},b5re:function(e,t,n){e.exports=n("VyuQ")("native-function-to-string",Function.toString)},b9EY:function(e,t){e.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},b9Ot:function(e,t,n){"use strict";var r=function(){function e(e){e&&(this._$eventProcessor=e)}return e.prototype.on=function(e,t,n,r){this._$handlers||(this._$handlers={});var i=this._$handlers;if("function"===typeof t&&(r=n,n=t,t=null),!n||!e)return this;var o=this._$eventProcessor;null!=t&&o&&o.normalizeQuery&&(t=o.normalizeQuery(t)),i[e]||(i[e]=[]);for(var a=0;an.length)&&(t=n.length),t-=e.length;var r=n.indexOf(e,t);return-1!==r&&r===t}),String.prototype.repeat||r(String.prototype,"repeat",function(e){var t="",n=this;while(e>0)1&e&&(t+=n),(e>>=1)&&(n+=n);return t}),String.prototype.includes||r(String.prototype,"includes",function(e,t){return-1!=this.indexOf(e,t)}),Object.assign||(Object.assign=function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n>>0,r=arguments[1],i=r>>0,o=i<0?Math.max(n+i,0):Math.min(i,n),a=arguments[2],s=void 0===a?n:a>>0,l=s<0?Math.max(n+s,0):Math.min(s,n);while(o0)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,r=e.length;n=0?parseFloat((o.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((o.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=o.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(o.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(o.split(" Chrome/")[1])||void 0,t.isEdge=parseFloat(o.split(" Edge/")[1])||void 0,t.isAIR=o.indexOf("AdobeAIR")>=0,t.isAndroid=o.indexOf("Android")>=0,t.isChromeOS=o.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(o)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";var r,i=e("./useragent"),o="http://www.w3.org/1999/xhtml";t.buildDom=function e(t,n,r){if("string"==typeof t&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var o=[],a=0;a=1.5,i.isChromeOS&&(t.HI_DPI=!1),"undefined"!==typeof document){var c=document.createElement("div");t.HI_DPI&&void 0!==c.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),i.isEdge||"undefined"===typeof c.style.animationName||(t.HAS_CSS_ANIMATION=!0),c=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){!n&&i.readyState&&"loaded"!=i.readyState&&"complete"!=i.readyState||(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(n.length||r){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=o),n=n.slice();for(var a=0;a1&&(i=n[n.length-2]);var a=s[t+"Path"];return null==a?a=s.basePath:"/"==r&&(t=r=""),a&&"/"!=a.slice(-1)&&(a+="/"),a+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return s.$moduleUrls[e]=t};var l=function(t,n){return"ace/theme/textmate"==t?n(null,e("./theme/textmate")):console.error("loader is not configured")};t.setLoader=function(e){l=e},t.$loading={},t.loadModule=function(n,r){var o,a;Array.isArray(n)&&(a=n[0],n=n[1]);try{o=e(n)}catch(e){}if(o&&!t.$loading[n])return r&&r(o);if(t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r),!(t.$loading[n].length>1)){var s=function(){l(n,function(e,r){t._emit("load.module",{name:n,module:r});var i=t.$loading[n];t.$loading[n]=null,i.forEach(function(e){e&&e(r)})})};if(!t.get("packaged"))return s();i.loadScript(t.moduleUrl(n,a),s),c()}};var c=function(){s.basePath||s.workerPath||s.modePath||s.themePath||Object.keys(s.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.13.1"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(e,t,r){"use strict";e("./lib/fixoldbrowsers");var i=e("./config");i.setLoader(function(t,n){e([t],function(e){n(null,e)})});var o=function(){return this||"undefined"!=typeof window&&window}();function a(t){if(o&&o.document){i.set("packaged",t||e.packaged||r.packaged||o.define&&n("B9Yq").packaged);for(var a={},l="",c=document.currentScript||document._currentScript,u=c&&c.ownerDocument||document,h=u.getElementsByTagName("script"),f=0;f1?(u++,u>4&&(u=1)):u=1,o.isIE){var a=Math.abs(e.clientX-s)>5||Math.abs(e.clientY-l)>5;c&&!a||(u=1),c&&clearTimeout(c),c=setTimeout(function(){c=null},n[u-1]||600),1==u&&(s=e.clientX,l=e.clientY)}if(e._clicks=u,r[i]("mousedown",e),u>4)u=0;else if(u>1)return r[i](f[u],e)}Array.isArray(e)||(e=[e]),e.forEach(function(e){h(e,"mousedown",d,a)})};var d=function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function p(e,t,n){var r=d(t);if(!o.isMac&&a){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(r|=8),a.altGr){if(3==(3&r))return;a.altGr=0}if(18===n||17===n){var l="location"in t?t.location:t.keyLocation;if(17===n&&1===l)1==a[n]&&(s=t.timeStamp);else if(18===n&&3===r&&2===l){var c=t.timeStamp-s;c<50&&(a.altGr=!0)}}}if(n in i.MODIFIER_KEYS&&(n=-1),!r&&13===n){l="location"in t?t.location:t.keyLocation;if(3===l&&(e(t,r,-n),t.defaultPrevented))return}if(o.isChromeOS&&8&r){if(e(t,r,n),t.defaultPrevented)return;r&=-9}return!!(r||n in i.FUNCTION_KEYS||n in i.PRINTABLE_KEYS)&&e(t,r,n)}function m(){a=Object.create(null)}if(t.getModifierString=function(e){return i.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,n,r){if(o.isOldGecko||o.isOpera&&!("KeyboardEvent"in window)){var i=null;h(e,"keydown",function(e){i=e.keyCode},r),h(e,"keypress",function(e){return p(n,e,i)},r)}else{var s=null;h(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=p(n,e,e.keyCode);return s=e.defaultPrevented,t},r),h(e,"keypress",function(e){s&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),s=null)},r),h(e,"keyup",function(e){a[e.keyCode]=null},r),a||(m(),h(window,"focus",m))}},"object"==typeof window&&window.postMessage&&!o.isOldIE){var g=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+g++,i=function(o){o.data==r&&(t.stopPropagation(o),f(n,"message",i),e())};h(n,"message",i),n.postMessage(r,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function n(){t.$idleBlocked?setTimeout(n,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),1==t?(t=this.compare(r.row,r.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(r.row,r.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.rowt)var r={row:t+1,column:0};else if(this.start.rowDate.now()-50)||(r=!1)},cancel:function(){r=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),o=e("../lib/dom"),a=e("../lib/lang"),s=e("../clipboard"),l=i.isChrome<18,c=i.isIE,u=i.isChrome>63,h=400,f=e("../lib/keys"),d=f.KEY_MODS,p=i.isIOS,m=p?/\s/:/\n/,g=i.isMobile,v=function(e,t){var n=o.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,y=!1,b=!1,w=!1,x="";g||(n.style.fontSize="1px");var _=!1,E=!1,S="",k=0,C=0,O=0;try{var T=document.activeElement===n}catch(e){}r.addListener(n,"blur",function(e){E||(t.onBlur(e),T=!1)},t),r.addListener(n,"focus",function(e){if(!E){if(T=!0,i.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),i.isEdge?setTimeout(L):L()}},t),this.$focusScroll=!1,this.focus=function(){if(x||u||"browser"==this.$focusScroll)return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var t=0!=n.getBoundingClientRect().top}catch(e){return}var r=[];if(t){var i=n.parentElement;while(i&&1==i.nodeType)r.push(i),i.setAttribute("ace_nocontext",!0),i=!i.parentElement&&i.getRootNode?i.getRootNode().host:i.parentElement}n.focus({preventScroll:!0}),t&&r.forEach(function(e){e.removeAttribute("ace_nocontext")}),setTimeout(function(){n.style.position="","0px"==n.style.top&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return T},t.on("beforeEndOperation",function(){var e=t.curOp,r=e&&e.command&&e.command.name;if("insertstring"!=r){var i=r&&(e.docChanged||e.selectionChanged);b&&i&&(S=n.value="",H()),L()}});var L=p?function(e){if(T&&(!v||e)&&!w){e||(e="");var r="\n ab"+e+"cde fg\n";r!=n.value&&(n.value=S=r);var i=4,o=4+(e.length||(t.selection.isEmpty()?0:1));k==i&&C==o||n.setSelectionRange(i,o),k=i,C=o}}:function(){if(!b&&!w&&(T||M)){b=!0;var e=0,r=0,i="";if(t.session){var o=t.selection,a=o.getRange(),s=o.cursor.row;if(e=a.start.column,r=a.end.column,i=t.session.getLine(s),a.start.row!=s){var l=t.session.getLine(s-1);e=a.start.rows+1?c.length:r,r+=i.length+1,i=i+"\n"+c}else g&&s>0&&(i="\n"+i,r+=1,e+=1);i.length>h&&(e=S.length&&e.value===S&&S&&e.selectionEnd!==C},P=function(e){b||(v?v=!1:A(n)?(t.selectAll(),L()):g&&n.selectionStart!=k&&L())},j=null;this.setInputHandler=function(e){j=e},this.getInputHandler=function(){return j};var M=!1,R=function(e,r){if(M&&(M=!1),y)return L(),e&&t.onPaste(e),y=!1,"";var o=n.selectionStart,a=n.selectionEnd,s=k,l=S.length-C,c=e,u=e.length-o,h=e.length-a,f=0;while(s>0&&S[f]==e[f])f++,s--;c=c.slice(f),f=1;while(l>0&&S.length-f>k-1&&S[S.length-f]==e[e.length-f])f++,l--;u-=f-1,h-=f-1;var d=c.length-f+1;if(d<0&&(s=-d,d=0),c=c.slice(0,d),!r&&!c&&!u&&!s&&!l&&!h)return"";w=!0;var p=!1;return i.isAndroid&&". "==c&&(c=" ",p=!0),c&&!s&&!l&&!u&&!h||_?t.onTextInput(c):t.onTextInput(c,{extendLeft:s,extendRight:l,restoreStart:u,restoreEnd:h}),w=!1,S=e,k=o,C=a,O=h,p?"\n":c},N=function(e){if(b)return W();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var r=n.value,i=R(r,!0);(r.length>h+100||m.test(i)||g&&k<1&&k==C)&&L()},D=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(r&&!l){var i=c||n?"Text":"text/plain";try{return t?!1!==r.setData(i,t):r.getData(i)}catch(e){if(!n)return D(e,t,!0)}}},I=function(e,i){var o=t.getCopyText();if(!o)return r.preventDefault(e);D(e,o)?(p&&(L(o),v=o,setTimeout(function(){v=!1},10)),i?t.onCut():t.onCopy(),r.preventDefault(e)):(v=!0,n.value=o,n.select(),setTimeout(function(){v=!1,L(),i?t.onCut():t.onCopy()}))},$=function(e){I(e,!0)},F=function(e){I(e,!1)},B=function(e){var o=D(e);s.pasteCancelled()||("string"==typeof o?(o&&t.onPaste(o,e),i.isIE&&setTimeout(L),r.preventDefault(e)):(n.value="",y=!0))};r.addCommandKeyListener(n,t.onCommandKey.bind(t),t),r.addListener(n,"select",P,t),r.addListener(n,"input",N,t),r.addListener(n,"cut",$,t),r.addListener(n,"copy",F,t),r.addListener(n,"paste",B,t),"oncut"in n&&"oncopy"in n&&"onpaste"in n||r.addListener(e,"keydown",function(e){if((!i.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:F(e);break;case 86:B(e);break;case 88:$(e);break}},t);var V=function(e){if(!b&&t.onCompositionStart&&!t.$readOnly&&(b={},!_)){e.data&&(b.useTextareaForIME=!1),setTimeout(W,0),t._signal("compositionStart"),t.on("mousedown",U);var r=t.getSelectionRange();r.end.row=r.start.row,r.end.column=r.start.column,b.markerRange=r,b.selectionStart=k,t.onCompositionStart(b),b.useTextareaForIME?(S=n.value="",k=0,C=0):(n.msGetInputContext&&(b.context=n.msGetInputContext()),n.getInputContext&&(b.context=n.getInputContext()))}},W=function(){if(b&&t.onCompositionUpdate&&!t.$readOnly){if(_)return U();if(b.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;R(e),b.markerRange&&(b.context&&(b.markerRange.start.column=b.selectionStart=b.context.compositionStartOffset),b.markerRange.end.column=b.markerRange.start.column+C-b.selectionStart+O)}}},H=function(e){t.onCompositionEnd&&!t.$readOnly&&(b=!1,t.onCompositionEnd(),t.off("mousedown",U),e&&N())};function U(){E=!0,n.blur(),n.focus(),E=!1}var z,G=a.delayedCall(W,50).schedule.bind(null,null);function q(e){27==e.keyCode&&n.value.lengthC&&"\n"==S[o]?a=f.end:rC&&S.slice(0,o).split("\n").length>2?a=f.down:o>C&&" "==S[o-1]?(a=f.right,s=d.option):(o>C||o==C&&C!=k&&r==o)&&(a=f.right),r!==o&&(s|=d.shift),a){var l=t.onCommandKey({},s,a);if(!l&&t.commands){a=f.keyCodeToString(a);var c=t.commands.findKeyCommand(s,a);c&&t.execCommand(c)}k=r,C=o,L("")}}};document.addEventListener("selectionchange",o),t.on("destroy",function(){document.removeEventListener("selectionchange",o)})}r.addListener(n,"mouseup",Y,t),r.addListener(n,"mousedown",function(e){e.preventDefault(),K()},t),r.addListener(t.renderer.scroller,"contextmenu",Y,t),r.addListener(n,"contextmenu",Y,t),p&&X(e,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}};t.TextInput=v,t.$setUserAgentForTests=function(e,t){g=e,p=t}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/useragent"),i=0,o=550;function a(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function s(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function l(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)n=2*t.row-e.start.row-e.end.row;else var n=t.column-4;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,o=e.getButton();if(0!==o){var a=i.getSelectionRange(),s=a.isEmpty();return(s||1==o)&&i.selection.moveToPosition(n),void(2==o&&(i.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||i.isFocused()||(i.focus(),!this.$focusTimeout||this.$clickSelection||i.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"))},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(-1==r)e=this.$clickSelection.end;else if(1==r)e=this.$clickSelection.start;else{var i=l(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var o=this.$clickSelection.comparePoint(i.start),a=this.$clickSelection.comparePoint(i.end);if(-1==o&&a<=0)t=this.$clickSelection.end,i.end.row==r.row&&i.end.column==r.column||(r=i.start);else if(1==a&&o>=0)t=this.$clickSelection.start,i.start.row==r.row&&i.start.column==r.column||(r=i.end);else if(-1==o&&1==a)r=i.end,t=i.start;else{var s=l(this.$clickSelection,r);r=s.cursor,t=s.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>i||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,a=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(c=!0),l<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(c=!0),c)n.allowed=r;else if(r-n.alloweda.session.documentToScreenRow(u.row,u.column))return h()}if(i!=r){i=r.text.join("
"),c.setHtml(i);var d=r.className;if(d&&c.setClassName(d.trim()),c.show(),a._signal("showGutterTooltip",c),a.on("mousewheel",h),e.$tooltipFollowsMouse)f(n);else{var p=n.domEvent.target,m=p.getBoundingClientRect(),g=c.getElement().style;g.left=m.right+"px",g.top=m.bottom+"px"}}}function h(){t&&(t=clearTimeout(t)),i&&(c.hide(),i=null,a._signal("hideGutterTooltip",c),a.off("mousewheel",h))}function f(e){c.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",function(t){if(a.isFocused()&&0==t.getButton()){var n=s.getRegion(t);if("foldWidgets"!=n){var r=t.getDocumentPosition().row,i=a.session.selection;if(t.getShiftKey())i.selectTo(r,0);else{if(2==t.domEvent.detail)return a.selectAll(),t.preventDefault();e.$clickSelection=a.selection.getLineRange(r)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}}),e.editor.setDefaultHandler("guttermousemove",function(o){var a=o.domEvent.target||o.domEvent.srcElement;if(r.hasCssClass(a,"ace_fold-widget"))return h();i&&e.$tooltipFollowsMouse&&f(o),n=o,t||(t=setTimeout(function(){t=null,n&&!e.isMousePressed?u():h()},50))}),o.addListener(a.renderer.$gutter,"mouseout",function(e){n=null,i&&!t&&(t=setTimeout(function(){t=null,h()},50))},a),a.on("changeSession",h)}function l(e){a.call(this,e)}i.inherits(l,a),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+o>r&&(t-=20+o),a.prototype.setPosition.call(this,e,t)}}.call(l.prototype),t.GutterHandler=s}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/event"),o=e("../lib/useragent"),a=200,s=200,l=5;function c(e){var t=e.editor,n=r.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ";var c=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];c.forEach(function(t){e[t]=this[t]},this),t.on("mousedown",this.onMouseDown.bind(e));var h,f,d,p,m,g,v,y,b,w,x,_=t.container,E=0;function S(e,n){var r=Date.now(),i=!n||e.row!=n.row,o=!n||e.column!=n.column;if(!w||i||o)t.moveCursorToPosition(e),w=r,x={x:f,y:d};else{var a=u(x.x,x.y,f,d);a>l?w=null:r-w>=s&&(t.renderer.scrollCursorIntoView(),w=null)}}function k(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,o=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),l={x:{left:f-s.left,right:s.right-f},y:{top:d-s.top,bottom:s.bottom-d}},c=Math.min(l.x.left,l.x.right),u=Math.min(l.y.top,l.y.bottom),h={row:e.row,column:e.column};c/o<=2&&(h.column+=l.x.left=a&&t.renderer.scrollCursorIntoView(h):b=r:b=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(f,d),S(g,e),k(g,e)}function O(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(p),C(),p=setInterval(C,20),E=0,i.addListener(document,"mousemove",A)}function T(){clearInterval(p),t.session.removeMarker(h),h=null,t.selection.fromOrientedRange(m),t.isFocused()&&!y&&t.$resetCursorStyle(),m=null,g=null,E=0,b=null,w=null,i.removeListener(document,"mousemove",A)}this.onDragStart=function(e){if(this.cancelDrag||!_.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout(function(){t.container.removeChild(n)}),i.clearData(),i.setData("Text",t.session.getTextRange()),y=!0,this.setState("drag")},this.onDragEnd=function(e){if(_.draggable=!1,y=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;v||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&P(e.dataTransfer))return f=e.clientX,d=e.clientY,h||O(),E++,e.dataTransfer.dropEffect=v=j(e),i.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&P(e.dataTransfer))return f=e.clientX,d=e.clientY,h||(O(),E++),null!==L&&(L=null),e.dataTransfer.dropEffect=v=j(e),i.preventDefault(e)},this.onDragLeave=function(e){if(E--,E<=0&&h)return T(),v=null,i.preventDefault(e)},this.onDrop=function(e){if(g){var n=e.dataTransfer;if(y)switch(v){case"move":m=m.contains(g.row,g.column)?{start:g,end:g}:t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0);break}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),v=null}return T(),i.preventDefault(e)}},i.addListener(_,"dragstart",this.onDragStart.bind(e),t),i.addListener(_,"dragend",this.onDragEnd.bind(e),t),i.addListener(_,"dragenter",this.onDragEnter.bind(e),t),i.addListener(_,"dragover",this.onDragOver.bind(e),t),i.addListener(_,"dragleave",this.onDragLeave.bind(e),t),i.addListener(_,"drop",this.onDrop.bind(e),t);var L=null;function A(){null==L&&(L=setTimeout(function(){null!=L&&h&&T()},20))}function P(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function j(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=o.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var a="none";return r&&t.indexOf(i)>=0?a="copy":n.indexOf(i)>=0?a="move":t.indexOf(i)>=0&&(a="copy"),a}}function u(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=o.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(o.isIE&&"dragReady"==this.state){var n=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if("dragWait"===this.state){n=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(1===i&&0===r&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var a=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in a&&(a.unselectable="on"),t.getDragDelay()){if(o.isWebKit){this.cancelDrag=!0;var s=t.container;s.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(c.prototype),t.DragdropHandler=c}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./mouse_event").MouseEvent,i=e("../lib/event"),o=e("../lib/dom");t.addTouchListeners=function(e,t){var n,a,s,l,c,u,h,f,d,p="scroll",m=0,g=0,v=0,y=0;function b(){var e=window.navigator&&window.navigator.clipboard,n=!1,r=function(){var r=t.getCopyText(),i=t.session.getUndoManager().hasUndo();d.replaceChild(o.buildDom(n?["span",!r&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],r&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],r&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],i&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPallete"},"Palette"]]:["span"]),d.firstChild)},i=function(i){var o=i.target.getAttribute("action");if("more"==o||!n)return n=!n,r();"paste"==o?e.readText().then(function(e){t.execCommand(o,e)}):o&&("cut"!=o&&"copy"!=o||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(o)),d.firstChild.style.display="none",n=!1,"openCommandPallete"!=o&&t.focus()};d=o.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){p="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),i(e)},onclick:i},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container)}function w(){d||b();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),r=t.renderer.textToScreenCoordinates(0,0).pageX,i=t.renderer.scrollLeft,o=t.container.getBoundingClientRect();d.style.top=n.pageY-o.top-3+"px",n.pageX-o.left=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),p="wait"}function S(){m+=60,u=setInterval(function(){m--<=0&&(clearInterval(u),u=null),Math.abs(v)<.01&&(v=0),Math.abs(y)<.01&&(y=0),m<20&&(v*=.9),m<20&&(y*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*v,10*y),e==t.session.getScrollTop()&&(m=0)},10)}i.addListener(e,"contextmenu",function(e){if(f){var n=t.textInput.getElement();n.focus()}},t),i.addListener(e,"touchstart",function(e){var i=e.touches;if(c||i.length>1)return clearTimeout(c),c=null,s=-1,void(p="zoom");f=t.$mouseHandler.isMousePressed=!0;var o=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,d=e.timeStamp;l=d;var b=i[0],w=b.clientX,x=b.clientY;Math.abs(n-w)+Math.abs(a-x)>o&&(s=-1),n=e.clientX=w,a=e.clientY=x,v=y=0;var S=new r(e,t);if(h=S.getDocumentPosition(),d-s<500&&1==i.length&&!m)g++,e.preventDefault(),e.button=0,E();else{g=0;var k=t.selection.cursor,C=t.selection.isEmpty()?k:t.selection.anchor,O=t.renderer.$cursorLayer.getPixelPosition(k,!0),T=t.renderer.$cursorLayer.getPixelPosition(C,!0),L=t.renderer.scroller.getBoundingClientRect(),A=t.renderer.layerConfig.offset,P=t.renderer.scrollLeft,j=function(e,t){return e/=u,t=t/o-.75,e*e+t*t};if(e.clientXR?"cursor":"anchor"),p=R<3.5?"anchor":M<3.5?"cursor":"scroll",c=setTimeout(_,450)}s=d},t),i.addListener(e,"touchend",function(e){f=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==p?(p="",m=0):c?(t.selection.moveToPosition(h),m=0,w()):"scroll"==p?(S(),x()):w(),clearTimeout(c),c=null},t),i.addListener(e,"touchmove",function(e){c&&(clearTimeout(c),c=null);var i=e.touches;if(!(i.length>1||"zoom"==p)){var o=i[0],s=n-o.clientX,u=a-o.clientY;if("wait"==p){if(!(s*s+u*u>4))return e.preventDefault();p="cursor"}n=o.clientX,a=o.clientY,e.clientX=o.clientX,e.clientY=o.clientY;var h=e.timeStamp,f=h-l;if(l=h,"scroll"==p){var d=new r(e,t);d.speed=1,d.wheelX=s,d.wheelY=u,10*Math.abs(s)0)if(16==g){for(_=x;_-1){for(_=x;_=0;k--){if(u[k]!=w)break;t[k]=r}}}function R(e,t,n){if(!(i=e){o=f+1;while(o=e)o++;for(s=f,l=o-1;s=t.length||(l=n[i-1])!=p&&l!=m||(c=t[i+1])!=p&&c!=m?g:(o&&(c=m),c==l?c:g);case _:return l=i>0?n[i-1]:v,l==p&&i+10&&n[i-1]==p)return p;if(o)return g;h=i+1,u=t.length;while(h=1425&&j<=2303||64286==j;if(l=t[h],M&&(l==d||l==b))return d}return i<1||(l=t[i-1])==v?g:n[i-1];case v:return o=!1,a=!0,r;case y:return s=!0,g;case k:case C:case T:case L:case O:o=!1;case A:return g}}function D(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?f:P[t]:5==n?/[\u0591-\u05f4]/.test(e)?d:f:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?S:/[\u0660-\u0669\u066b-\u066c]/.test(e)?m:1642==t?E:/[\u06f0-\u06f9]/.test(e)?p:b:32==n&&t<=8287?j[255&t]:254==n&&t>=65136?b:g}t.L=f,t.R=d,t.EN=p,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,i){if(e.length<2)return{};var o=e.split(""),a=new Array(o.length),s=new Array(o.length),l=[];r=i?h:u,M(o,l,o.length,n);for(var c=0;cb&&n[c]0&&"ل"===o[c-1]&&/\u0622|\u0623|\u0625|\u0627/.test(o[c])&&(l[c-1]=l[c]=t.R_H,c++);o[o.length-1]===t.DOT&&(l[o.length-1]=t.B),"‫"===o[0]&&(l[0]=t.RLE);for(c=0;c=0&&(e=this.session.$docRowCache[n])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){if(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1),n!==r)break;r=n,e++}}else e=this.currentRow;return e},this.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1,o=n?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var a=this.session.$wrapData[e];a&&(void 0===t&&(t=this.getSplitIndex()),t>0&&a.length?(this.wrapIndent=a.indent,this.wrapOffset=this.wrapIndent*this.charWidths[r.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=r.getVisualFromLogicalIdx(n,this.bidiMap),o=this.bidiMap.bidiLevels,a=0;!this.session.getOverwrite()&&e<=t&&o[i]%2!==0&&i++;for(var s=0;st&&o[i]%2===0&&(a+=this.charWidths[o[i]]),this.wrapIndent&&(a+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(a+=this.rtlLineOffset),a},this.getSelections=function(e,t){var n,r=this.bidiMap,i=r.bidiLevels,o=[],a=0,s=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,h=0;this.wrapIndent&&(a+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var f,d=0;d=s&&fn+o/2){if(n+=o,r===i.length-1){o=0;break}o=this.charWidths[i[++r]]}return r>0&&i[r-1]%2!==0&&i[r]%2===0?(e0&&i[r-1]%2===0&&i[r]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===i.length-1&&0===o&&i[r-1]%2===0||!this.isRtlDir&&0===r&&i[r]%2!==0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&i[r-1]%2!==0&&0!==o&&r--,t=this.bidiMap.logicalFromVisual[r]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent}}).call(a.prototype),t.BidiHandler=a}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),o=e("./lib/event_emitter").EventEmitter,a=e("./range").Range,s=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)}),this.anchor.on("change",function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")})};(function(){r.implement(this,o),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},this.getAnchor=this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?a.fromPoints(t,t):this.isBackwards()?a.fromPoints(t,e):a.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},this.$setSelection=function(e,t,n,r){if(!this.$silent){var i=this.$isEmpty,o=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!a.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||o)&&this._emit("changeSelection")}},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if("undefined"==typeof t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n,r="number"==typeof e?e:this.lead.row,i=this.session.getFoldLine(r);return i?(r=i.start.row,n=i.end.row):n=r,!0===t?new a(r,0,n,this.session.getLine(n).length):new a(r,0,n+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i)this.moveCursorTo(i.end.row,i.end.column);else{if(this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},this.$shortWordEndIndex=function(e){var t,n=0,r=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((t=e[n])&&r.test(t))n++;if(n<1){i.lastIndex=0;while((t=e[n])&&!i.test(t))if(i.lastIndex=0,n++,r.test(t)){if(n>2){n--;break}while((t=e[n])&&r.test(t))n++;if(n>2)break}}}return i.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var o=this.doc.getLength();do{e++,r=this.doc.getLine(e)}while(e0&&/^\s*$/.test(r));n=r.length,/\s+$/.test(r)||(r="")}var o=i.stringReverse(r),a=this.$shortWordEndIndex(o);return this.moveCursorTo(t,n-a)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n,r=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(r.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(r.column),r.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=r.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?r.column=this.$desiredColumn:this.$desiredColumn=r.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var o=this.session.screenToDocumentPosition(r.row+e,r.column,n);0!==e&&0===t&&o.row===this.lead.row&&(o.column,this.lead.column),this.moveCursorTo(o.row,o.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach()},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return a.fromPoints(t,n)}catch(e){return a.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=a.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(s.prototype),t.Selection=s}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,o=function(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],r=[],i=0,o=this.matchMappings[t]={defaultToken:"text"},a="g",s=[],l=0;l1?this.$applyToken:c.token),h>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(h=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||s.push(c)),o[i]=l,i+=h,r.push(u),c.onMatch||(c.onMatch=null)}}r.length||(o[0]=0,r.push("$")),s.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,a)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",a)}};(function(){this.$setMaxTokenCount=function(e){i=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"===typeof n)return[{type:n,value:e}];for(var r=[],i=0,o=n.length;iu){var v=e.substring(u,g-m.length);f.type==d?f.value+=v:(f.type&&c.push(f),f={type:d,value:v})}for(var y=0;yi){h>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(u1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:c,state:n.length?n:r}},this.reportError=r.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var r=e[n],i=0;i=this.$rowTokens.length){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)}}).call(i.prototype),t.TokenIterator=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r,i=e("../../lib/oop"),o=e("../behaviour").Behaviour,a=e("../../token_iterator").TokenIterator,s=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],u={},h={'"':'"',"'":"'"},f=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return r=u[t];r=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},d=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(e){this.add("braces","insertion",function(t,n,i,o,a){var l=i.getCursorPosition(),c=o.doc.getLine(l.row);if("{"==a){f(i);var u=i.getSelectionRange(),h=o.doc.getTextRange(u);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return d(u,h,"{","}");if(p.isSaneInsertion(i,o))return/[\]\}\)]/.test(c[l.column])||i.inMultiSelectMode||e&&e.braces?(p.recordAutoInsert(i,o,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(i,o,"{"),{text:"{",selection:[1,1]})}else if("}"==a){f(i);var m=c.substring(l.column,l.column+1);if("}"==m){var g=o.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==g&&p.isAutoInsertedClosing(l,c,a))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==a||"\r\n"==a){f(i);var v="";p.isMaybeInsertedClosing(l,c)&&(v=s.stringRepeat("}",r.maybeInsertedBrackets),p.clearMaybeInsertedClosing());m=c.substring(l.column,l.column+1);if("}"===m){var y=o.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!y)return null;var b=this.$getIndent(o.getLine(y.row))}else{if(!v)return void p.clearMaybeInsertedClosing();b=this.$getIndent(c)}var w=b+o.getTabString();return{text:"\n"+w+"\n"+b+v,selection:[1,w.length,1,w.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,i,o){var a=i.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==a){f(n);var s=i.doc.getLine(o.start.row),l=s.substring(o.end.column,o.end.column+1);if("}"==l)return o.end.column++,o;r.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if("("==i){f(n);var o=n.getSelectionRange(),a=r.doc.getTextRange(o);if(""!==a&&n.getWrapBehavioursEnabled())return d(o,a,"(",")");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(")"==i){f(n);var s=n.getCursorPosition(),l=r.doc.getLine(s.row),c=l.substring(s.column,s.column+1);if(")"==c){var u=r.$findOpeningBracket(")",{column:s.column+1,row:s.row});if(null!==u&&p.isAutoInsertedClosing(s,l,i))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var o=r.doc.getTextRange(i);if(!i.isMultiLine()&&"("==o){f(n);var a=r.doc.getLine(i.start.row),s=a.substring(i.start.column+1,i.start.column+2);if(")"==s)return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if("["==i){f(n);var o=n.getSelectionRange(),a=r.doc.getTextRange(o);if(""!==a&&n.getWrapBehavioursEnabled())return d(o,a,"[","]");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if("]"==i){f(n);var s=n.getCursorPosition(),l=r.doc.getLine(s.row),c=l.substring(s.column,s.column+1);if("]"==c){var u=r.$findOpeningBracket("]",{column:s.column+1,row:s.row});if(null!==u&&p.isAutoInsertedClosing(s,l,i))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var o=r.doc.getTextRange(i);if(!i.isMultiLine()&&"["==o){f(n);var a=r.doc.getLine(i.start.row),s=a.substring(i.start.column+1,i.start.column+2);if("]"==s)return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){var o=r.$mode.$quotes||h;if(1==i.length&&o[i]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(i))return;f(n);var a=i,s=n.getSelectionRange(),l=r.doc.getTextRange(s);if(!(""===l||1==l.length&&o[l])&&n.getWrapBehavioursEnabled())return d(s,l,a,a);if(!l){var c=n.getCursorPosition(),u=r.doc.getLine(c.row),p=u.substring(c.column-1,c.column),m=u.substring(c.column,c.column+1),g=r.getTokenAt(c.row,c.column),v=r.getTokenAt(c.row,c.column+1);if("\\"==p&&g&&/escape/.test(g.type))return null;var y,b=g&&/string|escape/.test(g.type),w=!v||/string|escape/.test(v.type);if(m==a)y=b!==w,y&&/string\.end/.test(v.type)&&(y=!1);else{if(b&&!w)return null;if(b&&w)return null;var x=r.$mode.tokenRe;x.lastIndex=0;var _=x.test(p);x.lastIndex=0;var E=x.test(p);if(_||E)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var S=u[c.column-2];if(p==a&&(S==a||x.test(S)))return null;y=!0}return{text:y?a+a:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var o=r.$mode.$quotes||h,a=r.doc.getTextRange(i);if(!i.isMultiLine()&&o.hasOwnProperty(a)){f(n);var s=r.doc.getLine(i.start.row),l=s.substring(i.start.column+1,i.start.column+2);if(l==a)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new a(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new a(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",l))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",c)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var i=e.getCursorPosition(),o=t.doc.getLine(i.row);this.isAutoInsertedClosing(i,o,r.autoInsertedLineEnd[0])||(r.autoInsertedBrackets=0),r.autoInsertedRow=i.row,r.autoInsertedLineEnd=n+o.substr(i.column),r.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var i=e.getCursorPosition(),o=t.doc.getLine(i.row);this.isMaybeInsertedClosing(i,o)||(r.maybeInsertedBrackets=0),r.maybeInsertedRow=i.row,r.maybeInsertedLineStart=o.substr(0,i.column)+n,r.maybeInsertedLineEnd=o.substr(i.column),r.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return r.autoInsertedBrackets>0&&e.row===r.autoInsertedRow&&n===r.autoInsertedLineEnd[0]&&t.substr(e.column)===r.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return r.maybeInsertedBrackets>0&&e.row===r.maybeInsertedRow&&t.substr(e.column)===r.maybeInsertedLineEnd&&t.substr(0,e.column)==r.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){r.autoInsertedLineEnd=r.autoInsertedLineEnd.substr(1),r.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){r&&(r.maybeInsertedBrackets=0,r.maybeInsertedRow=-1)},i.inherits(p,o),t.CstyleBehaviour=p}),ace.define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";for(var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,o=[],a=0;a2?r%c!=c-1:r%c==0})}else{if(!this.blockComment)return!1;var d=this.blockComment.start,p=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(d)+")"),g=new RegExp("(?:"+l.escapeRegExp(p)+")\\s*$"),v=function(e,t){b(e,t)||o&&!/\S/.test(e)||(i.insertInLine({row:t,column:e.length},p),i.insertInLine({row:t,column:s},d))},y=function(e,t){var n;(n=e.match(g))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(m))&&i.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(m.test(e))return!0;for(var r=t.getTokens(n),i=0;ie.length&&(x=e.length)}),s==1/0&&(s=x,o=!1,a=!1),u&&s%c!=0&&(s=Math.floor(s/c)*c),w(a?y:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(i){!i.start&&i[0]&&(i=i[0]);var o,a,s=new c(t,r.row,r.column),l=s.getCurrentToken(),h=(t.selection,t.selection.toOrientedRange());if(l&&/comment/.test(l.type)){var f,d;while(l&&/comment/.test(l.type)){var p=l.value.indexOf(i.start);if(-1!=p){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+p;f=new u(m,g,m,g+i.start.length);break}l=s.stepBackward()}s=new c(t,r.row,r.column),l=s.getCurrentToken();while(l&&/comment/.test(l.type)){p=l.value.indexOf(i.end);if(-1!=p){m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+p;d=new u(m,g,m,g+i.end.length);break}l=s.stepForward()}d&&t.remove(d),f&&(t.remove(f),o=f.start.row,a=-i.start.length)}else a=i.start.length,o=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);h.start.row==o&&(h.start.column+=a),h.end.row==o&&(h.end.column+=a),t.selection.fromOrientedRange(h)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,o=r.$modes[i];o||(r.$modes[i]=o=new n),r.$modes[t]||(r.$modes[t]=o),this.$embeds.push(t),this.$modes[t]=o}var a=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)}},this.setPosition=function(e,t,n){var r;if(r=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=r.row||this.column!=r.column){var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})}},this.detach=function(){this.document.off("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,a=e("./range").Range,s=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new a(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new s(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();void 0===e?e=n:e<0?e=0:e>=n&&(e=n-1,t=void 0);var r=this.getLine(e);return void 0==t&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e0,r=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){return e instanceof a||(e=a.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),n=t?this.insert(e.start,t):e.start,n);var n},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!a.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},this.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==r&&(r=t),o<=r&&n.fireUpdateEvent(o,r)}}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!==r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens},this.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=(e("./lib/oop"),e("./range").Range),o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,n,o){if(this.regExp)for(var a=o.firstRow,s=o.lastRow,l={},c=a;c<=s;c++){var u=this.cache[c];null==u&&(u=r.getMatchOffsets(n.getLine(c),this.regExp),u.length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map(function(e){return new i(c,e.offset,c,e.offset+e.length)}),this.cache[c]=u.length?u:"");for(var h=u.length;h--;){var f=u[h].toScreenRange(n),d=f.toString();l[d]||(l[d]=!0,t.drawSingleLineMarker(e,f,this.clazz,o))}}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range;function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r,i,o,a=0,s=this.folds,l=!0;null==t&&(t=this.end.row,n=this.end.column);for(var c=0;c0)){var l=i(e,a.start);return 0===s?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});for(var n,r=t[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=r)break}if("insert"==e.action)for(var c=i-r,u=-t.column+n.column;ar)break;if(l.start.row==r&&l.start.column>=t.column&&(l.start.column==t.column&&this.$bias<=0||(l.start.column+=u,l.start.row+=c)),l.end.row==r&&l.end.column>=t.column){if(l.end.column==t.column&&this.$bias<0)continue;l.end.column==t.column&&u>0&&al.start.column&&l.end.column==o[a+1].start.column&&(l.end.column-=u),l.end.column+=u,l.end.row+=c}}else for(c=r-i,u=t.column-n.column;ai)break;l.end.rowt.column)&&(l.end.column=t.column,l.end.row=t.row):(l.end.column+=u,l.end.row+=c):l.end.row>i&&(l.end.row+=c),l.start.rowt.column)&&(l.start.column=t.column,l.start.row=t.row):(l.start.column+=u,l.start.row+=c):l.start.row>i&&(l.start.row+=c)}if(0!=c&&a=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;for(t&&(r=n.indexOf(t)),-1==r&&(r=0),r;r=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,r=t-e+1,i=0;i=t){s=e?r-=t-s:r=0);break}a>=e&&(r-=s>=e?a-s:a-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n,r=this.$foldData,a=!1;e instanceof o?n=e:(n=new o(t,e),n.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(n.range);var s=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,h=this.getFoldAt(s,l,1),f=this.getFoldAt(c,u,-1);if(h&&f==h)return h.addSubFold(n);h&&!h.range.isStart(s,l)&&this.removeFold(h),f&&!f.range.isEnd(c,u)&&this.removeFold(f);var d=this.getFoldsInRange(n.range);d.length>0&&(this.removeFolds(d),n.collapseChildren||d.forEach(function(e){n.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;if(null==e)n=new r(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new r(e,0,e,this.getLine(e).length);else if("row"in e)n=r.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach(function(e){i=i.concat(this.unfold(e))},this),i;n=e}i=this.getFoldsInRangeList(n);var o=i;while(1==i.length&&r.comparePoints(i[0].start,n.start)<0&&r.comparePoints(i[0].end,n.end)>0)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(i):this.expandFolds(i),o.length)return o},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){null==r&&(r=e.start.row),null==i&&(i=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var o=this.doc,a="";return e.walk(function(e,t,n,s){if(!(tu)break}while(o&&l.test(o.type)&&!/^comment.start/.test(o.type));o=i.stepBackward()}else o=i.getCurrentToken();return c.end.row=i.getCurrentTokenRow(),c.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(o.type)||(c.end.column+=o.value.length-2),c}},this.foldAll=function(e,t,n,r){void 0==n&&(n=1e5);var i=this.foldWidgets;if(i){t=t||this.getLength(),e=e||0;for(var o=e;o=e&&(o=a.end.row,a.collapseChildren=n,this.addFold("...",a))}}},this.foldToLevel=function(e){this.foldAll();while(e-- >0)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,function(t){for(var n=e.getTokens(t),r=0;r=0){var o=n[i];if(null==o&&(o=n[i]=this.getFoldWidget(i)),"start"==o){var a=this.getFoldWidgetRange(i);if(r||(r=a),a&&a.end.row>=e)break}i--}return{range:-1!==i&&a,firstRange:r}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),r=this.getLine(e),i="end"===n?-1:1,o=this.getFoldAt(e,-1===i?0:r.length,i);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var a=this.getFoldWidgetRange(e,!0);if(a&&!a.isMultiLine()&&(o=this.getFoldAt(a.start.row,a.start.column,1),o&&a.isEqual(o.range)))return this.removeFold(o),o;if(t.siblings){var s=this.getParentFoldRangeData(e);if(s.range)var l=s.range.start.row+1,c=s.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=a?a.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):a&&(t.all&&(a.collapseChildren=1e4),this.addFold("...",a));return a}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var r=this.getParentFoldRangeData(t,!0);if(n=r.range||r.firstRange,n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}t.Folding=s}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var r=e("../token_iterator").TokenIterator,i=e("../range").Range;function o(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),r=!0,o=n.charAt(e.column-1),a=o&&o.match(/([\(\[\{])|([\)\]\}])/);if(a||(o=n.charAt(e.column),e={row:e.row,column:e.column+1},a=o&&o.match(/([\(\[\{])|([\)\]\}])/),r=!1),!a)return null;if(a[1]){var s=this.$findClosingBracket(a[1],e);if(!s)return null;t=i.fromPoints(e,s),r||(t.end.column++,t.start.column--),t.cursor=t.end}else{s=this.$findOpeningBracket(a[2],e);if(!s)return null;t=i.fromPoints(s,e),r||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),r=/([\(\[\{])|([\)\]\}])/,o=!t&&n.charAt(e.column-1),a=o&&o.match(r);if(a||(o=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},a=o&&o.match(r)),!a)return null;var s=new i(e.row,e.column-1,e.row,e.column),l=a[1]?this.$findClosingBracket(a[1],e):this.$findOpeningBracket(a[2],e);if(!l)return[s];var c=new i(l.row,l.column,l.row,l.column+1);return[s,c]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],o=1,a=new r(this,t.row,t.column),s=a.getCurrentToken();if(s||(s=a.stepForward()),s){n||(n=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));var l=t.column-a.getCurrentTokenColumn()-2,c=s.value;while(1){while(l>=0){var u=c.charAt(l);if(u==i){if(o-=1,0==o)return{row:a.getCurrentTokenRow(),column:l+a.getCurrentTokenColumn()}}else u==e&&(o+=1);l-=1}do{s=a.stepBackward()}while(s&&!n.test(s.type));if(null==s)break;c=s.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],o=1,a=new r(this,t.row,t.column),s=a.getCurrentToken();if(s||(s=a.stepForward()),s){n||(n=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));var l=t.column-a.getCurrentTokenColumn();while(1){var c=s.value,u=c.length;while(l"===t.value?r=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,r=t.value,o=t.value,a=0,s=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(n=t,t=e.stepForward(),t){if(">"===t.value&&!c){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(r=t.value,o===r)if("<"===n.value)a++;else if(""!==t.value)return;var d=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else if(o===r&&"/>"===t.value&&(a--,a<0))h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),f=h,d=f,u=new i(l.end.row,l.end.column,l.end.row,l.end.column+1)}}while(t&&a>=0);if(s&&u&&h&&d&&l&&f)return{openTag:new i(s.start.row,s.start.column,u.end.row,u.end.column),closeTag:new i(h.start.row,h.start.column,d.end.row,d.end.column),openTagName:l,closeTagName:f}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),r=t.value,o=0,a=e.getCurrentTokenRow(),s=e.getCurrentTokenColumn(),l=s+2,c=new i(a,s,a,l);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if(t=e.stepForward(),t&&">"===t.value){var h=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,a=e.getCurrentTokenRow(),s=e.getCurrentTokenColumn(),l=s+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(r===t.value)if("<"===n.value){if(o++,o>0){var f=new i(a,s,a,l),d=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else""===t.value){var m=0,g=n;while(g){if(-1!==g.type.indexOf("tag-name")&&g.value===r){o--;break}if("<"===g.value)break;g=e.stepBackward(),m++}for(var v=0;vn&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,o=e[i];if(t>o)n=i+1;else{if(!(t=t)break;return n=r[o],n?(n.index=o,n.start=i-n.value.length,n):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe)),r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))i=/\s/;else i=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&n.charAt(o).match(i));o++}var a=t;while(ae&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,o=this.$foldData[i],a=o?o.start.row:1/0,s=t.length,l=0;la){if(l=o.end.row+1,l>=s)break;o=this.$foldData[i++],a=o?o.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>r&&(r=n[l])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var r=e[n];"insert"==r.action||"remove"==r.action?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(o.start.column+=s),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=s)),a&&o.start.row>=e.end.row&&(o.start.row+=a,o.end.row+=a)}if(o.end=this.insert(o.start,r),i.length){var l=e.start,c=o.start;a=c.row-l.row,s=c.column-l.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=s),e.end.row==l.row&&(e.end.column+=s),e.start.row+=a,e.end.row+=a,e}))}return o},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),r=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var o=this.getLine(i);n.start.row=i,n.end.row=i;for(var a=0;a0){r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);i=t-e+1}var o=new u(e,0,t,Number.MAX_VALUE),a=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),s=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,s),a.length&&this.addFolds(a),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1&&(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,o=r.row,a=i.row,s=a-o,l=null;if(this.$updating=!0,0!=s)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(o,s);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=this.getFoldLine(i.row),h=0;if(u){u.addRemoveChars(i.row,i.column,r.column-i.column),u.shiftRow(-s);var f=this.getFoldLine(o);f&&f!==u&&(f.merge(u),u=f),h=c.indexOf(u)+1}for(h;h=i.row&&u.shiftRow(-s)}a=o}else{var d=Array(s);d.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,d);c=this.$foldData,u=this.getFoldLine(o),h=0;if(u){var m=u.range.compareInside(r.row,r.column);0==m?(u=u.split(r.row,r.column),u&&(u.shiftRow(s),u.addRemoveChars(a,0,i.column-r.column))):-1==m&&(u.addRemoveChars(o,0,i.column-r.column),u.shiftRow(s)),h=c.indexOf(u)+1}for(h;h=o&&u.shiftRow(s)}}else{s=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),s=-s);u=this.getFoldLine(o);u&&u.addRemoveChars(o,r.column,s)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,a):this.$updateRowLengthCache(o,a),l},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r,i,a=this.doc.getAllLines(),s=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,u=e;t=Math.min(t,a.length-1);while(u<=t)i=this.getFoldLine(u,i),i?(r=[],i.walk(function(e,t,i,s){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=n;for(var c=1;c=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}this.$computeWrapSplits=function(e,r,i){if(0==e.length)return[];var a=[],s=e.length,c=0,u=0,d=this.$wrapAsCode,m=this.$indentedSoftWrap,g=r<=Math.max(2*i,8)||!1===m?0:Math.floor(r/2);function v(){var t=0;if(0===g)return t;if(m)for(var n=0;nr-b){var w=c+r-b;if(e[w-1]>=h&&e[w]>=h)y(w);else if(e[w]!=n&&e[w]!=o){var x=Math.max(w-(r-(r>>2)),c-1);while(w>x&&e[w]x&&e[w]x&&e[w]==l)w--}else while(w>x&&e[w]x?y(++w):(w=c+r,e[w]==t&&w--,y(w-b))}else{for(w;w!=c-1;w--)if(e[w]==n)break;if(w>c){y(w);continue}for(w=c+r,w;w39&&s<48||s>57&&s<64?o.push(l):s>=4352&&m(s)?o.push(e,t):o.push(e)}return o},this.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var r,i;for(null==t&&(t=1/0),n=n||0,i=0;i=4352&&m(r)?n+=2:n+=1,n>t)break;return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0){s=c[u],o=this.$docRowCache[u];var f=e>c[h-1]}else f=!h;var d=this.getLength()-1,p=this.getNextFoldLine(o),m=p?p.start.row:1/0;while(s<=e){if(l=this.getRowLength(o),s+l>e||o>=d)break;s+=l,o++,o>m&&(o=p.end.row+1,p=this.getNextFoldLine(o,p),m=p?p.start.row:1/0),f&&(this.$docRowCache.push(o),this.$screenRowCache.push(s))}if(p&&p.start.row<=o)r=this.getFoldDisplayLine(p),o=p.start.row;else{if(s+l<=e||o>d)return{row:d,column:this.getLine(d).length};r=this.getLine(o),p=null}var g=0,v=Math.floor(e-s);if(this.$useWrapMode){var y=this.$wrapData[o];y&&(i=y[v],v>0&&y.length&&(g=y.indent,a=y[v-1]||y[y.length-1],r=r.substring(a)))}return void 0!==n&&this.$bidiHandler.isBidiRow(s+v,o,v)&&(t=this.$bidiHandler.offsetToCol(n)),a+=this.$getStringScreenWidth(r,t-g)[1],this.$useWrapMode&&a>=i&&(a=i-1),p?p.idxToPosition(a):{row:o,column:a}},this.documentToScreenPosition=function(e,t){if("undefined"===typeof t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,o=null;o=this.getFoldAt(e,t,1),o&&(e=o.start.row,t=o.start.column);var a,s=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){s=l[c],r=this.$screenRowCache[c];var h=e>l[u-1]}else h=!u;var f=this.getNextFoldLine(s),d=f?f.start.row:1/0;while(s=d){if(a=f.end.row+1,a>e)break;f=this.getNextFoldLine(a,f),d=f?f.start.row:1/0}else a=s+1;r+=this.getRowLength(s),s=a,h&&(this.$docRowCache.push(s),this.$screenRowCache.push(r))}var p="";f&&s>=d?(p=this.getFoldDisplayLine(f,e,t),i=f.start.row):(p=this.getLine(e).substring(0,t),i=e);var m=0;if(this.$useWrapMode){var g=this.$wrapData[i];if(g){var v=0;while(p.length>=g[v])r++,v++;p=p.substring(g[v-1]||0,p.length),m=v>0?g.indent:0}}return this.lineWidgets&&this.lineWidgets[s]&&this.lineWidgets[s].rowsAbove&&(r+=this.lineWidgets[s].rowsAbove),{row:r,column:m+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode){var n=this.$wrapData.length,r=0,i=(s=0,t=this.$foldData[s++],t?t.start.row:1/0);while(ri&&(r=t.end.row+1,t=this.$foldData[s++],i=t?t.start.row:1/0)}}else{e=this.getLength();for(var a=this.$foldData,s=0;sn)break;return[r,o]})},this.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},this.isFullWidth=m}.call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),a.defineOptions(p.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e="auto"==e?"text"!=this.$mode.type:"text"!=e,e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){e=parseInt(e),e>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),o=e("./range").Range,a=function(){this.$options={}};function s(e,t){function n(e){return/\w/.test(e)||t.regExp?"\\b":""}return n(e[0])+e+n(e[e.length-1])}(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,a){return r=new o(e,n,i,a),!(n==a&&t.start&&t.start.start&&0!=t.skipCurrent&&r.isEqual(t.start))||(r=null,!1)}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),a=[],s=t.re;if(t.$isMultiLine){var l,c=s.length,u=i.length-c;e:for(var h=s.offset||0;h<=u;h++){for(var f=0;fm||(a.push(l=new o(h,m,h+c-1,g)),c>2&&(h=h+c-2))}}else for(var v=0;vx&&a[f].end.row==_)f--;for(a=a.slice(v,f+1),v=0,f=a.length;v=s;n--)if(h(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=l,s=a.row;n>=s;n--)if(h(n,Number.MAX_VALUE,e))return}};else c=function(e){var n=a.row;if(!h(n,a.column,e)){for(n+=1;n<=l;n++)if(h(n,0,e))return;if(0!=t.wrap)for(n=s,l=a.row;n<=l;n++)if(h(n,0,e))return}};if(t.$isMultiLine)var u=n.length,h=function(t,i,o){var a=r?t-u+1:t;if(!(a<0||a+u>e.getLength())){var s=e.getLine(a),l=s.search(n[0]);if(!(!r&&li))return!!o(a,l,a+u-1,h)||void 0}}};else if(r)h=function(t,r,i){var o,a=e.getLine(t),s=[],l=0;n.lastIndex=0;while(o=n.exec(a)){var c=o[0].length;if(l=o.index,!c){if(l>=a.length)break;n.lastIndex=l+=1}if(o.index+c>r)break;s.push(o.index,c)}for(var u=s.length-1;u>=0;u-=2){var h=s[u-1];c=s[u];if(i(t,h,t,h+c))return!0}};else h=function(t,r,i){var o,a,s=e.getLine(t);n.lastIndex=r;while(a=n.exec(s)){var l=a[0].length;if(o=a.index,i(t,o,t,o+l))return!0;if(!l&&(n.lastIndex=o+=1,o>=s.length))return!1}};return{forEach:c}}}).call(a.prototype),t.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/useragent"),o=r.KEY_MODS;function a(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function s(e,t){a.call(this,e,t),this.$singleCommand=!1}s.prototype=a.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&("string"===typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var o=r[i];if(o==e)delete r[i];else if(Array.isArray(o)){var a=o.indexOf(e);-1!=a&&(o.splice(a,1),1==o.length&&(r[i]=o[0]))}}},this.bindKey=function(e,t,n){if("object"==typeof e&&e&&(void 0==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var r="";if(-1!=e.indexOf(" ")){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=o[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var a=this.parseKeys(e),s=o[a.hashId]+a.key;this._addCommandToBinding(r+s,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i,o=this.commandKeyBinding;if(n)if(!o[t]||this.$singleCommand)o[t]=n;else{Array.isArray(o[t])?-1!=(i=o[t].indexOf(n))&&o[t].splice(i,1):o[t]=[o[t]],"number"!=typeof r&&(r=e(n));var a=o[t];for(i=0;ir)break}a.splice(i,0,n)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(n){if("string"===typeof n)return this.bindKey(n,t);"function"===typeof n&&(n={exec:n}),"object"===typeof n&&(n.name||(n.name=t),this.addCommand(n))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var o=0,a=t.length;a--;){var s=r.KEY_MODS[t[a]];if(null==s)return"undefined"!=typeof console&&console.error("invalid modifier "+t[a]+" in "+e),!1;o|=s}return{key:n,hashId:o}},this.findKeyCommand=function(e,t){var n=o[e]+t;return this.commandKeyBinding[n]},this.handleKeyboard=function(e,t,n,r){if(!(r<0)){var i=o[t]+n,a=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=" "+i,a=this.commandKeyBinding[e.$keyChain]||a),!a||"chainKeys"!=a&&"chainKeys"!=a[a.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||r>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-i.length-1)),{command:a}):(e.$keyChain=e.$keyChain||i,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(a.prototype),t.HashHandler=a,t.MultiHashHandler=s}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,a=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})};r.inherits(a,i),function(){r.implement(this,o),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}if("string"===typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),!1!==i.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(a.prototype),t.CommandManager=a}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=e("../config"),o=e("../range").Range;function a(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:a("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:a("Alt-E","F4"),exec:function(e){i.loadModule("./ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("./ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:a("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:a(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:a("Ctrl-L","Command-L"),exec:function(e,t){"number"!==typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:a("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:a("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:a("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:a("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:a("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:a("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:a("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:a("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:a("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:a("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:a("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:a("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:a("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:a(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:a(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:a("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:a("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:a("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:a("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),n=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",n),n.isEmpty()||e.session.remove(n),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:a("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:a("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:a("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:a("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:a("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:a("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:a(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:a(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:a("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:a(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),a=e.session.doc.getLine(n.row).length,s=e.session.doc.getTextRange(e.selection.getRange()),l=s.replace(/\n\s*/," ").length,c=e.session.doc.getLine(n.row),u=n.row+1;u<=i.row+1;u++){var h=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(u)));0!==h.length&&(h=" "+h),c+=h}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+l)):(a=e.session.doc.getLine(n.row).length>a?a+1:a,e.selection.moveCursorTo(n.row,a))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:a(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var a=0;a=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),o=e("./lib/dom"),a=e("./lib/lang"),s=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,h=e("./keyboard/keybinding").KeyBinding,f=e("./edit_session").EditSession,d=e("./search").Search,p=e("./range").Range,m=e("./lib/event_emitter").EventEmitter,g=e("./commands/command_manager").CommandManager,v=e("./commands/default_commands").commands,y=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./clipboard"),x=function(e,t,n){this.$toDestroy=[];var r=e.getContainerElement();this.container=r,this.renderer=e,this.id="editor"+ ++x.$uid,this.commands=new g(s.isMac?"mac":"win",v),"object"==typeof document&&(this.textInput=new l(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new h(this),this.$search=(new d).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=a.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||n&&n.session||new f("")),y.resetOptions(this),n&&this.setOptions(n),y._signal("editor",this)};x.$uid=0,function(){i.implement(this,m),this.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=a.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},this.endOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue||!this.session)return this.curOp=null;if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:break}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}var o=this.selection.toJSON();this.curOp.selectionAfter=o,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(o),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var i=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"===typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;y.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||o.computedStyle(this.container).fontSize},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach(function(e){t.removeMarker(e)}),t.$bracketHighlight=null);var n=e.getCursorPosition(),r=e.getKeyboardHandler(),i=r&&r.$getDirectionForHighlight&&r.$getDirectionForHighlight(e),o=t.getMatchingBracketRanges(n,i);if(!o){var a=new b(t,n.row,n.column),s=a.getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var l=t.getMatchingTags(n);l&&(o=[l.openTagName,l.closeTagName])}}if(!o&&t.$mode.getMatching&&(o=t.$mode.getMatching(e.session)),o){var c="ace_bracket";Array.isArray(o)?1==o.length&&(c="ace_error_bracket"):o=[o],2==o.length&&(0==p.comparePoints(o[0].end,o[1].start)?o=[p.fromPoints(o[0].start,o[1].end)]:0==p.comparePoints(o[0].start,o[1].end)&&(o=[p.fromPoints(o[1].start,o[0].end)])),t.$bracketHighlight={ranges:o,markerIds:o.map(function(e){return t.addMarker(e,c,"text")})},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}},50)}},this.focus=function(){this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},this.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},this.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new p(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),o=i.substring(n,r);if(!(o.length>5e3)&&/[\w\d]/.test(o)){var a=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o}),s=i.substring(n-1,r+1);if(a.test(s))return a}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var r=this.selection.getAllRanges(),i=0;is.search(/\S|$/)){var l=s.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+l)}}this.clearSelection();var c=i.column,u=n.getState(i.row),h=(s=n.getLine(i.row),r.checkOutdent(u,s,e));if(n.insert(i,e),o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new p(i.row,c+o.selection[0],i.row,c+o.selection[1])):this.selection.setSelectionRange(new p(i.row+o.selection[0],o.selection[1],i.row+o.selection[2],o.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var f=r.getNextLineIndent(u,s.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},f)}h&&r.autoOutdent(u,n,i.row)}},this.autoIndent=function(){var e,t,n=this.session,r=n.getMode();if(this.selection.isEmpty())e=0,t=n.doc.getLength()-1;else{var i=this.getSelectionRange();e=i.start.row,t=i.end.row}for(var o,a,s,l="",c="",u="",h=n.getTabString(),f=e;f<=t;f++)f>0&&(l=n.getState(f-1),c=n.getLine(f-1),u=r.getNextLineIndent(l,c,h)),o=n.getLine(f),a=r.$getIndent(o),u!==a&&(a.length>0&&(s=new p(f,0,f,a.length),n.remove(s)),u.length>0&&n.insert({row:f,column:0},u)),r.autoOutdent(l,n,f)},this.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},this.applyComposition=function(e,t){if(t.extendLeft||t.extendRight){var n=this.selection.getRange();n.start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove()}if(!e&&this.selection.isEmpty()||this.insert(e,!0),t.restoreStart||t.restoreEnd){n=this.selection.getRange();n.start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n)}},this.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},this.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(0===t.end.column){var o=n.getTextRange(t);if("\n"==o[o.length-1]){var a=n.getLine(t.end.row);/^\s+$/.test(a)&&(t.end.column=a.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,r,i=this.session.getLine(e.row);tt.toLowerCase()?1:0});var i=new p(0,0,0,0);for(r=e.first;r<=e.last;r++){var o=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=o.length,t.replace(i,n[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex=t){var o={value:i[0],start:i.index,end:i.index+i[0].length};return o}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var o=this.getNumberAt(t,n);if(o){var a=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,s=o.start+o.value.length-a,l=parseFloat(o.value);l*=Math.pow(10,s),a!==o.end&&n=s&&o<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,s+r),c.selection.selectTo(e,l+r)),s=l});for(var u,h=this.$toggleWordPairs,f=0;f=c&&s<=u&&d.match(/((?:https?|ftp):\/\/[\S]+)/)){l=d.replace(/[\s:.,'";}\]]+$/,"");break}c=u}}catch(e){n={error:e}}finally{try{f&&!f.done&&(i=h.return)&&i.call(h)}finally{if(n)throw n.error}}return l},this.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var o=r?n.start:n.end,a=t.insert(o,t.getTextRange(n),!1);n.start=o,n.end=a,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var o=i.toOrientedRange();n=this.$getSelectedRows(o),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(r=0),o.moveBy(r,0),i.fromOrientedRange(o)}else{var a=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var s=0,l=0,c=a.length,u=0;ud+1)break;d=p.last}u--,s=this.session.$moveLines(f,d,t?0:e),t&&-1==e&&(h=u+1);while(h<=u)a[h].moveBy(s,0),h++;t||(s=0),l+=s}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(e)},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):!1===t&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var o=n.scrollTop;n.scrollBy(0,i*r.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new b(this.session,n.row,n.column),i=r.getCurrentToken(),o=0;i&&-1!==i.type.indexOf("tag-name")&&(i=r.stepBackward());var a=i||r.stepForward();if(a){var s,l,c=!1,u={},h=n.column-a.start,f={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(a.value.match(/[{}()\[\]]/g)){for(;h1?u[a.value]++:"=0;--o)this.$tryReplace(n[o],e)&&r++;return this.selection.setSelectionRange(i),r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&i.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,n),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(e){e.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var o=this.on("changeSelection",function(){r=!0}),a=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),s=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,o=e.$cursorLayer.$pixelPos,a=e.layerConfig,s=o.top-a.offset;r=o.top>=0&&s+t.top<0||!(o.topwindow.innerHeight)&&null,null!=r&&(i.style.top=s+"px",i.style.left=o.left+"px",i.style.height=a.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",s),this.renderer.off("beforeRender",a))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,o.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},this.prompt=function(e,t,n){var r=this;y.loadModule("./ext/prompt",function(i){i.prompt(r,e,t,n)})}}.call(x.prototype),y.defineOptions(x.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?_.attach(this):_.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?_.attach(this):_.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.getValue());if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),o.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),o.addCssClass(this.container,"ace_hasPlaceholder");var t=o.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var _={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=x}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=function(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()};function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){while(nthis.$undoDepth-1&&this.$undoStack.splice(0,r-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},this.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},this.startNewGroup=function(){return this.lastDeltas=null,this.$rev},this.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(e){void 0==e&&(e=this.$rev),this.mark=e},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(e){return e?c(e):c(this.$undoStack)+"\n---\n"+c(this.$redoStack)}}).call(r.prototype);var o=e("./range").Range,a=o.comparePoints;o.comparePoints;function s(e){return{row:e.row,column:e.column}}function l(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}function c(e){if(e=e||this,Array.isArray(e))return e.map(c).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(u).join("\n"):u(e.value)),e.start&&(t+=u(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function u(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function h(e,t){var n="insert"==e.action,r="insert"==t.action;if(n&&r)if(a(t.start,e.end)>=0)p(t,e,-1);else{if(!(a(t.start,e.start)<=0))return null;p(e,t,1)}else if(n&&!r)if(a(t.start,e.end)>=0)p(t,e,-1);else{if(!(a(t.end,e.start)<=0))return null;p(e,t,-1)}else if(!n&&r)if(a(t.start,e.start)>=0)p(t,e,1);else{if(!(a(t.start,e.start)<=0))return null;p(e,t,1)}else if(!n&&!r)if(a(t.start,e.start)>=0)p(t,e,1);else{if(!(a(t.end,e.start)<=0))return null;p(e,t,-1)}return[t,e]}function f(e,t){for(var n=e.length;n--;)for(var r=0;r=0?p(e,t,-1):a(e.start,t.start)<=0?p(t,e,1):(p(e,o.fromPoints(t.start,e.start),-1),p(t,e,1));else if(!n&&r)a(t.start,e.end)>=0?p(t,e,-1):a(t.start,e.start)<=0?p(e,t,1):(p(t,o.fromPoints(e.start,t.start),-1),p(e,t,1));else if(!n&&!r)if(a(t.start,e.end)>=0)p(t,e,-1);else{var i,s;if(!(a(t.end,e.start)<=0))return a(e.start,t.start)<0&&(i=e,e=g(e,t.start)),a(e.end,t.end)>0&&(s=g(e,t.end)),m(t.end,e.start,e.end,-1),s&&!i&&(e.lines=s.lines,e.start=s.start,e.end=s.end,s=e),[t,i,s].filter(Boolean);p(e,t,-1)}return[t,e]}function p(e,t,n){m(e.start,t.start,t.end,n),m(e.end,t.start,t.end,n)}function m(e,t,n,r){e.row==(1==r?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function g(e,t){var n=e.lines,r=e.end;e.end=s(t);var i=e.end.row-e.start.row,o=n.splice(i,n.length),a=i?t.column:t.column-e.start.column;n.push(o[0].substring(0,a)),o[0]=o[0].substr(a);var l={start:s(t),end:r,lines:o,action:e.action};return l}function v(e,t){t=l(t);for(var n=e.length;n--;){for(var r=e[n],i=0;io&&(l=i.end.row+1,i=t.getNextFoldLine(l,i),o=i?i.start.row:1/0),l>r){while(this.$lines.getLength()>s+1)this.$lines.pop();break}a=this.$lines.get(++s),a?a.row=l:(a=this.$lines.createCell(l,e,this.session,c),this.$lines.push(a)),this.$renderCell(a,e,i,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},this.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,r=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+r-1);var o=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,a=this.$padding||this.$computePadding();o+=a.left+a.right,o===this.gutterWidth||isNaN(o)||(this.gutterWidth=o,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",o))},this.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},this.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(r.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;r=t[n-1]}r.element.className="ace_gutter-active-line "+r.element.className,this.$cursorCell=r;break}}}}},this.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),r=this.oldLastRow;if(this.oldLastRow=n,!t||r0;i--)this.$lines.shift();if(r>n)for(i=this.session.getFoldedRowCount(n+1,r);i>0;i--)this.$lines.pop();e.firstRowr&&this.$lines.push(this.$renderLines(e,r+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},this.$renderLines=function(e,t,n){var r=[],i=t,o=this.session.getNextFoldLine(i),a=o?o.start.row:1/0;while(1){if(i>a&&(i=o.end.row+1,o=this.session.getNextFoldLine(i,o),a=o?o.start.row:1/0),i>n)break;var s=this.$lines.createCell(i,e,this.session,c);this.$renderCell(s,e,o,i),r.push(s),i++}return r},this.$renderCell=function(e,t,n,i){var o=e.element,a=this.session,s=o.childNodes[0],l=o.childNodes[1],c=a.$firstLineNumber,u=a.$breakpoints,h=a.$decorations,f=a.gutterRenderer||this.$renderer,d=this.$showFoldWidgets&&a.foldWidgets,p=n?n.start.row:Number.MAX_VALUE,m="ace_gutter-cell ";if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=p&&this.$cursorRow<=n.end.row)&&(m+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),u[i]&&(m+=u[i]),h[i]&&(m+=h[i]),this.$annotations[i]&&(m+=this.$annotations[i].className),o.className!=m&&(o.className=m),d){var g=d[i];null==g&&(g=d[i]=a.getFoldWidget(i))}if(g){m="ace_fold-widget ace_"+g;"start"==g&&i==p&&in.right-t.right?"foldWidgets":void 0}}).call(l.prototype),t.Gutter=l}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),o=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},this.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var r=this.markers[n];if(r.range){var i=r.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),r.renderer){var o=this.$getTop(i.start.row,e),a=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,a,o,e)}else"fullLine"==r.type?this.drawFullLineMarker(t,i,r.clazz,e):"screenLine"==r.type?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?"text"==r.type?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start ace_br15",e)}else r.update(t,this,this.session,e)}if(-1!=this.i)while(this.id,u==c),o,u==c?0:1,a)},this.drawMultiLineMarker=function(e,t,n,r,i){var o=this.$padding,a=r.lineHeight,s=this.$getTop(t.start.row,r),l=o+t.start.column*r.characterWidth;if(i=i||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var c=t.clone();c.end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",r,null,i)}else this.elt(n+" ace_br1 ace_start","height:"+a+"px;right:0;top:"+s+"px;left:"+l+"px;"+(i||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){c=t.clone();c.start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",r,null,i)}else{s=this.$getTop(t.end.row,r);var u=t.end.column*r.characterWidth;this.elt(n+" ace_br12","height:"+a+"px;width:"+u+"px;top:"+s+"px;left:"+o+"px;"+(i||""))}if(a=(t.end.row-t.start.row-1)*r.lineHeight,!(a<=0)){s=this.$getTop(t.start.row+1,r);var h=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(h?" ace_br"+h:""),"height:"+a+"px;right:0;top:"+s+"px;left:"+o+"px;"+(i||""))}},this.drawSingleLineMarker=function(e,t,n,r,i,o){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,r,i,o);var a=r.lineHeight,s=(t.end.column+(i||0)-t.start.column)*r.characterWidth,l=this.$getTop(t.start.row,r),c=this.$padding+t.start.column*r.characterWidth;this.elt(n,"height:"+a+"px;width:"+s+"px;top:"+l+"px;left:"+c+"px;"+(o||""))},this.drawBidiSingleLineMarker=function(e,t,n,r,i,o){var a=r.lineHeight,s=this.$getTop(t.start.row,r),l=this.$padding,c=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);c.forEach(function(e){this.elt(n,"height:"+a+"px;width:"+e.width+(i||0)+"px;top:"+s+"px;left:"+(l+e.left)+"px;"+(o||""))},this)},this.drawFullLineMarker=function(e,t,n,r,i){var o=this.$getTop(t.start.row,r),a=r.lineHeight;t.start.row!=t.end.row&&(a+=this.$getTop(t.end.row,r)-o),this.elt(n,"height:"+a+"px;top:"+o+"px;left:0;right:0;"+(i||""))},this.drawScreenLineMarker=function(e,t,n,r,i){var o=this.$getTop(t.start.row,r),a=r.lineHeight;this.elt(n,"height:"+a+"px;top:"+o+"px;left:0;right:0;"+(i||""))}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),o=e("../lib/lang"),a=e("./lines").Lines,s=e("../lib/event_emitter").EventEmitter,l=function(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new a(this.element)};(function(){r.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.MAX_CHUNK_LENGTH=250,this.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode(),n=t?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},this.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.showSpaces=!1,this.showTabs=!1,this.showEOL=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$highlightIndentGuides=!0,this.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(s=l.end.row+1,l=this.session.getNextFoldLine(s,l),u=l?l.start.row:1/0),s>i)break;var h=o[a++];if(h){this.dom.removeChildren(h),this.$renderLine(h,s,s==u&&l),c&&(h.style.top=this.$lines.computeLineTop(s,e,this.session)+"px");var f=e.lineHeight*this.session.getRowLength(s)+"px";h.style.height!=f&&(c=!0,h.style.height=f)}s++}if(c)while(a0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},this.$renderLinesFragment=function(e,t,n){var r=[],o=t,a=this.session.getNextFoldLine(o),s=a?a.start.row:1/0;while(1){if(o>s&&(o=a.end.row+1,a=this.session.getNextFoldLine(o,a),s=a?a.start.row:1/0),o>n)break;var l=this.$lines.createCell(o,e,this.session),c=l.element;this.dom.removeChildren(c),i.setStyle(c.style,"height",this.$lines.computeLineHeight(o,e,this.session)+"px"),i.setStyle(c.style,"top",this.$lines.computeLineTop(o,e,this.session)+"px"),this.$renderLine(c,o,o==s&&a),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",r.push(l),o++}return r},this.update=function(e){this.$lines.moveContainer(e),this.config=e;var t=e.firstRow,n=e.lastRow,r=this.$lines;while(r.getLength())r.pop();r.push(this.$renderLinesFragment(e,t,n))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderTokenInChunks=function(e,t,n,r){for(var i,o=0;o=n)return t;if(" "==t[0]){r-=r%this.tabSize;for(var i=r/this.tabSize,o=0;oo[a].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length){this.$highlightIndentGuideMarker.dir=1;for(a=t.row+1;a0)for(var i=0;i=this.$highlightIndentGuideMarker.start+1){if(r.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(r,t)}}else for(n=e.length-1;n>=0;n--){r=e[n];if(this.$highlightIndentGuideMarker.end&&r.row=a)s=this.$renderTokenInChunks(l,s,u,h.substring(0,a-r)),h=h.substring(a-r),r=a,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(o.stringRepeat(" ",n.indent),this.element)),i++,s=0,a=n[i]||Number.MAX_VALUE;0!=h.length&&(r+=h.length,s=this.$renderTokenInChunks(l,s,u,h))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,s,null,"",!0)},this.$renderSimpleLine=function(e,t){for(var n=0,r=0;rthis.MAX_LINE_LENGTH)return void this.$renderOverflowMessage(e,n,i,o);n=this.$renderTokenInChunks(e,n,i,o)}}},this.$renderOverflowMessage=function(e,t,n,r,i){n&&this.$renderTokenInChunks(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t));var o=this.dom.createElement("span");o.className="ace_inline_button ace_keyword ace_toggle_wrap",o.textContent=i?"":"",e.appendChild(o)},this.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var r=this.$getFoldLineTokens(t,n);else r=this.session.getTokens(t);var i=e;if(r.length){var o=this.session.getRowSplitData(t);if(o&&o.length){this.$renderWrappedLine(e,r,o);i=e.lastChild}else{i=e;this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,r)}}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var a=this.dom.createElement("span");a.className="ace_invisible ace_invisible_eol",a.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(a)}},this.$getFoldLineTokens=function(e,t){var n=this.session,r=[];function i(e,t,n){var i=0,o=0;while(o+e[i].value.lengthn-t&&(a=a.substring(0,n-t)),r.push({type:e[i].type,value:a}),o=t+a.length,i+=1}while(on?r.push({type:e[i].type,value:a.substring(0,n-o)}):r.push(e[i]),o+=a.length,i+=1}}var o=n.getTokens(e);return t.walk(function(e,t,a,s,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,s,a))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(l.prototype),t.Text=l}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)};(function(){this.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)r.setStyle(t[n].style,"opacity",e?"":"0")},this.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&r.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){this.$isAnimating=!1,r.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,r.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}else this.$stopCssAnimation()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||a.top<0)&&n>1)){var s=this.cursors[i++]||this.addCursor(),l=s.style;this.drawCursor?this.drawCursor(s,a,e,t[n],this.session):this.isCursorInView(a,e)?(r.setStyle(l,"display","block"),r.translate(s,a.left,a.top),r.setStyle(l,"width",Math.round(e.characterWidth)+"px"),r.setStyle(l,"height",e.lineHeight+"px")):r.setStyle(l,"display","none")}}while(this.cursors.length>i)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=a,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(i.prototype),t.Cursor=i}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),o=e("./lib/event"),a=e("./lib/event_emitter").EventEmitter,s=32768,l=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){r.implement(this,a),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(l.prototype);var c=function(e,t){l.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};r.inherits(c,l),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>s?(this.coeff=s/e,e=s):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(c.prototype);var u=function(e,t){l.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(u,l),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(u.prototype),t.ScrollBar=c,t.ScrollBarV=c,t.ScrollBarH=u,t.VScrollBar=c,t.HScrollBar=u}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),o=e("./lib/event"),a=e("./lib/event_emitter").EventEmitter;i.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var s=function(e){this.element=i.createElement("div"),this.element.className="ace_sb"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")};(function(){r.implement(this,a),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(s.prototype);var l=function(e,t){s.call(this,e),this.scrollTop=0,this.scrollHeight=0,this.parent=e,this.width=this.VScrollWidth,this.renderer=t,this.inner.style.width=this.element.style.width=(this.width||15)+"px",this.$minWidth=0};r.inherits(l,s),function(){this.classSuffix="-v",r.implement(this,a),this.onMouseDown=function(e,t){if("mousedown"===e&&0===o.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,r=t.clientY,i=function(e){r=e.clientY},a=function(){clearInterval(u)},s=t.clientY,l=this.thumbTop,c=function(){if(void 0!==r){var e=n.scrollTopFromThumbTop(l+r-s);e!==n.scrollTop&&n._emit("scroll",{data:e})}};o.capture(this.inner,i,a);var u=setInterval(c,20);return o.preventDefault(t)}var h=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(h)}),o.preventDefault(t)}},this.getHeight=function(){return this.height},this.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return t>>=0,t<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},this.setInnerHeight=this.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},this.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"}}.call(l.prototype);var c=function(e,t){s.call(this,e),this.scrollLeft=0,this.scrollWidth=0,this.height=this.HScrollHeight,this.inner.style.height=this.element.style.height=(this.height||12)+"px",this.renderer=t};r.inherits(c,s),function(){this.classSuffix="-h",r.implement(this,a),this.onMouseDown=function(e,t){if("mousedown"===e&&0===o.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,r=t.clientX,i=function(e){r=e.clientX},a=function(){clearInterval(u)},s=t.clientX,l=this.thumbLeft,c=function(){if(void 0!==r){var e=n.scrollLeftFromThumbLeft(l+r-s);e!==n.scrollLeft&&n._emit("scroll",{data:e})}};o.capture(this.inner,i,a);var u=setInterval(c,20);return o.preventDefault(t)}var h=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(h)}),o.preventDefault(t)}},this.getHeight=function(){return this.isVisible?this.height:0},this.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return t>>=0,t<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},this.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},this.setInnerWidth=this.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},this.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"}}.call(c.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(r.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}};(function(){this.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},this.clear=function(e){var t=this.changes;return this.changes=0,t}}).call(i.prototype),t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),o=e("../lib/lang"),a=e("../lib/event"),s=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=250,u="function"==typeof ResizeObserver,h=200,f=t.FontMetrics=function(e,t){this.charCount=t||c,this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=o.stringRepeat("X",this.charCount),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()};(function(){r.implement(this,l),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){e.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=a.onIdle(function t(){e.checkForSizeChanges(),a.onIdle(t,500)},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(e){e=e||this.$measureNode;var t=e.getBoundingClientRect(),n={height:t.height,width:t.width/this.charCount};return 0===n.width||0===n.height?null:n},this.$measureCharWidth=function(e){this.$main.textContent=o.stringRepeat(e,this.charCount);var t=this.$main.getBoundingClientRect();return t.width/this.charCount},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function e(t){return t&&t.parentElement?(window.getComputedStyle(t).zoom||1)*e(t.parentElement):1},this.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(h,0),e(0,h),e(h,h)],this.el)},this.transformCoordinates=function(e,t){if(e){var n=this.$getZoom(this.el);e=a(1/n,e)}function r(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function o(e,t){return[e[0]+t[0],e[1]+t[1]]}function a(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}this.els||this.$initTransformMeasureNodes();var l=s(this.els[0]),c=s(this.els[1]),u=s(this.els[2]),f=s(this.els[3]),d=r(i(f,c),i(f,u),i(o(c,u),o(f,l))),p=a(1+d[0],i(c,l)),m=a(1+d[1],i(u,l));if(t){var g=t,v=d[0]*g[0]/h+d[1]*g[1]/h+1,y=o(a(g[0],p),a(g[1],m));return o(a(1/v/h,y),l)}var b=i(e,l),w=r(i(p,a(d[0],b)),i(m,a(d[1],b)),b);return a(h,w)}}).call(f.prototype)}),ace.define("ace/css/editor.css",["require","exports","module"],function(e,t,n){n.exports='/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(".ace_br" + i + "{" + (\n ["top-left", "top-right", "bottom-right", "bottom-left"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n will-change: transform;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #FFF;\n background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n}\n\n.ace_folding-enabled > .ace_gutter-cell {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}'}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),o=e("../lib/event_emitter").EventEmitter,a=function(e,t){this.canvas=r.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)};(function(){i.implement(this,o),this.$updateDecorators=function(e){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;if(e){this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height;var n=(e.lastRow+1)*this.lineHeight;nt.priority?1:0}var o=this.renderer.session.$annotations;if(r.clearRect(0,0,this.canvas.width,this.canvas.height),o){var a={info:1,warning:2,error:3};o.forEach(function(e){e.priority=a[e.type]||null}),o=o.sort(i);for(var s=this.renderer.session.$foldData,l=0;lthis.canvasHeight&&(m=this.canvasHeight-this.halfMinDecorationHeight),f=Math.round(m-this.halfMinDecorationHeight),d=Math.round(m+this.halfMinDecorationHeight)}r.fillStyle=t[o[l].type]||null,r.fillRect(0,h,this.canvasWidth,d-f)}}var g=this.renderer.session.selection.getCursor();if(g){u=this.compensateFoldRows(g.row,s),h=Math.round((g.row-u)*this.lineHeight*this.heightRatio);r.fillStyle="rgba(0, 0, 0, 0.5)",r.fillRect(0,h,this.canvasWidth,2)}},this.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var r=0;rt[r].start.row&&e=t[r].end.row&&(n+=t[r].end.row-t[r].start.row);return n}}).call(a.prototype),t.Decorator=a}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor.css","ace/layer/decorators","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),o=e("./config"),a=e("./layer/gutter").Gutter,s=e("./layer/marker").Marker,l=e("./layer/text").Text,c=e("./layer/cursor").Cursor,u=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,f=e("./scrollbar_custom").HScrollBar,d=e("./scrollbar_custom").VScrollBar,p=e("./renderloop").RenderLoop,m=e("./layer/font_metrics").FontMetrics,g=e("./lib/event_emitter").EventEmitter,v=e("./css/editor.css"),y=e("./layer/decorators").Decorator,b=e("./lib/useragent"),w=b.isIE;i.importCssString(v,"ace_editor.css",!1);var x=function(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==o.get("useStrictCSP")&&o.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new s(this.content);var r=this.$textLayer=new l(this.content);this.canvas=r.element,this.$markerFront=new s(this.content),this.$cursorLayer=new c(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new u(this.container,this),this.scrollBarV.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new m(this.container,this.$textLayer.MAX_CHUNK_LENGTH),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!b.isIOS,this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._signal("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,g),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var o=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var o=0,a=this.$size,s={width:a.width,height:a.height,scrollerHeight:a.scrollerHeight,scrollerWidth:a.scrollerWidth};if(r&&(e||a.height!=r)&&(a.height=r,o|=this.CHANGE_SIZE,a.scrollerHeight=a.height,this.$horizScroll&&(a.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(a.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",o|=this.CHANGE_SCROLL),n&&(e||a.width!=n)){o|=this.CHANGE_SIZE,a.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),a.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",l),i.setStyle(this.scroller.style,"right",l),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(a.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(o|=this.CHANGE_FULL)}return a.$dirty=!n||!r,o&&this._signal("resize",s),o},this.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},this.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var r=this.layerConfig,o=n.top,a=n.left;o-=r.offset;var s=t&&t.useTextareaForIME?this.lineHeight:w?0:1;if(o<0||o>r.height-s)i.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-s;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else o+=this.lineHeight+2;else o+=this.lineHeight;a-=this.scrollLeft,a>this.$size.scrollerWidth-l&&(a=this.$size.scrollerWidth-l),a+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",s+"px"),i.setStyle(e,"width",l+"px"),i.translate(this.textarea,Math.min(a,this.$size.scrollerWidth-l),Math.min(o,c))}}}else i.translate(this.textarea,-100,0)}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=0|e,i.bottom=0|t,i.right=0|r,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.setMargin=function(e,t,n,r){var i=this.margin;i.top=0|e,i.bottom=0|t,i.right=0|r,i.left=0|n,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var o=n.width+2*this.$padding+"px",a=n.minHeight+"px";i.setStyle(this.content.style,"width",o),i.setStyle(this.content.style,"height",a)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=n<=2*this.lineHeight,i=!r&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var o=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,o,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,o=this.$getLongestLine(),a=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),s=this.$horizScroll!==a;s&&(this.$horizScroll=a,this.scrollBarH.setVisible(a));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=t.scrollerHeight+this.lineHeight,u=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=u;var h=this.scrollMargin;this.session.setScrollTop(Math.max(-h.top,Math.min(this.scrollTop,i-t.scrollerHeight+h.bottom))),this.session.setScrollLeft(Math.max(-h.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+h.right)));var f=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+u<0||this.scrollTop>h.top),d=l!==f;d&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var p,m,g=this.scrollTop%this.lineHeight,v=Math.ceil(c/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-g)/this.lineHeight)),b=y+v,w=this.lineHeight;y=e.screenToDocumentRow(y,0);var x=e.getFoldLine(y);x&&(y=x.start.row),p=e.documentToScreenRow(y,0),m=e.getRowLength(y)*w,b=Math.min(e.screenToDocumentRow(b,0),e.getLength()-1),c=t.scrollerHeight+e.getRowLength(b)*w+m,g=this.scrollTop-p*w;var _=0;return(this.layerConfig.width!=o||s)&&(_=this.CHANGE_H_SCROLL),(s||d)&&(_|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:b,lineHeight:w,characterWidth:this.characterWidth,minHeight:c,maxHeight:i,offset:g,gutterOffset:w?Math.max(0,Math.ceil((g+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(o-this.$padding),_},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1)&&!(tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var r=this.$cursorLayer.getPixelPosition(e),i=r.left,o=r.top,a=n&&n.top||0,s=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+a>o?(t&&l+a>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-si?(i=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},this.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,o=i/this.characterWidth,a=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=this.$blockCursor?Math.floor(o):Math.round(o);return{row:a,column:s,side:o-s>0?1:-1,offsetX:i}},this.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,o=i/this.characterWidth,a=this.$blockCursor?Math.floor(o):Math.round(o),s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(s,Math.max(a,0),i)},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),o=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+o-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),void 0==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},this.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},this.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},this.addToken=function(e,t,n,r){var i=this.session;i.bgTokenizer.lines[n]=null;var o={type:t,value:e},a=i.getTokens(n);if(null==r)a.push(o);else for(var s=0,l=0;l50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);var u=function(e,t,n){var r=null,i=!1,s=Object.create(o),l=[],u=new c({messageBuffer:l,terminate:function(){},postMessage:function(e){l.push(e),r&&(i?setTimeout(h):h())}});u.setEmitSync=function(e){i=e};var h=function(){var e=l.shift();e.command?r[e.command].apply(r,e.args):e.event&&s._signal(e.event,e.data)};return s.postMessage=function(e){u.onMessage({data:e})},s.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},s.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},a.loadModule(["worker",t],function(e){r=new e[n](s);while(l.length)h()}),u};t.UIWorkerClient=u,t.WorkerClient=c,t.createWorker=l}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),a=function(e,t,n,r,i,o){var a=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){a.onCursorChange()})},this.$pos=n;var s=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=s.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo)if("insert"===e.action)for(var a=this.others.length-1;a>=0;a--){var s=this.others[a],l={row:s.row,column:s.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(a=this.others.length-1;a>=0;a--){s=this.others[a],l={row:s.row,column:s.column+o};this.doc.remove(new r(l.row,l.column,l.row,l.column-n))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){var r=e("./range_list").RangeList,i=e("./range").Range,o=e("./selection").Selection,a=e("./mouse/multi_select_handler").onMouseDown,s=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=e("./search").Search,h=new u;function f(e,t,n){return h.$options.wrap=!0,h.$options.needle=t,h.$options.backwards=-1==n,h.find(e)}var d=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(d.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new r,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),o=this.session.documentToScreenPosition(this.anchor),a=this.rectangularRangeBlock(r,o);a.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],o=e.column0)v--;if(v>0){var y=0;while(r[y].isEmpty())y++}for(var b=v;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(o.prototype);var p=e("./editor").Editor;function m(e,t){return e.row==t.row&&e.column==t.column}function g(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",a),e.commands.addCommands(c.defaultCommands),v(e))}function v(e){if(e.textInput){var t=e.textInput.getElement(),n=!1;s.addListener(t,"keydown",function(t){var i=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()},e),s.addListener(t,"keyup",r,e),s.addListener(t,"blur",r,e)}function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var r=e[n];if(r.marker){this.session.removeMarker(r.marker);var i=t.indexOf(r);-1!=i&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?r=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?r=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});else{var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return r}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var r,i=n&&n.keepOrder,a=1==n||n&&n.$byLines,s=this.session,l=this.selection,c=l.rangeList,u=(i?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var h=l._eventRegistry;l._eventRegistry={};var f=new o(s);this.inVirtualSelectionMode=!0;for(var d=u.length;d--;){if(a)while(d>0&&u[d].start.row==u[d-1].end.row)d--;f.fromOrientedRange(u[d]),f.index=d,this.selection=s.selection=f;var p=e.exec?e.exec(this,t||{}):e(this,t||{});r||void 0===p||(r=p),f.toOrientedRange(u[d])}f.detach(),this.selection=s.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=h,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),r}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],r=0;ra&&(a=n.column),iu?e.insert(r,l.stringRepeat(" ",o-u)):e.remove(new i(r.row,r.column,r.row,r.column-o+u)),t.start.column=t.end.column=a,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),h=u.start.row,f=u.end.row,d=h==f;if(d){var p,m=this.session.getLength();do{p=this.session.getLine(f)}while(/[=:]/.test(p)&&++f0);h<0&&(h=0),f>=m&&(f=m-1)}var g=this.session.removeFullLines(h,f);g=this.$reAlignText(g,d),this.session.insert({row:h,column:0},g.join("\n")+"\n"),d||(u.start.column=0,u.end.column=g[g.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,r,i,o=!0,a=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,r=t[2].length,i=t[3].length,t):(n+r+i!=t[1].length+t[2].length+t[3].length&&(a=!1),n!=t[1].length&&(o=!1),n>t[1].length&&(n=t[1].length),rt[3].length&&(i=t[3].length),t):[e]}).map(t?c:o?a?u:c:h);function s(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?s(n)+e[2]+s(r-e[2].length+i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function u(e){return e[2]?s(n+r-e[2].length)+e[2]+s(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function h(e){return e[2]?s(n)+e[2]+s(i)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(p.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=g,e("./config").defineOptions(p.prototype,"editor",{enableMultiselect:{set:function(e){g(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",a)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",a))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,o=e.getLine(t),a=o.search(i);if(-1!=a){var s=n||o.length,l=e.getLength(),c=t,u=t;while(++tc){var d=e.getLine(u).length;return new r(c,s,u,d)}}},this.openingBracketBlock=function(e,t,n,i,o){var a={row:n,column:i+1},s=e.$findClosingBracket(t,a,o);if(s){var l=e.foldWidgets[s.row];return null==l&&(l=e.getFoldWidget(s.row)),"start"==l&&s.row>a.row&&(s.row--,s.column=e.getLine(s.row).length),r.fromPoints(a,s)}},this.closingBracketBlock=function(e,t,n,i,o){var a={row:n,column:i},s=e.$findOpeningBracket(t,a);if(s)return s.column++,a.column--,r.fromPoints(s,a)}}).call(i.prototype)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./lib/dom");function i(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets&&this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(n&&e.action){for(var r=e.data,i=r.start.row,o=r.end.row,a="add"==e.action,s=i+1;st[n].column&&n++,o.unshift(n,0),t.splice.apply(t,o),this.$updateRows()}}},this.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)}},this.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},this.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=r.createElement("div"),e.el.innerHTML=e.html),e.el&&(r.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row!=n.end.row||i[n.start.row]?e.hidden=!0:i[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(t){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(n&&n.length){for(var i=1/0,o=0;o0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var a=i;a<=o;a++){var s=r[a];if(s&&s.el)if(s.hidden)s.el.style.top=-100-(s.pixelHeight||0)+"px";else{s._inDocument||(s._inDocument=!0,t.container.appendChild(s.el));var l=t.$cursorLayer.getPixelPosition({row:a,column:0},!0).top;s.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(s.row)),s.el.style.top=l-n.offset+"px";var c=s.coverGutter?0:t.gutterWidth;s.fixedWidth||(c-=t.scrollLeft),s.el.style.left=c+"px",s.fullWidth&&s.screenWidth&&(s.el.style.minWidth=n.width+2*n.padding+"px"),s.fixedWidth?s.el.style.right=t.scrollBar.getWidth()+"px":s.el.style.right=""}}}}}).call(i.prototype),t.LineWidgets=i}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),o=e("../range").Range;function a(e,t,n){var r=0,i=e.length-1;while(r<=i){var o=r+i>>1,a=n(t,e[o]);if(a>0)r=o+1;else{if(!(a<0))return o;i=o-1}}return-(r+1)}function s(e,t,n){var r=e.getAnnotations().sort(o.comparePoints);if(r.length){var i=a(r,{row:t,column:-1},o.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:0===i&&n<0&&(i=r.length-1);var s=r[i];if(s&&n){if(s.row===t){do{s=r[i+=n]}while(s&&s.row===t);if(!s)return r.slice()}var l=[];t=s.row;do{l[n<0?"unshift":"push"](s),s=r[i+=n]}while(s&&s.row==t);return l.length&&l}}}t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var o=e.getCursorPosition(),a=o.row,l=n.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,u=s(n,a,t);if(u){var h=u[0];o.column=(h.pos&&"number"!=typeof h.column?h.pos.sc:h.column)||0,o.row=h.row,c=e.renderer.$gutterLayer.$annotations[o.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(o.row),e.selection.moveToPosition(o);var f={row:o.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},d=f.el.appendChild(i.createElement("div")),p=f.el.appendChild(i.createElement("div"));p.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(o).left;p.style.left=m+e.renderer.gutterWidth-5+"px",f.el.className="error_widget_wrapper",d.className="error_widget "+c.className,d.innerHTML=c.text.join("
"),d.appendChild(i.createElement("div"));var g=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return f.destroy(),{command:"null"}};f.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),n.widgetManager.removeLineWidget(f),e.off("changeSelection",f.destroy),e.off("changeSession",f.destroy),e.off("mouseup",f.destroy),e.off("change",f.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",f.destroy),e.on("changeSession",f.destroy),e.on("mouseup",f.destroy),e.on("change",f.destroy),e.session.widgetManager.addLineWidget(f),f.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:f.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)}),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],function(e,t,n){"use strict";e("./loader_build")(t);var r=e("./lib/dom"),i=e("./lib/event"),o=e("./range").Range,a=e("./editor").Editor,s=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var o=e;if(e=document.getElementById(o),!e)throw new Error("ace.edit can't find div #"+o)}if(e&&e.env&&e.env.editor instanceof a)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var l=e;s=l.value,e=r.createElement("pre"),l.parentNode.replaceChild(e,l)}else e&&(s=e.textContent,e.innerHTML="");var u=t.createEditSession(s),h=new a(new c(e),u,n),f={document:u,editor:h,onResize:h.resize.bind(h,null)};return l&&(f.textarea=l),i.addListener(window,"resize",f.onResize),h.on("destroy",function(){i.removeListener(window,"resize",f.onResize),f.editor.container.env=null}),h.container.env=h.env=f,h},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new l),n},t.Range=o,t.Editor=a,t.EditSession=s,t.UndoManager=l,t.VirtualRenderer=c,t.version=t.config.version}),function(){ace.require(["ace/ace"],function(t){for(var n in t&&(t.config.init(!0),t.define=ace.define),window.ace||(window.ace=t),t)t.hasOwnProperty(n)&&(window.ace[n]=t[n]);window.ace["default"]=window.ace,e&&(e.exports=window.ace)})}()}).call(this,n("YuTi")(e))},bV5f:function(e,t){var n=e.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},bYtY:function(e,t,n){"use strict";n.d(t,"n",function(){return g}),n.d(t,"C",function(){return v}),n.d(t,"d",function(){return y}),n.d(t,"E",function(){return b}),n.d(t,"l",function(){return w}),n.d(t,"i",function(){return x}),n.d(t,"p",function(){return _}),n.d(t,"q",function(){return E}),n.d(t,"F",function(){return S}),n.d(t,"s",function(){return k}),n.d(t,"j",function(){return C}),n.d(t,"D",function(){return O}),n.d(t,"I",function(){return T}),n.d(t,"m",function(){return L}),n.d(t,"B",function(){return A}),n.d(t,"c",function(){return j}),n.d(t,"h",function(){return M}),n.d(t,"r",function(){return R}),n.d(t,"u",function(){return N}),n.d(t,"y",function(){return D}),n.d(t,"z",function(){return I}),n.d(t,"w",function(){return $}),n.d(t,"x",function(){return F}),n.d(t,"A",function(){return V}),n.d(t,"t",function(){return W}),n.d(t,"v",function(){return H}),n.d(t,"k",function(){return U}),n.d(t,"J",function(){return z}),n.d(t,"K",function(){return G}),n.d(t,"L",function(){return q}),n.d(t,"N",function(){return K}),n.d(t,"H",function(){return Y}),n.d(t,"b",function(){return X}),n.d(t,"O",function(){return Q}),n.d(t,"M",function(){return J}),n.d(t,"f",function(){return ne}),n.d(t,"e",function(){return re}),n.d(t,"g",function(){return ie}),n.d(t,"o",function(){return oe}),n.d(t,"G",function(){return ae}),n.d(t,"a",function(){return se});var r=n("cm6r"),i=T(["Function","RegExp","Date","Error","CanvasGradient","CanvasPattern","Image","Canvas"],function(e,t){return e["[object "+t+"]"]=!0,e},{}),o=T(["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64"],function(e,t){return e["[object "+t+"Array]"]=!0,e},{}),a=Object.prototype.toString,s=Array.prototype,l=s.forEach,c=s.filter,u=s.slice,h=s.map,f=function(){}.constructor,d=f?f.prototype:null,p="__proto__",m=2311;function g(){return m++}function v(){for(var e=[],t=0;t-1};function l(e){if("string"!==typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function c(e){return"string"!==typeof e&&(e=String(e)),e}function u(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return i.iterable&&(t[Symbol.iterator]=function(){return t}),t}function h(e){this.map={},e instanceof h?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function f(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function d(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function p(e){var t=new FileReader,n=d(t);return t.readAsArrayBuffer(e),n}function m(e){var t=new FileReader,n=d(t);return t.readAsText(e),n}function g(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r-1?t:e}function x(e,t){if(!(this instanceof x))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t=t||{};var n=t.body;if(e instanceof x){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new h(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new h(t.headers)),this.method=w(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(n),("GET"===this.method||"HEAD"===this.method)&&("no-store"===t.cache||"no-cache"===t.cache)){var r=/([?&])_=[^&]*/;if(r.test(this.url))this.url=this.url.replace(r,"$1_="+(new Date).getTime());else{var i=/\?/;this.url+=(i.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function _(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(i))}}),t}function E(e){var t=new h,n=e.replace(/\r?\n[\t ]+/g," ");return n.split("\r").map(function(e){return 0===e.indexOf("\n")?e.substr(1,e.length):e}).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var i=n.join(":").trim();t.append(r,i)}}),t}function S(e,t){if(!(this instanceof S))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===t.statusText?"":""+t.statusText,this.headers=new h(t.headers),this.url=t.url||"",this._initBody(e)}x.prototype.clone=function(){return new x(this,{body:this._bodyInit})},y.call(x.prototype),y.call(S.prototype),S.prototype.clone=function(){return new S(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},S.error=function(){var e=new S(null,{status:0,statusText:""});return e.type="error",e};var k=[301,302,303,307,308];S.redirect=function(e,t){if(-1===k.indexOf(t))throw new RangeError("Invalid status code");return new S(null,{status:t,headers:{location:e}})};var C=r.DOMException;try{new C}catch(e){C=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack},C.prototype=Object.create(Error.prototype),C.prototype.constructor=C}function O(e,t){return new Promise(function(n,o){var a=new x(e,t);if(a.signal&&a.signal.aborted)return o(new C("Aborted","AbortError"));var s=new XMLHttpRequest;function l(){s.abort()}function u(e){try{return""===e&&r.location.href?r.location.href:e}catch(t){return e}}s.onload=function(){var e={status:s.status,statusText:s.statusText,headers:E(s.getAllResponseHeaders()||"")};e.url="responseURL"in s?s.responseURL:e.headers.get("X-Request-URL");var t="response"in s?s.response:s.responseText;setTimeout(function(){n(new S(t,e))},0)},s.onerror=function(){setTimeout(function(){o(new TypeError("Network request failed"))},0)},s.ontimeout=function(){setTimeout(function(){o(new TypeError("Network request failed"))},0)},s.onabort=function(){setTimeout(function(){o(new C("Aborted","AbortError"))},0)},s.open(a.method,u(a.url),!0),"include"===a.credentials?s.withCredentials=!0:"omit"===a.credentials&&(s.withCredentials=!1),"responseType"in s&&(i.blob?s.responseType="blob":i.arrayBuffer&&a.headers.get("Content-Type")&&-1!==a.headers.get("Content-Type").indexOf("application/octet-stream")&&(s.responseType="arraybuffer")),!t||"object"!==typeof t.headers||t.headers instanceof h?a.headers.forEach(function(e,t){s.setRequestHeader(t,e)}):Object.getOwnPropertyNames(t.headers).forEach(function(e){s.setRequestHeader(e,c(t.headers[e]))}),a.signal&&(a.signal.addEventListener("abort",l),s.onreadystatechange=function(){4===s.readyState&&a.signal.removeEventListener("abort",l)}),s.send("undefined"===typeof a._bodyInit?null:a._bodyInit)})}O.polyfill=!0,r.fetch||(r.fetch=O,r.Headers=h,r.Request=x,r.Response=S)},bdgK:function(e,t,n){"use strict";n.r(t),function(e){var n=function(){if("undefined"!==typeof Map)return Map;function e(e,t){var n=-1;return e.some(function(e,r){return e[0]===t&&(n=r,!0)}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),u?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t,r=c.some(function(e){return!!~n.indexOf(e)});r&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),f=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),T="undefined"!==typeof WeakMap?new WeakMap:new n,L=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=h.getInstance(),r=new O(t,n,this);T.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){L.prototype[e]=function(){var t;return(t=T.get(this))[e].apply(t,arguments)}});var A=function(){return"undefined"!==typeof i.ResizeObserver?i.ResizeObserver:L}();t["default"]=A}.call(this,n("yLpj"))},bmIi:function(e,t,n){"use strict";var r=n("/Mfd"),i=n("pQGJ"),o=n("lvAo"),a={};n("VPOE")(a,n("gL7N")("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:i(1,n)}),o(e,t+" Iterator")}},brdU:function(e,t,n){"use strict";n.r(t);var r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function i(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e))return Array.isArray(t)&&e.length===t.length&&e.every(function(e,n){return i(e,t[n])});var n="undefined"===typeof e?"undefined":r(e),o="undefined"===typeof t?"undefined":r(t);if(n!==o)return!1;if("object"===n){var a=e.valueOf(),s=t.valueOf();if(a!==e||s!==t)return i(a,s);var l=Object.keys(e),c=Object.keys(t);return l.length===c.length&&l.every(function(n){return i(e[n],t[n])})}return!1}t["default"]=i},bsDr:function(e,t,n){"use strict";var r=n("2a/h"),i=RegExp.prototype.exec;e.exports=function(e,t){var n=e.exec;if("function"===typeof n){var o=n.call(e,t);if("object"!==typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==r(e))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(e,t)}},c0Oy:function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},cDf5:function(e,t){function n(t){"@babel/helpers - typeof";return e.exports=n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports["default"]=e.exports,n(t)}e.exports=n,e.exports.__esModule=!0,e.exports["default"]=e.exports},cOkC:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.warning=i,t.note=o,t.resetWarned=a,t.call=s,t.warningOnce=l,t.noteOnce=c,t.default=void 0;var r={};function i(e,t){0}function o(e,t){0}function a(){r={}}function s(e,t,n){t||r[n]||(e(!1,n),r[n]=!0)}function l(e,t){s(i,e,t)}function c(e,t){s(o,e,t)}var u=l;t.default=u},cQyX:function(e,t,n){var r=n("gL7N")("iterator"),i=!1;try{var o=[7][r]();o["return"]=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},e(o)}catch(e){}return n}},ccE7:function(e,t,n){var r=n("Ojgd"),i=n("Jes0");e.exports=function(e){return function(t,n){var o,a,s=String(i(t)),l=r(n),c=s.length;return l<0||l>=c?e?"":void 0:(o=s.charCodeAt(l),o<55296||o>56319||l+1===c||(a=s.charCodeAt(l+1))<56320||a>57343?e?s.charAt(l):o:e?s.slice(l,l+2):a-56320+(o-55296<<10)+65536)}}},ck9s:function(e,t,n){"use strict";var r=n("ZFOp"),i=n("MgzW"),o=n("8jRI");function a(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[l(t,e),"[",r,"]"].join(""):[l(t,e),"[",l(r,e),"]=",l(n,e)].join("")};case"bracket":return function(t,n){return null===n?l(t,e):[l(t,e),"[]=",l(n,e)].join("")};default:return function(t,n){return null===n?l(t,e):[l(t,e),"=",l(n,e)].join("")}}}function s(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}function l(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function c(e){return Array.isArray(e)?e.sort():"object"===typeof e?c(Object.keys(e)).sort(function(e,t){return Number(e)-Number(t)}).map(function(t){return e[t]}):e}function u(e){var t=e.indexOf("?");return-1===t?"":e.slice(t+1)}function h(e,t){t=i({arrayFormat:"none"},t);var n=s(t),r=Object.create(null);return"string"!==typeof e?r:(e=e.trim().replace(/^[?#&]/,""),e?(e.split("&").forEach(function(e){var t=e.replace(/\+/g," ").split("="),i=t.shift(),a=t.length>0?t.join("="):void 0;a=void 0===a?null:o(a),n(o(i),a,r)}),Object.keys(r).sort().reduce(function(e,t){var n=r[t];return Boolean(n)&&"object"===typeof n&&!Array.isArray(n)?e[t]=c(n):e[t]=n,e},Object.create(null))):r)}t.extract=u,t.parse=h,t.stringify=function(e,t){var n={encode:!0,strict:!0,arrayFormat:"none"};t=i(n,t),!1===t.sort&&(t.sort=function(){});var r=a(t);return e?Object.keys(e).sort(t.sort).map(function(n){var i=e[n];if(void 0===i)return"";if(null===i)return l(n,t);if(Array.isArray(i)){var o=[];return i.slice().forEach(function(e){void 0!==e&&o.push(r(n,e,o.length))}),o.join("&")}return l(n,t)+"="+l(i,t)}).filter(function(e){return e.length>0}).join("&"):""},t.parseUrl=function(e,t){return{url:e.split("?")[0]||"",query:h(u(e),t)}}},cm6r:function(e,t,n){"use strict";n.d(t,"c",function(){return r}),n.d(t,"b",function(){return i}),n.d(t,"a",function(){return o}),n.d(t,"d",function(){return h}),n.d(t,"e",function(){return f});var r=12,i="sans-serif",o=r+"px "+i,a=20,s=100,l="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function c(e){var t={};if("undefined"===typeof JSON)return t;for(var n=0;n=0)c=l*n.length;else for(var f=0;f{this.props.dispatch({type:"user/ban"})}})}userFilter(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.props.dispatch({type:"user/addFilter",key:e,condition:t,value:n,clear:r})}orderFilter(e,t,n){this.props.dispatch({type:"order/addFilter",key:e,condition:t,value:n}),_.a.push("/order")}resetSecret(e){var t=this;p["a"].confirm({title:"重置安全信息",content:"确定要重置".concat(e.email,"的安全信息吗?"),onOk(){t.props.dispatch({type:"user/resetSecret",id:e.id})},okText:"确定",cancelText:"取消"})}render(){var e,t,n,r,o,p,m=this.props.user,b=m.users,x=m.pagination,_=m.fetchLoading,E=m.filter,M=this.props.serverGroup.groups,R=this.props.plan.plans,N=[{title:"ID",dataIndex:"id",key:"id",sorter:!0},{title:"邮箱",dataIndex:"email",key:"email",render:(e,t)=>{return g.a.createElement(f["a"],{placement:"top",title:t.t?"最后在线".concat(w()(1e3*t.t).format("YYYY-MM-DD HH:mm:ss")):"从未在线"},g.a.createElement(d["a"],{status:(new Date).getTime()/1e3-600>t.t?"default":"success"}),e)}},{title:"状态",dataIndex:"banned",key:"banned",sorter:!0,render:e=>{return g.a.createElement(h["a"],{color:e?"red":"green"},e?"封禁":"正常")}},{title:"订阅",dataIndex:"plan_name",key:"plan_id",sorter:!0,render:e=>{return e||"-"}},{title:"权限组",dataIndex:"group_id",key:"group_id",sorter:!0,render:e=>{var t=M.find(t=>t.id===e);return t?t.name:"-"}},{title:"已用(G)",dataIndex:"total_used",key:"total_used",sorter:!0,render:(e,t)=>{return g.a.createElement(h["a"],{color:parseFloat(e)>parseFloat(t.transfer_enable)?"red":"green"},e)}},{title:"流量(G)",dataIndex:"transfer_enable",key:"transfer_enable",sorter:!0,render:(e,t)=>{return e}},{title:"到期时间",dataIndex:"expired_at",key:"expired_at",sorter:!0,render:e=>{return g.a.createElement(h["a"],{color:e<(new Date).getTime()/1e3&&null!==e?"red":"green"},e?w()(1e3*e).format("YYYY/MM/DD HH:mm"):null===e?"长期有效":"-")}},{title:"余额",dataIndex:"balance",key:"balance",sorter:!0},{title:"佣金",dataIndex:"commission_balance",key:"commission_balance",sorter:!0},{title:"加入时间",dataIndex:"created_at",key:"created_at",sorter:!0,render:e=>{return w()(1e3*e).format("YYYY/MM/DD HH:mm")}},{title:"操作",dataIndex:"action",key:"action",align:"right",fixed:"right",render:(e,t,n)=>{return g.a.createElement(g.a.Fragment,null,g.a.createElement(l["a"],{trigger:"click",overlay:g.a.createElement(c["a"],null,g.a.createElement(c["a"].Item,{onContextMenu:e=>{e.stopPropagation()}},g.a.createElement(k["a"],{userId:t.id,key:t.id},g.a.createElement("a",null,g.a.createElement(u["a"],{type:"edit"})," 编辑"))),g.a.createElement(c["a"].Item,{onContextMenu:e=>{e.stopPropagation()}},g.a.createElement(S["a"],{email:t.email,key:t.email},g.a.createElement("a",null,g.a.createElement(u["a"],{type:"plus"})," 分配订单"))),g.a.createElement(c["a"].Item,null,g.a.createElement("a",{onClick:()=>Object(L["a"])(t.subscribe_url)},g.a.createElement(u["a"],{type:"copy"})," 复制订阅URL")),g.a.createElement(c["a"].Item,null,g.a.createElement("a",{onClick:()=>this.resetSecret(t)},g.a.createElement(u["a"],{type:"reload"})," 重置UUID及订阅URL")),g.a.createElement(c["a"].Item,{onClick:()=>this.orderFilter("user_id","=",t.id)},g.a.createElement("a",null,g.a.createElement(u["a"],{type:"account-book"})," TA的订单")),g.a.createElement(c["a"].Item,{onClick:()=>this.userFilter("invite_user_id","=",t.id,!0)},g.a.createElement("a",null,g.a.createElement(u["a"],{type:"usergroup-add"})," TA的邀请")),g.a.createElement(c["a"].Item,{onContextMenu:e=>{e.stopPropagation()}},g.a.createElement(j["a"],{userId:null===t||void 0===t?void 0:t.id,key:null===t||void 0===t?void 0:t.email},g.a.createElement("a",null,g.a.createElement(u["a"],{type:"solution"})," TA的流量记录"))))},g.a.createElement("a",{href:"javascript:void(0);"},"操作 ",g.a.createElement(u["a"],{type:"caret-down"}))))}}];return g.a.createElement(v["a"],i()({},this.props,{title:"用户管理"}),g.a.createElement(P["a"],{loading:_},g.a.createElement("div",{className:"block border-bottom"},g.a.createElement("div",{className:"bg-white"},g.a.createElement("div",{className:"v2board-table-action",style:{padding:15}},g.a.createElement(f["a"],{title:"Tips:可以使用过滤器过滤后再使用操作对过滤的用户进行操作。",placement:"right"},g.a.createElement(C["a"],null,g.a.createElement(O["a"],{key:E.length,value:E,onOk:e=>this.props.dispatch({type:"user/filter",filter:e}),keys:[{key:"email",title:"邮箱",condition:["模糊"]},{key:"id",title:"用户ID",condition:["=",">=",">","<","<="]},{key:"plan_id",title:"订阅",condition:["="],type:"select",options:R.map(e=>({key:e.name,value:e.id}))},{key:"transfer_enable",title:"流量",condition:[">=",">","<","<="]},{key:"d",title:"下行",condition:[">=",">","<","<="]},{key:"expired_at",title:"到期时间",condition:[">=",">","<","<="],type:"date"},{key:"uuid",title:"UUID",condition:["="]},{key:"token",title:"TOKEN",condition:["="]},{key:"banned",title:"账号状态",condition:["="],type:"select",options:[{key:"正常",value:0},{key:"封禁",value:1}]},{key:"invite_by_email",title:"邀请人邮箱",condition:["模糊"]},{key:"invite_user_id",title:"邀请人ID",condition:["="]},{key:"remarks",title:"备注",condition:["模糊"]},{key:"is_admin",title:"管理员",condition:["="],type:"select",options:[{key:"是",value:1},{key:"否",value:0}]}]},g.a.createElement(s["a"],{type:E.length>0?"primary":""},g.a.createElement(u["a"],{type:"filter"})," 过滤器")),g.a.createElement(l["a"],{overlay:g.a.createElement(c["a"],null,g.a.createElement(c["a"].Item,null,g.a.createElement("a",{onClick:()=>this.dumpCSV()},g.a.createElement(u["a"],{type:"file-excel"})," 导出CSV")),g.a.createElement(c["a"].Item,null,g.a.createElement(y["a"],null,g.a.createElement("a",null,g.a.createElement(u["a"],{type:"mail"})," 发送邮件"))),g.a.createElement(c["a"].Item,{disabled:!E.length},g.a.createElement("a",{disabled:!E.length,onClick:()=>this.ban()},g.a.createElement(u["a"],{type:"stop"})," 批量封禁")))},g.a.createElement(s["a"],null,g.a.createElement(u["a"],{type:"select"}),"操作")))),g.a.createElement(T["a"],null,g.a.createElement(s["a"],{className:"ml-2"},g.a.createElement(u["a"],{type:"user-add"})))),g.a.createElement(A["a"],{onContextMenu:e=>{this.record=e,this.forceUpdate()},className:"v2board-table",tableLayout:"auto",dataSource:b,pagination:a()({},x,{size:"small",showSizeChanger:!0,pageSizeOptions:[10,50,100,150]}),columns:N,scroll:{x:1500},onChange:(e,t,n)=>this.tableOnChange(e,n)},g.a.createElement("ul",{className:"ant-dropdown-menu ant-dropdown-menu-light ant-dropdown-menu-root ant-dropdown-menu-vertical"},g.a.createElement("li",{className:"ant-dropdown-menu-item"},g.a.createElement(k["a"],{userId:null===(e=this.record)||void 0===e?void 0:e.id,key:null===(t=this.record)||void 0===t?void 0:t.id},g.a.createElement("a",null,g.a.createElement(u["a"],{type:"edit"})," 编辑"))),g.a.createElement("li",{className:"ant-dropdown-menu-item"},g.a.createElement(S["a"],{email:null===(n=this.record)||void 0===n?void 0:n.email,key:null===(r=this.record)||void 0===r?void 0:r.email},g.a.createElement("a",null,g.a.createElement(u["a"],{type:"plus"})," 分配订单"))),g.a.createElement("li",{className:"ant-dropdown-menu-item"},g.a.createElement("a",{onClick:()=>{var e;return Object(L["a"])(null===(e=this.record)||void 0===e?void 0:e.subscribe_url)}},g.a.createElement(u["a"],{type:"copy"})," 复制订阅URL")),g.a.createElement("li",{className:"ant-dropdown-menu-item"},g.a.createElement("a",{style:{color:"#ff4d4f"},onClick:()=>this.resetSecret(this.record)},g.a.createElement(u["a"],{type:"reload"})," 重置UUID及订阅URL")),g.a.createElement("li",{className:"ant-dropdown-menu-item",onClick:()=>{var e;return this.orderFilter("user_id","=",null===(e=this.record)||void 0===e?void 0:e.id)}},g.a.createElement("a",null,g.a.createElement(u["a"],{type:"account-book"})," TA的订单")),g.a.createElement("li",{className:"ant-dropdown-menu-item",onClick:()=>{var e;return this.userFilter("invite_user_id","=",null===(e=this.record)||void 0===e?void 0:e.id,!0)}},g.a.createElement("a",null,g.a.createElement(u["a"],{type:"usergroup-add"})," TA的邀请")),g.a.createElement("li",{className:"ant-dropdown-menu-item"},g.a.createElement(j["a"],{userId:null===(o=this.record)||void 0===o?void 0:o.id,key:null===(p=this.record)||void 0===p?void 0:p.email},g.a.createElement("a",null,g.a.createElement(u["a"],{type:"solution"})," TA的流量记录")))))))))}}t["default"]=Object(E["c"])(e=>{var t=e.user,n=e.serverGroup,r=e.plan;return{user:t,serverGroup:n,plan:r}})(M)},dI71:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("s4An");function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Object(r["a"])(e,t)}},dX6P:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un"),a=n("3a4m"),s=n.n(a);function l(){l=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}t["default"]={name:"auth",state:{},reducers:{save(e,t){var n=t.payload;return i()({},e,n)}},effects:{login(e,t){var n=e.action,r=t.put;return l().mark(function e(){var t;return l().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,r({type:"save",payload:{loginLoading:!0}});case 2:return e.next=4,Object(o["b"])("/passport/auth/login",n);case 4:return t=e.sent,e.next=7,r({type:"save",payload:{loginLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:if(t.data.is_admin){e.next=11;break}return e.abrupt("return");case 11:s.a.push("/dashboard");case 12:case"end":return e.stop()}},e)})()},register(e){var t=e.action,n=e.complete;return l().mark(function e(){var r;return l().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["a"])("/passport/auth/register",t);case 2:r=e.sent,r&&n(r);case 4:case"end":return e.stop()}},e)})()}}}},dcFJ:function(e,t,n){"use strict";var r=n("wHrr"),i=n("WGNW"),o=n("il4q"),a=n("69SZ"),s=n("ULMT"),l=n("OsVd"),c=n("aSE1"),u=n("BnQZ");i(i.S+i.F*!n("cQyX")(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,i,h,f=o(e),d="function"==typeof this?this:Array,p=arguments.length,m=p>1?arguments[1]:void 0,g=void 0!==m,v=0,y=u(f);if(g&&(m=r(m,p>2?arguments[2]:void 0,2)),void 0==y||d==Array&&s(y))for(t=l(f.length),n=new d(t);t>v;v++)c(n,v,g?m(f[v],v):f[v]);else for(h=y.call(f),n=new d;!(i=h.next()).done;v++)c(n,v,g?a(h,m,[i.value,v],!0):i.value);return n.length=v,n}})},dl0q:function(e,t,n){n("Zxgi")("observable")},dplF:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var r=i(n("i8i4"));function i(e){return e&&e.__esModule?e:{default:e}}function o(e){return e instanceof HTMLElement?e:r.default.findDOMNode(e)}},dqUG:function(e,t,n){"use strict";n.d(t,"c",function(){return w}),n.d(t,"b",function(){return _});var r=n("mrSG"),i=n("1AkM"),o=n("3U8f"),a=n("bYtY"),s=n("6GrX"),l=n("Dagg"),c=n("x6Kt"),u=n("mFDi"),h=n("Gev7"),f=n("cm6r"),d={fill:"#000"},p=2,m={style:Object(a["i"])({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},h["a"].style)},g=function(e){function t(t){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=d,n.attr(t),n}return Object(r["a"])(t,e),t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var t=0;t0,$=null!=e.width&&("truncate"===e.overflow||"break"===e.overflow||"breakAll"===e.overflow),F=a.calculatedLineHeight,B=0;B=0&&(j=_[P],"right"===j.align))this._placeToken(j,e,S,v,A,"right",b),k-=j.width,A-=j.width,P--;O+=(r-(O-g)-(y-A)-k)/2;while(C<=P)j=_[C],this._placeToken(j,e,S,v,O+j.width/2,"center",b),O+=j.width,C++;v+=S}},t.prototype._placeToken=function(e,t,n,r,i,l,c){var h=t.rich[e.styleName]||{};h.text=e.text;var d=e.verticalAlign,m=r+n/2;"top"===d?m=r+e.height/2:"bottom"===d&&(m=r+n-e.height/2);var g=!e.isLineHolder&&L(h);g&&this._renderBackground(h,t,"right"===l?i-e.width:"center"===l?i-e.width/2:i,m-e.height/2,e.width,e.height);var v=!!h.backgroundColor,y=e.textPadding;y&&(i=O(i,l,y),m-=e.height/2-y[0]-e.innerHeight/2);var b=this._getOrCreateChild(o["a"]),w=b.createStyle();b.useStyle(w);var _=this._defaultStyle,E=!1,S=0,T=C("fill"in h?h.fill:"fill"in t?t.fill:(E=!0,_.fill)),A=k("stroke"in h?h.stroke:"stroke"in t?t.stroke:v||c||_.autoStroke&&!E?null:(S=p,_.stroke)),P=h.textShadowBlur>0||t.textShadowBlur>0;w.text=e.text,w.x=i,w.y=m,P&&(w.shadowBlur=h.textShadowBlur||t.textShadowBlur||0,w.shadowColor=h.textShadowColor||t.textShadowColor||"transparent",w.shadowOffsetX=h.textShadowOffsetX||t.textShadowOffsetX||0,w.shadowOffsetY=h.textShadowOffsetY||t.textShadowOffsetY||0),w.textAlign=l,w.textBaseline="middle",w.font=e.font||f["a"],w.opacity=Object(a["L"])(h.opacity,t.opacity,1),x(w,h),A&&(w.lineWidth=Object(a["L"])(h.lineWidth,t.lineWidth,S),w.lineDash=Object(a["K"])(h.lineDash,t.lineDash),w.lineDashOffset=t.lineDashOffset||0,w.stroke=A),T&&(w.fill=T);var j=e.contentWidth,M=e.contentHeight;b.setBoundingRect(new u["a"](Object(s["a"])(w.x,j,w.textAlign),Object(s["b"])(w.y,M,w.textBaseline),j,M))},t.prototype._renderBackground=function(e,t,n,r,i,o){var s,u,h=e.backgroundColor,f=e.borderWidth,d=e.borderColor,p=h&&h.image,m=h&&!p,g=e.borderRadius,v=this;if(m||e.lineHeight||f&&d){s=this._getOrCreateChild(c["a"]),s.useStyle(s.createStyle()),s.style.fill=null;var y=s.shape;y.x=n,y.y=r,y.width=i,y.height=o,y.r=g,s.dirtyShape()}if(m){var b=s.style;b.fill=h||null,b.fillOpacity=Object(a["K"])(e.fillOpacity,1)}else if(p){u=this._getOrCreateChild(l["a"]),u.onload=function(){v.dirtyStyle()};var w=u.style;w.image=h.image,w.x=n,w.y=r,w.width=i,w.height=o}if(f&&d){b=s.style;b.lineWidth=f,b.stroke=d,b.strokeOpacity=Object(a["K"])(e.strokeOpacity,1),b.lineDash=e.borderDash,b.lineDashOffset=e.borderDashOffset||0,s.strokeContainThreshold=0,s.hasFill()&&s.hasStroke()&&(b.strokeFirst=!0,b.lineWidth*=2)}var x=(s||u).style;x.shadowBlur=e.shadowBlur||0,x.shadowColor=e.shadowColor||"transparent",x.shadowOffsetX=e.shadowOffsetX||0,x.shadowOffsetY=e.shadowOffsetY||0,x.opacity=Object(a["L"])(e.opacity,t.opacity,1)},t.makeFont=function(e){var t="";return _(e)&&(t=[e.fontStyle,e.fontWeight,w(e.fontSize),e.fontFamily||"sans-serif"].join(" ")),t&&Object(a["O"])(t)||e.textFont||e.font},t}(h["c"]),v={left:!0,right:1,center:1},y={top:1,bottom:1,middle:1},b=["fontStyle","fontWeight","fontSize","fontFamily"];function w(e){return"string"!==typeof e||-1===e.indexOf("px")&&-1===e.indexOf("rem")&&-1===e.indexOf("em")?isNaN(+e)?f["c"]+"px":e+"px":e}function x(e,t){for(var n=0;n=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var l={tickets:[],fetchLoading:!1,ticket:{message:[]},pagination:{pageSize:10,current:1},filter:{status:0},replyLoading:!1};t["default"]={name:"ticket",state:o()({},l),reducers:{setState(e,t){var n=t.payload;return o()({},e,n)}},effects:{fetch(e,t){var n=t.put,r=t.select;return s().mark(function e(){var t,i,l,c;return s().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,r(e=>e.ticket);case 2:return t=e.sent,i=t.pagination,l=t.filter,e.next=7,n({type:"setState",payload:{fetchLoading:!0}});case 7:return e.next=9,Object(a["a"])("/"+window.settings.secure_path+"/ticket/fetch",o()({},i,l));case 9:return c=e.sent,e.next=12,n({type:"setState",payload:{fetchLoading:!1}});case 12:if(200===c.code){e.next=14;break}return e.abrupt("return");case 14:return e.next=16,n({type:"setState",payload:{tickets:c.data,pagination:o()({},i,{total:c.total})}});case 16:case"end":return e.stop()}},e)})()},fetchById(e,t){var n=e.id,r=t.put,i=t.select;return s().mark(function e(){var t,o,l;return s().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(a["a"])("/"+window.settings.secure_path+"/ticket/fetch",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"setState",payload:{ticket:t.data}});case 7:return e.next=9,i(e=>e.user);case 9:if(o=e.sent,l=o.user,!l.id){e.next=13;break}return e.abrupt("return");case 13:return e.next=15,r({type:"user/getUserInfoById",id:t.data.user_id});case 15:case"end":return e.stop()}},e)})()},close(e,t){var n=e.id,r=t.put;return s().mark(function e(){var t;return s().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(a["b"])("/"+window.settings.secure_path+"/ticket/close",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},reply(e,t){var n=e.id,i=e.msg,o=e.callback,l=t.put;return s().mark(function e(){var t;return s().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return r["a"].loading("发送中"),e.next=3,l({type:"setState",payload:{replyLoading:!0}});case 3:return e.next=5,Object(a["b"])("/"+window.settings.secure_path+"/ticket/reply",{id:n,message:i});case 5:return t=e.sent,e.next=8,l({type:"setState",payload:{replyLoading:!1}});case 8:if(r["a"].destroy(),200===t.code){e.next=11;break}return e.abrupt("return");case 11:return e.next=13,l({type:"fetchById",id:n});case 13:"function"===typeof o&&o();case 14:case"end":return e.stop()}},e)})()},filter(e,t){var n=e.pagination,r=e.filter,i=t.put,a=t.select;return s().mark(function e(){var t;return s().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,a(e=>e.ticket);case 2:return t=e.sent,e.next=5,i({type:"setState",payload:{pagination:o()({},t.pagination,n),filter:o()({},t.filter,r)}});case 5:return e.next=7,i({type:"fetch"});case 7:case"end":return e.stop()}},e)})()}}}},e6w7:function(e,t){t.f=Object.getOwnPropertySymbols},"eA/Y":function(e,t,n){"use strict";e.exports=o;var r=n("J78i"),i=Object.create(n("Onz0"));function o(e){if(!(this instanceof o))return new o(e);r.call(this,e)}i.inherits=n("P7XM"),i.inherits(o,r),o.prototype._transform=function(e,t,n){n(null,e)}},eDIo:function(e,t,n){"use strict";var r=n("q1tI"),i=n.n(r),o=n("17x9"),a=n.n(o),s=n("i8i4"),l=n.n(s),c=n("uciX"),u=n("TSYQ"),h=n.n(u),f={adjustX:1,adjustY:1},d=[0,0],p={topLeft:{points:["bl","tl"],overflow:f,offset:[0,-4],targetOffset:d},topCenter:{points:["bc","tc"],overflow:f,offset:[0,-4],targetOffset:d},topRight:{points:["br","tr"],overflow:f,offset:[0,-4],targetOffset:d},bottomLeft:{points:["tl","bl"],overflow:f,offset:[0,4],targetOffset:d},bottomCenter:{points:["tc","bc"],overflow:f,offset:[0,4],targetOffset:d},bottomRight:{points:["tr","br"],overflow:f,offset:[0,4],targetOffset:d}},m=p,g=n("VCL8"),v=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function w(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function x(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var _=function(e){function t(n){b(this,t);var r=w(this,e.call(this,n));return E.call(r),r.state="visible"in n?{visible:n.visible}:{visible:n.defaultVisible},r}return x(t,e),t.getDerivedStateFromProps=function(e){return"visible"in e?{visible:e.visible}:null},t.prototype.getOverlayElement=function(){var e=this.props.overlay,t=void 0;return t="function"===typeof e?e():e,t},t.prototype.getMenuElementOrLambda=function(){var e=this.props.overlay;return"function"===typeof e?this.getMenuElement:this.getMenuElement()},t.prototype.getPopupDomNode=function(){return this.trigger.getPopupDomNode()},t.prototype.getOpenClassName=function(){var e=this.props,t=e.openClassName,n=e.prefixCls;return void 0!==t?t:n+"-open"},t.prototype.renderChildren=function(){var e=this.props.children,t=this.state.visible,n=e.props?e.props:{},i=h()(n.className,this.getOpenClassName());return t&&e?Object(r["cloneElement"])(e,{className:i}):e},t.prototype.render=function(){var e=this.props,t=e.prefixCls,n=e.transitionName,r=e.animation,o=e.align,a=e.placement,s=e.getPopupContainer,l=e.showAction,u=e.hideAction,h=e.overlayClassName,f=e.overlayStyle,d=e.trigger,p=y(e,["prefixCls","transitionName","animation","align","placement","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","trigger"]),g=u;return g||-1===d.indexOf("contextMenu")||(g=["click"]),i.a.createElement(c["a"],v({},p,{prefixCls:t,ref:this.saveTrigger,popupClassName:h,popupStyle:f,builtinPlacements:m,action:d,showAction:l,hideAction:g||[],popupPlacement:a,popupAlign:o,popupTransitionName:n,popupAnimation:r,popupVisible:this.state.visible,afterPopupVisibleChange:this.afterVisibleChange,popup:this.getMenuElementOrLambda(),onPopupVisibleChange:this.onVisibleChange,getPopupContainer:s}),this.renderChildren())},t}(r["Component"]);_.propTypes={minOverlayWidthMatchTrigger:a.a.bool,onVisibleChange:a.a.func,onOverlayClick:a.a.func,prefixCls:a.a.string,children:a.a.any,transitionName:a.a.string,overlayClassName:a.a.string,openClassName:a.a.string,animation:a.a.any,align:a.a.object,overlayStyle:a.a.object,placement:a.a.string,overlay:a.a.oneOfType([a.a.node,a.a.func]),trigger:a.a.array,alignPoint:a.a.bool,showAction:a.a.array,hideAction:a.a.array,getPopupContainer:a.a.func,visible:a.a.bool,defaultVisible:a.a.bool},_.defaultProps={prefixCls:"rc-dropdown",trigger:["hover"],showAction:[],overlayClassName:"",overlayStyle:{},defaultVisible:!1,onVisibleChange:function(){},placement:"bottomLeft"};var E=function(){var e=this;this.onClick=function(t){var n=e.props,r=e.getOverlayElement().props;"visible"in n||e.setState({visible:!1}),n.onOverlayClick&&n.onOverlayClick(t),r.onClick&&r.onClick(t)},this.onVisibleChange=function(t){var n=e.props;"visible"in n||e.setState({visible:t}),n.onVisibleChange(t)},this.getMinOverlayWidthMatchTrigger=function(){var t=e.props,n=t.minOverlayWidthMatchTrigger,r=t.alignPoint;return"minOverlayWidthMatchTrigger"in e.props?n:!r},this.getMenuElement=function(){var t=e.props.prefixCls,n=e.getOverlayElement(),r={prefixCls:t+"-menu",onClick:e.onClick};return"string"===typeof n.type&&delete r.prefixCls,i.a.cloneElement(n,r)},this.afterVisibleChange=function(t){if(t&&e.getMinOverlayWidthMatchTrigger()){var n=e.getPopupDomNode(),r=l.a.findDOMNode(e);r&&n&&r.offsetWidth>n.offsetWidth&&(n.style.minWidth=r.offsetWidth+"px",e.trigger&&e.trigger._component&&e.trigger._component.alignInstance&&e.trigger._component.alignInstance.forceAlign())}},this.saveTrigger=function(t){e.trigger=t}};Object(g["polyfill"])(_);var S=_;t["a"]=S},eGJ5:function(e,t,n){"use strict";var r=n("QbLZ"),i=n.n(r),o=n("q1tI"),a=n("iCc5"),s=n.n(a),l=n("FYw3"),c=n.n(l),u=n("mRg0"),h=n.n(u),f=n("i8i4"),d=n("4IlW"),p=n("l4aY"),m=n("MFj2"),g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);ithis.setState({visible:!1})})}show(){this.props.dispatch({type:"payment/getPaymentMethods",complete:e=>{this.setState({visible:!0,paymentMethods:e,selectPaymentMethod:this.state.submit.payment||e[0]},()=>{this.onSelectPaymentMethod(this.state.submit.payment||e[0])})}})}onSelectPaymentMethod(e){this.props.dispatch({type:"payment/getPaymentForm",payment:e,id:this.state.submit.id,complete:t=>{this.setState({form:t,selectPaymentMethod:e})}})}configOnChange(e,t){var n=this.state.config;n[e]=t,this.setState({config:n})}submitOnChange(e,t){var n=this.state.submit;n[e]=t,this.setState({submit:n})}render(){var e=this.props.payment.fetchLoading,t=this.state,n=t.paymentMethods,r=t.selectPaymentMethod,i=t.form,o=t.config,a=t.submit;return d.a.createElement(d.a.Fragment,null,d.a.cloneElement(this.props.children,{onClick:()=>this.show()}),d.a.createElement(s["a"],{title:this.state.submit.id?"编辑支付方式":"添加支付方式",visible:this.state.visible,onCancel:()=>this.setState({visible:!1}),onOk:()=>this.save(),okText:this.state.submit.id?"保存":"添加",okButtonProps:{loading:e},cancelText:"取消"},d.a.createElement("div",null,d.a.createElement("div",{className:"form-group"},d.a.createElement("label",{for:"example-text-input-alt"},"显示名称"),d.a.createElement(v["a"],{placeholder:"用于前端显示使用",defaultValue:a.name,onChange:e=>this.submitOnChange("name",e.target.value)})),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",{htmlFor:"example-text-input-alt"},"图标URL(选填)"),d.a.createElement(v["a"],{placeholder:"用于前端显示使用(https://x.com/icon.svg)",defaultValue:a.icon,onChange:e=>this.submitOnChange("icon",e.target.value)})),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",{htmlFor:"example-text-input-alt"},"自定义通知域名(选填)"),d.a.createElement(v["a"],{placeholder:"网关的通知将会发送到该域名(https://x.com)",defaultValue:a.notify_domain,onChange:e=>this.submitOnChange("notify_domain",e.target.value)})),d.a.createElement("div",{className:"row"},d.a.createElement("div",{className:"col-6"},d.a.createElement("div",{className:"form-group"},d.a.createElement("label",{htmlFor:"example-text-input-alt"},"百分比手续费(选填)"),d.a.createElement(v["a"],{suffix:"%",type:"number",placeholder:"在订单金额基础上附加手续费",defaultValue:a.handling_fee_percent,onChange:e=>this.submitOnChange("handling_fee_percent",e.target.value)}))),d.a.createElement("div",{className:"col-6"},d.a.createElement("div",{className:"form-group"},d.a.createElement("label",{htmlFor:"example-text-input-alt"},"固定手续费(选填)"),d.a.createElement(v["a"],{type:"number",placeholder:"在订单金额基础上附加手续费",defaultValue:a.handling_fee_fixed/100,onChange:e=>this.submitOnChange("handling_fee_fixed",100*e.target.value)})))),d.a.createElement("div",{className:"form-group"},d.a.createElement("label",{for:"example-text-input-alt"},"接口文件"),d.a.createElement("div",null,d.a.createElement(g["a"],{style:{width:"100%"},defaultValue:r,onChange:e=>this.onSelectPaymentMethod(e)},n.map(e=>{return d.a.createElement(g["a"].Option,{value:e},e)})))),Object.keys(i).map(e=>{return d.a.createElement("div",{className:"form-group"},d.a.createElement("label",{for:"example-text-input-alt"},i[e].label),"input"===i[e].type&&d.a.createElement(v["a"],{placeholder:i[e].description,defaultValue:o[e]||i[e].value,onChange:t=>this.configOnChange(e,t.target.value)}))}),"MGate"===r&&d.a.createElement("div",{className:"alert alert-warning mb-0",role:"alert"},d.a.createElement("p",{className:"mb-0"},"MGate TG@nulledsan")))))}}var x=Object(m["c"])(e=>{var t=e.payment;return{payment:t}})(w),_=n("v32e"),E=n("qqou");class S extends d.a.Component{constructor(e){super(e),this.state={visible:!1,submit:{show:0}}}componentDidMount(){this.props.dispatch({type:"payment/fetch"})}save(e,t){this.props.dispatch({type:"payment/save",params:{id:e,enable:t}})}show(e){this.props.dispatch({type:"payment/show",id:e})}render(){var e=this,t=this.props.payment,n=t.payments,r=t.fetchLoading,f=[{title:"ID",dataIndex:"id",key:"id",render:e=>{return d.a.createElement(d.a.Fragment,null,d.a.createElement(h["a"],{type:"menu",style:{cursor:"move"}})," ",e)}},{title:"启用",dataIndex:"enable",key:"enable",render:(e,t)=>d.a.createElement(u["a"],{checked:parseInt(e),size:"small",onChange:e=>this.show(t.id)})},{title:"显示名称",dataIndex:"name",key:"name"},{title:"支付接口",dataIndex:"payment",key:"payment"},{title:d.a.createElement("span",null,"通知地址 ",d.a.createElement(c["a"],{placement:"top",title:"支付网关将会把数据通知到本地址,请通过防火墙放行本地址。"},d.a.createElement(h["a"],{type:"question-circle"}))),dataIndex:"notify_url",key:"notify_url"},{title:"操作",dataIndex:"action",key:"action",align:"right",fixed:"right",render:(e,t)=>d.a.createElement(d.a.Fragment,null,d.a.createElement(x,{key:t.id,record:t},d.a.createElement("a",{href:"javascript:void(0);"},"编辑")),d.a.createElement(l["a"],{type:"vertical"}),d.a.createElement("a",{href:"javascript:void(0)",onClick:()=>{s["a"].confirm({title:"警告",content:"确定要删除该条项目吗?",onOk:()=>this.props.dispatch({type:"payment/drop",id:t.id}),okText:"确定",cancelText:"取消"})}},"删除"))}];return d.a.createElement(p["a"],i()({},this.props,{title:"支付配置"}),d.a.createElement("div",{className:"d-flex justify-content-between align-items-center"}),d.a.createElement(_["a"],{loading:r},d.a.createElement("div",{className:"block block-rounded"},d.a.createElement("div",{className:"bg-white"},d.a.createElement("div",{style:{padding:15}},d.a.createElement(x,{key:0},d.a.createElement(a["a"],null,d.a.createElement(h["a"],{type:"plus"})," 添加支付方式"))),d.a.createElement(E["a"],{onDragEnd:(t,n)=>{e.props.dispatch({type:"payment/sort",fromIndex:t,toIndex:n})},nodeSelector:"tr",handleSelector:"i"},d.a.createElement(o["a"],{tableLayout:"auto",dataSource:n,columns:f,pagination:!1,scroll:{x:1300}}))))))}}t["default"]=Object(m["c"])(e=>{var t=e.payment;return{payment:t}})(S)},eOCx:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un"),a=n("wd/R"),s=n.n(a);function l(){l=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var c={coupons:[],fetchLoading:!1,saveLoading:!1,pagination:{pageSize:10,current:1},sort:{}};t["default"]={name:"coupon",state:i()({},c),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{fetch(e,t){var n=t.put,r=t.select;return l().mark(function e(){var t,a;return l().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,r(e=>e.coupon);case 2:return t=e.sent,e.next=5,n({type:"setState",payload:{fetchLoading:!0}});case 5:return e.next=7,Object(o["a"])("/"+window.settings.secure_path+"/coupon/fetch",i()({},t.pagination,t.sort));case 7:return a=e.sent,e.next=10,n({type:"setState",payload:{fetchLoading:!1}});case 10:if(200===a.code){e.next=12;break}return e.abrupt("return");case 12:return a.data.forEach(e=>{1===e.type&&(e.value=e.value/100)}),e.next=15,n({type:"setState",payload:{coupons:a.data,pagination:i()({},t.pagination,{total:a.total})}});case 15:case"end":return e.stop()}},e)})()},generate(e,t){var n=e.params,r=e.callback,i=t.put;return l().mark(function e(){var t,a,c,u;return l().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{saveLoading:!0}});case 2:return 1===n.type&&(n.value=100*n.value),e.next=5,Object(o["b"])("/"+window.settings.secure_path+"/coupon/generate",n);case 5:return t=e.sent,e.next=8,i({type:"setState",payload:{saveLoading:!1}});case 8:if(200===t.code){e.next=10;break}return e.abrupt("return");case 10:return n.generate_count&&(a=new Blob([t.buffer],{type:"text/plain,charset=UTF-8"}),c=window.URL.createObjectURL(a),u=document.createElement("a"),u.href=c,u.style.display="none",u.download="COUPON ".concat(s()().format("YYYY-MM-DD HH:mm:ss"),".csv"),u.click(),window.URL.revokeObjectURL(c)),e.next=13,i({type:"fetch"});case 13:"function"===typeof r&&r();case 14:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return l().mark(function e(){var t;return l().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/coupon/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},show(e,t){var n=e.id,r=t.put;return l().mark(function e(){var t;return l().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/coupon/show",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},changeTable(e,t){var n=e.pagination,r=e.sort,o=t.select,a=t.put;return l().mark(function e(){var t;return l().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,o(e=>e.coupon);case 2:return t=e.sent,e.next=5,a({type:"setState",payload:{pagination:i()({},t.pagination,n),sort:r}});case 5:return e.next=7,a({type:"fetch"});case 7:case"end":return e.stop()}},e)})()}}}},eUtF:function(e,t,n){e.exports=!n("jmDH")&&!n("KUxP")(function(){return 7!=Object.defineProperty(n("Hsns")("div"),"a",{get:function(){return 7}}).a})},eaoh:function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},einR:function(e,t,n){"use strict";(function(e){n.d(t,"p",function(){return s}),n.d(t,"j",function(){return c}),n.d(t,"q",function(){return h}),n.d(t,"e",function(){return f}),n.d(t,"a",function(){return d}),n.d(t,"b",function(){return p}),n.d(t,"i",function(){return m}),n.d(t,"h",function(){return g}),n.d(t,"l",function(){return v}),n.d(t,"n",function(){return b}),n.d(t,"m",function(){return w}),n.d(t,"o",function(){return x}),n.d(t,"k",function(){return _}),n.d(t,"d",function(){return E}),n.d(t,"f",function(){return S}),n.d(t,"g",function(){return k}),n.d(t,"c",function(){return C});var r=n("bYtY"),i=n("Qe9p"),o=n("ItGF"),a=Math.round;function s(e){var t;if(e&&"transparent"!==e){if("string"===typeof e&&e.indexOf("rgba")>-1){var n=Object(i["d"])(e);n&&(e="rgb("+n[0]+","+n[1]+","+n[2]+")",t=n[3])}}else e="none";return{color:e,opacity:null==t?1:t}}var l=1e-4;function c(e){return e-l}function u(e){return a(1e3*e)/1e3}function h(e){return a(1e4*e)/1e4}function f(e){return"matrix("+u(e[0])+","+u(e[1])+","+u(e[2])+","+u(e[3])+","+h(e[4])+","+h(e[5])+")"}var d={left:"start",right:"end",center:"middle",middle:"middle"};function p(e,t,n){return"top"===n?e+=t/2:"bottom"===n&&(e-=t/2),e}function m(e){return e&&(e.shadowBlur||e.shadowOffsetX||e.shadowOffsetY)}function g(e){var t=e.style,n=e.getGlobalScale();return[t.shadowColor,(t.shadowBlur||0).toFixed(2),(t.shadowOffsetX||0).toFixed(2),(t.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}function v(e){return e&&!!e.image}function y(e){return e&&!!e.svgElement}function b(e){return v(e)||y(e)}function w(e){return"linear"===e.type}function x(e){return"radial"===e.type}function _(e){return e&&("linear"===e.type||"radial"===e.type)}function E(e){return"url(#"+e+")"}function S(e){var t=e.getGlobalScale(),n=Math.max(t[0],t[1]);return Math.max(Math.ceil(Math.log(n)/Math.log(10)),1)}function k(e){var t=e.x||0,n=e.y||0,i=(e.rotation||0)*r["a"],o=Object(r["K"])(e.scaleX,1),s=Object(r["K"])(e.scaleY,1),l=e.skewX||0,c=e.skewY||0,u=[];return(t||n)&&u.push("translate("+t+"px,"+n+"px)"),i&&u.push("rotate("+i+")"),1===o&&1===s||u.push("scale("+o+","+s+")"),(l||c)&&u.push("skew("+a(l*r["a"])+"deg, "+a(c*r["a"])+"deg)"),u.join(" ")}var C=function(){return o["a"].hasGlobalWindow&&Object(r["u"])(window.btoa)?function(e){return window.btoa(unescape(e))}:"undefined"!==typeof e?function(t){return e.from(t).toString("base64")}:function(e){return null}}()}).call(this,n("tjlA").Buffer)},er1Y:function(e,t,n){var r=n("WGNW"),i=n("Zgoe"),o=n("OeOC"),a=n("15BC"),s=n("aSE1");r(r.S,"Object",{getOwnPropertyDescriptors:function(e){var t,n,r=o(e),l=a.f,c=i(r),u={},h=0;while(c.length>h)n=l(r,t=c[h++]),void 0!==n&&s(u,t,n);return u}})},fDcq:function(e,t,n){"use strict";var r=n("iCc5"),i=n.n(r),o=n("FYw3"),a=n.n(o),s=n("mRg0"),l=n.n(s),c=n("q1tI"),u=n.n(c),h={DATE_ROW_COUNT:6,DATE_COL_COUNT:7},f=n("wd/R"),d=n.n(f),p=function(e){function t(){return i()(this,t),a()(this,e.apply(this,arguments))}return l()(t,e),t.prototype.render=function(){for(var e=this.props,t=e.value,n=t.localeData(),r=e.prefixCls,i=[],o=[],a=n.firstDayOfWeek(),s=void 0,l=d()(),c=0;ct.year()?1:e.year()===t.year()&&e.month()>t.month()}function S(e){return"rc-calendar-"+e.year()+"-"+e.month()+"-"+e.date()}var k=function(e){function t(){return i()(this,t),a()(this,e.apply(this,arguments))}return l()(t,e),t.prototype.render=function(){var e=this.props,t=e.contentRender,n=e.prefixCls,r=e.selectedValue,i=e.value,o=e.showWeekNumber,a=e.dateRender,s=e.disabledDate,l=e.hoverValue,c=void 0,f=void 0,d=void 0,p=[],m=Object(w["e"])(i),g=n+"-cell",v=n+"-week-number-cell",y=n+"-date",k=n+"-today",C=n+"-selected-day",O=n+"-selected-date",T=n+"-selected-start-date",L=n+"-selected-end-date",A=n+"-in-range-cell",P=n+"-last-month-cell",j=n+"-next-month-btn-day",M=n+"-disabled-cell",R=n+"-disabled-cell-first-of-row",N=n+"-disabled-cell-last-of-row",D=n+"-last-day-of-month",I=i.clone();I.date(1);var $=I.day(),F=($+7-i.localeData().firstDayOfWeek())%7,B=I.clone();B.add(0-F,"days");var V=0;for(c=0;c0&&(Y=p[V-1]);var X=g,Q=!1,Z=!1;x(d,m)&&(X+=" "+k,U=!0);var J=_(d,i),ee=E(d,i);if(r&&Array.isArray(r)){var te=l.length?l:r;if(!J&&!ee){var ne=te[0],re=te[1];ne&&x(d,ne)&&(Z=!0,G=!0,X+=" "+T),(ne||re)&&(x(d,re)?(Z=!0,G=!0,X+=" "+L):(null!==ne&&void 0!==ne||!d.isBefore(re,"day"))&&(null!==re&&void 0!==re||!d.isAfter(ne,"day"))?d.isAfter(ne,"day")&&d.isBefore(re,"day")&&(X+=" "+A):X+=" "+A)}}else x(d,i)&&(Z=!0,G=!0);x(d,r)&&(X+=" "+O),J&&(X+=" "+P),ee&&(X+=" "+j),d.clone().endOf("month").date()===d.date()&&(X+=" "+D),s&&s(d,i)&&(Q=!0,Y&&s(Y,i)||(X+=" "+R),K&&s(K,i)||(X+=" "+N)),Z&&(X+=" "+C),Q&&(X+=" "+M);var ie=void 0;if(a)ie=a(d,i);else{var oe=t?t(d,i):d.date();ie=u.a.createElement("div",{key:S(d),className:y,"aria-selected":Z,"aria-disabled":Q},oe)}q.push(u.a.createElement("td",{key:V,onClick:Q?void 0:e.onSelect.bind(null,d),onMouseEnter:Q?void 0:e.onDayHover&&e.onDayHover.bind(null,d)||void 0,role:"gridcell",title:Object(w["d"])(d),className:X},ie)),V++}W.push(u.a.createElement("tr",{key:c,role:"row",className:b()((H={},H[n+"-current-week"]=U,H[n+"-active-week"]=G,H))},z,q))}return u.a.createElement("tbody",{className:n+"-tbody"},W)},t}(u.a.Component);k.propTypes={contentRender:v.a.func,dateRender:v.a.func,disabledDate:v.a.func,prefixCls:v.a.string,selectedValue:v.a.oneOfType([v.a.object,v.a.arrayOf(v.a.object)]),value:v.a.object,hoverValue:v.a.any,showWeekNumber:v.a.bool},k.defaultProps={hoverValue:[]};var C=k,O=function(e){function t(){return i()(this,t),a()(this,e.apply(this,arguments))}return l()(t,e),t.prototype.render=function(){var e=this.props,t=e.prefixCls;return u.a.createElement("table",{className:t+"-table",cellSpacing:"0",role:"grid"},u.a.createElement(m,e),u.a.createElement(C,e))},t}(u.a.Component);t["a"]=O},fHKQ:function(e,t,n){var r=n("8Z/V"),i=n("Igga"),o=n("OeOC"),a=n("LsAW").f;e.exports=function(e){return function(t){var n,s=o(t),l=i(s),c=l.length,u=0,h=[];while(c>u)n=l[u++],r&&!a.call(s,n)||h.push(e?[n,s[n]]:s[n]);return h}}},fKCf:function(e,t){e.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\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-\u2E4E\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[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},"fKm+":function(e,t,n){"use strict";var r=n("2Os2"),i=n("Jc7p"),o="WeakSet";n("nWMQ")(o,function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(i(this,o),e,!0)}},r,!1,!0)},fNJh:function(e,t,n){"use strict";var r=n("JbWX"),i=n("aGJD"),o=n("XUei"),a=n("Zy53");function s(e,t,n){var r="string"===typeof e?s.__parse(e):e;if(!r||"messageFormatPattern"!==r.type)throw new TypeError("A message must be provided as a String or AST.");n=this._mergeFormats(s.formats,n),i.defineProperty(this,"_locale",{value:this._resolveLocale(t)});var o=this._findPluralRuleFunction(this._locale),a=this._compilePattern(r,t,n,o),l=this;this.format=function(t){try{return l._format(a,t)}catch(t){throw t.variableId?new Error("The intl string context variable '"+t.variableId+"' was not provided to the string '"+e+"'"):t}}}t["default"]=s,i.defineProperty(s,"formats",{enumerable:!0,value:{number:{currency:{style:"currency"},percent:{style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}}}),i.defineProperty(s,"__localeData__",{value:i.objCreate(null)}),i.defineProperty(s,"__addLocaleData",{value:function(e){if(!e||!e.locale)throw new Error("Locale data provided to IntlMessageFormat is missing a `locale` property");s.__localeData__[e.locale.toLowerCase()]=e}}),i.defineProperty(s,"__parse",{value:a["default"].parse}),i.defineProperty(s,"defaultLocale",{enumerable:!0,writable:!0,value:void 0}),s.prototype.resolvedOptions=function(){return{locale:this._locale}},s.prototype._compilePattern=function(e,t,n,r){var i=new o["default"](t,n,r);return i.compile(e)},s.prototype._findPluralRuleFunction=function(e){var t=s.__localeData__,n=t[e.toLowerCase()];while(n){if(n.pluralRuleFunction)return n.pluralRuleFunction;n=n.parentLocale&&t[n.parentLocale.toLowerCase()]}throw new Error("Locale data added to IntlMessageFormat is missing a `pluralRuleFunction` for :"+e)},s.prototype._format=function(e,t){var n,i,o,a,s,l,c="";for(n=0,i=e.length;n>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function c(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0))}function u(e,t,n){if(128!==(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"�"}}function h(e){var t=this.lastTotal-this.lastNeed,n=u(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function f(e,t){var n=c(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function p(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function m(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function g(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function v(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function y(e){return e.toString(this.encoding)}function b(e){return e&&e.length?this.write(e):""}t.StringDecoder=s,s.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),void 0===t)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=s&&i<0||n.scrollTop<=0&&i>0))||a&&(!d||d&&(n.scrollLeft>=l&&l<0||n.scrollLeft<=0&&l>0)))&&e(t,n.parentNode,r,i)};function w(e){return w="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(e)}function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(e,t){if(null==e)return{};var n,r,i=E(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function E(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function S(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function k(e,t){for(var n=0;n1||(n.startPos={x:e.touches[0].clientX,y:e.touches[0].clientY})},n.removeMoveHandler=function(e){if(!(e.changedTouches.length>1)){var t=e.currentTarget,r=e.changedTouches[0].clientX-n.startPos.x,i=e.changedTouches[0].clientY-n.startPos.y;(t===n.maskDom||t===n.handlerDom||t===n.contentDom&&b(t,e.target,r,i))&&e.preventDefault()}},n.transitionEnd=function(e){var t=e.target;m(t,d,n.transitionEnd),t.style.transition=""},n.onKeyDown=function(e){if(e.keyCode===c["a"].ESC){var t=n.props.onClose;e.stopPropagation(),t&&t(e)}},n.onWrapperTransitionEnd=function(e){var t=n.props,r=t.open,i=t.afterVisibleChange;e.target===n.contentWrapper&&e.propertyName.match(/transform$/)&&(n.dom.style.transition="",!r&&n.getCurrentDrawerSome()&&(document.body.style.overflowX="",n.maskDom&&(n.maskDom.style.left="",n.maskDom.style.width="")),i&&i(!!r))},n.openLevelTransition=function(){var e=n.props,t=e.open,r=e.width,i=e.height,o=n.getHorizontalBoolAndPlacementName(),a=o.isHorizontal,s=o.placementName,l=n.contentDom?n.contentDom.getBoundingClientRect()[a?"width":"height"]:0,c=(a?r:i)||l;n.setLevelAndScrolling(t,s,c)},n.setLevelTransform=function(e,t,r,i){var o=n.props,a=o.placement,s=o.levelMove,l=o.duration,c=o.ease,u=o.showMask;n.levelDom.forEach(function(o){o.style.transition="transform ".concat(l," ").concat(c),p(o,d,n.transitionEnd);var h=e?r:0;if(s){var f=g(s,{target:o,open:e});h=e?f[0]:f[1]||0}var m="number"===typeof h?"".concat(h,"px"):h,v="left"===a||"top"===a?m:"-".concat(m);v=u&&"right"===a&&i?"calc(".concat(v," + ").concat(i,"px)"):v,o.style.transform=h?"".concat(t,"(").concat(v,")"):""})},n.setLevelAndScrolling=function(e,t,r){var i=n.props.onChange;if(!y){var o=document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth?Object(l["a"])(!0):0;n.setLevelTransform(e,t,r,o),n.toggleScrollingToDrawerAndBody(o)}i&&i(e)},n.toggleScrollingToDrawerAndBody=function(e){var t=n.props,r=t.getOpenCount,i=t.getContainer,o=t.showMask,a=t.open,s=i&&i(),l=r&&r();if(s&&s.parentNode===document.body&&o){var c=["touchstart"],u=[document.body,n.maskDom,n.handlerDom,n.contentDom];a&&"hidden"!==document.body.style.overflow?(e&&n.addScrollingEffect(e),1===l&&(document.body.style.overflow="hidden"),document.body.style.touchAction="none",u.forEach(function(e,t){e&&p(e,c[t]||"touchmove",t?n.removeMoveHandler:n.removeStartHandler,n.passive)})):n.getCurrentDrawerSome()&&(l||(document.body.style.overflow=""),document.body.style.touchAction="",e&&n.remScrollingEffect(e),u.forEach(function(e,t){e&&m(e,c[t]||"touchmove",t?n.removeMoveHandler:n.removeStartHandler,n.passive)}))}},n.addScrollingEffect=function(e){var t=n.props,r=t.placement,i=t.duration,o=t.ease,a=t.getOpenCount,s=t.switchScrollingEffect,l=a&&a();1===l&&s();var c="width ".concat(i," ").concat(o),u="transform ".concat(i," ").concat(o);switch(n.dom.style.transition="none",r){case"right":n.dom.style.transform="translateX(-".concat(e,"px)");break;case"top":case"bottom":n.dom.style.width="calc(100% - ".concat(e,"px)"),n.dom.style.transform="translateZ(0)";break;default:break}clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.dom&&(n.dom.style.transition="".concat(u,",").concat(c),n.dom.style.width="",n.dom.style.transform="")})},n.remScrollingEffect=function(e){var t,r=n.props,i=r.placement,o=r.duration,a=r.ease,s=r.getOpenCount,l=r.switchScrollingEffect,c=s&&s();c||l(!0),f&&(document.body.style.overflowX="hidden"),n.dom.style.transition="none";var u="width ".concat(o," ").concat(a),h="transform ".concat(o," ").concat(a);switch(i){case"left":n.dom.style.width="100%",u="width 0s ".concat(a," ").concat(o);break;case"right":n.dom.style.transform="translateX(".concat(e,"px)"),n.dom.style.width="100%",u="width 0s ".concat(a," ").concat(o),n.maskDom&&(n.maskDom.style.left="-".concat(e,"px"),n.maskDom.style.width="calc(100% + ".concat(e,"px)"));break;case"top":case"bottom":n.dom.style.width="calc(100% + ".concat(e,"px)"),n.dom.style.height="100%",n.dom.style.transform="translateZ(0)",t="height 0s ".concat(a," ").concat(o);break;default:break}clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.dom&&(n.dom.style.transition="".concat(h,",").concat(t?"".concat(t,","):"").concat(u),n.dom.style.transform="",n.dom.style.width="",n.dom.style.height="")})},n.getCurrentDrawerSome=function(){return!Object.keys(j).some(function(e){return j[e]})},n.getLevelDom=function(e){var t=e.level,r=e.getContainer;if(!y){var i=r&&r(),o=i?i.parentNode:null;if(n.levelDom=[],"all"===t){var a=o?Array.prototype.slice.call(o.children):[];a.forEach(function(e){"SCRIPT"!==e.nodeName&&"STYLE"!==e.nodeName&&"LINK"!==e.nodeName&&e!==i&&n.levelDom.push(e)})}else t&&u(t).forEach(function(e){document.querySelectorAll(e).forEach(function(e){n.levelDom.push(e)})})}},n.getHorizontalBoolAndPlacementName=function(){var e=n.props.placement,t="left"===e||"right"===e,r="translate".concat(t?"X":"Y");return{isHorizontal:t,placementName:r}},n.state={_self:L(n)},n}return A(t,e),C(t,[{key:"componentDidMount",value:function(){var e=this;if(!y){var t=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){return t=!0,null}}))}catch(e){}this.passive=!!t&&{passive:!1}}var n=this.props.open;this.drawerId="drawer_id_".concat(Number((Date.now()+Math.random()).toString().replace(".",Math.round(9*Math.random()).toString())).toString(16)),this.getLevelDom(this.props),n&&(j[this.drawerId]=n,this.openLevelTransition(),this.forceUpdate(function(){e.domFocus()}))}},{key:"componentDidUpdate",value:function(e){var t=this.props.open;t!==e.open&&(t&&this.domFocus(),j[this.drawerId]=!!t,this.openLevelTransition())}},{key:"componentWillUnmount",value:function(){var e=this.props,t=e.getOpenCount,n=e.open,r=e.switchScrollingEffect,i="function"===typeof t&&t();delete j[this.drawerId],n&&(this.setLevelTransform(!1),document.body.style.touchAction=""),i||(document.body.style.overflow="",r(!0))}},{key:"render",value:function(){var e,t=this,n=this.props,r=n.className,o=n.children,a=n.style,l=n.width,c=n.height,u=(n.defaultOpen,n.open),h=n.prefixCls,f=n.placement,d=(n.level,n.levelMove,n.ease,n.duration,n.getContainer,n.handler),p=(n.onChange,n.afterVisibleChange,n.showMask),m=n.maskClosable,g=n.maskStyle,y=n.onClose,b=n.onHandleClick,w=n.keyboard,E=(n.getOpenCount,n.switchScrollingEffect,_(n,["className","children","style","width","height","defaultOpen","open","prefixCls","placement","level","levelMove","ease","duration","getContainer","handler","onChange","afterVisibleChange","showMask","maskClosable","maskStyle","onClose","onHandleClick","keyboard","getOpenCount","switchScrollingEffect"])),S=!!this.dom&&u,k=s()(h,(e={},x(e,"".concat(h,"-").concat(f),!0),x(e,"".concat(h,"-open"),S),x(e,r||"",!!r),x(e,"no-mask",!p),e)),C=this.getHorizontalBoolAndPlacementName(),O=C.placementName,T="left"===f||"top"===f?"-100%":"100%",L=S?"":"".concat(O,"(").concat(T,")"),A=d&&i["cloneElement"](d,{onClick:function(e){d.props.onClick&&d.props.onClick(),b&&b(e)},ref:function(e){t.handlerDom=e}});return i["createElement"]("div",Object.assign({},E,{tabIndex:-1,className:k,style:a,ref:function(e){t.dom=e},onKeyDown:S&&w?this.onKeyDown:void 0,onTransitionEnd:this.onWrapperTransitionEnd}),p&&i["createElement"]("div",{className:"".concat(h,"-mask"),onClick:m?y:void 0,style:g,ref:function(e){t.maskDom=e}}),i["createElement"]("div",{className:"".concat(h,"-content-wrapper"),style:{transform:L,msTransform:L,width:v(l)?"".concat(l,"px"):l,height:v(c)?"".concat(c,"px"):c},ref:function(e){t.contentWrapper=e}},i["createElement"]("div",{className:"".concat(h,"-content"),ref:function(e){t.contentDom=e},onTouchStart:S&&p?this.removeStartHandler:void 0,onTouchMove:S&&p?this.removeMoveHandler:void 0},o),A))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t._self,i={prevProps:e};if(void 0!==n){var o=e.placement,a=e.level;o!==n.placement&&(r.contentDom=null),a!==n.level&&r.getLevelDom(e)}return i}}]),t}(i["Component"]);M.defaultProps={switchScrollingEffect:function(){}};var R=Object(o["polyfill"])(M);function N(e){return N="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},N(e)}function D(e,t){if(null==e)return{};var n,r,i=I(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function I(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function $(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function F(e,t){for(var n=0;nl)r.f(e,n=a[l++],t[n]);return e}},fsL8:function(e,t,n){var r=n("cDf5")["default"];function i(){"use strict";e.exports=i=function(){return t},e.exports.__esModule=!0,e.exports["default"]=e.exports;var t={},n=Object.prototype,o=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},s="function"==typeof Symbol?Symbol:{},l=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",u=s.toStringTag||"@@toStringTag";function h(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{h({},"")}catch(e){h=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var i=t&&t.prototype instanceof m?t:m,o=Object.create(i.prototype),s=new T(r||[]);return a(o,"_invoke",{value:S(e,n,s)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=f;var p={};function m(){}function g(){}function v(){}var y={};h(y,l,function(){return this});var b=Object.getPrototypeOf,w=b&&b(b(L([])));w&&w!==n&&o.call(w,l)&&(y=w);var x=v.prototype=m.prototype=Object.create(y);function _(e){["next","throw","return"].forEach(function(t){h(e,t,function(e){return this._invoke(t,e)})})}function E(e,t){function n(i,a,s,l){var c=d(e[i],e,a);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==r(h)&&o.call(h,"__await")?t.resolve(h.__await).then(function(e){n("next",e,s,l)},function(e){n("throw",e,s,l)}):t.resolve(h).then(function(e){u.value=e,s(u)},function(e){return n("throw",e,s,l)})}l(c.arg)}var i;a(this,"_invoke",{value:function(e,r){function o(){return new t(function(t,i){n(e,r,t,i)})}return i=i?i.then(o,o):o()}})}function S(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return A()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=k(a,n);if(s){if(s===p)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=d(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===p)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function k(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator["return"]&&(t.method="return",t.arg=void 0,k(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),p;var i=d(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,p;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,p):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,p)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function L(e){if(e){var t=e[l];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n=0;--r){var i=this.tryEntries[r],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var s=o.call(i,"catchLoc"),l=o.call(i,"finallyLoc");if(s&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;O(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:L(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),p}},t}e.exports=i,e.exports.__esModule=!0,e.exports["default"]=e.exports},g0MP:function(e,t,n){"use strict";var r=n("GB+t"),i=n.n(r),o=n("QLaP"),a=n.n(o),s=n("/Qhy"),l=n("brdU"),c=function(e){return"/"===e.charAt(0)?e:"/"+e},u=function(e){return"/"===e.charAt(0)?e.substr(1):e},h=function(e,t){return new RegExp("^"+t+"(\\/|\\?|#|$)","i").test(e)},f=function(e,t){return h(e,t)?e.substr(t.length):e},d=function(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e},p=function(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}},m=function(e){var t=e.pathname,n=e.search,r=e.hash,i=t||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i},g=n("ck9s"),v=n.n(g),y=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};a()(E,"Browser history needs a DOM");var t=window.history,n=k(),r=!C(),o=e.forceRefresh,s=void 0!==o&&o,l=e.getUserConfirmation,u=void 0===l?S:l,p=e.keyLength,g=void 0===p?6:p,v=e.basename?d(c(e.basename)):"",y=function(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname,s=o.search,l=o.hash,c=a+s+l;return i()(!v||h(c,v),'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "'+c+'" to begin with "'+v+'".'),v&&(c=f(c,v)),b(c,r,n)},w=function(){return Math.random().toString(36).substr(2,g)},x=_(),O=function(e){A(Z,e),Z.length=t.length,x.notifyListeners(Z.location,Z.action)},R=function(e){T(e)||I(y(e.state))},N=function(){I(y(M()))},D=!1,I=function(e){if(D)D=!1,O();else{var t="POP";x.confirmTransitionTo(e,t,u,function(n){n?O({action:t,location:e}):$(e)})}},$=function(e){var t=Z.location,n=B.indexOf(t.key);-1===n&&(n=0);var r=B.indexOf(e.key);-1===r&&(r=0);var i=n-r;i&&(D=!0,U(i))},F=y(M()),B=[F.key],V=function(e){return v+m(e)},W=function(e,r){i()(!("object"===("undefined"===typeof e?"undefined":L(e))&&void 0!==e.state&&void 0!==r),"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored");var o="PUSH",a=b(e,r,w(),Z.location);x.confirmTransitionTo(a,o,u,function(e){if(e){var r=V(a),l=a.key,c=a.state;if(n)if(t.pushState({key:l,state:c},null,r),s)window.location.href=r;else{var u=B.indexOf(Z.location.key),h=B.slice(0,-1===u?0:u+1);h.push(a.key),B=h,O({action:o,location:a})}else i()(void 0===c,"Browser history cannot push state in browsers that do not support HTML5 history"),window.location.href=r}})},H=function(e,r){i()(!("object"===("undefined"===typeof e?"undefined":L(e))&&void 0!==e.state&&void 0!==r),"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored");var o="REPLACE",a=b(e,r,w(),Z.location);x.confirmTransitionTo(a,o,u,function(e){if(e){var r=V(a),l=a.key,c=a.state;if(n)if(t.replaceState({key:l,state:c},null,r),s)window.location.replace(r);else{var u=B.indexOf(Z.location.key);-1!==u&&(B[u]=a.key),O({action:o,location:a})}else i()(void 0===c,"Browser history cannot replace state in browsers that do not support HTML5 history"),window.location.replace(r)}})},U=function(e){t.go(e)},z=function(){return U(-1)},G=function(){return U(1)},q=0,K=function(e){q+=e,1===q?(window.addEventListener(P,R),r&&window.addEventListener(j,N)):0===q&&(window.removeEventListener(P,R),r&&window.removeEventListener(j,N))},Y=!1,X=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=x.setPrompt(e);return Y||(K(1),Y=!0),function(){return Y&&(Y=!1,K(-1)),t()}},Q=function(e){var t=x.appendListener(e);return K(1),function(){K(-1),t()}},Z={length:t.length,action:"POP",location:F,createHref:V,push:W,replace:H,go:U,goBack:z,goForward:G,block:X,listen:Q};return Z},N=R,D=Object.assign||function(e){for(var t=1;t=0?t:0)+"#"+e)},W=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a()(E,"Hash history needs a DOM");var t=window.history,n=O(),r=e.getUserConfirmation,o=void 0===r?S:r,s=e.hashType,l=void 0===s?"slash":s,u=e.basename?d(c(e.basename)):"",p=$[l],g=p.encodePath,v=p.decodePath,y=function(){var e=v(F());return i()(!u||h(e,u),'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "'+e+'" to begin with "'+u+'".'),u&&(e=f(e,u)),b(e)},x=_(),k=function(e){D(J,e),J.length=t.length,x.notifyListeners(J.location,J.action)},C=!1,T=null,L=function(){var e=F(),t=g(e);if(e!==t)V(t);else{var n=y(),r=J.location;if(!C&&w(r,n))return;if(T===m(n))return;T=null,A(n)}},A=function(e){if(C)C=!1,k();else{var t="POP";x.confirmTransitionTo(e,t,o,function(n){n?k({action:t,location:e}):P(e)})}},P=function(e){var t=J.location,n=N.lastIndexOf(m(t));-1===n&&(n=0);var r=N.lastIndexOf(m(e));-1===r&&(r=0);var i=n-r;i&&(C=!0,z(i))},j=F(),M=g(j);j!==M&&V(M);var R=y(),N=[m(R)],W=function(e){return"#"+g(u+m(e))},H=function(e,t){i()(void 0===t,"Hash history cannot push state; it is ignored");var n="PUSH",r=b(e,void 0,void 0,J.location);x.confirmTransitionTo(r,n,o,function(e){if(e){var t=m(r),o=g(u+t),a=F()!==o;if(a){T=t,B(o);var s=N.lastIndexOf(m(J.location)),l=N.slice(0,-1===s?0:s+1);l.push(t),N=l,k({action:n,location:r})}else i()(!1,"Hash history cannot PUSH the same path; a new entry will not be added to the history stack"),k()}})},U=function(e,t){i()(void 0===t,"Hash history cannot replace state; it is ignored");var n="REPLACE",r=b(e,void 0,void 0,J.location);x.confirmTransitionTo(r,n,o,function(e){if(e){var t=m(r),i=g(u+t),o=F()!==i;o&&(T=t,V(i));var a=N.indexOf(m(J.location));-1!==a&&(N[a]=t),k({action:n,location:r})}})},z=function(e){i()(n,"Hash history go(n) causes a full page reload in this browser"),t.go(e)},G=function(){return z(-1)},q=function(){return z(1)},K=0,Y=function(e){K+=e,1===K?window.addEventListener(I,L):0===K&&window.removeEventListener(I,L)},X=!1,Q=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=x.setPrompt(e);return X||(Y(1),X=!0),function(){return X&&(X=!1,Y(-1)),t()}},Z=function(e){var t=x.appendListener(e);return Y(1),function(){Y(-1),t()}},J={length:t.length,action:"POP",location:R,createHref:W,push:H,replace:U,go:z,goBack:G,goForward:q,block:Q,listen:Z};return J},H=W,U="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},z=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.getUserConfirmation,n=e.initialEntries,r=void 0===n?["/"]:n,o=e.initialIndex,a=void 0===o?0:o,s=e.keyLength,l=void 0===s?6:s,c=_(),u=function(e){z(C,e),C.length=C.entries.length,c.notifyListeners(C.location,C.action)},h=function(){return Math.random().toString(36).substr(2,l)},f=G(a,0,r.length-1),d=r.map(function(e){return b(e,void 0,"string"===typeof e?h():e.key||h())}),p=m,g=function(e,n){i()(!("object"===("undefined"===typeof e?"undefined":U(e))&&void 0!==e.state&&void 0!==n),"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored");var r="PUSH",o=b(e,n,h(),C.location);c.confirmTransitionTo(o,r,t,function(e){if(e){var t=C.index,n=t+1,i=C.entries.slice(0);i.length>n?i.splice(n,i.length-n,o):i.push(o),u({action:r,location:o,index:n,entries:i})}})},v=function(e,n){i()(!("object"===("undefined"===typeof e?"undefined":U(e))&&void 0!==e.state&&void 0!==n),"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored");var r="REPLACE",o=b(e,n,h(),C.location);c.confirmTransitionTo(o,r,t,function(e){e&&(C.entries[C.index]=o,u({action:r,location:o}))})},y=function(e){var n=G(C.index+e,0,C.entries.length-1),r="POP",i=C.entries[n];c.confirmTransitionTo(i,r,t,function(e){e?u({action:r,location:i,index:n}):u()})},w=function(){return y(-1)},x=function(){return y(1)},E=function(e){var t=C.index+e;return t>=0&&t0&&void 0!==arguments[0]&&arguments[0];return c.setPrompt(e)},k=function(e){return c.appendListener(e)},C={length:d.length,action:"POP",location:d[f],index:f,entries:d,createHref:p,push:g,replace:v,go:y,goBack:w,goForward:x,canGo:E,block:S,listen:k};return C},K=q;n.d(t,"a",function(){return N}),n.d(t,"b",function(){return H}),n.d(t,"d",function(){return K}),n.d(t,"c",function(){return b}),n.d(t,"f",function(){return w}),n.d(t,"e",function(){return m})},gENZ:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={};t["default"]={name:"system",state:i()({},s),reducers:{save(e,t){var n=t.payload;return i()({},e,n)}},effects:{getQueueStats(e,t){var n=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"save",payload:{getQueueStatsLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/system/getQueueStats");case 4:return t=e.sent,e.next=7,n({type:"save",payload:{getQueueStatsLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,n({type:"save",payload:{queueStats:t.data}});case 11:case"end":return e.stop()}},e)})()},getQueueWorkload(e,t){var n=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"save",payload:{getQueueWorkloadLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/system/getQueueWorkload");case 4:return t=e.sent,e.next=7,n({type:"save",payload:{getQueueWorkloadLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,n({type:"save",payload:{queueWorkload:t.data}});case 11:case"end":return e.stop()}},e)})()}}}},gL7N:function(e,t,n){var r=n("VyuQ")("wks"),i=n("kCK5"),o=n("c0Oy").Symbol,a="function"==typeof o,s=e.exports=function(e){return r[e]||(r[e]=a&&o[e]||(a?o:i)("Symbol."+e))};s.store=r},gRqi:function(e,t,n){"use strict";var r=n("c0Oy"),i=n("V5/1"),o=n("8Z/V"),a=n("gL7N")("species");e.exports=function(e){var t=r[e];o&&t&&!t[a]&&i.f(t,a,{configurable:!0,get:function(){return this}})}},h7Gi:function(e,t,n){"use strict";n("q97H");var r=n("rKIl"),i=n("VPOE"),o=n("wUWy"),a=n("ZDr/"),s=n("gL7N"),l=n("330p"),c=s("species"),u=!o(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")}),h=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var f=s(e),d=!o(function(){var t={};return t[f]=function(){return 7},7!=""[e](t)}),p=d?!o(function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[c]=function(){return n}),n[f](""),!t}):void 0;if(!d||!p||"replace"===e&&!u||"split"===e&&!h){var m=/./[f],g=n(a,f,""[e],function(e,t,n,r,i){return t.exec===l?d&&!i?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),v=g[0],y=g[1];r(String.prototype,e,v),i(RegExp.prototype,f,2==t?function(e,t){return y.call(e,this,t)}:function(e){return y.call(e,this)})}}},h7HQ:function(e,t,n){"use strict";var r=n("mrSG"),i=n("y+Vt"),o=n("T6xi"),a=function(){function e(){this.points=null,this.smooth=0,this.smoothConstraint=null}return e}(),s=function(e){function t(t){return e.call(this,t)||this}return Object(r["a"])(t,e),t.prototype.getDefaultShape=function(){return new a},t.prototype.buildPath=function(e,t){o["a"](e,t,!0)},t}(i["b"]);s.prototype.type="polygon",t["a"]=s},hDam:function(e,t){e.exports=function(){}},hIUm:function(e,t,n){"use strict";var r=n("oF12"),i=n("7vYJ"),o=n("VeyY"),a=n("ETUh"),s=n("OsVd"),l=n("bsDr"),c=n("330p"),u=n("wUWy"),h=Math.min,f=[].push,d="split",p="length",m="lastIndex",g=4294967295,v=!u(function(){RegExp(g,"y")});n("h7Gi")("split",2,function(e,t,n,u){var y;return y="c"=="abbc"[d](/(b)*/)[1]||4!="test"[d](/(?:)/,-1)[p]||2!="ab"[d](/(?:ab)*/)[p]||4!="."[d](/(.?)(.?)/)[p]||"."[d](/()()/)[p]>1||""[d](/.?/)[p]?function(e,t){var i=String(this);if(void 0===e&&0===t)return[];if(!r(e))return n.call(i,e,t);var o,a,s,l=[],u=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),h=0,d=void 0===t?g:t>>>0,v=new RegExp(e.source,u+"g");while(o=c.call(v,i)){if(a=v[m],a>h&&(l.push(i.slice(h,o.index)),o[p]>1&&o.index=d))break;v[m]===o.index&&v[m]++}return h===i[p]?!s&&v.test("")||l.push(""):l.push(i.slice(h)),l[p]>d?l.slice(0,d):l}:"0"[d](void 0,0)[p]?function(e,t){return void 0===e&&0===t?[]:n.call(this,e,t)}:n,[function(n,r){var i=e(this),o=void 0==n?void 0:n[t];return void 0!==o?o.call(n,i,r):y.call(String(i),n,r)},function(e,t){var r=u(y,e,this,t,y!==n);if(r.done)return r.value;var c=i(e),f=String(this),d=o(c,RegExp),p=c.unicode,m=(c.ignoreCase?"i":"")+(c.multiline?"m":"")+(c.unicode?"u":"")+(v?"y":"g"),b=new d(v?c:"^(?:"+c.source+")",m),w=void 0===t?g:t>>>0;if(0===w)return[];if(0===f.length)return null===l(b,f)?[f]:[];var x=0,_=0,E=[];while(_{this.setState({select:d()({},this.defaultValue),selectIndex:0})})):h["a"].error("值不能为空")}onChange(e,t,n,r){var i=this.state.filter;i[n][e]=t,"key"===e&&(i[n]["condition"]=this.props.keys[r].condition[0]),this.setState({filter:i}),"undefined"!==typeof r&&this.setState({keyIndex:r})}onOk(){var e=!0;this.state.filter.forEach(t=>{""===t.value&&(u["a"].error({message:"过滤器",description:"欲检索内容不能为空",duration:1.5}),e=!1)}),e&&(this.props.onOk(this.state.filter),this.setState({visible:!1}))}hide(){var e=this.state.select;e["value"]="",this.setState({visible:!1,select:e})}onDelete(e){var t=this.state.filter;t.splice(e,1),this.setState({filter:t})}reset(){this.setState({filter:[]},()=>{this.onOk()})}render(){return m.a.createElement(m.a.Fragment,null,m.a.cloneElement(this.props.children,{onClick:()=>this.show()}),m.a.createElement(r["a"],{onOk:()=>this.onOk(),title:"过滤器",visible:this.state.visible,onClose:()=>this.hide(),className:"v2board-filter-drawer",footer:m.a.createElement(m.a.Fragment,null)},this.state.filter.length>0&&this.state.filter.map((e,t)=>{var n=this.props.keys.find(e=>e.key===this.state.filter[t].key);return m.a.createElement(m.a.Fragment,null,m.a.createElement(l["a"],{type:"horizontal"},"条件".concat(t+1)," ",m.a.createElement(c["a"],{type:"delete",style:{color:"#ff4d4f"},onClick:()=>this.onDelete(t)})),m.a.createElement("div",{className:"form-group"},m.a.createElement("label",null,"字段名"),m.a.createElement("div",null,m.a.createElement(s["a"],{value:this.state.filter[t].key,style:{width:"100%"}},this.props.keys.map((e,n)=>{return m.a.createElement(s["a"].Option,{key:n,value:e.key,onClick:()=>this.onChange("key",this.props.keys[n].key,t,n)},e.title)})))),m.a.createElement("div",{className:"form-group"},m.a.createElement("label",null,"条件"),m.a.createElement("div",null,m.a.createElement(s["a"],{value:this.state.filter[t].condition,style:{width:"100%"},onChange:e=>this.onChange("condition",e,t)},this.props.keys[this.state.keyIndex].condition.map(e=>{return m.a.createElement(s["a"].Option,{key:e,value:e},e)})))),m.a.createElement("div",{className:"form-group"},m.a.createElement("label",null,"欲检索内容"),m.a.createElement("div",null,"select"===n.type&&m.a.createElement(s["a"],{defaultValue:this.state.filter[t].value||void 0,style:{width:"100%"},placeholder:"请选择值",onChange:e=>this.onChange("value",e,t)},n.options.map((e,t)=>{return m.a.createElement(s["a"].Option,{value:e.value},e.key)})),"date"===n.type&&m.a.createElement(a["a"],{style:{width:"100%"},onChange:e=>this.onChange("value",e&&e.format("X"),t),showTime:{defaultValue:v()("00:00:00","HH:mm:ss")}}),void 0===n.type&&m.a.createElement(o["a"],{style:{width:"100%"},defaultValue:this.state.filter[t].value||void 0,placeholder:"值",onChange:e=>this.onChange("value",e.target.value,t)}))))}),m.a.createElement(i["a"],{style:{width:"100%"},type:"primary",onClick:()=>this.add()},m.a.createElement(c["a"],{type:"plus"})," 添加条件"),m.a.createElement("div",{className:"v2board-drawer-action"},m.a.createElement(i["a"],{disabled:!this.state.filter.length,type:"danger",onClick:()=>this.reset(),style:{float:"left"}},"重置"),m.a.createElement(i["a"],{style:{marginRight:8},onClick:()=>this.hide()},"取消"),m.a.createElement(i["a"],{disabled:!this.state.filter.length,onClick:()=>this.onOk(),type:"primary"},"检索"))))}}},hYLj:function(e,t,n){"use strict";n.d(t,"a",function(){return d}),n.d(t,"b",function(){return p});var r=n("Fofx"),i=n("QBsz"),o=r["c"],a=5e-5;function s(e){return e>a||e<-a}var l=[],c=[],u=r["b"](),h=Math.abs,f=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(e){this.x=e[0],this.y=e[1]},e.prototype.setScale=function(e){this.scaleX=e[0],this.scaleY=e[1]},e.prototype.setSkew=function(e){this.skewX=e[0],this.skewY=e[1]},e.prototype.setOrigin=function(e){this.originX=e[0],this.originY=e[1]},e.prototype.needLocalTransform=function(){return s(this.rotation)||s(this.x)||s(this.y)||s(this.scaleX-1)||s(this.scaleY-1)||s(this.skewX)||s(this.skewY)},e.prototype.updateTransform=function(){var e=this.parent&&this.parent.transform,t=this.needLocalTransform(),n=this.transform;t||e?(n=n||r["b"](),t?this.getLocalTransform(n):o(n),e&&(t?r["e"](n,e,n):r["a"](n,e)),this.transform=n,this._resolveGlobalScaleRatio(n)):n&&o(n)},e.prototype._resolveGlobalScaleRatio=function(e){var t=this.globalScaleRatio;if(null!=t&&1!==t){this.getGlobalScale(l);var n=l[0]<0?-1:1,i=l[1]<0?-1:1,o=((l[0]-n)*t+n)/l[0]||0,a=((l[1]-i)*t+i)/l[1]||0;e[0]*=o,e[1]*=o,e[2]*=a,e[3]*=a}this.invTransform=this.invTransform||r["b"](),r["d"](this.invTransform,e)},e.prototype.getComputedTransform=function(){var e=this,t=[];while(e)t.push(e),e=e.parent;while(e=t.pop())e.updateTransform();return this.transform},e.prototype.setLocalTransform=function(e){if(e){var t=e[0]*e[0]+e[1]*e[1],n=e[2]*e[2]+e[3]*e[3],r=Math.atan2(e[1],e[0]),i=Math.PI/2+r-Math.atan2(e[3],e[2]);n=Math.sqrt(n)*Math.cos(i),t=Math.sqrt(t),this.skewX=i,this.skewY=0,this.rotation=-r,this.x=+e[4],this.y=+e[5],this.scaleX=t,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var e=this.parent,t=this.transform;e&&e.transform&&(r["e"](c,e.invTransform,t),t=c);var n=this.originX,i=this.originY;(n||i)&&(u[4]=n,u[5]=i,r["e"](c,t,u),c[4]-=n,c[5]-=i,t=c),this.setLocalTransform(t)}},e.prototype.getGlobalScale=function(e){var t=this.transform;return e=e||[],t?(e[0]=Math.sqrt(t[0]*t[0]+t[1]*t[1]),e[1]=Math.sqrt(t[2]*t[2]+t[3]*t[3]),t[0]<0&&(e[0]=-e[0]),t[3]<0&&(e[1]=-e[1]),e):(e[0]=1,e[1]=1,e)},e.prototype.transformCoordToLocal=function(e,t){var n=[e,t],r=this.invTransform;return r&&i["b"](n,n,r),n},e.prototype.transformCoordToGlobal=function(e,t){var n=[e,t],r=this.transform;return r&&i["b"](n,n,r),n},e.prototype.getLineScale=function(){var e=this.transform;return e&&h(e[0]-1)>1e-10&&h(e[3]-1)>1e-10?Math.sqrt(h(e[0]*e[3]-e[2]*e[1])):1},e.prototype.copyTransform=function(e){p(this,e)},e.getLocalTransform=function(e,t){t=t||[];var n=e.originX||0,i=e.originY||0,o=e.scaleX,a=e.scaleY,s=e.anchorX,l=e.anchorY,c=e.rotation||0,u=e.x,h=e.y,f=e.skewX?Math.tan(e.skewX):0,d=e.skewY?Math.tan(-e.skewY):0;if(n||i||s||l){var p=n+s,m=i+l;t[4]=-p*o-f*m*a,t[5]=-m*a-d*p*o}else t[4]=t[5]=0;return t[0]=o,t[3]=a,t[1]=d*o,t[2]=f*a,c&&r["f"](t,t,c),t[4]+=n+u,t[5]+=i+h,t},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),d=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function p(e,t){for(var n=0;n=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={switchLoading:{},saveLoading:!1};t["default"]={name:"serverHysteria",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{update(e,t){var n=e.id,r=e.key,i=e.value,s=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/hysteria/update",{id:n,[r]:i});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,s({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/hysteria/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},copy(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/hysteria/copy",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},save(e,t){var n=e.params,r=e.callback,i=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{saveLoading:!0}});case 2:return e.next=4,Object(o["b"])("/"+window.settings.secure_path+"/server/hysteria/save",n);case 4:return t=e.sent,e.next=7,i({type:"setState",payload:{saveLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,i({type:"serverManage/getNodes"});case 11:"function"===typeof r&&r();case 12:case"end":return e.stop()}},e)})()}}}},hlQx:function(e,t,n){"use strict";n.r(t);n("miYZ");var r=n("tsqr"),i=n("p0pE"),o=n.n(i),a=n("t3Un"),s=n("wd/R"),l=n.n(s),c=n("yWgo"),u=n("3a4m"),h=n.n(u);function f(){f=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var h={};function d(){}function p(){}function m(){}var g={};l(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=u(e[r],e,o);if("throw"!==l.type){var c=l.arg,h=c.value;return h&&"object"==typeof h&&n.call(h,"__await")?t.resolve(h.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(h).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===h)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=u(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var i=u(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,h;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},e}var d={userInfo:{},getUserInfoLoading:!1,pagination:{pageSize:Object(c["e"])("user_manage_page_size")||10,current:1},filter:[],users:[],fetchLoading:!1,user:{},sort:{},generateLoading:!1,sendMailLoading:!1};t["default"]={name:"user",state:o()({},d),reducers:{setState(e,t){var n=t.payload;return o()({},e,n)},empty(e){return o()({},d,{userInfo:e.userInfo})}},effects:{checkLogin(e,t){var n=e.redirect,r=t.put;return f().mark(function e(){var t;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:if(Object(c["c"])()){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,Object(a["a"])("/user/checkLogin");case 4:if(t=e.sent,200===t.code){e.next=7;break}return e.abrupt("return");case 7:if(!t.data.is_admin){e.next=11;break}return e.next=10,r({type:"user/getUserInfo"});case 10:return e.abrupt("return",h.a.push(n||"dashboard"));case 11:case"end":return e.stop()}},e)})()},getUserInfo(e,t){var n=t.put;return f().mark(function e(){var t;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"setState",payload:{getUserInfoLoading:!0}});case 2:return e.next=4,Object(a["a"])("/user/info");case 4:return t=e.sent,e.next=7,n({type:"setState",payload:{getUserInfoLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,n({type:"setState",payload:{userInfo:t.data}});case 11:case"end":return e.stop()}},e)})()},getUserInfoById(e,t){var n=e.id,r=t.put;return f().mark(function e(){var t;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(a["a"])("/"+window.settings.secure_path+"/user/getUserInfoById",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return t.data.password="",t.data.transfer_enable=(t.data.transfer_enable/1073741824).toFixed(2),t.data.u=(t.data.u/1073741824).toFixed(2),t.data.d=(t.data.d/1073741824).toFixed(2),t.data.commission_balance=(t.data.commission_balance/100).toFixed(2),t.data.balance=(t.data.balance/100).toFixed(2),t.data.invite_user&&(t.data.invite_user_email=t.data.invite_user.email),e.next=14,r({type:"setState",payload:{user:t.data}});case 14:case"end":return e.stop()}},e)})()},fetch(e,t){var n=t.put,r=t.select;return f().mark(function e(){var t,i;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,r(e=>e.user);case 2:return t=e.sent,e.next=5,n({type:"setState",payload:{fetchLoading:!0}});case 5:return e.next=7,Object(a["a"])("/"+window.settings.secure_path+"/user/fetch",o()({filter:t.filter},t.pagination,t.sort));case 7:return i=e.sent,e.next=10,n({type:"setState",payload:{fetchLoading:!1}});case 10:if(200===i.code){e.next=12;break}return e.abrupt("return");case 12:return i.data.forEach(e=>{e.password="",e.transfer_enable=(e.transfer_enable/1073741824).toFixed(2),e.u=(e.u/1073741824).toFixed(2),e.d=(e.d/1073741824).toFixed(2),e.total_used=(e.total_used/1073741824).toFixed(2),e.commission_balance=(e.commission_balance/100).toFixed(2),e.balance=(e.balance/100).toFixed(2)}),e.next=15,n({type:"setState",payload:{users:i.data,pagination:o()({},t.pagination,{total:i.total})}});case 15:case"end":return e.stop()}},e)})()},filter(e,t){var n=e.filter,r=t.put,i=t.select;return f().mark(function e(){var t,o;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i(e=>e.user);case 2:return t=e.sent,o=t.pagination,o["current"]=1,e.next=7,r({type:"setState",payload:{filter:n}});case 7:return e.next=9,r({type:"fetch"});case 9:case"end":return e.stop()}},e)})()},changeTable(e,t){var n=e.pagination,r=e.sort,i=t.select,a=t.put;return f().mark(function e(){var t;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i(e=>e.user);case 2:return t=e.sent,e.next=5,a({type:"setState",payload:{pagination:o()({},t.pagination,n),sort:r}});case 5:return e.next=7,a({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},update(e,t){var n=e.params,r=e.callback,i=t.put;return f().mark(function e(){var t;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{updateLoading:!0}});case 2:return n.transfer_enable=1073741824*n.transfer_enable,n.u=Math.round(1073741824*n.u),n.d=Math.round(1073741824*n.d),n.balance=Math.round(100*n.balance),n.commission_balance=Math.round(100*n.commission_balance),n.invite_user&&delete n.invite_user,e.next=10,Object(a["b"])("/"+window.settings.secure_path+"/user/update",n);case 10:return t=e.sent,e.next=13,i({type:"setState",payload:{updateLoading:!1}});case 13:if(200===t.code){e.next=15;break}return e.abrupt("return");case 15:return e.next=17,i({type:"fetch"});case 17:"function"===typeof r&&r();case 18:case"end":return e.stop()}},e)})()},addFilter(e,t){var n=e.key,r=e.condition,i=e.value,o=e.clear,a=t.put,s=t.select;return f().mark(function e(){var t,l,c;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,s(e=>e.user);case 2:return t=e.sent,l=t.filter,c=t.pagination,o&&(l=[]),l.push({key:n,condition:r,value:i}),c["current"]=1,e.next=10,a({type:"setState",payload:{filter:l,pagination:c}});case 10:return e.next=12,a({type:"fetch"});case 12:case"end":return e.stop()}},e)})()},generate(e,t){var n=e.params,r=e.callback,i=t.put;return f().mark(function e(){var t,o,s,c;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{generateLoading:!0}});case 2:return e.next=4,Object(a["b"])("/"+window.settings.secure_path+"/user/generate",n);case 4:return t=e.sent,e.next=7,i({type:"setState",payload:{generateLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return n.generate_count&&(o=new Blob([t.buffer],{type:"text/plain,charset=UTF-8"}),s=window.URL.createObjectURL(o),c=document.createElement("a"),c.href=s,c.style.display="none",c.download="USER ".concat(l()().format("YYYY-MM-DD HH:mm:ss"),".csv"),c.click(),window.URL.revokeObjectURL(s)),e.next=12,i({type:"fetch"});case 12:"function"===typeof r&&r();case 13:case"end":return e.stop()}},e)})()},dumpCSV(e,t){var n=t.select;return f().mark(function e(){var t,i,o,s,c,u;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n(e=>e.user);case 2:return t=e.sent,i=t.filter,r["a"].loading("导出中"),e.next=7,Object(a["b"])("/"+window.settings.secure_path+"/user/dumpCSV",{filter:i});case 7:if(o=e.sent,r["a"].destroy(),200===o.code){e.next=11;break}return e.abrupt("return");case 11:s=new Blob([o.buffer],{type:"text/plain,charset=UTF-8"}),c=window.URL.createObjectURL(s),u=document.createElement("a"),u.href=c,u.style.display="none",u.download=l()().format("YYYY-MM-DD HH:mm:ss")+".csv",u.click(),window.URL.revokeObjectURL(c);case 19:case"end":return e.stop()}},e)})()},sendMail(e,t){var n=e.params,i=e.callback,s=t.select,l=t.put;return f().mark(function e(){var t,c,u;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,s(e=>e.user);case 2:return t=e.sent,c=t.filter,e.next=6,l({type:"setState",payload:{sendMailLoading:!0}});case 6:return e.next=8,Object(a["b"])("/"+window.settings.secure_path+"/user/sendMail",o()({filter:c},n));case 8:return u=e.sent,e.next=11,l({type:"setState",payload:{sendMailLoading:!1}});case 11:if(200===u.code){e.next=13;break}return e.abrupt("return");case 13:r["a"].success("已加入队列执行"),"function"===typeof i&&i();case 15:case"end":return e.stop()}},e)})()},ban(e,t){var n=t.select,r=t.put;return f().mark(function e(){var t,i,o;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n(e=>e.user);case 2:return t=e.sent,i=t.filter,e.next=6,Object(a["b"])("/"+window.settings.secure_path+"/user/ban",{filter:i});case 6:if(o=e.sent,200===o.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,r({type:"fetch"});case 11:case"end":return e.stop()}},e)})()},resetSecret(e,t){var n=e.id,i=t.put;return f().mark(function e(){var t;return f().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(a["b"])("/"+window.settings.secure_path+"/user/resetSecret",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return r["a"].success("重置成功"),e.next=8,i({type:"fetch"});case 8:case"end":return e.stop()}},e)})()}}}},hsuR:function(e,t,n){"use strict";n.d(t,"a",function(){return l}),n.d(t,"k",function(){return c}),n.d(t,"i",function(){return u}),n.d(t,"h",function(){return h}),n.d(t,"j",function(){return f}),n.d(t,"g",function(){return d}),n.d(t,"d",function(){return p}),n.d(t,"e",function(){return m}),n.d(t,"b",function(){return g}),n.d(t,"c",function(){return b}),n.d(t,"f",function(){return w});var r=n("YEIV"),i=n.n(r),o=n("q1tI"),a=n.n(o);function s(e){var t=[];return a.a.Children.forEach(e,function(e){e&&t.push(e)}),t}function l(e,t){for(var n=s(e),r=0;r2&&void 0!==arguments[2]?arguments[2]:"ltr",r=f(t)?"translateY":"translateX";return f(t)||"rtl"!==n?r+"("+100*-e+"%) translateZ(0)":r+"("+100*e+"%) translateZ(0)"}function p(e,t){var n=f(t)?"marginTop":"marginLeft";return i()({},n,100*-e+"%")}function m(e,t){return+window.getComputedStyle(e).getPropertyValue(t).replace("px","")}function g(e){return Object.keys(e).reduce(function(t,n){return"aria-"!==n.substr(0,5)&&"data-"!==n.substr(0,5)&&"role"!==n||(t[n]=e[n]),t},{})}function v(e,t){return+e.getPropertyValue(t).replace("px","")}function y(e,t,n,r,i){var o=m(i,"padding-"+e);if(!r||!r.parentNode)return o;var a=r.parentNode.childNodes;return Array.prototype.some.call(a,function(i){var a=window.getComputedStyle(i);return i!==r?(o+=v(a,"margin-"+e),o+=i[t],o+=v(a,"margin-"+n),"content-box"===a.boxSizing&&(o+=v(a,"border-"+e+"-width")+v(a,"border-"+n+"-width")),!1):(o+=v(a,"margin-"+e),!0)}),o}function b(e,t){return y("left","offsetWidth","right",e,t)}function w(e,t){return y("top","offsetHeight","bottom",e,t)}},hwdV:function(e,t,n){var r=n("tjlA"),i=r.Buffer;function o(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=a),o(i,a),a.from=function(e,t,n){if("number"===typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},a.alloc=function(e,t,n){if("number"!==typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"===typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return i(e)},a.allocUnsafeSlow=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},i4x8:function(e,t,n){"use strict";n.r(t),n.d(t,"routes",function(){return u}),n.d(t,"default",function(){return f});var r=n("q1tI"),i=n.n(r),o=n("Crw4"),a=n.n(o),s=n("RFCh"),l=n("Hg0r"),c=l["c"].ConnectedRouter,u=[{path:"/config/payment",exact:!0,component:n("eIZb").default},{path:"/config/system",exact:!0,component:n("1dM+").default},{path:"/config/theme",exact:!0,component:n("8drl").default},{path:"/coupon",exact:!0,component:n("Q55k").default},{path:"/dashboard",exact:!0,component:n("sFYk").default},{path:"/",exact:!0,component:n("RXBc").default},{path:"/knowledge",exact:!0,component:n("jJ5y").default},{path:"/login",exact:!0,component:n("SGa5").default},{path:"/notice",exact:!0,component:n("JZE9").default},{path:"/order",exact:!0,component:n("pi3A").default},{path:"/plan",exact:!0,component:n("ih8c").default},{path:"/queue",exact:!0,component:n("Jezz").default},{path:"/server/group",exact:!0,component:n("11+Y").default},{path:"/server/manage",exact:!0,component:n("uzXD").default},{path:"/server/route",exact:!0,component:n("wtkT").default},{path:"/ticket/:ticket_id",exact:!0,component:n("FPmv").default},{path:"/ticket",exact:!0,component:n("RJTe").default},{path:"/user",exact:!0,component:n("d1ca").default}];window.g_routes=u;var h=n("PszG");h.applyForEach("patchRoutes",{initialValue:u});class f extends i.a.Component{unListen(){}constructor(e){function t(e,t){h.applyForEach("onRouteChange",{initialValue:{routes:u,location:e,action:t}})}super(e),this.unListen=s["default"].listen(t);var n=s["default"].listen.toString().indexOf("callback(history.location, history.action)")>-1;n||t(s["default"].location)}componentWillUnmount(){this.unListen()}render(){var e=this.props||{};return i.a.createElement(c,{history:s["default"]},a()(u,e))}}},iCc5:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},ih8c:function(e,t,n){"use strict";n.r(t);var r=n("jehZ"),i=n.n(r),o=(n("+L6B"),n("2/Rp")),a=(n("qVdP"),n("jsC+")),s=(n("lUTK"),n("BvKs")),l=(n("+BJd"),n("mr32")),c=(n("5Dmo"),n("3S7+")),u=(n("BoS7"),n("Sdc0")),h=(n("Pwec"),n("CtXQ")),f=n("p0pE"),d=n.n(f),p=n("q1tI"),m=n.n(p),g=n("Bl7J"),v=n("/MKj"),y=n("tI4l"),b=n("qqou"),w=(n("bbsP"),n("/wGt")),x=(n("sRBo"),n("kaz8")),_=(n("OaEy"),n("2fM7")),E=(n("14J3"),n("BMrR")),S=(n("jCWc"),n("kPKH")),k=(n("/zsF"),n("PArb")),C=(n("5NDa"),n("5rEg")),O=n("8zNj");class T extends m.a.Component{constructor(e){super(e),this.state={visible:!1,record:e.record||{show:0,name:null,transfer_enable:null,group_id:void 0,month_price:null,quarter_price:null,half_year_price:null,year_price:null,two_year_price:null,three_year_price:null,onetime_price:null,reset_price:null}},this.show=()=>{this.setState({visible:!this.state.visible})}}componentDidMount(){this.props.dispatch({type:"config/fetch",key:"site"}),this.props.dispatch({type:"serverGroup/fetch"})}priceOnChange(e,t){this.setState({record:d()({},this.state.record,{[e]:""!==t?t:null})})}save(){this.props.dispatch({type:"plan/save",params:d()({},this.state.record),callback:()=>{this.setState({visible:!1})}})}render(){var e=this.props.config.site,t=this.props.plan.saveLoading,n=this.props.serverGroup.groups;return m.a.createElement(m.a.Fragment,null,m.a.cloneElement(this.props.children,{onClick:()=>this.setState({visible:!0})}),m.a.createElement(w["a"],{id:"plan",maskClosable:!0,onClose:()=>this.setState({visible:!1}),title:"".concat(this.state.record.id?"编辑订阅":"新建订阅"),visible:this.state.visible,width:"80%"},m.a.createElement("div",null,m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"套餐名称"),m.a.createElement(C["a"],{placeholder:"请输入套餐名称",value:this.state.record.name,onChange:e=>{this.setState({record:d()({},this.state.record,{name:e.target.value})})}})),m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"套餐描述"),m.a.createElement(C["a"].TextArea,{rows:4,value:this.state.record.content,placeholder:"请输入套餐描述,支持HTML",onChange:e=>{this.setState({record:d()({},this.state.record,{content:e.target.value})})}})),m.a.createElement(k["a"],{orientation:"center"},"售价设置 ",m.a.createElement(c["a"],{placement:"top",title:"将金额留空则不会进行出售"},m.a.createElement(h["a"],{type:"info-circle"}))),m.a.createElement(E["a"],{gutter:10},m.a.createElement(S["a"],{md:4},m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"月付"),m.a.createElement(C["a"],{value:null!==this.state.record.month_price?this.state.record.month_price:void 0,onChange:e=>this.priceOnChange("month_price",e.target.value)}))),m.a.createElement(S["a"],{md:4},m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"季付"),m.a.createElement(C["a"],{value:null!==this.state.record.quarter_price?this.state.record.quarter_price:void 0,onChange:e=>this.priceOnChange("quarter_price",e.target.value)}))),m.a.createElement(S["a"],{md:4},m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"半年"),m.a.createElement(C["a"],{value:null!==this.state.record.half_year_price?this.state.record.half_year_price:void 0,onChange:e=>this.priceOnChange("half_year_price",e.target.value)}))),m.a.createElement(S["a"],{md:4},m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"年付"),m.a.createElement(C["a"],{value:null!==this.state.record.year_price?this.state.record.year_price:void 0,onChange:e=>this.priceOnChange("year_price",e.target.value)}))),m.a.createElement(S["a"],{md:4},m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"两年付"),m.a.createElement(C["a"],{value:null!==this.state.record.two_year_price?this.state.record.two_year_price:void 0,onChange:e=>this.priceOnChange("two_year_price",e.target.value)}))),m.a.createElement(S["a"],{md:4},m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"三年付"),m.a.createElement(C["a"],{value:null!==this.state.record.three_year_price?this.state.record.three_year_price:void 0,onChange:e=>this.priceOnChange("three_year_price",e.target.value)})))),m.a.createElement(E["a"],{gutter:10},m.a.createElement(S["a"],{md:12},m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"一次性"),m.a.createElement(C["a"],{addonAfter:e.currency_symbol,value:null!==this.state.record.onetime_price?this.state.record.onetime_price:void 0,onChange:e=>this.priceOnChange("onetime_price",e.target.value)}))),m.a.createElement(S["a"],{md:12},m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"重置包"),m.a.createElement(C["a"],{addonAfter:e.currency_symbol,value:null!==this.state.record.reset_price?this.state.record.reset_price:void 0,onChange:e=>this.priceOnChange("reset_price",e.target.value)})))),m.a.createElement(k["a"],null),m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"套餐流量"),m.a.createElement(C["a"],{addonAfter:"GB",placeholder:"请输入套餐流量",value:this.state.record.transfer_enable,onChange:e=>{this.setState({record:d()({},this.state.record,{transfer_enable:e.target.value})})}})),m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"权限组 ",m.a.createElement(O["a"],null,m.a.createElement("a",{href:"javascript:(0);"},"添加权限组"))),m.a.createElement(_["a"],{placeholder:"请选择权限组",style:{width:"100%"},value:this.state.record.group_id,onChange:e=>{this.setState({record:d()({},this.state.record,{group_id:e})})}},n.map(e=>{return m.a.createElement(_["a"].Option,{key:e.id,value:e.id},e.name)}))),m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{htmlFor:"example-text-input-alt"},"流量重置方式"),m.a.createElement(_["a"],{placeholder:"请选择流量重置方式",style:{width:"100%"},value:this.state.record.reset_traffic_method,onChange:e=>{this.setState({record:d()({},this.state.record,{reset_traffic_method:e})})}},m.a.createElement(_["a"].Option,{key:null,value:null},"跟随系统设置"),m.a.createElement(_["a"].Option,{key:0,value:0},"每月1号"),m.a.createElement(_["a"].Option,{key:1,value:1},"按月重置"),m.a.createElement(_["a"].Option,{key:2,value:2},"不重置"),m.a.createElement(_["a"].Option,{key:3,value:3},"每年1月1日"),m.a.createElement(_["a"].Option,{key:4,value:4},"按年重置")))),m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"最大容纳用户量"),m.a.createElement(C["a"],{placeholder:"留空则不限制",value:this.state.record.capacity_limit,onChange:e=>{this.setState({record:d()({},this.state.record,{capacity_limit:e.target.value})})}})),m.a.createElement("div",{className:"form-group"},m.a.createElement("label",{for:"example-text-input-alt"},"限速"),m.a.createElement(C["a"],{addonAfter:"Mbps",placeholder:"留空则不限制",value:this.state.record.speed_limit,onChange:e=>{this.setState({record:d()({},this.state.record,{speed_limit:e.target.value})})}})),m.a.createElement("div",{className:"v2board-drawer-action"},m.a.createElement("div",{style:{float:"left",marginTop:5}},m.a.createElement(c["a"],{title:"勾选后变更的流量、限速、权限组将应用到该套餐下的用户",placement:"top"},m.a.createElement(x["a"],{onChange:e=>this.setState({record:d()({},this.state.record,{force_update:e.target.checked})})},"强制更新到用户"))),m.a.createElement(o["a"],{style:{marginRight:8},onClick:()=>this.setState({visible:!1})},"取消"),m.a.createElement(o["a"],{loading:t,onClick:()=>t||this.save(),type:"primary"},"提交"))))}}var L=Object(v["c"])(e=>{var t=e.plan,n=e.serverGroup,r=e.config;return{plan:t,serverGroup:n,config:r}})(T),A=n("Oa6W"),P=(n("H9LU"),n("3XVG"),n("ykC2"),n("v32e"));class j extends m.a.Component{constructor(e){super(e),this.state={visible:!1,submit:{show:0}}}componentDidMount(){this.props.dispatch({type:"plan/fetch"}),this.props.dispatch({type:"serverGroup/fetch"})}balanceFormat(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Object.keys(y["a"].periodText).map(n=>{0!==e[n]&&(e[n]?e[n]=t?Math.round(100*e[n]):e[n]/100:e[n]=null)}),e}drop(e){this.props.dispatch({type:"plan/drop",id:e})}edit(e){var t=this.props.plan.plans;this.setState({submit:d()({},t[e]),visible:!0})}update(e,t,n){this.props.dispatch({type:"plan/update",id:e,key:t,value:n})}render(){var e,t=this.props.plan,n=t.plans,r=t.fetchLoading,f=this.props.serverGroup.groups,d=[{title:"排序",dataIndex:"sort",key:"sort",render:(e,t)=>{return m.a.createElement(m.a.Fragment,null,m.a.createElement(h["a"],{type:"menu",style:{cursor:"move"}}))}},{title:"销售状态",dataIndex:"show",key:"show",render:(e,t)=>{return m.a.createElement(u["a"],{size:"small",checked:parseInt(e),onClick:()=>this.update(t.id,"show",parseInt(e)?0:1)})}},{title:m.a.createElement("span",null,"续费 ",m.a.createElement(c["a"],{placement:"top",title:"在订阅停止销售时,已购用户是否可以续费"},m.a.createElement(h["a"],{type:"question-circle"}))),dataIndex:"renew",key:"renew",render:(e,t)=>{return m.a.createElement(u["a"],{size:"small",checked:parseInt(e),onClick:()=>this.update(t.id,"renew",parseInt(e)?0:1)})}},{title:"名称",dataIndex:"name",key:"name"},{title:"统计",dataIndex:"count",key:"count",render:e=>{return m.a.createElement(m.a.Fragment,null,m.a.createElement(h["a"],{type:"user",style:{cursor:"move"}})," ",e)}},{title:"流量",dataIndex:"transfer_enable",key:"transfer_enable",render:e=>{return m.a.createElement(m.a.Fragment,null,e," GB")}},{title:"月付",dataIndex:"month_price",key:"month_price",render:e=>{return null!==e?e.toFixed(2):"-"}},{title:"季付",dataIndex:"quarter_price",key:"quarter_price",render:e=>{return null!==e?e.toFixed(2):"-"}},{title:"半年付",dataIndex:"half_year_price",key:"half_year_price",render:e=>{return null!==e?e.toFixed(2):"-"}},{title:"年付",dataIndex:"year_price",key:"year_price",render:e=>{return null!==e?e.toFixed(2):"-"}},{title:"两年付",dataIndex:"two_year_price",key:"two_year_price",render:e=>{return null!==e?e.toFixed(2):"-"}},{title:"三年付",dataIndex:"three_year_price",key:"three_year_price",render:e=>{return null!==e?e.toFixed(2):"-"}},{title:"一次性",dataIndex:"onetime_price",key:"onetime_price",render:e=>{return null!==e?e.toFixed(2):"-"}},{title:"重置包",dataIndex:"reset_price",key:"reset_price",render:e=>{return null!==e?e.toFixed(2):"-"}},{title:"权限组",dataIndex:"group_id",key:"group_id",render:(e,t)=>{var n=[];return f.map(t=>{t.id===parseInt(e)&&n.push(m.a.createElement(l["a"],null,t.name))}),n}},{title:"操作",dataIndex:"action",key:"action",fixed:"right",align:"right",render:(e,t)=>{return m.a.createElement(m.a.Fragment,null,m.a.createElement(a["a"],{trigger:"click",overlay:m.a.createElement(s["a"],null,m.a.createElement(s["a"].Item,{onContextMenu:e=>{e.stopPropagation()}},m.a.createElement(L,{record:t,key:null===t||void 0===t?void 0:t.id},m.a.createElement("a",null,m.a.createElement(h["a"],{type:"edit"})," 编辑"))),m.a.createElement(s["a"].Item,{style:{color:"#ff4d4f"},onClick:()=>this.drop(t.id)},m.a.createElement(h["a"],{type:"delete"})," 删除"))},m.a.createElement("a",{href:"javascript:void(0);"},"操作 ",m.a.createElement(h["a"],{type:"caret-down"}))))}}],p=this;return m.a.createElement(g["a"],i()({},this.props,{title:"订阅管理"}),m.a.createElement("div",{className:"d-flex justify-content-between align-items-center"}),m.a.createElement(P["a"],{loading:r},m.a.createElement("div",{className:"block block-rounded"},m.a.createElement("div",{className:"bg-white"},m.a.createElement("div",{style:{padding:15}},m.a.createElement(L,null,m.a.createElement(o["a"],null,m.a.createElement(h["a"],{type:"plus"})," 添加订阅"))),m.a.createElement(b["a"],{onDragEnd:(e,t)=>{p.props.dispatch({type:"plan/sort",fromIndex:e,toIndex:t})},nodeSelector:"tr",handleSelector:"i"},m.a.createElement(A["a"],{onContextMenu:e=>{this.record=e,this.forceUpdate()},tableLayout:"auto",dataSource:n,columns:d,pagination:!1,scroll:{x:1300}},m.a.createElement("ul",{className:"ant-dropdown-menu ant-dropdown-menu-light ant-dropdown-menu-root ant-dropdown-menu-vertical"},m.a.createElement("li",{className:"ant-dropdown-menu-item"},m.a.createElement(L,{record:this.record,key:null===(e=this.record)||void 0===e?void 0:e.id},m.a.createElement("a",null,m.a.createElement(h["a"],{type:"edit"})," 编辑"))),m.a.createElement("li",{className:"ant-dropdown-menu-item",onClick:()=>{var e;return this.drop(null===(e=this.record)||void 0===e?void 0:e.id)}},m.a.createElement("a",{style:{color:"#ff4d4f"}},m.a.createElement(h["a"],{type:"delete"})," 删除")))))))))}}t["default"]=Object(v["c"])(e=>{var t=e.plan,n=e.serverGroup;return{plan:t,serverGroup:n}})(j)},il4q:function(e,t,n){var r=n("ZDr/");e.exports=function(e){return Object(r(e))}},"j/1Z":function(e,t){e.exports=function(e){return e&&"object"===typeof e&&"function"===typeof e.copy&&"function"===typeof e.fill&&"function"===typeof e.readUInt8}},"j/9B":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n("6YkS"),i=r.Prompt;t.default=i},j2DC:function(e,t,n){"use strict";var r=n("oVml"),i=n("rr1i"),o=n("RfKB"),a={};n("NegM")(a,n("UWiX")("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:i(1,n)}),o(e,t+" Iterator")}},jAWH:function(e,t){e.exports={100:"Continue",101:"Switching Protocols",102:"Processing",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Unordered Collection",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}},jB5C:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t=1;tPromise.resolve().then(()=>T(n("ZM0C")))}),A=new k.a({html:!0,linkify:!0,typographer:!0});class P extends f.a.Component{constructor(e){super(e),this.state={visible:!1,selectedTab:!1}}componentDidMount(){}formChange(e,t){var n=this.props.knowledge.knowledge;n[e]=t,this.props.dispatch({type:"knowledge/setState",payload:{knowledge:n}})}show(){this.props.id&&this.props.dispatch({type:"knowledge/fetchById",id:this.props.id}),this.setState({visible:!0}),this.key=Math.random()}hide(){this.props.dispatch({type:"knowledge/setState",payload:{knowledge:{}}}),this.setState({visible:!1})}save(){this.props.dispatch({type:"knowledge/save",callback:()=>{x["a"].success("保存成功")}})}render(){var e=this.state.visible,t=this.props.knowledge,n=t.knowledge,r=(t.categorys,t.fetchByIdLoading),i=t.saveLoading,o=this.props.id;return f.a.createElement(f.a.Fragment,null,f.a.cloneElement(this.props.children,{onClick:()=>this.show()}),f.a.createElement(y["a"],{width:"80%",visible:e,title:o?"编辑知识":"新增知识",id:"knowledge",onClose:()=>this.hide()},r?f.a.createElement(u["a"],{type:"loading"}):f.a.createElement("div",null,f.a.createElement("div",{className:"form-group"},f.a.createElement("label",{htmlFor:"example-text-input-alt"},"标题"),f.a.createElement(w["a"],{placeholder:"请输入知识标题",value:n.title,onChange:e=>this.formChange("title",e.target.value)})),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",{htmlFor:"example-text-input-alt"},"分类"),f.a.createElement(w["a"],{placeholder:"请输入分类,分类将会自动归集",value:n.category,onChange:e=>this.formChange("category",e.target.value)})),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",{htmlFor:"example-text-input-alt"},"语言"),f.a.createElement(b["a"],{placeholder:"请选择知识语言",defaultValue:n.language||1,style:{width:"100%"},value:n.language,onChange:e=>this.formChange("language",e)},Object.keys(C["a"].i18nText).sort().map(e=>{return f.a.createElement(b["a"].Option,{value:e},C["a"].i18nText[e])}))),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",{htmlFor:"example-text-input-alt"},"内容"),f.a.createElement(L,{key:this.key,style:{height:"500px"},renderHTML:e=>A.render(e),value:n.body,onChange:e=>this.formChange("body",e.text),config:{view:{menu:!0,md:!0,fullScreen:!0,hideMenu:!0}}}))),f.a.createElement("div",{className:"v2board-drawer-action"},f.a.createElement(a["a"],{style:{marginRight:8},onClick:()=>this.hide()},"取消"),f.a.createElement(a["a"],{loading:i,onClick:()=>this.save(),type:"primary"},"提交"))))}}var j=Object(g["c"])(e=>{var t=e.knowledge;return{knowledge:t}})(P),M=n("v32e");class R extends f.a.Component{constructor(e){super(e),this.state={visible:!1,submit:{steps:[]}}}componentDidMount(){this.props.dispatch({type:"knowledge/fetch"}),this.props.dispatch({type:"knowledge/getCategory"})}modalVisible(){this.setState({visible:!this.state.visible},()=>{this.state.visible||this.setState({submit:{steps:[]}})})}show(e){this.props.dispatch({type:"knowledge/show",id:e})}drop(e){this.props.dispatch({type:"knowledge/drop",id:e.id})}render(){var e=this.props.knowledge,t=e.knowledges,n=e.fetchLoading,r=(e.categorys,[{title:"排序",dataIndex:"sort",key:"sort",render:e=>{return f.a.createElement(f.a.Fragment,null,f.a.createElement(u["a"],{type:"menu",style:{cursor:"move"}}))}},{title:"文章ID",dataIndex:"id",key:"id"},{title:"显示",dataIndex:"show",key:"show",render:(e,t)=>{return f.a.createElement(c["a"],{size:"small",onChange:()=>this.show(t.id),checked:e})}},{title:"标题",dataIndex:"title",key:"title"},{title:"分类",dataIndex:"category",key:"category"},{title:"更新时间",dataIndex:"updated_at",key:"updated_at",align:"right",render:e=>{return m()(1e3*e).format("YYYY/MM/DD HH:mm")}},{title:"操作",dataIndex:"action",key:"action",align:"right",fixed:"right",render:(e,t,n)=>{return f.a.createElement(f.a.Fragment,null,f.a.createElement(j,{id:t.id},f.a.createElement("a",{href:"javascript:void(0);"},"编辑")),f.a.createElement(l["a"],{type:"vertical"}),f.a.createElement("a",{href:"javascript:void(0);",onClick:()=>{s["a"].confirm({title:"警告",content:"确定要删除该条项目吗?",onOk:()=>this.drop(t),okText:"确定",cancelText:"取消"})}},"删除"))}}]),h=this;return f.a.createElement(d["a"],i()({},this.props,{title:"知识库管理"}),f.a.createElement(M["a"],{loading:n},f.a.createElement("div",{className:"block border-bottom"},f.a.createElement("div",{className:"bg-white"},f.a.createElement("div",{style:{padding:15}},f.a.createElement(j,null,f.a.createElement(a["a"],null,f.a.createElement(u["a"],{type:"plus"}),"新增"))),f.a.createElement(v["a"],{onDragEnd:(e,t)=>{h.props.dispatch({type:"knowledge/sort",fromIndex:e,toIndex:t})},nodeSelector:"tr",handleSelector:"i"},f.a.createElement(o["a"],{tableLayout:"auto",dataSource:t,pagination:!1,columns:r,scroll:{x:750}}))))))}}t["default"]=Object(g["c"])(e=>{var t=e.knowledge;return{knowledge:t}})(R)},"jN/G":function(e,t,n){"use strict";var r=n("WGNW"),i=n("il4q"),o=n("wYm8"),a=n("V5/1");n("8Z/V")&&r(r.P+n("OJuA"),"Object",{__defineSetter__:function(e,t){a.f(i(this),e,{set:o(t),enumerable:!0,configurable:!0})}})},jR2x:function(e,t,n){"use strict";n.d(t,"a",function(){return o});var r=n("bYtY");function i(e,t){return e&&"solid"!==e&&t>0?"dashed"===e?[4*t,2*t]:"dotted"===e?[t]:Object(r["w"])(e)?[e]:Object(r["r"])(e)?e:null:null}function o(e){var t=e.style,n=t.lineDash&&t.lineWidth>0&&i(t.lineDash,t.lineWidth),o=t.lineDashOffset;if(n){var a=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;a&&1!==a&&(n=Object(r["D"])(n,function(e){return e/a}),o/=a)}return[n,o]}},jTL6:function(e,t,n){"use strict";var r=n("mrSG"),i=n("y+Vt"),o=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0}return e}(),a=function(e){function t(t){return e.call(this,t)||this}return Object(r["a"])(t,e),t.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},t.prototype.getDefaultShape=function(){return new o},t.prototype.buildPath=function(e,t){var n=t.cx,r=t.cy,i=Math.max(t.r,0),o=t.startAngle,a=t.endAngle,s=t.clockwise,l=Math.cos(o),c=Math.sin(o);e.moveTo(l*i+n,c*i+r),e.arc(n,r,i,o,a,!s)},t}(i["b"]);a.prototype.type="arc",t["a"]=a},jce2:function(e,t,n){"use strict";function r(e){"@babel/helpers - typeof";return r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&-1!==t.indexOf("Macintosh")&&-1!==t.indexOf("Safari")&&(n=!0),n}},jjMW:function(e,t,n){"use strict";var r=n("WGNW"),i=n("il4q"),o=n("8BMt"),a=n("BFt8"),s=n("15BC").f;n("8Z/V")&&r(r.P+n("OJuA"),"Object",{__lookupSetter__:function(e){var t,n=i(this),r=o(e,!0);do{if(t=s(n,r))return t.set}while(n=a(n))}})},jmDH:function(e,t,n){e.exports=!n("KUxP")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},jo6Y:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},jpXb:function(e,t,n){var r=n("wZXL");e.exports=new r},jzd5:function(e,t,n){"use strict";var r={};function i(e){var t,n,i=r[e];if(i)return i;for(i=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),i.push(n);for(t=0;t=55296&&l<=57343?"���":String.fromCharCode(l),t+=6):240===(248&i)&&t+91114111?c+="����":(l-=65536,c+=String.fromCharCode(55296+(l>>10),56320+(1023&l))),t+=9):c+="�";return c})}o.defaultChars=";/?:@&=+$,#",o.componentChars="",e.exports=o},k3GJ:function(e,t,n){"use strict";var r=n("QbLZ"),i=n.n(r),o=n("YEIV"),a=n.n(o),s=n("jo6Y"),l=n.n(s),c=n("iCc5"),u=n.n(c),h=n("V7oC"),f=n.n(h),d=n("FYw3"),p=n.n(d),m=n("mRg0"),g=n.n(m),v=n("q1tI"),y=n.n(v),b=n("17x9"),w=n.n(b),x=n("TSYQ"),_=n.n(x),E=n("xEkU"),S=n.n(E),k=n("VCL8"),C={LEFT:37,UP:38,RIGHT:39,DOWN:40},O=n("hsuR"),T=n("4IlW"),L=n("foW8"),A=n.n(L),P=A()({}),j=P.Provider,M=P.Consumer,R={width:0,height:0,overflow:"hidden",position:"absolute"},N=function(e){function t(){var e,n,r,i;u()(this,t);for(var o=arguments.length,a=Array(o),s=0;s=0}I.propTypes={className:w.a.string,active:w.a.bool,style:w.a.any,destroyInactiveTabPane:w.a.bool,forceRender:w.a.bool,placeholder:w.a.node,rootPrefixCls:w.a.string,children:w.a.node,id:w.a.string},I.defaultProps={placeholder:null};var W=function(e){function t(e){u()(this,t);var n=p()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));H.call(n);var r=void 0;return r="activeKey"in e?e.activeKey:"defaultActiveKey"in e?e.defaultActiveKey:B(e),n.state={activeKey:r},n}return g()(t,e),f()(t,[{key:"componentWillUnmount",value:function(){this.destroy=!0,S.a.cancel(this.sentinelId)}},{key:"updateSentinelContext",value:function(){var e=this;this.destroy||(S.a.cancel(this.sentinelId),this.sentinelId=S()(function(){e.destroy||e.forceUpdate()}))}},{key:"render",value:function(){var e,t=this.props,n=t.prefixCls,r=t.navWrapper,o=t.tabBarPosition,s=t.className,c=t.renderTabContent,u=t.renderTabBar,h=t.destroyInactiveTabPane,f=t.direction,d=l()(t,["prefixCls","navWrapper","tabBarPosition","className","renderTabContent","renderTabBar","destroyInactiveTabPane","direction"]),p=_()((e={},a()(e,n,1),a()(e,n+"-"+o,1),a()(e,s,!!s),a()(e,n+"-rtl","rtl"===f),e));this.tabBar=u();var m=y.a.cloneElement(this.tabBar,{prefixCls:n,navWrapper:r,key:"tabBar",onKeyDown:this.onNavKeyDown,tabBarPosition:o,onTabClick:this.onTabClick,panels:t.children,activeKey:this.state.activeKey,direction:this.props.direction}),g=y.a.cloneElement(c(),{prefixCls:n,tabBarPosition:o,activeKey:this.state.activeKey,destroyInactiveTabPane:h,children:t.children,onChange:this.setActiveKey,key:"tabContent",direction:this.props.direction}),v=y.a.createElement(D,{key:"sentinelStart",setRef:this.setSentinelStart,nextElement:this.panelSentinelStart}),b=y.a.createElement(D,{key:"sentinelEnd",setRef:this.setSentinelEnd,prevElement:this.panelSentinelEnd}),w=[];return"bottom"===o?w.push(v,g,b,m):w.push(m,v,g,b),y.a.createElement(j,{value:{sentinelStart:this.sentinelStart,sentinelEnd:this.sentinelEnd,setPanelSentinelStart:this.setPanelSentinelStart,setPanelSentinelEnd:this.setPanelSentinelEnd}},y.a.createElement("div",i()({className:p,style:t.style},Object(O["b"])(d),{onScroll:this.onScroll}),w))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n={};return"activeKey"in e?n.activeKey=e.activeKey:V(e,t.activeKey)||(n.activeKey=B(e)),Object.keys(n).length>0?n:null}}]),t}(y.a.Component),H=function(){var e=this;this.onTabClick=function(t,n){e.tabBar.props.onTabClick&&e.tabBar.props.onTabClick(t,n),e.setActiveKey(t)},this.onNavKeyDown=function(t){var n=t.keyCode;if(n===C.RIGHT||n===C.DOWN){t.preventDefault();var r=e.getNextActiveKey(!0);e.onTabClick(r)}else if(n===C.LEFT||n===C.UP){t.preventDefault();var i=e.getNextActiveKey(!1);e.onTabClick(i)}},this.onScroll=function(e){var t=e.target,n=e.currentTarget;t===n&&t.scrollLeft>0&&(t.scrollLeft=0)},this.setSentinelStart=function(t){e.sentinelStart=t},this.setSentinelEnd=function(t){e.sentinelEnd=t},this.setPanelSentinelStart=function(t){t!==e.panelSentinelStart&&e.updateSentinelContext(),e.panelSentinelStart=t},this.setPanelSentinelEnd=function(t){t!==e.panelSentinelEnd&&e.updateSentinelContext(),e.panelSentinelEnd=t},this.setActiveKey=function(t){e.state.activeKey!==t&&("activeKey"in e.props||e.setState({activeKey:t}),e.props.onChange(t))},this.getNextActiveKey=function(t){var n=e.state.activeKey,r=[];y.a.Children.forEach(e.props.children,function(e){e&&!e.props.disabled&&(t?r.push(e):r.unshift(e))});var i=r.length,o=i&&r[0].key;return r.forEach(function(e,t){e.key===n&&(o=t===i-1?r[0].key:r[t+1].key)}),o}};W.propTypes={destroyInactiveTabPane:w.a.bool,renderTabBar:w.a.func.isRequired,renderTabContent:w.a.func.isRequired,navWrapper:w.a.func,onChange:w.a.func,children:w.a.node,prefixCls:w.a.string,className:w.a.string,tabBarPosition:w.a.string,style:w.a.object,activeKey:w.a.string,defaultActiveKey:w.a.string,direction:w.a.string},W.defaultProps={prefixCls:"rc-tabs",destroyInactiveTabPane:!1,onChange:F,navWrapper:function(e){return e},tabBarPosition:"top",children:null,style:{},direction:"ltr"},W.TabPane=$,Object(k["polyfill"])(W);var U=W;n("bTih");n.d(t,"a",function(){return $});t["b"]=U},kAMH:function(e,t,n){var r=n("a0xu");e.exports=Array.isArray||function(e){return"Array"==r(e)}},kCCV:function(e,t){function n(e){this.options=e,!e.deferSetup&&this.setup()}n.prototype={constructor:n,setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(e){return this.options===e||this.options.match===e}},e.exports=n},kCK5:function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},kTiW:function(e,t,n){e.exports=n("NegM")},"kVK+":function(e,t){t.read=function(e,t,n,r,i){var o,a,s=8*i-r-1,l=(1<>1,u=-7,h=n?i-1:0,f=n?-1:1,d=e[t+h];for(h+=f,o=d&(1<<-u)-1,d>>=-u,u+=s;u>0;o=256*o+e[t+h],h+=f,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=r;u>0;a=256*a+e[t+h],h+=f,u-=8);if(0===o)o=1-c;else{if(o===l)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,r),o-=c}return(d?-1:1)*a*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var a,s,l,c=8*o-i-1,u=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),t+=a+h>=1?f/l:f*Math.pow(2,1-h),t*l>=2&&(a++,l/=2),a+h>=u?(s=0,a=u):a+h>=1?(s=(t*l-1)*Math.pow(2,i),a+=h):(s=t*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;e[n+d]=255&s,d+=p,s/=256,i-=8);for(a=a<0;e[n+d]=255&a,d+=p,a/=256,c-=8);e[n+d-p]|=128*m}},kWR5:function(e,t,n){"use strict";var r=n("WGNW"),i=n("bV5f"),o=n("c0Oy"),a=n("VeyY"),s=n("tGd3");r(r.P+r.R,"Promise",{finally:function(e){var t=a(this,i.Promise||o.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then(function(){return n})}:e,n?function(n){return s(t,e()).then(function(){throw n})}:e)}})},kd2E:function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,o){t=t||"&",n=n||"=";var a={};if("string"!==typeof e||0===e.length)return a;var s=/\+/g;e=e.split(t);var l=1e3;o&&"number"===typeof o.maxKeys&&(l=o.maxKeys);var c=e.length;l>0&&c>l&&(c=l);for(var u=0;u=0?(h=m.substr(0,g),f=m.substr(g+1)):(h=m,f=""),d=decodeURIComponent(h),p=decodeURIComponent(f),r(a,d)?i(a[d])?a[d].push(p):a[d]=[a[d],p]:a[d]=p}return a};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},kgWH:function(e,t,n){n("gRqi")("Array")},kl5A:function(e,t,n){(function(t,r,i){var o=n("qfHW"),a=n("P7XM"),s=n("yQtW"),l=n("43KI"),c=n("2Tiy"),u=s.IncomingMessage,h=s.readyStates;function f(e,t){return o.fetch&&t?"fetch":o.mozchunkedarraybuffer?"moz-chunked-arraybuffer":o.msstream?"ms-stream":o.arraybuffer&&e?"arraybuffer":o.vbArray&&e?"text:vbarray":"text"}var d=e.exports=function(e){var n,r=this;l.Writable.call(r),r._opts=e,r._body=[],r._headers={},e.auth&&r.setHeader("Authorization","Basic "+new t(e.auth).toString("base64")),Object.keys(e.headers).forEach(function(t){r.setHeader(t,e.headers[t])});var i=!0;if("disable-fetch"===e.mode||"requestTimeout"in e&&!o.abortController)i=!1,n=!0;else if("prefer-streaming"===e.mode)n=!1;else if("allow-wrong-content-type"===e.mode)n=!o.overrideMimeType;else{if(e.mode&&"default"!==e.mode&&"prefer-fast"!==e.mode)throw new Error("Invalid value for opts.mode");n=!0}r._mode=f(n,i),r._fetchTimer=null,r.on("finish",function(){r._onFinish()})};function p(e){try{var t=e.status;return null!==t&&0!==t}catch(e){return!1}}a(d,l.Writable),d.prototype.setHeader=function(e,t){var n=this,r=e.toLowerCase();-1===m.indexOf(r)&&(n._headers[r]={name:e,value:t})},d.prototype.getHeader=function(e){var t=this._headers[e.toLowerCase()];return t?t.value:null},d.prototype.removeHeader=function(e){var t=this;delete t._headers[e.toLowerCase()]},d.prototype._onFinish=function(){var e=this;if(!e._destroyed){var n=e._opts,a=e._headers,s=null;"GET"!==n.method&&"HEAD"!==n.method&&(s=o.arraybuffer?c(t.concat(e._body)):o.blobConstructor?new r.Blob(e._body.map(function(e){return c(e)}),{type:(a["content-type"]||{}).value||""}):t.concat(e._body).toString());var l=[];if(Object.keys(a).forEach(function(e){var t=a[e].name,n=a[e].value;Array.isArray(n)?n.forEach(function(e){l.push([t,e])}):l.push([t,n])}),"fetch"===e._mode){var u=null;if(o.abortController){var f=new AbortController;u=f.signal,e._fetchAbortController=f,"requestTimeout"in n&&0!==n.requestTimeout&&(e._fetchTimer=r.setTimeout(function(){e.emit("requestTimeout"),e._fetchAbortController&&e._fetchAbortController.abort()},n.requestTimeout))}r.fetch(e._opts.url,{method:e._opts.method,headers:l,body:s||void 0,mode:"cors",credentials:n.withCredentials?"include":"same-origin",signal:u}).then(function(t){e._fetchResponse=t,e._connect()},function(t){r.clearTimeout(e._fetchTimer),e._destroyed||e.emit("error",t)})}else{var d=e._xhr=new r.XMLHttpRequest;try{d.open(e._opts.method,e._opts.url,!0)}catch(t){return void i.nextTick(function(){e.emit("error",t)})}"responseType"in d&&(d.responseType=e._mode.split(":")[0]),"withCredentials"in d&&(d.withCredentials=!!n.withCredentials),"text"===e._mode&&"overrideMimeType"in d&&d.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in n&&(d.timeout=n.requestTimeout,d.ontimeout=function(){e.emit("requestTimeout")}),l.forEach(function(e){d.setRequestHeader(e[0],e[1])}),e._response=null,d.onreadystatechange=function(){switch(d.readyState){case h.LOADING:case h.DONE:e._onXHRProgress();break}},"moz-chunked-arraybuffer"===e._mode&&(d.onprogress=function(){e._onXHRProgress()}),d.onerror=function(){e._destroyed||e.emit("error",new Error("XHR error"))};try{d.send(s)}catch(t){return void i.nextTick(function(){e.emit("error",t)})}}}},d.prototype._onXHRProgress=function(){var e=this;p(e._xhr)&&!e._destroyed&&(e._response||e._connect(),e._response._onXHRProgress())},d.prototype._connect=function(){var e=this;e._destroyed||(e._response=new u(e._xhr,e._fetchResponse,e._mode,e._fetchTimer),e._response.on("error",function(t){e.emit("error",t)}),e.emit("response",e._response))},d.prototype._write=function(e,t,n){var r=this;r._body.push(e),n()},d.prototype.abort=d.prototype.destroy=function(){var e=this;e._destroyed=!0,r.clearTimeout(e._fetchTimer),e._response&&(e._response._destroyed=!0),e._xhr?e._xhr.abort():e._fetchAbortController&&e._fetchAbortController.abort()},d.prototype.end=function(e,t,n){var r=this;"function"===typeof e&&(n=e,e=void 0),l.Writable.prototype.end.call(r,e,t,n)},d.prototype.flushHeaders=function(){},d.prototype.setTimeout=function(){},d.prototype.setNoDelay=function(){},d.prototype.setSocketKeepAlive=function(){};var m=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]}).call(this,n("tjlA").Buffer,n("yLpj"),n("Q2Ig"))},kwZ1:function(e,t,n){"use strict";var r=n("jmDH"),i=n("w6GO"),o=n("mqlF"),a=n("NV0k"),s=n("JB68"),l=n("M1xp"),c=Object.assign;e.exports=!c||n("KUxP")(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=c({},e)[n]||Object.keys(c({},t)).join("")!=r})?function(e,t){var n=s(e),c=arguments.length,u=1,h=o.f,f=a.f;while(c>u){var d,p=l(arguments[u++]),m=h?i(p).concat(h(p)):i(p),g=m.length,v=0;while(g>v)d=m[v++],r&&!f.call(p,d)||(n[d]=p[d])}return n}:c},l0kz:function(e,t,n){"use strict";var r=n("wUWy");e.exports=function(e,t){return!!e&&r(function(){t?e.call(null,function(){},1):e.call(null)})}},l4aY:function(e,t,n){"use strict";function r(e,t){var n=t;while(n){if(n===e)return!0;n=n.parentNode}return!1}n.d(t,"a",function(){return r})},lCc8:function(e,t,n){var r=n("Y7ZC");r(r.S,"Object",{create:n("oVml")})},lETv:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={notices:[],fetchLoading:!1};t["default"]={name:"notice",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{fetch(e,t){var n=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/notice/fetch");case 4:return t=e.sent,e.next=7,n({type:"setState",payload:{fetchLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,n({type:"setState",payload:{notices:t.data}});case 11:case"end":return e.stop()}},e)})()},save(e,t){var n=e.params,r=e.callback,i=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{saveLoading:!0}});case 2:return e.next=4,Object(o["b"])("/"+window.settings.secure_path+"/notice/save",n);case 4:return t=e.sent,e.next=7,i({type:"setState",payload:{saveLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,i({type:"fetch"});case 11:"function"===typeof r&&r();case 12:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/notice/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},show(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/notice/show",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()}}}},lFUy:function(e,t,n){"use strict";var r=n("8Z/V"),i=n("Igga"),o=n("e6w7"),a=n("LsAW"),s=n("il4q"),l=n("9WFV"),c=Object.assign;e.exports=!c||n("wUWy")(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=c({},e)[n]||Object.keys(c({},t)).join("")!=r})?function(e,t){var n=s(e),c=arguments.length,u=1,h=o.f,f=a.f;while(c>u){var d,p=l(arguments[u++]),m=h?i(p).concat(h(p)):i(p),g=m.length,v=0;while(g>v)d=m[v++],r&&!f.call(p,d)||(n[d]=p[d])}return n}:c},lJCZ:function(e,t,n){(function(e){var r=n("kl5A"),i=n("yQtW"),o=n("U6jy"),a=n("jAWH"),s=n("CxY0"),l=t;l.request=function(t,n){t="string"===typeof t?s.parse(t):o(t);var i=-1===e.location.protocol.search(/^https?:$/)?"http:":"",a=t.protocol||i,l=t.hostname||t.host,c=t.port,u=t.path||"/";l&&-1!==l.indexOf(":")&&(l="["+l+"]"),t.url=(l?a+"//"+l:"")+(c?":"+c:"")+u,t.method=(t.method||"GET").toUpperCase(),t.headers=t.headers||{};var h=new r(t);return n&&h.on("response",n),h},l.get=function(e,t){var n=l.request(e,t);return n.end(),n},l.ClientRequest=r,l.IncomingMessage=i.IncomingMessage,l.Agent=function(){},l.Agent.defaultMaxSockets=4,l.globalAgent=new l.Agent,l.STATUS_CODES=a,l.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]}).call(this,n("yLpj"))},lVBX:function(e,t,n){"use strict";var r=n("fNJh"),i=n("R5jr");r["default"].__addLocaleData(i["default"]),r["default"].defaultLocale="en",t["default"]=r["default"]},lWxU:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={switchLoading:{},saveLoading:!1};t["default"]={name:"serverTrojan",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{update(e,t){var n=e.id,r=e.key,i=e.value,s=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/trojan/update",{id:n,[r]:i});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,s({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/trojan/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},copy(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/trojan/copy",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},save(e,t){var n=e.params,r=e.callback,i=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{saveLoading:!0}});case 2:return e.next=4,Object(o["b"])("/"+window.settings.secure_path+"/server/trojan/save",n);case 4:return t=e.sent,e.next=7,i({type:"setState",payload:{saveLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,i({type:"serverManage/getNodes"});case 11:"function"===typeof r&&r();case 12:case"end":return e.stop()}},e)})()}}}},lZXM:function(e,t,n){"use strict";var r=n("7vYJ"),i=n("OsVd"),o=n("ETUh"),a=n("bsDr");n("h7Gi")("match",1,function(e,t,n,s){return[function(n){var r=e(this),i=void 0==n?void 0:n[t];return void 0!==i?i.call(n,r):new RegExp(n)[t](String(r))},function(e){var t=s(n,e,this);if(t.done)return t.value;var l=r(e),c=String(this);if(!l.global)return a(l,c);var u=l.unicode;l.lastIndex=0;var h,f=[],d=0;while(null!==(h=a(l,c))){var p=String(h[0]);f[d]=p,""===p&&(l.lastIndex=o(c,i(l.lastIndex),u)),d++}return 0===d?null:f}]})},lm0R:function(e,t,n){"use strict";(function(t){function n(e,n,r,i){if("function"!==typeof e)throw new TypeError('"callback" argument must be a function');var o,a,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,n)});case 3:return t.nextTick(function(){e.call(null,n,r)});case 4:return t.nextTick(function(){e.call(null,n,r,i)});default:o=new Array(s-1),a=0;while(a{this.state.visible||this.setState({submit:{email:this.props.email||void 0,plan_id:void 0,period:void 0,total_amount:void 0}})})}setSubmit(e,t){this.setState({submit:l()({},this.state.submit,{[e]:t})})}ok(){this.props.dispatch({type:"order/assign",params:l()({},this.state.submit),callback:()=>{this.show()}})}render(){var e=this.state,t=e.visible,n=e.submit,s=this.props.plan.plans,l=this.props.order.assignLoading;return u.a.createElement(u.a.Fragment,null,u.a.cloneElement(this.props.children,{onClick:()=>this.show()}),u.a.createElement(r["a"],{title:"订单分配",visible:t,onCancel:()=>this.show(),onOk:()=>this.ok(),okText:l?u.a.createElement(a["a"],{type:"loading"}):"确定",cancelText:"取消"},u.a.createElement("div",{className:"form-group"},u.a.createElement("label",{for:"example-text-input-alt"},"用户邮箱"),u.a.createElement(o["a"],{placeholder:"请输入用户邮箱",value:n.email,onChange:e=>this.setSubmit("email",e.target.value)})),u.a.createElement("div",{className:"form-group"},u.a.createElement("label",{for:"example-text-input-alt"},"请选择订阅"),u.a.createElement("div",null,u.a.createElement(i["a"],{value:n.plan_id,style:{width:"100%"},placeholder:"请选择订阅",onChange:e=>this.setSubmit("plan_id",e)},s.map(e=>{return u.a.createElement(i["a"].Option,{value:e.id,key:Math.random()},e.name)})))),u.a.createElement("div",{className:"form-group"},u.a.createElement("label",{for:"example-text-input-alt"},"请选择周期"),u.a.createElement("div",null,u.a.createElement(i["a"],{value:n.period,style:{width:"100%"},placeholder:"请选择周期",onChange:e=>this.setSubmit("period",e)},Object.keys(f["a"].periodText).map(e=>{return u.a.createElement(i["a"].Option,{value:e,key:Math.random()},f["a"].periodText[e])})))),u.a.createElement("div",{className:"form-group"},u.a.createElement("label",{for:"example-text-input-alt"},"支付金额"),u.a.createElement(o["a"],{placeholder:"请输入需要支付的金额",addonAfter:"¥",value:n.total_amount,onChange:e=>this.setSubmit("total_amount",e.target.value)}))))}}t["a"]=Object(h["c"])(e=>{var t=e.plan,n=e.order;return{plan:t,order:n}})(d)},mFDi:function(e,t,n){"use strict";var r=n("Fofx"),i=n("3Oj7"),o=Math.min,a=Math.max,s=new i["a"],l=new i["a"],c=new i["a"],u=new i["a"],h=new i["a"],f=new i["a"],d=function(){function e(e,t,n,r){n<0&&(e+=n,n=-n),r<0&&(t+=r,r=-r),this.x=e,this.y=t,this.width=n,this.height=r}return e.prototype.union=function(e){var t=o(e.x,this.x),n=o(e.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=a(e.x+e.width,this.x+this.width)-t:this.width=e.width,isFinite(this.y)&&isFinite(this.height)?this.height=a(e.y+e.height,this.y+this.height)-n:this.height=e.height,this.x=t,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(e){var t=this,n=e.width/t.width,i=e.height/t.height,o=r["b"]();return r["h"](o,o,[-t.x,-t.y]),r["g"](o,o,[n,i]),r["h"](o,o,[e.x,e.y]),o},e.prototype.intersect=function(t,n){if(!t)return!1;t instanceof e||(t=e.create(t));var r=this,o=r.x,a=r.x+r.width,s=r.y,l=r.y+r.height,c=t.x,u=t.x+t.width,d=t.y,p=t.y+t.height,m=!(av&&(v=_,yv&&(v=E,w=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return 0===this.width||0===this.height},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(e,t){e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height},e.applyTransform=function(t,n,r){if(r){if(r[1]<1e-5&&r[1]>-1e-5&&r[2]<1e-5&&r[2]>-1e-5){var i=r[0],h=r[3],f=r[4],d=r[5];return t.x=n.x*i+f,t.y=n.y*h+d,t.width=n.width*i,t.height=n.height*h,t.width<0&&(t.x+=t.width,t.width=-t.width),void(t.height<0&&(t.y+=t.height,t.height=-t.height))}s.x=c.x=n.x,s.y=u.y=n.y,l.x=u.x=n.x+n.width,l.y=c.y=n.y+n.height,s.transform(r),u.transform(r),l.transform(r),c.transform(r),t.x=o(s.x,l.x,c.x,u.x),t.y=o(s.y,l.y,c.y,u.y);var p=a(s.x,l.x,c.x,u.x),m=a(s.y,l.y,c.y,u.y);t.width=p-t.x,t.height=m-t.y}else t!==n&&e.copy(t,n)},e}();t["a"]=d},mHNb:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={knowledges:[],fetchLoading:!1,categorys:[],knowledge:{},fetchByIdLoading:!1,saveLoading:!1};t["default"]={name:"knowledge",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{fetch(e,t){var n=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,n({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/knowledge/fetch");case 4:return t=e.sent,e.next=7,n({type:"setState",payload:{fetchLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,n({type:"setState",payload:{knowledges:t.data}});case 11:case"end":return e.stop()}},e)})()},fetchById(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,r({type:"setState",payload:{fetchByIdLoading:!0}});case 2:return e.next=4,Object(o["a"])("/"+window.settings.secure_path+"/knowledge/fetch",{id:n});case 4:return t=e.sent,e.next=7,r({type:"setState",payload:{fetchByIdLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,r({type:"setState",payload:{knowledge:t.data}});case 11:case"end":return e.stop()}},e)})()},save(e,t){var n=e.callback,r=t.put,s=t.select;return a().mark(function e(){var t,l,c;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,s(e=>e.knowledge);case 2:return t=e.sent,l=t.knowledge,e.next=6,r({type:"setState",payload:{saveLoading:!0}});case 6:return e.next=8,Object(o["b"])("/"+window.settings.secure_path+"/knowledge/save",i()({},l));case 8:return c=e.sent,e.next=11,r({type:"setState",payload:{saveLoading:!1}});case 11:if(200===c.code){e.next=13;break}return e.abrupt("return");case 13:return e.next=15,r({type:"fetch"});case 15:"function"===typeof n&&n();case 16:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/knowledge/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},show(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/knowledge/show",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"fetch"});case 7:case"end":return e.stop()}},e)})()},sort(e,t){var n=e.fromIndex,r=e.toIndex,i=t.select,s=t.put;return a().mark(function e(){var t,l,c;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,s({type:"setState",payload:{fetchLoading:!0}});case 2:return e.next=4,i(e=>e.knowledge);case 4:return t=e.sent,l=t.knowledges,ne.id)});case 11:if(c=e.sent,200===c.code){e.next=14;break}return e.abrupt("return");case 14:return e.next=16,s({type:"fetch"});case 16:case"end":return e.stop()}},e)})()},getCategory(e,t){var n=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["a"])("/"+window.settings.secure_path+"/knowledge/getCategory");case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,n({type:"setState",payload:{categorys:t.data}});case 7:case"end":return e.stop()}},e)})()}}}},mRg0:function(e,t,n){"use strict";t.__esModule=!0;var r=n("s3Ml"),i=c(r),o=n("AyUB"),a=c(o),s=n("EJiy"),l=c(s);function c(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"===typeof t?"undefined":(0,l.default)(t)));e.prototype=(0,a.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(i.default?(0,i.default)(e,t):e.__proto__=t)}},maVC:function(e,t,n){"use strict";n("2qtc");var r=n("kLXV"),i=n("p0pE"),o=n.n(i),a=(n("5NDa"),n("5rEg")),s=n("q1tI"),l=n.n(s),c=n("/MKj");class u extends l.a.Component{constructor(e){super(e),this.state={visible:!1,submit:{}}}show(){this.setState({visible:!0})}hide(){this.setState({visible:!1})}send(){this.props.dispatch({type:"user/sendMail",params:this.state.submit,callback:()=>{this.hide()}})}render(){var e=this.props.user,t=e.filter,n=e.sendMailLoading,i=this.state.visible;return l.a.createElement(l.a.Fragment,null,l.a.cloneElement(this.props.children,{onClick:()=>this.show()}),l.a.createElement(r["a"],{title:"发送邮件",visible:i,onOk:()=>this.send(),okButtonProps:{loading:n},onCancel:()=>this.hide()},l.a.createElement("div",{className:"form-group"},l.a.createElement("label",{htmlFor:"example-text-input-alt"},"收件人"),l.a.createElement(a["a"],{disabled:!0,value:t.length?"过滤用户":"全部用户"})),l.a.createElement("div",{className:"form-group"},l.a.createElement("label",{htmlFor:"example-text-input-alt"},"主题"),l.a.createElement(a["a"],{placeholder:"请输入邮件主题",value:this.state.submit.subject,onChange:e=>{this.setState({submit:o()({},this.state.submit,{subject:e.target.value})})}})),l.a.createElement("div",{className:"form-group"},l.a.createElement("label",{htmlFor:"example-text-input-alt"},"发送内容"),l.a.createElement(a["a"].TextArea,{rows:12,value:this.state.submit.content,placeholder:"请输入邮件内容",onChange:e=>{this.setState({submit:o()({},this.state.submit,{content:e.target.value})})}}))))}}t["a"]=Object(c["c"])(e=>{var t=e.user;return{user:t}})(u)},mcDz:function(e,t,n){"use strict";t.__esModule=!0,t.locationsAreEqual=t.createLocation=void 0;var r=Object.assign||function(e){for(var t=1;t0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function o(e,t){var n="function"===typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{while((void 0===t||t-- >0)&&!(r=o.next()).done)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o["return"])&&n.call(o)}finally{if(i)throw i.error}}return a}function a(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i Promise))`.","See if using `DarkReader.setFetchMethod(window.fetch)`","before `DarkReader.enable()` works."].join(" ")))]})})},E=_;function S(e){E=e||_}function k(e){return n(this,void 0,void 0,function(){return r(this,function(t){switch(t.label){case 0:return[4,E(e)];case 1:return[2,t.sent()]}})})}window.chrome||(window.chrome={}),chrome.runtime||(chrome.runtime={});var C=new Set;function O(){for(var e=[],t=0;t=r){if(d-cte)return!0;for(var t=0,n=0;nte)return!0;return!1}function re(e){var t=new Set,n=new Set,r=new Set;e.forEach(function(e){N(e.addedNodes,function(e){e instanceof Element&&e.isConnected&&t.add(e)}),N(e.removedNodes,function(e){e instanceof Element&&(e.isConnected?r.add(e):n.add(e))})}),r.forEach(function(e){return t.delete(e)});var i=[],o=[];return t.forEach(function(e){t.has(e.parentElement)&&i.push(e)}),n.forEach(function(e){n.has(e.parentElement)&&o.push(e)}),i.forEach(function(e){return t.delete(e)}),o.forEach(function(e){return n.delete(e)}),{additions:t,moves:r,deletions:n}}var ie,oe=new Map,ae=new WeakMap;function se(e,t){var n,r,i;if(oe.has(e))n=oe.get(e),r=ae.get(n);else{var o=!1,a=!1;n=new MutationObserver(function(t){if(ne(t))!o||G()?r.forEach(function(t){var n=t.onHugeMutations;return n(e)}):a||(i=function(){return r.forEach(function(t){var n=t.onHugeMutations;return n(e)})},K(i),a=!0),o=!0;else{var n=re(t);r.forEach(function(e){var t=e.onMinorMutations;return t(n)})}}),n.observe(e,{childList:!0,subtree:!0}),oe.set(e,n),r=new Set,ae.set(n,r)}return r.add(t),{disconnect:function(){r.delete(t),i&&Y(i),0===r.size&&(n.disconnect(),ae.delete(n),oe.delete(e))}}}var le=new Map;function ce(e){return ie||(ie=document.createElement("a")),ie.href=e,ie.href}function ue(e,t){void 0===t&&(t=null);var n=e+(t?";"+t:"");if(le.has(n))return le.get(n);if(t){var r=new URL(e,ce(t));return le.set(n,r),r}var i=new URL(ce(e));return le.set(e,i),i}function he(e,t){if(t.match(/^data\\?\:/))return t;var n=ue(e),r=ue(t,n.href);return r.href}function fe(e,t,n){N(e,function(e){if(e.selectorText)t(e);else if(e.href)try{fe(e.styleSheet.cssRules,t,n)}catch(e){$("Found a non-loaded link."),n&&n()}else if(e.media){var r=Array.from(e.media),i=r.some(function(e){return e.startsWith("screen")||e.startsWith("all")}),o=r.some(function(e){return e.startsWith("print")||e.startsWith("speech")});!i&&o||fe(e.cssRules,t,n)}else e.conditionText?CSS.supports(e.conditionText)&&fe(e.cssRules,t,n):F("CSSRule type not supported",e)})}var de=["background","border","border-color","border-bottom","border-left","border-right","border-top","outline","outline-color"],pe=d?de.map(function(e){var t=new RegExp(e+":\\s*(.*?)\\s*;");return[e,t]}):null;function me(e,t){N(e,function(n){var r=e.getPropertyValue(n).trim();r&&t(n,r)});var n=e.cssText;n.includes("var(")&&(d?pe.forEach(function(e){var r=o(e,2),i=r[0],a=r[1],s=n.match(a);if(s&&s[1]){var l=s[1].trim();t(i,l)}}):de.forEach(function(n){var r=e.getPropertyValue(n);r&&r.includes("var(")&&t(n,r)}))}var ge=/url\((('.+?')|(".+?")|([^\)]*?))\)/g,ve=/@import\s*(url\()?(('.+?')|(".+?")|([^\)]*?))\)?;?/g;function ye(e){return e.replace(/^url\((.*)\)$/,"$1").replace(/^"(.*)"$/,"$1").replace(/^'(.*)'$/,"$1")}function be(e){var t=ue(e);return""+t.origin+t.pathname.replace(/\?.*$/,"").replace(/(\/)([^\/]+)$/i,"$1")}function we(e,t){return e.replace(ge,function(e){var n=ye(e);return'url("'+he(t,n)+'")'})}var xe=/\/\*[\s\S]*?\*\//g;function _e(e){return e.replace(xe,"")}var Ee=/@font-face\s*{[^}]*}/g;function Se(e){return e.replace(Ee,"")}function ke(e){var t=e.h,n=e.s,r=e.l,i=e.a,a=void 0===i?1:i;if(0===n){var s=o([r,r,r].map(function(e){return Math.round(255*e)}),3),l=s[0],c=s[1],u=s[2];return{r:l,g:u,b:c,a:a}}var h=(1-Math.abs(2*r-1))*n,f=h*(1-Math.abs(t/60%2-1)),d=r-h/2,p=o((t<60?[h,f,0]:t<120?[f,h,0]:t<180?[0,h,f]:t<240?[0,f,h]:t<300?[f,0,h]:[h,0,f]).map(function(e){return Math.round(255*(e+d))}),3),m=p[0],g=p[1],v=p[2];return{r:m,g:g,b:v,a:a}}function Ce(e){var t=e.r,n=e.g,r=e.b,i=e.a,o=void 0===i?1:i,a=t/255,s=n/255,l=r/255,c=Math.max(a,s,l),u=Math.min(a,s,l),h=c-u,f=(c+u)/2;if(0===h)return{h:0,s:0,l:f,a:o};var d=60*(c===a?(s-l)/h%6:c===s?(l-a)/h+2:(a-s)/h+4);d<0&&(d+=360);var p=h/(1-Math.abs(2*f-1));return{h:d,s:p,l:f,a:o}}function Oe(e,t){void 0===t&&(t=0);var n=e.toFixed(t);if(0===t)return n;var r=n.indexOf(".");if(r>=0){var i=n.match(/0+$/);if(i)return i.index===r+1?n.substring(0,r):n.substring(0,i.index)}return n}function Te(e){var t=e.r,n=e.g,r=e.b,i=e.a;return null!=i&&i<1?"rgba("+Oe(t)+", "+Oe(n)+", "+Oe(r)+", "+Oe(i,2)+")":"rgb("+Oe(t)+", "+Oe(n)+", "+Oe(r)+")"}function Le(e){var t=e.r,n=e.g,r=e.b,i=e.a;return"#"+(null!=i&&i<1?[t,n,r,Math.round(255*i)]:[t,n,r]).map(function(e){return(e<16?"0":"")+e.toString(16)}).join("")}function Ae(e){var t=e.h,n=e.s,r=e.l,i=e.a;return null!=i&&i<1?"hsla("+Oe(t)+", "+Oe(100*n)+"%, "+Oe(100*r)+"%, "+Oe(i,2)+")":"hsl("+Oe(t)+", "+Oe(100*n)+"%, "+Oe(100*r)+"%)"}var Pe=/^rgba?\([^\(\)]+\)$/,je=/^hsla?\([^\(\)]+\)$/,Me=/^#[0-9a-f]+$/i;function Re(e){var t=e.trim().toLowerCase();if(t.match(Pe))return Fe(t);if(t.match(je))return He(t);if(t.match(Me))return Ue(t);if(qe.has(t))return ze(t);if(Ke.has(t))return Ge(t);if("transparent"===e)return{r:0,g:0,b:0,a:0};throw new Error("Unable to parse "+e)}function Ne(e,t,n,r){var i=e.split(t).filter(function(e){return e}),a=Object.entries(r),s=i.map(function(e){return e.trim()}).map(function(e,t){var r,i=a.find(function(t){var n=o(t,1),r=n[0];return e.endsWith(r)});return r=i?parseFloat(e.substring(0,e.length-i[0].length))/i[1]*n[t]:parseFloat(e),n[t]>1?Math.round(r):r});return s}var De=/rgba?|\(|\)|\/|,|\s/gi,Ie=[255,255,255,1],$e={"%":100};function Fe(e){var t=o(Ne(e,De,Ie,$e),4),n=t[0],r=t[1],i=t[2],a=t[3],s=void 0===a?1:a;return{r:n,g:r,b:i,a:s}}var Be=/hsla?|\(|\)|\/|,|\s/gi,Ve=[360,1,1,1],We={"%":100,deg:360,rad:2*Math.PI,turn:1};function He(e){var t=o(Ne(e,Be,Ve,We),4),n=t[0],r=t[1],i=t[2],a=t[3],s=void 0===a?1:a;return ke({h:n,s:r,l:i,a:s})}function Ue(e){var t=e.substring(1);switch(t.length){case 3:case 4:var n=o([0,1,2].map(function(e){return parseInt(""+t[e]+t[e],16)}),3),r=n[0],i=n[1],a=n[2],s=3===t.length?1:parseInt(""+t[3]+t[3],16)/255;return{r:r,g:i,b:a,a:s};case 6:case 8:var l=o([0,2,4].map(function(e){return parseInt(t.substring(e,e+2),16)}),3);r=l[0],i=l[1],a=l[2],s=6===t.length?1:parseInt(t.substring(6,8),16)/255;return{r:r,g:i,b:a,a:s}}throw new Error("Unable to parse "+e)}function ze(e){var t=qe.get(e);return{r:t>>16&255,g:t>>8&255,b:t>>0&255,a:1}}function Ge(e){var t=Ke.get(e);return{r:t>>16&255,g:t>>8&255,b:t>>0&255,a:1}}var qe=new Map(Object.entries({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgrey:11119017,darkgreen:25600,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,grey:8421504,green:32768,greenyellow:11403055,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgrey:13882323,lightgreen:9498256,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074})),Ke=new Map(Object.entries({ActiveBorder:3906044,ActiveCaption:0,AppWorkspace:11184810,Background:6513614,ButtonFace:16777215,ButtonHighlight:15329769,ButtonShadow:10461343,ButtonText:0,CaptionText:0,GrayText:8355711,Highlight:11720703,HighlightText:0,InactiveBorder:16777215,InactiveCaption:16777215,InactiveCaptionText:0,InfoBackground:16514245,InfoText:0,Menu:16185078,MenuText:16777215,Scrollbar:11184810,ThreeDDarkShadow:0,ThreeDFace:12632256,ThreeDHighlight:16777215,ThreeDLightShadow:16777215,ThreeDShadow:0,Window:15527148,WindowFrame:11184810,WindowText:0,"-webkit-focus-ring-color":15046400}).map(function(e){var t=o(e,2),n=t[0],r=t[1];return[n.toLowerCase(),r]}));function Ye(e,t,n,r,i){return(e-t)*(i-r)/(n-t)+r}function Xe(e,t,n){return Math.min(n,Math.max(t,e))}function Qe(e,t){for(var n=[],r=0,i=e.length;r200&&i<280;r=o<.24||a>.8&&c}var u=i,h=a;r&&(l?(u=t.h,h=t.s):(u=n.h,h=n.s));var f=Ye(a,0,1,t.l,n.l);return{h:u,s:h,l:f,a:s}}var yt=.4;function bt(e,t){var n=e.h,r=e.s,i=e.l,o=e.a,a=i<.5,s=n>200&&n<280,l=r<.12||i>.8&&s;if(a){var c=Ye(i,0,.5,0,yt);if(l){var u=t.h,h=t.s;return{h:u,s:h,l:c,a:o}}return{h:n,s:r,l:c,a:o}}var f=Ye(i,.5,1,yt,t.l);if(l){var d=t.h;h=t.s;return{h:d,s:h,l:f,a:o}}var p=n,m=n>60&&n<180;if(m){var g=n>120;p=g?Ye(n,120,180,135,180):Ye(n,60,120,60,105)}return{h:p,s:r,l:f,a:o}}function wt(e,n){if(0===n.mode)return gt(e,n);var r=it(n);return dt(e,t(t({},n),{mode:0}),bt,r)}var xt,_t=.55;function Et(e){return Ye(e,205,245,205,220)}function St(e,t){var n=e.h,r=e.s,i=e.l,o=e.a,a=i>.5,s=i<.2||r<.24,l=!s&&n>205&&n<245;if(a){var c=Ye(i,.5,1,_t,t.l);if(s){var u=t.h,h=t.s;return{h:u,s:h,l:c,a:o}}var f=n;return l&&(f=Et(n)),{h:f,s:r,l:c,a:o}}if(s){var d=t.h,p=(h=t.s,Ye(i,0,.5,t.l,_t));return{h:d,s:h,l:p,a:o}}var m,g=n;return l?(g=Et(n),m=Ye(i,0,.5,t.l,Math.min(1,_t+.05))):m=Ye(i,0,.5,t.l,_t),{h:g,s:r,l:m,a:o}}function kt(e,n){if(0===n.mode)return gt(e,n);var r=ot(n);return dt(e,t(t({},n),{mode:0}),St,r)}function Ct(e,t,n){var r=e.h,i=e.s,o=e.l,a=e.a,s=o<.5,l=o<.2||i<.24,c=r,u=i;l&&(s?(c=t.h,u=t.s):(c=n.h,u=n.s));var h=Ye(o,0,1,.5,.2);return{h:c,s:u,l:h,a:a}}function Ot(e,n){if(0===n.mode)return gt(e,n);var r=ot(n),i=it(n);return dt(e,t(t({},n),{mode:0}),Ct,r,i)}function Tt(e,t){return wt(e,t)}function Lt(e,t){return wt(e,t)}function At(e){var t=[];return t.push('*:not(pre, pre *, code, .far, .fa, .glyphicon, [class*="vjs-"], .fab, .fa-github, .fas, .material-icons, .icofont, .typcn, mu, [class*="mu-"], .glyphicon, .icon) {'),e.useFont&&e.fontFamily&&t.push(" font-family: "+e.fontFamily+" !important;"),e.textStroke>0&&(t.push(" -webkit-text-stroke: "+e.textStroke+"px !important;"),t.push(" text-stroke: "+e.textStroke+"px !important;")),t.push("}"),t.join("\n")}function Pt(e){var t=[];return e.mode===xt.dark&&t.push("invert(100%) hue-rotate(180deg)"),100!==e.brightness&&t.push("brightness("+e.brightness+"%)"),100!==e.contrast&&t.push("contrast("+e.contrast+"%)"),0!==e.grayscale&&t.push("grayscale("+e.grayscale+"%)"),0!==e.sepia&&t.push("sepia("+e.sepia+"%)"),0===t.length?null:t.join(" ")}function jt(e){return e.slice(0,4).map(function(e){return e.map(function(e){return e.toFixed(3)}).join(" ")}).join(" ")}function Mt(e){return jt(tt(e))}(function(e){e[e["light"]=0]="light",e[e["dark"]=1]="dark"})(xt||(xt={}));var Rt=0,Nt=new Map,Dt=new Map;function It(e){return n(this,void 0,void 0,function(){return r(this,function(t){return[2,new Promise(function(t,n){var r=++Rt;Nt.set(r,t),Dt.set(r,n),chrome.runtime.sendMessage({type:s.CS_FETCH,data:e,id:r})})]})})}chrome.runtime.onMessage.addListener(function(e){var t=e.type,n=e.data,r=e.error,i=e.id;if(t===s.BG_FETCH_RESPONSE){var o=Nt.get(i),a=Dt.get(i);Nt.delete(i),Dt.delete(i),r?a&&a(r):o&&o(n)}});var $t=function(){function e(){this.queue=[],this.timerId=null,this.frameDuration=1e3/60}return e.prototype.addToQueue=function(e){this.queue.push(e),this.startQueue()},e.prototype.stopQueue=function(){null!==this.timerId&&(cancelAnimationFrame(this.timerId),this.timerId=null),this.queue=[]},e.prototype.startQueue=function(){var e=this;this.timerId||(this.timerId=requestAnimationFrame(function(){e.timerId=null;var t,n=Date.now();while(t=e.queue.shift())if(t(),Date.now()-n>=e.frameDuration){e.startQueue();break}}))},e}(),Ft=new $t;function Bt(e){return n(this,void 0,void 0,function(){var i=this;return r(this,function(o){return[2,new Promise(function(o,a){return n(i,void 0,void 0,function(){var n,i,s,l;return r(this,function(r){switch(r.label){case 0:return e.startsWith("data:")?(n=e,[3,4]):[3,1];case 1:return r.trys.push([1,3,,4]),[4,Vt(e)];case 2:return n=r.sent(),[3,4];case 3:return i=r.sent(),a(i),[3,4];case 4:return r.trys.push([4,6,,7]),[4,Wt(n)];case 5:return s=r.sent(),Ft.addToQueue(function(){o(t({src:e,dataURL:n,width:s.naturalWidth,height:s.naturalHeight},Yt(s)))}),[3,7];case 6:return l=r.sent(),a(l),[3,7];case 7:return[2]}})})})]})})}function Vt(e){return n(this,void 0,void 0,function(){var t;return r(this,function(n){switch(n.label){case 0:return t=new URL(e),t.origin!==location.origin?[3,2]:[4,w(e)];case 1:return[2,n.sent()];case 2:return[4,It({url:e,responseType:"data-url"})];case 3:return[2,n.sent()]}})})}function Wt(e){return n(this,void 0,void 0,function(){return r(this,function(t){return[2,new Promise(function(t,n){var r=new Image;r.onload=function(){return t(r)},r.onerror=function(){return n("Unable to load image "+e)},r.src=e})]})})}var Ht,Ut,zt=1024;function Gt(){var e=zt,t=zt;Ht=document.createElement("canvas"),Ht.width=e,Ht.height=t,Ut=Ht.getContext("2d"),Ut.imageSmoothingEnabled=!1}function qt(){Ht=null,Ut=null}var Kt=5242880;function Yt(e){Ht||Gt();var t=e.naturalWidth,n=e.naturalHeight;if(0===n||0===t)return F("logWarn(Image is empty "+e.currentSrc+")"),null;var r=t*n*4;if(r>Kt)return $("Skipped large image analyzing(Larger than 5mb in memory)"),{isDark:!1,isLight:!1,isTransparent:!1,isLarge:!1,isTooLarge:!0};var i=t*n,o=Math.min(1,Math.sqrt(zt/i)),a=Math.ceil(t*o),s=Math.ceil(n*o);Ut.clearRect(0,0,a,s),Ut.drawImage(e,0,0,t,n,0,0,a,s);var l,c,u,h,f,d,p,m,g=Ut.getImageData(0,0,a,s),v=g.data,y=.05,b=.4,w=.7,x=0,_=0,E=0;for(u=0;uw&&E++);var S=a*s,k=S-x,C=.7,O=.7,T=.1,L=48e4;return{isDark:_/k>=C,isLight:E/k>=O,isTransparent:x/S>=T,isLarge:i>=L,isTooLarge:!1}}function Xt(e,t){var n=e.dataURL,r=e.width,i=e.height,o=Mt(t),a=['',"",'','',"","",'',""].join("");return"data:image/svg+xml;base64,"+btoa(a)}function Qt(){Ft&&Ft.stopQueue(),qt()}function Zt(e,t){return Boolean(e&&e.getPropertyPriority(t))}function Jt(e,t,n,r,i,o){if(e.startsWith("--")){var a=vn(r,e,t,n,i,o);if(a)return{property:e,value:a,important:Zt(n.style,e),sourceValue:t}}else if(t.includes("var(")){a=yn(r,e,t);if(a)return{property:e,value:a,important:Zt(n.style,e),sourceValue:t}}else if(e.includes("color")&&"-webkit-print-color-adjust"!==e||"fill"===e||"stroke"===e||"stop-color"===e){a=un(e,t);if(a)return{property:e,value:a,important:Zt(n.style,e),sourceValue:t}}else if("background-image"===e||"list-style-image"===e){a=mn(t,n,i,o);if(a)return{property:e,value:a,important:Zt(n.style,e),sourceValue:t}}else if(e.includes("shadow")){a=gn(t);if(a)return{property:e,value:a,important:Zt(n.style,e),sourceValue:t}}return null}function en(e,t,n){var r=[];return t||(r.push("html {"),r.push(" background-color: "+wt({r:255,g:255,b:255},e)+" !important;"),r.push("}")),r.push((t?"":"html, body, ")+(n?"input, textarea, select, button":"")+" {"),r.push(" background-color: "+wt({r:255,g:255,b:255},e)+";"),r.push("}"),r.push("html, body, "+(n?"input, textarea, select, button":"")+" {"),r.push(" border-color: "+Ot({r:76,g:76,b:76},e)+";"),r.push(" color: "+kt({r:0,g:0,b:0},e)+";"),r.push("}"),r.push("a {"),r.push(" color: "+kt({r:0,g:64,b:255},e)+";"),r.push("}"),r.push("table {"),r.push(" border-color: "+Ot({r:128,g:128,b:128},e)+";"),r.push("}"),r.push("::placeholder {"),r.push(" color: "+kt({r:169,g:169,b:169},e)+";"),r.push("}"),r.push("input:-webkit-autofill,"),r.push("textarea:-webkit-autofill,"),r.push("select:-webkit-autofill {"),r.push(" background-color: "+wt({r:250,g:255,b:189},e)+" !important;"),r.push(" color: "+kt({r:0,g:0,b:0},e)+" !important;"),r.push("}"),e.scrollbarColor&&r.push(rn(e)),e.selectionColor&&r.push(nn(e)),r.join("\n")}function tn(e){var n,r;if("auto"===e.selectionColor)n=wt({r:0,g:96,b:212},t(t({},e),{grayscale:0})),r=kt({r:255,g:255,b:255},t(t({},e),{grayscale:0}));else{var i=Re(e.selectionColor),o=Ce(i);n=e.selectionColor,r=o.l<.5?"#FFF":"#000"}return{backgroundColorSelection:n,foregroundColorSelection:r}}function nn(e){var t=[],n=tn(e),r=n.backgroundColorSelection,i=n.foregroundColorSelection;return["::selection","::-moz-selection"].forEach(function(e){t.push(e+" {"),t.push(" background-color: "+r+" !important;"),t.push(" color: "+i+" !important;"),t.push("}")}),t.join("\n")}function rn(e){var n,r,i,o,a,s,l=[];if("auto"===e.scrollbarColor)n=wt({r:241,g:241,b:241},e),r=kt({r:96,g:96,b:96},e),i=wt({r:176,g:176,b:176},e),o=wt({r:144,g:144,b:144},e),a=wt({r:96,g:96,b:96},e),s=wt({r:255,g:255,b:255},e);else{var c=Re(e.scrollbarColor),u=Ce(c),h=u.l>.5,d=function(e){return t(t({},u),{l:Xe(u.l+e,0,1)})},p=function(e){return t(t({},u),{l:Xe(u.l-e,0,1)})};n=Ae(p(.4)),r=Ae(h?p(.4):d(.4)),i=Ae(u),o=Ae(d(.1)),a=Ae(d(.2))}return l.push("::-webkit-scrollbar {"),l.push(" background-color: "+n+";"),l.push(" color: "+r+";"),l.push("}"),l.push("::-webkit-scrollbar-thumb {"),l.push(" background-color: "+i+";"),l.push("}"),l.push("::-webkit-scrollbar-thumb:hover {"),l.push(" background-color: "+o+";"),l.push("}"),l.push("::-webkit-scrollbar-thumb:active {"),l.push(" background-color: "+a+";"),l.push("}"),l.push("::-webkit-scrollbar-corner {"),l.push(" background-color: "+s+";"),l.push("}"),f&&(l.push("* {"),l.push(" scrollbar-color: "+i+" "+n+";"),l.push("}")),l.join("\n")}function on(e,t){var n=t.strict,r=[];return r.push("html, body, "+(n?"body :not(iframe)":"body > :not(iframe)")+" {"),r.push(" background-color: "+wt({r:255,g:255,b:255},e)+" !important;"),r.push(" border-color: "+Ot({r:64,g:64,b:64},e)+" !important;"),r.push(" color: "+kt({r:0,g:0,b:0},e)+" !important;"),r.push("}"),r.join("\n")}var an=new Set(["inherit","transparent","initial","currentcolor","none","unset"]),sn=new Map;function ln(e){if(e=e.trim(),sn.has(e))return sn.get(e);var t=Re(e);return sn.set(e,t),t}function cn(e){try{return ln(e)}catch(e){return null}}function un(e,t){if(an.has(t.toLowerCase()))return t;try{var n=ln(t);return e.includes("background")?function(e){return wt(n,e)}:e.includes("border")||e.includes("outline")?function(e){return Ot(n,e)}:function(e){return kt(n,e)}}catch(e){return F("Color parse error",e),null}}var hn=/[\-a-z]+gradient\(([^\(\)]*(\(([^\(\)]*(\(.*?\)))*[^\(\)]*\))){0,15}[^\(\)]*\)/g,fn=new Map,dn=new Map;function pn(e,t){if(!e||0===t.length)return!1;if(t.some(function(e){return"*"===e}))return!0;for(var n=e.split(/,\s*/g),r=function(e){var r=t[e];if(n.some(function(e){return e===r}))return{value:!0}},i=0;i2){$("Inverting dark image "+e.src);var u=Xt(e,t(t({},n),{sepia:Xe(n.sepia+10,0,100)}));r='url("'+u+'")'}else if(o&&!a&&1===n.mode)if(s)r="none";else{$("Dimming light image "+e.src);var h=Xt(e,n);r='url("'+h+'")'}else if(0===n.mode&&o&&!s){$("Applying filter to image "+e.src);var f=Xt(e,t(t({},n),{brightness:Xe(n.brightness-10,5,200),sepia:Xe(n.sepia+10,0,100)}));r='url("'+f+'")'}else r=null;return r},m=[],g=0;return h.forEach(function(t,n){var r=t.match,i=t.type,o=t.index,a=g,s=o+r.length;g=s,m.push(function(){return e.substring(a,o)}),m.push("url"===i?d(r):f(r)),n===h.length-1&&m.push(function(){return e.substring(s)})}),function(e){var t=m.filter(Boolean).map(function(t){return t(e)});return t.some(function(e){return e instanceof Promise})?Promise.all(t).then(function(e){return e.join("")}):t.join("")}}catch(t){return F("Unable to parse gradient "+e,t),null}}function gn(e){try{var t=0,n=Ze(/(^|\s)([a-z]+\(.+?\)|#[0-9a-f]+|[a-z]+)(.*?(inset|outset)?($|,))/gi,e,2),r=n.map(function(r,i){var o=t,a=e.indexOf(r,t),s=a+r.length;t=s;var l=cn(r);return l?function(t){return""+e.substring(o,a)+Tt(l,t)+(i===n.length-1?e.substring(s):"")}:function(){return e.substring(o,s)}});return function(e){return r.map(function(t){return t(e)}).join("")}}catch(t){return F("Unable to parse shadow "+e,t),null}}function vn(e,t,n,r,i,o){return e.getModifierForVariable({varName:t,sourceValue:n,rule:r,ignoredImgSelectors:i,isCancelled:o})}function yn(e,t,n){return e.getModifierForVarDependant(t,n)}function bn(){sn.clear(),ct(),fn.clear(),Qt(),dn.clear()}var wn=1,xn=2,_n=4,En=8,Sn=function(){function e(){this.varTypes=new Map,this.rulesQueue=[],this.definedVars=new Set,this.varRefs=new Map,this.unknownColorVars=new Set,this.unknownBgVars=new Set,this.undefinedVars=new Set,this.initialVarTypes=new Map,this.changedTypeVars=new Set,this.typeChangeSubscriptions=new Map,this.unstableVarValues=new Map}return e.prototype.clear=function(){this.varTypes.clear(),this.rulesQueue.splice(0),this.definedVars.clear(),this.varRefs.clear(),this.unknownColorVars.clear(),this.unknownBgVars.clear(),this.undefinedVars.clear(),this.initialVarTypes.clear(),this.changedTypeVars.clear(),this.typeChangeSubscriptions.clear(),this.unstableVarValues.clear()},e.prototype.isVarType=function(e,t){return this.varTypes.has(e)&&(this.varTypes.get(e)&t)>0},e.prototype.addRulesForMatching=function(e){this.rulesQueue.push(e)},e.prototype.matchVariablesAndDependants=function(){var e=this;this.changedTypeVars.clear(),this.initialVarTypes=new Map(this.varTypes),this.collectRootVariables(),this.rulesQueue.forEach(function(t){return e.collectVariables(t)}),this.rulesQueue.forEach(function(t){return e.collectVarDependants(t)}),this.rulesQueue.splice(0),this.collectRootVarDependants(),this.varRefs.forEach(function(t,n){t.forEach(function(t){e.varTypes.has(n)&&e.resolveVariableType(t,e.varTypes.get(n))})}),this.unknownColorVars.forEach(function(t){e.unknownBgVars.has(t)?(e.unknownColorVars.delete(t),e.unknownBgVars.delete(t),e.resolveVariableType(t,wn)):e.isVarType(t,wn|xn|_n)?e.unknownColorVars.delete(t):e.undefinedVars.add(t)}),this.unknownBgVars.forEach(function(t){var n=null!=e.findVarRef(t,function(t){return e.unknownColorVars.has(t)||e.isVarType(t,xn|_n)});n?e.itarateVarRefs(t,function(t){e.resolveVariableType(t,wn)}):e.isVarType(t,wn|En)?e.unknownBgVars.delete(t):e.undefinedVars.add(t)}),this.changedTypeVars.forEach(function(t){e.typeChangeSubscriptions.has(t)&&e.typeChangeSubscriptions.get(t).forEach(function(e){e()})}),this.changedTypeVars.clear()},e.prototype.getModifierForVariable=function(e){var t=this;return function(n){var r=e.varName,i=e.sourceValue,o=e.rule,a=e.ignoredImgSelectors,s=e.isCancelled,l=function(){var e=[],l=function(o,a,s){if(t.isVarType(r,o)){var l,c=a(r);if(Fn(i))if(Bn(i)){var u=Un(i,t.unstableVarValues);u||(u=o===wn?"#ffffff":"#000000"),l=s(u,n)}else l=An(i,function(e){return a(e)},function(e){return s(e,n)});else l=s(i,n);e.push({property:c,value:l})}};if(l(wn,Rn,Vn),l(xn,Nn,Wn),l(_n,Dn,Hn),t.isVarType(r,En)){var c=In(r),u=i;Fn(i)&&(u=An(i,function(e){return Rn(e)},function(e){return Vn(e,n)}));var h=mn(u,o,a,s);u="function"===typeof h?h(n):h,e.push({property:c,value:u})}return e},c=new Set,u=function(e){var n=function(){var t=l();e(t)};c.add(n),t.subscribeForVarTypeChange(r,n)},h=function(){c.forEach(function(e){t.unsubscribeFromVariableTypeChanges(r,e)})};return{declarations:l(),onTypeChange:{addListener:u,removeListeners:h}}}},e.prototype.getModifierForVarDependant=function(e,t){var n=this;if(t.match(/^\s*(rgb|hsl)a?\(/)){var r=e.startsWith("background"),i="color"===e;return function(e){var o=Un(t,n.unstableVarValues);o||(o=r?"#ffffff":"#000000");var a=r?Vn:i?Wn:Hn;return a(o,e)}}if("background-color"===e)return function(e){return An(t,function(e){return Rn(e)},function(t){return Vn(t,e)})};if("color"===e)return function(e){return An(t,function(e){return Nn(e)},function(t){return Wn(t,e)})};if("background"===e||"background-image"===e||"box-shadow"===e)return function(e){var r=new Set,i=function(){return An(t,function(e){return n.isVarType(e,wn)?Rn(e):n.isVarType(e,En)?In(e):(r.add(e),e)},function(t){return Vn(t,e)})},o=i();return r.size>0?new Promise(function(e){var t=r.values().next().value,o=function(){n.unsubscribeFromVariableTypeChanges(t,o);var r=i();e(r)};n.subscribeForVarTypeChange(t,o)}):o};if(e.startsWith("border")||e.startsWith("outline")){if(t.endsWith(")")){var o=t.match(/((rgb|hsl)a?)\(/);if(o){var a=o.index;return function(e){var r=Un(t,n.unstableVarValues);if(!r)return t;var i=t.substring(0,a),o=t.substring(a,t.length),s=Un(o,n.unstableVarValues),l=Hn(s,e);return""+i+l}}}return function(e){return An(t,function(e){return Dn(e)},function(t){return Wn(t,e)})}}return null},e.prototype.subscribeForVarTypeChange=function(e,t){this.typeChangeSubscriptions.has(e)||this.typeChangeSubscriptions.set(e,new Set);var n=this.typeChangeSubscriptions.get(e);n.has(t)||n.add(t)},e.prototype.unsubscribeFromVariableTypeChanges=function(e,t){this.typeChangeSubscriptions.has(e)&&this.typeChangeSubscriptions.get(e).delete(t)},e.prototype.collectVariables=function(e){var t=this;Pn(e,function(e,n){t.inspectVariable(e,n)})},e.prototype.collectRootVariables=function(){var e=this;me(document.documentElement.style,function(t,n){$n(t)&&e.inspectVariable(t,n)})},e.prototype.inspectVariable=function(e,t){if(this.unstableVarValues.set(e,t),Fn(t)&&Bn(t)&&(this.unknownColorVars.add(e),this.definedVars.add(e)),!this.definedVars.has(e)){this.definedVars.add(e);var n=cn(t);n?this.unknownColorVars.add(e):(t.includes("url(")||t.includes("linear-gradient(")||t.includes("radial-gradient("))&&this.resolveVariableType(e,En)}},e.prototype.resolveVariableType=function(e,t){var n=this.initialVarTypes.get(e)||0,r=this.varTypes.get(e)||0,i=r|t;this.varTypes.set(e,i),(i!==n||this.undefinedVars.has(e))&&(this.changedTypeVars.add(e),this.undefinedVars.delete(e)),this.unknownColorVars.delete(e),this.unknownBgVars.delete(e)},e.prototype.collectVarDependants=function(e){var t=this;jn(e,function(e,n){t.inspectVerDependant(e,n)})},e.prototype.collectRootVarDependants=function(){var e=this;me(document.documentElement.style,function(t,n){Fn(n)&&e.inspectVerDependant(t,n)})},e.prototype.inspectVerDependant=function(e,t){var n=this;$n(e)?this.iterateVarDeps(t,function(t){n.varRefs.has(e)||n.varRefs.set(e,new Set),n.varRefs.get(e).add(t)}):"background-color"===e||"box-shadow"===e?this.iterateVarDeps(t,function(e){return n.resolveVariableType(e,wn)}):"color"===e?this.iterateVarDeps(t,function(e){return n.resolveVariableType(e,xn)}):e.startsWith("border")||e.startsWith("outline")?this.iterateVarDeps(t,function(e){return n.resolveVariableType(e,_n)}):"background"!==e&&"background-image"!==e||this.iterateVarDeps(t,function(e){if(!n.isVarType(e,wn|En)){var t=null!=n.findVarRef(e,function(e){return n.unknownColorVars.has(e)||n.isVarType(e,xn|_n)});n.itarateVarRefs(e,function(e){t?n.resolveVariableType(e,wn):n.unknownBgVars.add(e)})}})},e.prototype.iterateVarDeps=function(e,t){var n=new Set;Mn(e,function(e){return n.add(e)}),n.forEach(function(e){return t(e)})},e.prototype.findVarRef=function(e,t,n){var r,o;if(void 0===n&&(n=new Set),n.has(e))return null;n.add(e);var a=t(e);if(a)return e;var s=this.varRefs.get(e);if(!s||0===s.size)return null;try{for(var l=i(s),c=l.next();!c.done;c=l.next()){var u=c.value,h=this.findVarRef(u,t,n);if(h)return h}}catch(e){r={error:e}}finally{try{c&&!c.done&&(o=l.return)&&o.call(l)}finally{if(r)throw r.error}}return null},e.prototype.itarateVarRefs=function(e,t){this.findVarRef(e,function(e){return t(e),!1})},e.prototype.setOnRootVariableChange=function(e){this.onRootVariableDefined=e},e.prototype.putRootVars=function(e,t){var n,r,a=this,s=e.sheet;s.cssRules.length>0&&s.deleteRule(0);var l=new Map;me(document.documentElement.style,function(e,n){$n(e)&&(a.isVarType(e,wn)&&l.set(Rn(e),Vn(n,t)),a.isVarType(e,xn)&&l.set(Nn(e),Wn(n,t)),a.isVarType(e,_n)&&l.set(Dn(e),Hn(n,t)),a.subscribeForVarTypeChange(e,a.onRootVariableDefined))});var c=[];c.push(":root {");try{for(var u=i(l),h=u.next();!h.done;h=u.next()){var f=o(h.value,2),d=f[0],p=f[1];c.push(" "+d+": "+p+";")}}catch(e){n={error:e}}finally{try{h&&!h.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}c.push("}");var m=c.join("\n");s.insertRule(m)},e}(),kn=new Sn;function Cn(e,t){void 0===t&&(t=0);var n=e.indexOf("var(",t);if(n>=0){var r=et(e,n+3);return r?{start:n,end:r.end}:null}}function On(e){var t,n=[],r=0;while(t=Cn(e,r)){var i=t.start,o=t.end;n.push({start:i,end:o,value:e.substring(i,o)}),r=t.end+1}return n}function Tn(e,t){var n=On(e),r=n.length;if(0===r)return e;var i=e.length,o=n.map(function(e){return t(e.value)}),a=[];a.push(e.substring(0,n[0].start));for(var s=0;s=0?(t=e.substring(4,r).trim(),n=e.substring(r+1,e.length-1).trim()):(t=e.substring(4,e.length-1).trim(),n=""),{name:t,fallback:n}}function An(e,t,n){var r=function(e){var r,i=Ln(e),o=i.name,a=i.fallback,s=t(o);return a?(r=Fn(a)?An(a,t,n):n?n(a):a,"var("+s+", "+r+")"):"var("+s+")"};return Tn(e,r)}function Pn(e,t){fe(e,function(e){e.style&&me(e.style,function(e,n){e.startsWith("--")&&t(e,n)})})}function jn(e,t){fe(e,function(e){e.style&&me(e.style,function(e,n){Fn(n)&&t(e,n)})})}function Mn(e,t){An(e,function(e){return t(e),e})}function Rn(e){return"--darkreader-bg"+e}function Nn(e){return"--darkreader-text"+e}function Dn(e){return"--darkreader-border"+e}function In(e){return"--darkreader-bgimg"+e}function $n(e){return e.startsWith("--")}function Fn(e){return e.includes("var(")}function Bn(e){return e.match(/^\s*(rgb|hsl)a?\(/)}function Vn(e,t){var n=cn(e);return n?wt(n,t):e}function Wn(e,t){var n=cn(e);return n?kt(n,t):e}function Hn(e,t){var n=cn(e);return n?Ot(n,t):e}function Un(e,t,n){void 0===n&&(n=new Set);var r=!1,i=function(e){var i=Ln(e),o=i.name,a=i.fallback;if(n.has(o))return r=!0,null;n.add(o);var s=t.get(o)||a,l=null;return s&&(l=Fn(s)?Un(s,t,n):s),l||(r=!0,null)},o=Tn(e,i);return r?null:o}var zn={"background-color":{customProp:"--darkreader-inline-bgcolor",cssProp:"background-color",dataAttr:"data-darkreader-inline-bgcolor"},"background-image":{customProp:"--darkreader-inline-bgimage",cssProp:"background-image",dataAttr:"data-darkreader-inline-bgimage"},"border-color":{customProp:"--darkreader-inline-border",cssProp:"border-color",dataAttr:"data-darkreader-inline-border"},"border-bottom-color":{customProp:"--darkreader-inline-border-bottom",cssProp:"border-bottom-color",dataAttr:"data-darkreader-inline-border-bottom"},"border-left-color":{customProp:"--darkreader-inline-border-left",cssProp:"border-left-color",dataAttr:"data-darkreader-inline-border-left"},"border-right-color":{customProp:"--darkreader-inline-border-right",cssProp:"border-right-color",dataAttr:"data-darkreader-inline-border-right"},"border-top-color":{customProp:"--darkreader-inline-border-top",cssProp:"border-top-color",dataAttr:"data-darkreader-inline-border-top"},"box-shadow":{customProp:"--darkreader-inline-boxshadow",cssProp:"box-shadow",dataAttr:"data-darkreader-inline-boxshadow"},color:{customProp:"--darkreader-inline-color",cssProp:"color",dataAttr:"data-darkreader-inline-color"},fill:{customProp:"--darkreader-inline-fill",cssProp:"fill",dataAttr:"data-darkreader-inline-fill"},stroke:{customProp:"--darkreader-inline-stroke",cssProp:"stroke",dataAttr:"data-darkreader-inline-stroke"},"outline-color":{customProp:"--darkreader-inline-outline",cssProp:"outline-color",dataAttr:"data-darkreader-inline-outline"},"stop-color":{customProp:"--darkreader-inline-stopcolor",cssProp:"stop-color",dataAttr:"data-darkreader-inline-stopcolor"}},Gn=Object.values(zn),qn={};Gn.forEach(function(e){var t=e.cssProp,n=e.customProp;return qn[n]=t});var Kn=["style","fill","stop-color","stroke","bgcolor","color"],Yn=Kn.map(function(e){return"["+e+"]"}).join(", ");function Xn(){return Gn.map(function(e){var t=e.dataAttr,n=e.customProp,r=e.cssProp;return["["+t+"] {"," "+r+": var("+n+") !important;","}"].join("\n")}).join("\n")}function Qn(e){var t=[];return e instanceof Element&&e.matches(Yn)&&t.push(e),(e instanceof Element||g&&e instanceof ShadowRoot||e instanceof Document)&&D(t,e.querySelectorAll(Yn)),t}var Zn=new Map,Jn=new Map;function er(e,t){tr(document,e,t),z(document.documentElement,function(n){tr(n.shadowRoot,e,t)})}function tr(e,t,n){Zn.has(e)&&(Zn.get(e).disconnect(),Jn.get(e).disconnect());var r=new WeakSet;function i(e){Qn(e).forEach(function(e){r.has(e)||(r.add(e),t(e))}),z(e,function(i){r.has(e)||(r.add(e),n(i.shadowRoot),tr(i.shadowRoot,t,n))})}var s=se(e,{onMinorMutations:function(e){var t=e.additions;t.forEach(function(e){return i(e)})},onHugeMutations:function(){i(e)}});Zn.set(e,s);var l=0,c=null,u=W({seconds:10}),h=W({seconds:2}),f=50,d=[],p=null,m=B(function(e){e.forEach(function(e){Kn.includes(e.attributeName)&&t(e.target)})}),g=new MutationObserver(function(e){if(p)d.push.apply(d,a([],o(e)));else{l++;var t=Date.now();if(null==c)c=t;else if(l>=f){if(t-c0&&ar(e,n))o.forEach(function(t){e.removeAttribute(zn[t].dataAttr)});else{if(e.hasAttribute("bgcolor")){var a=e.getAttribute("bgcolor");(a.match(/^[0-9a-f]{3}$/i)||a.match(/^[0-9a-f]{6}$/i))&&(a="#"+a),u("background-color","background-color",a)}if(e.hasAttribute("color")&&"mask-icon"!==e.rel){a=e.getAttribute("color");(a.match(/^[0-9a-f]{3}$/i)||a.match(/^[0-9a-f]{6}$/i))&&(a="#"+a),u("color","color",a)}if(e instanceof SVGElement){if(e.hasAttribute("fill")){var s=32,l=e.getAttribute("fill");if("none"!==l)if(e instanceof SVGTextElement)u("fill","color",l);else{var c=function(){var t=e.getBoundingClientRect(),n=t.width,r=t.height,i=n>s||r>s;u("fill",i?"background-color":"color",l)};X()?c():Z(c)}}e.hasAttribute("stop-color")&&u("stop-color","background-color",e.getAttribute("stop-color"))}if(e.hasAttribute("stroke")){a=e.getAttribute("stroke");u("stroke",e instanceof SVGLineElement||e instanceof SVGTextElement?"border-color":"color",a)}e.style&&me(e.style,function(t,n){if("background-image"!==t||!n.includes("url"))if(zn.hasOwnProperty(t))u(t,t,n);else{var r=qn[t];!r||e.style.getPropertyValue(r)||e.hasAttribute(r)||e.style.setProperty(t,"")}}),e.style&&e instanceof SVGTextElement&&e.style.fill&&u("fill","color",e.style.getPropertyValue("fill")),N(o,function(t){e.removeAttribute(zn[t].dataAttr)}),rr.set(e,or(e,t))}}function u(n,i,a){var s=zn[n],l=s.customProp,c=s.dataAttr,u=Jt(i,a,{},kn,r,null);if(u){var h=u.value;"function"===typeof h&&(h=h(t)),e.style.setProperty(l,h),e.hasAttribute(c)||e.setAttribute(c,""),o.delete(n)}}}var lr="theme-color",cr='meta[name="'+lr+'"]',ur=null,hr=null;function fr(e,t){ur=ur||e.content;try{var n=Re(ur);e.content=wt(n,t)}catch(e){F(e)}}function dr(e){var t=document.querySelector(cr);t?fr(t,e):(hr&&hr.disconnect(),hr=new MutationObserver(function(t){e:for(var n=0;n0){var s=e.parentRule;a={selector:e.selectorText,declarations:o,parentRule:s},w.push(a)}n.set(r,a)}else w.push(n.get(r))},function(){s=!0}),v.forEach(function(e){t.delete(e),n.delete(e)}),i=y,d||g||b){e++;var x=new Map,_=new Map,E=0,S=0,k={rule:null,rules:[],isGroup:!0},C=new WeakMap;r.forEach(function(e){return e()}),r.clear(),w.filter(function(e){return e}).forEach(function(t){var n=t.selector,i=t.declarations,s=t.parentRule,l=L(s),c={selector:n,declarations:[],isGroup:!1},u=c.declarations;function f(t,n,r,i){var o=++E,a={property:t,value:null,important:r,asyncKey:o,sourceValue:i};u.push(a);var s=e;n.then(function(t){t&&!m()&&s===e&&(a.value=t,vr.add(function(){m()||s!==e||P(o)}))})}function d(t,n,i,s){var l=n,c=l.declarations,h=l.onTypeChange,d=++S,p=e,g=u.length,v=[];if(0===c.length){var y={property:t,value:s,important:i,sourceValue:s,varKey:d};u.push(y),v=[y]}c.forEach(function(e){if(e.value instanceof Promise)f(e.property,e.value,i,s);else{var t={property:e.property,value:e.value,important:i,sourceValue:s,varKey:d};u.push(t),v.push(t)}}),h.addListener(function(t){if(!m()&&p===e){var n=t.map(function(e){return{property:e.property,value:e.value,important:i,sourceValue:s,varKey:d}}),r=u.indexOf(v[0],g);u.splice.apply(u,a([r,v.length],o(n))),v=n,j(d)}}),r.add(function(){return h.removeListeners()})}l.rules.push(c),i.forEach(function(e){var t=e.property,n=e.value,r=e.important,i=e.sourceValue;if("function"===typeof n){var o=n(h);o instanceof Promise?f(t,o,r,i):t.startsWith("--")?d(t,o,r,i):u.push({property:t,value:o,important:r,sourceValue:i})}else u.push({property:t,value:n,important:r,sourceValue:i})})});var O=p();A()}function T(e,t,n){var r=n.selector,i=n.declarations,o=function(e){var t=e.property,n=e.value,r=e.important,i=e.sourceValue;return t+": "+(null==n?i:n)+(r?" !important":"")+";"},a=r+" { "+i.map(o).join(" ")+" }";e.insertRule(a,t)}function L(e){if(null==e)return k;if(C.has(e))return C.get(e);var t={rule:e,rules:[],isGroup:!0};C.set(e,t);var n=L(e.parentRule);return n.rules.push(t),t}function A(){function e(e,t){var n=e.rule;if(n instanceof CSSMediaRule){var r=n.media,i=t.cssRules.length;return t.insertRule("@media "+r.mediaText+" {}",i),t.cssRules[i]}return t}function t(n,r,i){n.rules.forEach(function(n){if(n.isGroup){var o=e(n,r);t(n,o,i)}else i(n,r)})}t(k,O,function(e,t){var n=t.cssRules.length;e.declarations.forEach(function(r){var i=r.asyncKey,o=r.varKey;null!=i&&x.set(i,{rule:e,target:t,index:n}),null!=o&&_.set(o,{rule:e,target:t,index:n})}),T(t,n,e)})}function P(e){var t=x.get(e),n=t.rule,r=t.target,i=t.index;r.deleteRule(i),T(r,i,n),x.delete(e)}function j(e){var t=_.get(e),n=t.rule,r=t.target,i=t.index;r.deleteRule(i),T(r,i,n)}}return{modifySheet:u,shouldRebuildStyle:c}}var br='style, link[rel*="stylesheet" i]:not([disabled])';function wr(e){return(e instanceof HTMLStyleElement||e instanceof SVGStyleElement||e instanceof HTMLLinkElement&&e.rel&&e.rel.toLowerCase().includes("stylesheet")&&!e.disabled)&&!e.classList.contains("darkreader")&&"print"!==e.media.toLowerCase()&&!e.classList.contains("stylus")}function xr(e,t,n){return void 0===t&&(t=[]),void 0===n&&(n=!0),wr(e)?t.push(e):(e instanceof Element||g&&e instanceof ShadowRoot||e===document)&&(N(e.querySelectorAll(br),function(e){return xr(e,t,!1)}),n&&z(e,function(e){return xr(e.shadowRoot,t,!1)})),t}var _r=new WeakSet,Er=new WeakSet,Sr=!1;document.addEventListener("__darkreader__inlineScriptsAllowed",function(){Sr=!0});var kr=0,Cr=new Map;function Or(){Cr.clear()}function Tr(e,t){var i=t.update,a=t.loadingStart,s=t.loadingEnd,l=[],c=e;while((c=c.nextElementSibling)&&c.matches(".darkreader"))l.push(c);var f=l.find(function(e){return e.matches(".darkreader--cors")&&!Er.has(e)})||null,p=l.find(function(e){return e.matches(".darkreader--sync")&&!_r.has(e)})||null,m=null,g=null,v=!1,y=!0,b=yr(),w=new MutationObserver(function(){i()}),x={attributes:!0,childList:!0,subtree:!0,characterData:!0};function _(){return e instanceof HTMLStyleElement&&e.textContent.trim().match(ve)}function E(e){var t=!1;if(e){var n=void 0;e:for(var r=0,i=e.length;r=0;t--)e.deleteRule(t);return g?g.run():g=U(p,"prev-sibling",function(){j=!0,o()}),p.sheet}function o(){var o=j;j=!1,b.modifySheet({prepareSheet:r,sourceCSSRules:n,theme:e,ignoreImageAnalysis:t,force:o,isAsyncCancelled:function(){return v}}),y=0===p.sheet.cssRules.length,b.shouldRebuildStyle()&&Z(function(){return i()})}n&&(v=!1,o())}function R(){try{return null==e.sheet?[null,null]:[e.sheet.cssRules,null]}catch(e){return[null,e]}}function N(e){return e&&e.message&&e.message.includes("loading")}function D(){var e=o(R(),2),t=e[0],n=e[1];return n?(F(n),null):t}function I(){X(),h||Sr&&e.sheet||G()}var B=null,V=null;function W(){var e=D();return e?e.length:null}function z(){return W()!==B}function G(){B=W(),q();var t=function(){z()&&(B=W(),i()),Sr&&e.sheet?q():V=requestAnimationFrame(t)};t()}function q(){cancelAnimationFrame(V)}var K=!1;function Y(){function e(){K=!1,v||i()}Sr=!0,q(),K||(K=!0,"function"===typeof queueMicrotask?queueMicrotask(e):requestAnimationFrame(e))}function X(){e.addEventListener("__darkreader__updateSheet",Y)}function Q(){e.removeEventListener("__darkreader__updateSheet",Y)}function J(){Q(),q()}function ee(){w.disconnect(),v=!0,m&&m.stop(),g&&g.stop(),J()}function te(){if(ee(),H(f),H(p),s(),Cr.has(L)){var e=Cr.get(L);Cr.delete(L),e&&e()}}function ne(){w.observe(e,x),e instanceof HTMLStyleElement&&I()}var re=10,ie=0;function oe(){p&&(ie++,ie>re?F("Style sheet was moved multiple times",e):(F("Restore style",p,e),k(),m&&m.skip(),g&&g.skip(),y||(j=!0,i())))}return{details:P,render:M,pause:ee,destroy:te,watch:ne,restore:oe}}function Lr(e,t){return n(this,void 0,void 0,function(){return r(this,function(n){return[2,new Promise(function(n,r){var i=function(){e.removeEventListener("load",o),e.removeEventListener("error",a),Cr.delete(t)},o=function(){i(),$("Linkelement "+t+" has been loaded"),n()},a=function(){i(),r("Linkelement "+t+" couldn't be loaded. "+e.href)};Cr.set(t,function(){i(),r()}),e.addEventListener("load",o),e.addEventListener("error",a),e.href||a()})]})})}function Ar(e){return ye(e.substring(7).trim().replace(/;$/,""))}function Pr(e){return n(this,void 0,void 0,function(){return r(this,function(t){switch(t.label){case 0:return e.startsWith("data:")?[4,fetch(e)]:[3,3];case 1:return[4,t.sent().text()];case 2:return[2,t.sent()];case 3:return[4,It({url:e,responseType:"text",mimeType:"text/css",origin:window.location.origin})];case 4:return[2,t.sent()]}})})}function jr(e,t,o){return void 0===o&&(o=new Map),n(this,void 0,void 0,function(){var n,a,s,l,c,u,h,f,d,p,m;return r(this,function(r){switch(r.label){case 0:e=_e(e),e=Se(e),e=we(e,t),n=Ze(ve,e),r.label=1;case 1:r.trys.push([1,10,11,12]),a=i(n),s=a.next(),r.label=2;case 2:return s.done?[3,9]:(l=s.value,c=Ar(l),u=he(t,c),h=void 0,o.has(u)?(h=o.get(u),[3,7]):[3,3]);case 3:return r.trys.push([3,6,,7]),[4,Pr(u)];case 4:return h=r.sent(),o.set(u,h),[4,jr(h,be(u),o)];case 5:return h=r.sent(),[3,7];case 6:return f=r.sent(),F(f),h="",[3,7];case 7:e=e.split(l).join(h),r.label=8;case 8:return s=a.next(),[3,2];case 9:return[3,12];case 10:return d=r.sent(),p={error:d},[3,12];case 11:try{s&&!s.done&&(m=a.return)&&m.call(a)}finally{if(p)throw p.error}return[7];case 12:return e=e.trim(),[2,e]}})})}function Mr(e,t){if(!t)return null;var n=document.createElement("style");return n.classList.add("darkreader"),n.classList.add("darkreader--cors"),n.media="screen",n.textContent=t,e.parentNode.insertBefore(n,e.nextSibling),n.sheet.disabled=!0,Er.add(n),n}var Rr,Nr,Dr=[],Ir=new Map;function $r(e){y&&N(e.querySelectorAll(":not(:defined)"),function(e){var t=e.tagName.toLowerCase();if(!t.includes("-")){var n=e.getAttribute("is");if(!n)return;t=n}Ir.has(t)||(Ir.set(t,new Set),Wr(t).then(function(){if(Nr){var e=Ir.get(t);Ir.delete(t),Nr(Array.from(e))}})),Ir.get(t).add(e)})}var Fr=!1;document.addEventListener("__darkreader__inlineScriptsAllowed",function(){Fr=!0});var Br=new Map;function Vr(e){if(Fr=!0,Br.has(e.detail.tag)){var t=Br.get(e.detail.tag);t()}}function Wr(e){return n(this,void 0,void 0,function(){return r(this,function(t){return[2,new Promise(function(t){if(window.customElements&&"function"===typeof customElements.whenDefined)customElements.whenDefined(e).then(t);else if(Fr)Br.set(e,t),document.dispatchEvent(new CustomEvent("__darkreader__addUndefinedResolver",{detail:{tag:e}}));else{var n=function(){var r=Ir.get(e);r&&r.size>0&&(r.values().next().value.matches(":defined")?t():requestAnimationFrame(n))};requestAnimationFrame(n)}})]})})}function Hr(e){Nr=e}function Ur(){Nr=null,Ir.clear(),document.removeEventListener("__darkreader__isDefined",Vr)}function zr(e,t,n){qr();var r=new Set(e),i=new WeakMap,o=new WeakMap;function a(e){i.set(e,e.previousElementSibling),o.set(e,e.nextElementSibling)}function s(e){i.delete(e),o.delete(e)}function l(e){return e.previousElementSibling!==i.get(e)||e.nextElementSibling!==o.get(e)}function c(e){var n=e.createdStyles,i=e.removedStyles,o=e.movedStyles;n.forEach(function(e){return a(e)}),o.forEach(function(e){return a(e)}),i.forEach(function(e){return s(e)}),n.forEach(function(e){return r.add(e)}),i.forEach(function(e){return r.delete(e)}),n.size+i.size+o.size>0&&t({created:Array.from(n),removed:Array.from(i),moved:Array.from(o),updated:[]})}function u(e){var t=e.additions,n=e.moves,r=e.deletions,i=new Set,o=new Set,a=new Set;t.forEach(function(e){return xr(e).forEach(function(e){return i.add(e)})}),r.forEach(function(e){return xr(e).forEach(function(e){return o.add(e)})}),n.forEach(function(e){return xr(e).forEach(function(e){return a.add(e)})}),c({createdStyles:i,removedStyles:o,movedStyles:a}),t.forEach(function(e){z(e,p),$r(e)})}function h(e){var t=new Set(xr(e)),n=new Set,i=new Set,o=new Set;t.forEach(function(e){r.has(e)||n.add(e)}),r.forEach(function(e){t.has(e)||i.add(e)}),t.forEach(function(e){n.has(e)||i.has(e)||!l(e)||o.add(e)}),c({createdStyles:n,removedStyles:i,movedStyles:o}),z(e,p),$r(e)}function f(e){var n=new Set,r=new Set;e.forEach(function(e){var t=e.target;t.isConnected&&(wr(t)?n.add(t):t instanceof HTMLLinkElement&&t.disabled&&r.add(t))}),n.size+r.size>0&&t({updated:Array.from(n),created:[],removed:Array.from(r),moved:[]})}function d(e){var t=se(e,{onMinorMutations:u,onHugeMutations:h}),n=new MutationObserver(f);n.observe(e,{attributes:!0,attributeFilter:["rel","disabled","media"],subtree:!0}),Dr.push(t,n),Rr.add(e)}function p(e){var t=e.shadowRoot;null==t||Rr.has(t)||(d(t),n(t))}e.forEach(a),d(document),z(document.documentElement,p),Hr(function(e){var n=[];e.forEach(function(e){return D(n,xr(e.shadowRoot))}),t({created:n,updated:[],removed:[],moved:[]}),e.forEach(function(e){var t=e.shadowRoot;null!=t&&(p(e),z(t,p),$r(t))})}),document.addEventListener("__darkreader__isDefined",Vr),$r(document)}function Gr(){Dr.forEach(function(e){return e.disconnect()}),Dr.splice(0,Dr.length),Rr=new WeakSet}function qr(){Gr(),Ur()}function Kr(e){return(e<16?"0":"")+e.toString(16)}function Yr(){if("randomUUID"in crypto){var e=crypto.randomUUID();return e.substring(0,8)+e.substring(9,13)+e.substring(14,18)+e.substring(19,23)+e.substring(24)}return Array.from(crypto.getRandomValues(new Uint8Array(16))).map(function(e){return Kr(e)}).join("")}var Xr=new WeakMap,Qr=new WeakSet;function Zr(e){var t=!1;function n(t,n){var r=a([],o(e.adoptedStyleSheets)),i=r.indexOf(t),s=r.indexOf(n);i!==s-1&&(s>=0&&r.splice(s,1),r.splice(i+1,0,n),e.adoptedStyleSheets=r)}function r(){t=!0;var n=a([],o(e.adoptedStyleSheets));e.adoptedStyleSheets.forEach(function(e){if(Qr.has(e)){var t=n.indexOf(e);t>=0&&n.splice(t,1),Xr.delete(e),Qr.delete(e)}}),e.adoptedStyleSheets=n}function i(r,i){e.adoptedStyleSheets.forEach(function(e){if(!Qr.has(e)){var o=e.rules,a=new CSSStyleSheet,s=yr();s.modifySheet({prepareSheet:l,sourceCSSRules:o,theme:r,ignoreImageAnalysis:i,force:!1,isAsyncCancelled:function(){return t}})}function l(){for(var t=a.cssRules.length-1;t>=0;t--)a.deleteRule(t);return n(e,a),Xr.set(e,a),Qr.add(a),a}})}return{render:i,destroy:r}}function Jr(){document.dispatchEvent(new CustomEvent("__darkreader__inlineScriptsAllowed"));var e=Object.getOwnPropertyDescriptor(CSSStyleSheet.prototype,"addRule"),t=Object.getOwnPropertyDescriptor(CSSStyleSheet.prototype,"insertRule"),n=Object.getOwnPropertyDescriptor(CSSStyleSheet.prototype,"deleteRule"),r=Object.getOwnPropertyDescriptor(CSSStyleSheet.prototype,"removeRule"),i=location.hostname.endsWith("pushbullet.com")||location.hostname.endsWith("ilsole24ore.com")||location.hostname.endsWith("allegro.pl"),s=i?Object.getOwnPropertyDescriptor(Document.prototype,"styleSheets"):null,l=location.hostname.endsWith("baidu.com"),c=l?Object.getOwnPropertyDescriptor(Element.prototype,"getElementsByTagName"):null,u=function(){Object.defineProperty(CSSStyleSheet.prototype,"addRule",e),Object.defineProperty(CSSStyleSheet.prototype,"insertRule",t),Object.defineProperty(CSSStyleSheet.prototype,"deleteRule",n),Object.defineProperty(CSSStyleSheet.prototype,"removeRule",r),document.removeEventListener("__darkreader__cleanUp",u),document.removeEventListener("__darkreader__addUndefinedResolver",h),i&&Object.defineProperty(Document.prototype,"styleSheets",s),l&&Object.defineProperty(Element.prototype,"getElementsByTagName",c)},h=function(e){customElements.whenDefined(e.detail.tag).then(function(){document.dispatchEvent(new CustomEvent("__darkreader__isDefined",{detail:{tag:e.detail.tag}}))})};document.addEventListener("__darkreader__cleanUp",u),document.addEventListener("__darkreader__addUndefinedResolver",h);var f=new Event("__darkreader__updateSheet");function d(t,n,r){return e.value.call(this,t,n,r),this.ownerNode&&!this.ownerNode.classList.contains("darkreader")&&this.ownerNode.dispatchEvent(f),-1}function p(e,n){var r=t.value.call(this,e,n);return this.ownerNode&&!this.ownerNode.classList.contains("darkreader")&&this.ownerNode.dispatchEvent(f),r}function m(e){n.value.call(this,e),this.ownerNode&&!this.ownerNode.classList.contains("darkreader")&&this.ownerNode.dispatchEvent(f)}function g(e){r.value.call(this,e),this.ownerNode&&!this.ownerNode.classList.contains("darkreader")&&this.ownerNode.dispatchEvent(f)}function v(){var e=s.get.call(this),t=a([],o(e)).filter(function(e){return!e.ownerNode.classList.contains("darkreader")});return Object.setPrototypeOf(t,StyleSheetList.prototype)}function y(e){var t=this,n=function(){var n=c.value.call(t,e);return"style"===e&&(n=Object.setPrototypeOf(a([],o(n)).filter(function(e){return!e.classList.contains("darkreader")}),NodeList.prototype)),n},r=n(),i={get:function(e,t){return n()[t]}};return r=new Proxy(r,i),r}Object.defineProperty(CSSStyleSheet.prototype,"addRule",Object.assign({},e,{value:d})),Object.defineProperty(CSSStyleSheet.prototype,"insertRule",Object.assign({},t,{value:p})),Object.defineProperty(CSSStyleSheet.prototype,"deleteRule",Object.assign({},n,{value:m})),Object.defineProperty(CSSStyleSheet.prototype,"removeRule",Object.assign({},r,{value:g})),i&&Object.defineProperty(Document.prototype,"styleSheets",Object.assign({},s,{get:v})),l&&Object.defineProperty(Element.prototype,"getElementsByTagName",Object.assign({},c,{value:y}))}var ei=Yr(),ti=new Map,ni=[],ri=null,ii=null,oi=null,ai=null,si=null;function li(e,t){void 0===t&&(t=document.head||document);var n=t.querySelector("."+e);return n||(n=document.createElement("style"),n.classList.add("darkreader"),n.classList.add(e),n.media="screen",n.textContent=""),n}function ci(e,t){void 0===t&&(t=document.head||document);var n=t.querySelector("."+e);return n||(n=document.createElement("script"),n.classList.add("darkreader"),n.classList.add(e)),n}var ui=new Map;function hi(e,t){ui.has(t)&&ui.get(t).stop(),ui.set(t,U(e,"parent"))}function fi(){N(ui.values(),function(e){return e.stop()}),ui.clear()}function di(){var e=li("darkreader--fallback",document);e.textContent=on(ri,{strict:!0}),document.head.insertBefore(e,document.head.firstChild),hi(e,"fallback");var n=li("darkreader--user-agent");n.textContent=en(ri,oi,ri.styleSystemControls),document.head.insertBefore(n,e.nextSibling),hi(n,"user-agent");var r=li("darkreader--text");ri.useFont||ri.textStroke>0?r.textContent=At(ri):r.textContent="",document.head.insertBefore(r,e.nextSibling),hi(r,"text");var i=li("darkreader--invert");ii&&Array.isArray(ii.invert)&&ii.invert.length>0?i.textContent=[ii.invert.join(", ")+" {"," filter: "+Pt(t(t({},ri),{contrast:0===ri.mode?ri.contrast:Xe(ri.contrast-10,0,100)}))+" !important;","}"].join("\n"):i.textContent="",document.head.insertBefore(i,r.nextSibling),hi(i,"invert");var o=li("darkreader--inline");o.textContent=Xn(),document.head.insertBefore(o,i.nextSibling),hi(o,"inline");var a=li("darkreader--override");a.textContent=ii&&ii.css?gi(ii.css):"",document.head.appendChild(a),hi(a,"override");var s=li("darkreader--variables"),l=tn(ri),c=ri.darkSchemeBackgroundColor,u=ri.darkSchemeTextColor,h=ri.lightSchemeBackgroundColor,f=ri.lightSchemeTextColor,d=ri.mode,p=0===d?h:c,m=0===d?f:u;p=wt(Re(p),ri),m=kt(Re(m),ri),s.textContent=[":root {"," --darkreader-neutral-background: "+p+";"," --darkreader-neutral-text: "+m+";"," --darkreader-selection-background: "+l.backgroundColorSelection+";"," --darkreader-selection-text: "+l.foregroundColorSelection+";","}"].join("\n"),document.head.insertBefore(s,o.nextSibling),hi(s,"variables");var g=li("darkreader--root-vars");document.head.insertBefore(g,s.nextSibling);var v=ci("darkreader--proxy"),y=new Blob(["("+Jr+")()"],{type:"text/javascript"}),b=URL.createObjectURL(y);v.src=b,v.textContent="",document.head.insertBefore(v,g.nextSibling),URL.revokeObjectURL(b),v.remove()}var pi=new Set;function mi(e){var n=li("darkreader--inline",e);n.textContent=Xn(),e.insertBefore(n,e.firstChild);var r=li("darkreader--override",e);r.textContent=ii&&ii.css?gi(ii.css):"",e.insertBefore(r,n.nextSibling);var i=li("darkreader--invert",e);ii&&Array.isArray(ii.invert)&&ii.invert.length>0?i.textContent=[ii.invert.join(", ")+" {"," filter: "+Pt(t(t({},ri),{contrast:0===ri.mode?ri.contrast:Xe(ri.contrast-10,0,100)}))+" !important;","}"].join("\n"):i.textContent="",e.insertBefore(i,r.nextSibling),pi.add(e)}function gi(e){return e.replace(/\${(.+?)}/g,function(e,t){try{var n=ln(t);return mt(n,ri)}catch(e){return F(e),t}})}function vi(){var e=document.querySelector(".darkreader--fallback");e&&(e.textContent="")}function yi(){Si();var e=xr(document),t=e.filter(function(e){return!ti.has(e)}).map(function(e){return xi(e)});t.map(function(e){return e.details()}).filter(function(e){return e&&e.rules.length>0}).forEach(function(e){kn.addRulesForMatching(e.rules)}),kn.matchVariablesAndDependants(),kn.setOnRootVariableChange(function(){kn.putRootVars(document.head.querySelector(".darkreader--root-vars"),ri)}),kn.putRootVars(document.head.querySelector(".darkreader--root-vars"),ri),ti.forEach(function(e){return e.render(ri,ai)}),0===wi.size&&vi(),t.forEach(function(e){return e.watch()});var n=I(document.querySelectorAll(Yn));z(document.documentElement,function(e){mi(e.shadowRoot);var t=e.shadowRoot.querySelectorAll(Yn);t.length>0&&D(n,t)}),n.forEach(function(e){return sr(e,ri,si,ai)}),Pi(document)}var bi=0,wi=new Set;function xi(e){var t=++bi;function n(){if(!G()||!Oi){wi.add(t),$("Current amount of styles loading: "+wi.size);var e=document.querySelector(".darkreader--fallback");e.textContent||(e.textContent=on(ri,{strict:!1}))}}function r(){wi.delete(t),$("Removed loadingStyle "+t+", now awaiting: "+wi.size),$("To-do to be loaded",wi),0===wi.size&&G()&&vi()}function i(){var e=o.details();e&&(kn.addRulesForMatching(e.rules),kn.matchVariablesAndDependants(),o.render(ri,ai))}$("New manager for element, with loadingStyleID "+t,e);var o=Tr(e,{update:i,loadingStart:n,loadingEnd:r});return ti.set(e,o),o}function _i(e){var t=ti.get(e);t&&(t.destroy(),ti.delete(e))}var Ei=B(function(e){ti.forEach(function(e){return e.render(ri,ai)}),ni.forEach(function(e){return e.render(ri,ai)}),e&&e()}),Si=function(){Ei.cancel()};function ki(){0!==wi.size?F("DOM is ready, but still have styles being loaded.",wi):vi()}var Ci=null,Oi=!document.hidden;function Ti(e){var t=Boolean(Ci);Ci=function(){document.hidden||(Li(),e(),Oi=!0)},t||document.addEventListener("visibilitychange",Ci)}function Li(){document.removeEventListener("visibilitychange",Ci),Ci=null}function Ai(){function e(){yi(),ji()}di(),document.hidden?Ti(e):e(),dr(ri)}function Pi(e){if(Array.isArray(e.adoptedStyleSheets)&&e.adoptedStyleSheets.length>0){var t=Zr(e);ni.push(t),t.render(ri,ai)}}function ji(){var e=Array.from(ti.keys());zr(e,function(e){var t=e.created,n=e.updated,r=e.removed,i=e.moved,o=r,a=t.concat(n).concat(i).filter(function(e){return!ti.has(e)}),s=i.filter(function(e){return ti.has(e)});$("Styles to be removed:",o),o.forEach(function(e){return _i(e)});var l=a.map(function(e){return xi(e)});l.map(function(e){return e.details()}).filter(function(e){return e&&e.rules.length>0}).forEach(function(e){kn.addRulesForMatching(e.rules)}),kn.matchVariablesAndDependants(),l.forEach(function(e){return e.render(ri,ai)}),l.forEach(function(e){return e.watch()}),s.forEach(function(e){return ti.get(e).restore()})},function(e){mi(e),Pi(e)}),er(function(e){if(sr(e,ri,si,ai),e===document.documentElement){var t=e.getAttribute("style");t.includes("--")&&(kn.matchVariablesAndDependants(),kn.putRootVars(document.head.querySelector(".darkreader--root-vars"),ri))}},function(e){mi(e);var t=e.querySelectorAll(Yn);t.length>0&&N(t,function(e){return sr(e,ri,si,ai)})}),K(ki)}function Mi(){ti.forEach(function(e){return e.pause()}),fi(),qr(),nr(),Y(ki),J()}function Ri(){var e=document.createElement("meta");e.name="darkreader",e.content=ei,document.head.appendChild(e)}function Ni(){var e=document.querySelector('meta[name="darkreader"]');return e?e.content!==ei:(Ri(),!1)}function Di(e,t,n){if(ri=e,ii=t,ii?(ai=Array.isArray(ii.ignoreImageAnalysis)?ii.ignoreImageAnalysis:[],si=Array.isArray(ii.ignoreInlineStyle)?ii.ignoreInlineStyle:[]):(ai=[],si=[]),oi=n,document.head){if(Ni())return;document.documentElement.setAttribute("data-darkreader-mode","dynamic"),document.documentElement.setAttribute("data-darkreader-scheme",ri.mode?"dark":"dimmed"),Ai()}else{if(!f){var r=li("darkreader--fallback");document.documentElement.appendChild(r),r.textContent=on(ri,{strict:!0})}var i=new MutationObserver(function(){if(document.head){if(i.disconnect(),Ni())return void $i();Ai()}});i.observe(document,{childList:!0,subtree:!0})}}function Ii(){document.dispatchEvent(new CustomEvent("__darkreader__cleanUp")),H(document.head.querySelector(".darkreader--proxy"))}function $i(){document.documentElement.removeAttribute("data-darkreader-mode"),document.documentElement.removeAttribute("data-darkreader-scheme"),Fi(),H(document.querySelector(".darkreader--fallback")),document.head&&(pr(),H(document.head.querySelector(".darkreader--user-agent")),H(document.head.querySelector(".darkreader--text")),H(document.head.querySelector(".darkreader--invert")),H(document.head.querySelector(".darkreader--inline")),H(document.head.querySelector(".darkreader--override")),H(document.head.querySelector(".darkreader--variables")),H(document.head.querySelector(".darkreader--root-vars")),H(document.head.querySelector('meta[name="darkreader"]')),Ii()),pi.forEach(function(e){H(e.querySelector(".darkreader--inline")),H(e.querySelector(".darkreader--override"))}),pi.clear(),N(ti.keys(),function(e){return _i(e)}),wi.clear(),Or(),N(document.querySelectorAll(".darkreader"),H),ni.forEach(function(e){e.destroy()}),ni.splice(0)}function Fi(){kn.clear(),le.clear(),Li(),Si(),Mi(),bn()}var Bi=/url\(\"(blob\:.*?)\"\)/g;function Vi(e){return n(this,void 0,void 0,function(){var t,n;return r(this,function(r){switch(r.label){case 0:return t=[],Ze(Bi,e,1).forEach(function(e){var n=w(e);t.push(n)}),[4,Promise.all(t)];case 1:return n=r.sent(),[2,e.replace(Bi,function(){return'url("'+n.shift()+'")'})]}})})}var Wi='/*\n _______\n / \\\n .==. .==.\n (( ))==(( ))\n / "==" "=="\\\n /____|| || ||___\\\n ________ ____ ________ ___ ___\n | ___ \\ / \\ | ___ \\ | | / /\n | | \\ \\ / /\\ \\ | | \\ \\| |_/ /\n | | ) / /__\\ \\ | |__/ /| ___ \\\n | |__/ / ______ \\| ____ \\| | \\ \\\n_______|_______/__/ ____ \\__\\__|___\\__\\__|___\\__\\____\n| ___ \\ | ____/ / \\ | ___ \\ | ____| ___ \\\n| | \\ \\| |___ / /\\ \\ | | \\ \\| |___| | \\ \\\n| |__/ /| ____/ /__\\ \\ | | ) | ____| |__/ /\n| ____ \\| |__/ ______ \\| |__/ /| |___| ____ \\\n|__| \\__\\____/__/ \\__\\_______/ |______|__| \\__\\\n https://darkreader.org\n*/\n\n/*! Dark reader generated CSS | Licensed under MIT https://github.com/darkreader/darkreader/blob/master/LICENSE */\n';function Hi(){return n(this,void 0,void 0,function(){function e(e,n){var r=document.querySelector(e);r&&r.textContent&&(t.push("/* "+n+" */"),t.push(r.textContent),t.push(""))}var t,n,i,o,a;return r(this,function(r){switch(r.label){case 0:return t=[Wi],e(".darkreader--fallback","Fallback Style"),e(".darkreader--user-agent","User-Agent Style"),e(".darkreader--text","Text Style"),e(".darkreader--invert","Invert Style"),e(".darkreader--variables","Variables Style"),n=[],document.querySelectorAll(".darkreader--sync").forEach(function(e){N(e.sheet.cssRules,function(e){e&&e.cssText&&n.push(e.cssText)})}),n.length?(i=Je(n.join("\n")),t.push("/* Modified CSS */"),a=(o=t).push,[4,Vi(i)]):[3,2];case 1:a.apply(o,[r.sent()]),t.push(""),r.label=2;case 2:return e(".darkreader--override","Override Style"),[2,t.join("\n")]}})})}var Ui=!1,zi=function(){try{return window.self!==window.top}catch(e){return console.warn(e),!0}}();function Gi(e,n){void 0===e&&(e={}),void 0===n&&(n=null);var r=t(t({},M),e);if(r.engine!==P.dynamicTheme)throw new Error("Theme engine is not supported.");Di(r,n,zi),Ui=!0}function qi(){return Ui}function Ki(){$i(),Ui=!1}var Yi=matchMedia("(prefers-color-scheme: dark)"),Xi={themeOptions:null,fixes:null};function Qi(){Yi.matches?Gi(Xi.themeOptions,Xi.fixes):Ki()}function Zi(e,t){void 0===e&&(e={}),void 0===t&&(t=null),e?(Xi={themeOptions:e,fixes:t},Qi(),v?Yi.addEventListener("change",Qi):Yi.addListener(Qi)):(v?Yi.removeEventListener("change",Qi):Yi.removeListener(Qi),Ki())}function Ji(){return n(this,void 0,void 0,function(){return r(this,function(e){switch(e.label){case 0:return[4,Hi()];case 1:return[2,e.sent()]}})})}var eo=S;e.auto=Zi,e.disable=Ki,e.enable=Gi,e.exportGeneratedCSS=Ji,e.isEnabled=qi,e.setFetchMethod=eo,Object.defineProperty(e,"__esModule",{value:!0})})},nPnh:function(e,t,n){"use strict";n.d(t,"b",function(){return i}),n.d(t,"c",function(){return o}),n.d(t,"a",function(){return a});var r=Math.round;function i(e,t,n){if(t){var i=t.x1,o=t.x2,s=t.y1,l=t.y2;e.x1=i,e.x2=o,e.y1=s,e.y2=l;var c=n&&n.lineWidth;return c?(r(2*i)===r(2*o)&&(e.x1=e.x2=a(i,c,!0)),r(2*s)===r(2*l)&&(e.y1=e.y2=a(s,c,!0)),e):e}}function o(e,t,n){if(t){var r=t.x,i=t.y,o=t.width,s=t.height;e.x=r,e.y=i,e.width=o,e.height=s;var l=n&&n.lineWidth;return l?(e.x=a(r,l,!0),e.y=a(i,l,!0),e.width=Math.max(a(r+o,l,!1)-e.x,0===o?0:1),e.height=Math.max(a(i+s,l,!1)-e.y,0===s?0:1),e):e}}function a(e,t,n){if(!t)return e;var i=r(2*e);return(i+r(t))%2===0?i/2:(i+(n?1:-1))/2}},nPtr:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={switchLoading:{},saveLoading:!1};t["default"]={name:"serverVless",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{update(e,t){var n=e.id,r=e.key,i=e.value,s=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/vless/update",{id:n,[r]:i});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,s({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/vless/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},copy(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/vless/copy",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},save(e,t){var n=e.params,r=e.callback,i=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{saveLoading:!0}});case 2:return e.next=4,Object(o["b"])("/"+window.settings.secure_path+"/server/vless/save",n);case 4:return t=e.sent,e.next=7,i({type:"setState",payload:{saveLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,i({type:"serverManage/getNodes"});case 11:"function"===typeof r&&r();case 12:case"end":return e.stop()}},e)})()}}}},nWMQ:function(e,t,n){"use strict";var r=n("c0Oy"),i=n("WGNW"),o=n("rKIl"),a=n("zNw+"),s=n("+y51"),l=n("4o36"),c=n("YEVI"),u=n("u8+u"),h=n("wUWy"),f=n("cQyX"),d=n("lvAo"),p=n("QSs8");e.exports=function(e,t,n,m,g,v){var y=r[e],b=y,w=g?"set":"add",x=b&&b.prototype,_={},E=function(e){var t=x[e];o(x,e,"delete"==e?function(e){return!(v&&!u(e))&&t.call(this,0===e?0:e)}:"has"==e?function(e){return!(v&&!u(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return v&&!u(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})};if("function"==typeof b&&(v||x.forEach&&!h(function(){(new b).entries().next()}))){var S=new b,k=S[w](v?{}:-0,1)!=S,C=h(function(){S.has(1)}),O=f(function(e){new b(e)}),T=!v&&h(function(){var e=new b,t=5;while(t--)e[w](t,t);return!e.has(-0)});O||(b=t(function(t,n){c(t,b,e);var r=p(new y,t,b);return void 0!=n&&l(n,g,r[w],r),r}),b.prototype=x,x.constructor=b),(C||T)&&(E("delete"),E("has"),g&&E("get")),(T||k)&&E(w),v&&x.clear&&delete x.clear}else b=m.getConstructor(t,e,g,w),a(b.prototype,n),s.NEED=!0;return d(b,e),_[e]=b,i(i.G+i.W+i.F*(b!=y),_),v||m.setStrong(b,e,g),b}},nYLq:function(e,t,n){var r=n("AUWw"),i=n("OsVd");e.exports=function(e){if(void 0===e)return 0;var t=r(e),n=i(t);if(t!==n)throw RangeError("Wrong length!");return n}},"nwK/":function(e,t,n){var r=n("V5/1").f,i=Function.prototype,o=/^\s*function ([^ (]*)/,a="name";a in i||n("8Z/V")&&r(i,a,{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(e){return""}}})},o0o1:function(e,t,n){var r=n("fsL8")();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"===typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},o175:function(e,t,n){n("Jaki")("Uint8",1,function(e){return function(t,n,r){return e(this,t,n,r)}},!0)},o46R:function(e,t,n){"use strict";var r=n("U8pU");function i(e,t){if("object"!==Object(r["a"])(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!==Object(r["a"])(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function o(e){var t=i(e,"string");return"symbol"===Object(r["a"])(t)?t:String(t)}n.d(t,"a",function(){return o})},o5UB:function(e,t,n){var r=n("cDf5")["default"],i=n("5Q0V");function o(e){var t=i(e,"string");return"symbol"===r(t)?t:String(t)}e.exports=o,e.exports.__esModule=!0,e.exports["default"]=e.exports},o8NH:function(e,t,n){var r=n("Y7ZC");r(r.S+r.F,"Object",{assign:n("kwZ1")})},oF12:function(e,t,n){var r=n("u8+u"),i=n("2we2"),o=n("gL7N")("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==i(e))}},oOsv:function(e,t,n){"use strict";t["default"]=function(){function e(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function t(e,n,r,i){this.message=e,this.expected=n,this.found=r,this.location=i,this.name="SyntaxError","function"===typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}function n(e){var n,r=arguments.length>1?arguments[1]:{},i={},o={start:Ae},a=Ae,s=function(e){return{type:"messageFormatPattern",elements:e,location:ke()}},l=function(e){var t,n,r,i,o,a="";for(t=0,r=e.length;t_e&&(_e=be,Ee=[]),Ee.push(e))}function Le(e,n,r,i){function o(e){var t=1;e.sort(function(e,t){return e.descriptiont.description?1:0});while(t1?a.slice(0,-1).join(", ")+" or "+a[e.length-1]:a[0],i=t?'"'+n(t)+'"':"end of input","Expected "+r+" but "+i+" found."}return null!==n&&o(n),new t(null!==e?e:a(n,r),n,r,i)}function Ae(){var e;return e=Pe(),e}function Pe(){var e,t,n;e=be,t=[],n=je();while(n!==i)t.push(n),n=je();return t!==i&&(we=e,t=s(t)),e=t,e}function je(){var e;return e=Re(),e===i&&(e=De()),e}function Me(){var t,n,r,o,a,s;if(t=be,n=[],r=be,o=qe(),o!==i?(a=Ze(),a!==i?(s=qe(),s!==i?(o=[o,a,s],r=o):(be=r,r=i)):(be=r,r=i)):(be=r,r=i),r!==i)while(r!==i)n.push(r),r=be,o=qe(),o!==i?(a=Ze(),a!==i?(s=qe(),s!==i?(o=[o,a,s],r=o):(be=r,r=i)):(be=r,r=i)):(be=r,r=i);else n=i;return n!==i&&(we=t,n=l(n)),t=n,t===i&&(t=be,n=Ge(),t=n!==i?e.substring(t,be):n),t}function Re(){var e,t;return e=be,t=Me(),t!==i&&(we=e,t=c(t)),e=t,e}function Ne(){var t,n,r;if(t=Xe(),t===i){if(t=be,n=[],u.test(e.charAt(be))?(r=e.charAt(be),be++):(r=i,0===Se&&Te(h)),r!==i)while(r!==i)n.push(r),u.test(e.charAt(be))?(r=e.charAt(be),be++):(r=i,0===Se&&Te(h));else n=i;t=n!==i?e.substring(t,be):n}return t}function De(){var t,n,r,o,a,s,l,c,u;return t=be,123===e.charCodeAt(be)?(n=f,be++):(n=i,0===Se&&Te(d)),n!==i?(r=qe(),r!==i?(o=Ne(),o!==i?(a=qe(),a!==i?(s=be,44===e.charCodeAt(be)?(l=p,be++):(l=i,0===Se&&Te(m)),l!==i?(c=qe(),c!==i?(u=Ie(),u!==i?(l=[l,c,u],s=l):(be=s,s=i)):(be=s,s=i)):(be=s,s=i),s===i&&(s=null),s!==i?(l=qe(),l!==i?(125===e.charCodeAt(be)?(c=g,be++):(c=i,0===Se&&Te(v)),c!==i?(we=t,n=y(o,s),t=n):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i),t}function Ie(){var e;return e=$e(),e===i&&(e=Fe(),e===i&&(e=Be(),e===i&&(e=Ve()))),e}function $e(){var t,n,r,o,a,s,l;return t=be,e.substr(be,6)===b?(n=b,be+=6):(n=i,0===Se&&Te(w)),n===i&&(e.substr(be,4)===x?(n=x,be+=4):(n=i,0===Se&&Te(_)),n===i&&(e.substr(be,4)===E?(n=E,be+=4):(n=i,0===Se&&Te(S)))),n!==i?(r=qe(),r!==i?(o=be,44===e.charCodeAt(be)?(a=p,be++):(a=i,0===Se&&Te(m)),a!==i?(s=qe(),s!==i?(l=Ze(),l!==i?(a=[a,s,l],o=a):(be=o,o=i)):(be=o,o=i)):(be=o,o=i),o===i&&(o=null),o!==i?(we=t,n=k(n,o),t=n):(be=t,t=i)):(be=t,t=i)):(be=t,t=i),t}function Fe(){var t,n,r,o,a,s;return t=be,e.substr(be,6)===C?(n=C,be+=6):(n=i,0===Se&&Te(O)),n!==i?(r=qe(),r!==i?(44===e.charCodeAt(be)?(o=p,be++):(o=i,0===Se&&Te(m)),o!==i?(a=qe(),a!==i?(s=ze(),s!==i?(we=t,n=T(s),t=n):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i),t}function Be(){var t,n,r,o,a,s;return t=be,e.substr(be,13)===L?(n=L,be+=13):(n=i,0===Se&&Te(A)),n!==i?(r=qe(),r!==i?(44===e.charCodeAt(be)?(o=p,be++):(o=i,0===Se&&Te(m)),o!==i?(a=qe(),a!==i?(s=ze(),s!==i?(we=t,n=P(s),t=n):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i),t}function Ve(){var t,n,r,o,a,s,l;if(t=be,e.substr(be,6)===j?(n=j,be+=6):(n=i,0===Se&&Te(M)),n!==i)if(r=qe(),r!==i)if(44===e.charCodeAt(be)?(o=p,be++):(o=i,0===Se&&Te(m)),o!==i)if(a=qe(),a!==i){if(s=[],l=He(),l!==i)while(l!==i)s.push(l),l=He();else s=i;s!==i?(we=t,n=R(s),t=n):(be=t,t=i)}else be=t,t=i;else be=t,t=i;else be=t,t=i;else be=t,t=i;return t}function We(){var t,n,r,o;return t=be,n=be,61===e.charCodeAt(be)?(r=N,be++):(r=i,0===Se&&Te(D)),r!==i?(o=Xe(),o!==i?(r=[r,o],n=r):(be=n,n=i)):(be=n,n=i),t=n!==i?e.substring(t,be):n,t===i&&(t=Ze()),t}function He(){var t,n,r,o,a,s,l,c,u;return t=be,n=qe(),n!==i?(r=We(),r!==i?(o=qe(),o!==i?(123===e.charCodeAt(be)?(a=f,be++):(a=i,0===Se&&Te(d)),a!==i?(s=qe(),s!==i?(l=Pe(),l!==i?(c=qe(),c!==i?(125===e.charCodeAt(be)?(u=g,be++):(u=i,0===Se&&Te(v)),u!==i?(we=t,n=I(r,l),t=n):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i)):(be=t,t=i),t}function Ue(){var t,n,r,o;return t=be,e.substr(be,7)===$?(n=$,be+=7):(n=i,0===Se&&Te(F)),n!==i?(r=qe(),r!==i?(o=Xe(),o!==i?(we=t,n=B(o),t=n):(be=t,t=i)):(be=t,t=i)):(be=t,t=i),t}function ze(){var e,t,n,r,o;if(e=be,t=Ue(),t===i&&(t=null),t!==i)if(n=qe(),n!==i){if(r=[],o=He(),o!==i)while(o!==i)r.push(o),o=He();else r=i;r!==i?(we=e,t=V(t,r),e=t):(be=e,e=i)}else be=e,e=i;else be=e,e=i;return e}function Ge(){var t,n;if(Se++,t=[],H.test(e.charAt(be))?(n=e.charAt(be),be++):(n=i,0===Se&&Te(U)),n!==i)while(n!==i)t.push(n),H.test(e.charAt(be))?(n=e.charAt(be),be++):(n=i,0===Se&&Te(U));else t=i;return Se--,t===i&&(n=i,0===Se&&Te(W)),t}function qe(){var t,n,r;Se++,t=be,n=[],r=Ge();while(r!==i)n.push(r),r=Ge();return t=n!==i?e.substring(t,be):n,Se--,t===i&&(n=i,0===Se&&Te(z)),t}function Ke(){var t;return G.test(e.charAt(be))?(t=e.charAt(be),be++):(t=i,0===Se&&Te(q)),t}function Ye(){var t;return K.test(e.charAt(be))?(t=e.charAt(be),be++):(t=i,0===Se&&Te(Y)),t}function Xe(){var t,n,r,o,a,s;if(t=be,48===e.charCodeAt(be)?(n=X,be++):(n=i,0===Se&&Te(Q)),n===i){if(n=be,r=be,Z.test(e.charAt(be))?(o=e.charAt(be),be++):(o=i,0===Se&&Te(J)),o!==i){a=[],s=Ke();while(s!==i)a.push(s),s=Ke();a!==i?(o=[o,a],r=o):(be=r,r=i)}else be=r,r=i;n=r!==i?e.substring(n,be):r}return n!==i&&(we=t,n=ee(n)),t=n,t}function Qe(){var t,n,r,o,a,s,l,c;return te.test(e.charAt(be))?(t=e.charAt(be),be++):(t=i,0===Se&&Te(ne)),t===i&&(t=be,e.substr(be,2)===re?(n=re,be+=2):(n=i,0===Se&&Te(ie)),n!==i&&(we=t,n=oe()),t=n,t===i&&(t=be,e.substr(be,2)===ae?(n=ae,be+=2):(n=i,0===Se&&Te(se)),n!==i&&(we=t,n=le()),t=n,t===i&&(t=be,e.substr(be,2)===ce?(n=ce,be+=2):(n=i,0===Se&&Te(ue)),n!==i&&(we=t,n=he()),t=n,t===i&&(t=be,e.substr(be,2)===fe?(n=fe,be+=2):(n=i,0===Se&&Te(de)),n!==i&&(we=t,n=pe()),t=n,t===i&&(t=be,e.substr(be,2)===me?(n=me,be+=2):(n=i,0===Se&&Te(ge)),n!==i?(r=be,o=be,a=Ye(),a!==i?(s=Ye(),s!==i?(l=Ye(),l!==i?(c=Ye(),c!==i?(a=[a,s,l,c],o=a):(be=o,o=i)):(be=o,o=i)):(be=o,o=i)):(be=o,o=i),r=o!==i?e.substring(r,be):o,r!==i?(we=t,n=ve(r),t=n):(be=t,t=i)):(be=t,t=i)))))),t}function Ze(){var e,t,n;if(e=be,t=[],n=Qe(),n!==i)while(n!==i)t.push(n),n=Qe();else t=i;return t!==i&&(we=e,t=ye(t)),e=t,e}if(n=a(),n!==i&&be===e.length)return n;throw n!==i&&be";t.style.display="none",n("MvwC").appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(i+"script"+a+"document.F=Object"+i+"/script"+a),e.close(),c=e.F;while(r--)delete c[l][o[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(s[l]=r(e),n=new s,s[l]=null,n[a]=e):n=c(),void 0===t?n:i(n,t)}},obDU:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.prototype.hasOwnProperty,i=Object.prototype.toString,o=function(){try{return!!Object.defineProperty({},"a",{})}catch(e){return!1}}(),a=(!o&&Object.prototype.__defineGetter__,o?Object.defineProperty:function(e,t,n){"get"in n&&e.__defineGetter__?e.__defineGetter__(t,n.get):(!r.call(e,t)||"value"in n)&&(e[t]=n.value)});t.defineProperty=a;var s=Object.create||function(e,t){var n,i;function o(){}for(i in o.prototype=e,n=new o,t)r.call(t,i)&&a(n,i,t[i]);return n};t.objCreate=s;var l=Array.prototype.indexOf||function(e,t){var n=this;if(!n.length)return-1;for(var r=t||0,i=n.length;r=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,i,o=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(a)throw i}}}}function l(e,t,n,r,i,o,a){try{var s=e[o](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,i)}function c(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function a(e){l(o,r,i,a,s,"next",e)}function s(e){l(o,r,i,a,s,"throw",e)}a(void 0)})}}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};b=[],w=e.validKeys||[]}function _(e){Object.keys(e).forEach(function(e){(0,r.default)(w.concat("default").indexOf(e)>-1,"Invalid key ".concat(e," from plugin"))}),b.push(e)}function E(e){return(0,r.default)(w.indexOf(e)>-1,"Invalid key ".concat(e)),b.filter(function(t){return e in t}).map(function(t){return t[e]})}function S(){for(var e=arguments.length,t=new Array(e),n=0;n=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;S(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:C(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},e}class j extends g.a.Component{constructor(e){super(e),this.state={order:{},user:{},invite_user:{},visible:!1}}getOrderInfo(){var e=this;return C()(P().mark(function t(){var n,r,i;return P().wrap(function(t){while(1)switch(t.prev=t.next){case 0:return e.onShow(),t.next=3,Object(O["b"])("/"+window.settings.secure_path+"/order/detail",{id:e.props.orderId});case 3:if(n=t.sent,200===n.code){t.next=6;break}return t.abrupt("return");case 6:return t.next=8,Object(O["a"])("/"+window.settings.secure_path+"/user/getUserInfoById",{id:n.data.user_id});case 8:if(r=t.sent,200===r.code){t.next=11;break}return t.abrupt("return");case 11:if(!n.data.invite_user_id){t.next=18;break}return t.next=14,Object(O["a"])("/"+window.settings.secure_path+"/user/getUserInfoById",{id:n.data.invite_user_id});case 14:if(i=t.sent,200===i.code){t.next=17;break}return t.abrupt("return");case 17:e.setState({invite_user:i.data});case 18:e.setState({order:n.data,user:r.data});case 19:case"end":return t.stop()}},t)}))()}onShow(){this.setState({visible:!this.state.visible})}jumpUserFilter(e,t,n){this.props.dispatch({type:"user/addFilter",key:e,condition:t,value:n}),L.a.push("/user")}render(){var e,t=this.props.plan.plans,n={marginBottom:0};return g.a.createElement("div",null,g.a.createElement("div",{onClick:()=>this.getOrderInfo()},this.props.children),g.a.createElement(x["a"],{visible:this.state.visible,title:"订单信息",onCancel:()=>this.onShow(),footer:!1},this.state.user.email?g.a.createElement("div",null,g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"邮箱"),g.a.createElement(S["a"],{span:18},g.a.createElement("a",{onClick:()=>this.jumpUserFilter("email","模糊",this.state.user.email),href:"javascript:void(0);"},this.state.user.email))),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"订单号"),g.a.createElement(S["a"],{span:18},this.state.order.trade_no)),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"订单周期"),g.a.createElement(S["a"],{span:18},y["a"].periodText[this.state.order.period])),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"订单状态"),g.a.createElement(S["a"],{span:18},y["a"].orderStatusText[this.state.order.status])),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"订阅计划"),g.a.createElement(S["a"],{span:18},null===(e=t.find(e=>e.id===this.state.order.plan_id))||void 0===e?void 0:e.name)),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"回调单号"),g.a.createElement(S["a"],{span:18},this.state.order.callback_no?this.state.order.callback_no:"-")),g.a.createElement(_["a"],null),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"支付金额"),g.a.createElement(S["a"],{span:18},(this.state.order.total_amount/100).toFixed(2))),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"余额支付"),g.a.createElement(S["a"],{span:18},(this.state.order.balance_amount/100).toFixed(2))),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"优惠金额"),g.a.createElement(S["a"],{span:18},(this.state.order.discount_amount/100).toFixed(2))),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"退回金额"),g.a.createElement(S["a"],{span:18},(this.state.order.refund_amount/100).toFixed(2))),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"折抵金额"),g.a.createElement(S["a"],{span:18},(this.state.order.surplus_amount/100).toFixed(2))),g.a.createElement(_["a"],null),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"创建时间"),g.a.createElement(S["a"],{span:18},w()(1e3*this.state.order.created_at).format("YYYY-MM-DD HH:mm:ss"))),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"更新时间"),g.a.createElement(S["a"],{span:18},w()(1e3*this.state.order.updated_at).format("YYYY-MM-DD HH:mm:ss"))),this.state.order.invite_user_id&&3===this.state.order.status?g.a.createElement("div",null,g.a.createElement(_["a"],null),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"邀请人"),g.a.createElement(S["a"],{span:18},g.a.createElement(f["a"],{title:"查看TA邀请的人"},g.a.createElement("a",{onClick:()=>this.jumpUserFilter("invite_by_email","模糊",this.state.invite_user.email),href:"javascript:void(0);"},this.state.invite_user.email)))),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"佣金金额"),g.a.createElement(S["a"],{span:18},(this.state.order.commission_balance/100).toFixed(2))),this.state.order.actual_commission_balance&&g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"实际发放"),g.a.createElement(S["a"],{span:18},(this.state.order.actual_commission_balance/100).toFixed(2))),g.a.createElement(E["a"],{gutter:[16,16],style:n},g.a.createElement(S["a"],{span:6},"佣金状态"),g.a.createElement(S["a"],{span:18},y["a"].commissionStatusText[this.state.order.commission_status]))):""):g.a.createElement(d["a"],{type:"loading",style:{fontSize:24,color:"#415A94"}})))}}var M=Object(A["c"])(e=>{var t=e.plan;return{plan:t}})(j),R=n("mCd/"),N=n("yiO6"),D=n("hVla"),I=n("v32e");class $ extends g.a.Component{constructor(e){super(e),this.state={}}componentWillUnmount(){this.props.dispatch({type:"order/empty"}),this.props.dispatch({type:"order/setState",payload:{filter:[]}})}componentDidMount(){this.props.dispatch({type:"order/fetch"}),this.props.dispatch({type:"plan/fetch"})}update(e,t,n){this.props.dispatch({type:"order/update",tradeNo:e,key:t,value:n})}tableOnChange(e){this.props.dispatch({type:"order/changeTable",pagination:e})}render(){var e=this.props.order,t=e.orders,n=e.fetchLoading,r=e.pagination,a=e.filter,m=[{title:"# 订单号",dataIndex:"trade_no",key:"trade_no",render:(e,t)=>{return g.a.createElement(M,{orderId:t.id},g.a.createElement("a",{href:"javascript:void(0);"},e.substr(0,3),"...",e.substr(-3)))}},{title:"类型",dataIndex:"type",key:"type",render:e=>{var t={1:"新购",2:"续费",3:"变更",4:"流量包"};return t[e]}},{title:"订阅计划",dataIndex:"plan_name",key:"plan_name"},{title:"周期",dataIndex:"period",key:"period",align:"center",render:(e,t)=>{return g.a.createElement(p["a"],null,y["a"].periodText[t.period])}},{title:"支付金额",dataIndex:"total_amount",key:"total_amount",align:"right",render:e=>{return(e/100).toFixed(2)}},{title:g.a.createElement("span",null,g.a.createElement(f["a"],{placement:"top",title:"标记为[已支付]后将会由系统进行开通后并完成"},"订单状态 ",g.a.createElement(d["a"],{type:"question-circle"}))),dataIndex:"status",key:"status",render:(e,t)=>{var n=["error","processing","default","success","default"];return g.a.createElement("div",null,g.a.createElement(c["a"],{disabled:0!==e,trigger:["click"],overlay:g.a.createElement(h["a"],null,g.a.createElement(h["a"].Item,{key:"1",onClick:e=>{this.props.dispatch({type:"order/paid",tradeNo:t.trade_no})}},"已支付"),g.a.createElement(h["a"].Item,{key:"2",onClick:e=>{this.props.dispatch({type:"order/cancel",tradeNo:t.trade_no})}},"取消"))},g.a.createElement("div",null,g.a.createElement(u["a"],{status:n[e]}),g.a.createElement("span",null,y["a"].orderStatusText[e]," "),0===e&&g.a.createElement("a",{href:"javascript:void(0);"},"标记为 ",g.a.createElement(d["a"],{type:"caret-down"})))))}},{title:"佣金金额",dataIndex:"commission_balance",key:"commission_balance",align:"right",render:(e,t)=>{return 0===t.status||2===t.status?"-":e?(e/100).toFixed(2):"-"}},{title:g.a.createElement("span",null,"佣金状态 ",g.a.createElement(f["a"],{placement:"top",title:"标记为[有效]后将会由系统处理后发放到用户并完成"},g.a.createElement(d["a"],{type:"question-circle"}))),dataIndex:"commission_status",key:"commission_status",render:(e,t)=>{if(0===t.status||2===t.status)return"-";if(!t.commission_balance)return"-";var n=["default","processing","success","error"];return 2===t.commission_status?g.a.createElement("div",null,g.a.createElement(u["a"],{status:n[e]}),g.a.createElement("span",null,y["a"].commissionStatusText[e]," ")):g.a.createElement("div",null,g.a.createElement(c["a"],{trigger:["click"],overlay:g.a.createElement(h["a"],null,g.a.createElement(h["a"].Item,{key:"0",disabled:0===e,onClick:e=>{this.update(t.trade_no,"commission_status",e.key)}},"待确认"),g.a.createElement(h["a"].Item,{key:"1",disabled:1===e,onClick:e=>{this.update(t.trade_no,"commission_status",e.key)}},"有效"),g.a.createElement(h["a"].Item,{key:"3",disabled:3===e,onClick:e=>{this.update(t.trade_no,"commission_status",e.key)}},"无效"))},g.a.createElement("div",null,g.a.createElement(u["a"],{status:n[e]}),g.a.createElement("span",null,y["a"].commissionStatusText[e]," "),g.a.createElement("a",{href:"javascript:void(0);"},"标记为 ",g.a.createElement(d["a"],{type:"caret-down"})))))}},{title:"创建时间",dataIndex:"created_at",key:"created_at",align:"right",render:e=>{return w()(1e3*e).format("YYYY/MM/DD HH:mm")}}];return g.a.createElement(v["a"],i()({},this.props,{title:"订单管理"}),g.a.createElement("div",{className:"d-flex justify-content-between align-items-center"}),g.a.createElement(I["a"],{loading:n},g.a.createElement("div",{className:"block block-rounded"},g.a.createElement("div",{className:"bg-white"},g.a.createElement("div",{style:{padding:15}},g.a.createElement(N["a"],null,g.a.createElement(D["a"],{value:a,onOk:e=>this.props.dispatch({type:"order/filter",filter:e}),keys:[{key:"trade_no",title:"订单号",condition:["模糊","="]},{key:"status",title:"订单状态",type:"select",condition:["="],options:[{key:"未支付",value:0},{key:"已支付",value:1},{key:"已取消",value:2},{key:"已完成",value:3}]},{key:"commission_status",title:"佣金状态",type:"select",condition:["="],options:[{key:"待确认",value:0},{key:"发放中",value:1},{key:"已发放",value:2},{key:"无效",value:3}]},{key:"user_id",title:"用户ID",condition:["="]},{key:"invite_user_id",title:"邀请人ID",condition:["=","!="]},{key:"callback_no",title:"回调单号",condition:["模糊"]},{key:"commission_balance",title:"佣金金额",condition:[">","<","=","!=",">=","<="]}]},g.a.createElement(l["a"],{type:a.length>0?"primary":""},g.a.createElement(d["a"],{type:"filter"})," 过滤器"))),g.a.createElement(R["a"],null,g.a.createElement(l["a"],{style:{marginLeft:10}},g.a.createElement(d["a"],{type:"plus"})," 添加订单"))),g.a.createElement(o["a"],{tableLayout:"auto",dataSource:t,pagination:s()({},r,{size:"small"}),columns:m,scroll:{x:1050},onChange:e=>this.tableOnChange(e)})))))}}t["default"]=Object(A["c"])(e=>{var t=e.order;return{order:t}})($)},q97H:function(e,t,n){"use strict";var r=n("330p");n("WGNW")({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},qDJ8:function(e,t,n){"use strict";e.exports=function(e){return null!=e&&"object"===typeof e&&!1===Array.isArray(e)}},qIgq:function(e,t,n){var r=n("Wz2H"),i=n("IuST"),o=n("198K");function a(e,t){return r(e)||i(e,t)||o()}e.exports=a},qT12:function(e,t,n){"use strict";var r="function"===typeof Symbol&&Symbol.for,i=r?Symbol.for("react.element"):60103,o=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,s=r?Symbol.for("react.strict_mode"):60108,l=r?Symbol.for("react.profiler"):60114,c=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,h=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,d=r?Symbol.for("react.forward_ref"):60112,p=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,g=r?Symbol.for("react.memo"):60115,v=r?Symbol.for("react.lazy"):60116,y=r?Symbol.for("react.block"):60121,b=r?Symbol.for("react.fundamental"):60117,w=r?Symbol.for("react.responder"):60118,x=r?Symbol.for("react.scope"):60119;function _(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case i:switch(e=e.type,e){case h:case f:case a:case l:case s:case p:return e;default:switch(e=e&&e.$$typeof,e){case u:case d:case v:case g:case c:return e;default:return t}}case o:return t}}}function E(e){return _(e)===f}t.AsyncMode=h,t.ConcurrentMode=f,t.ContextConsumer=u,t.ContextProvider=c,t.Element=i,t.ForwardRef=d,t.Fragment=a,t.Lazy=v,t.Memo=g,t.Portal=o,t.Profiler=l,t.StrictMode=s,t.Suspense=p,t.isAsyncMode=function(e){return E(e)||_(e)===h},t.isConcurrentMode=E,t.isContextConsumer=function(e){return _(e)===u},t.isContextProvider=function(e){return _(e)===c},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===i},t.isForwardRef=function(e){return _(e)===d},t.isFragment=function(e){return _(e)===a},t.isLazy=function(e){return _(e)===v},t.isMemo=function(e){return _(e)===g},t.isPortal=function(e){return _(e)===o},t.isProfiler=function(e){return _(e)===l},t.isStrictMode=function(e){return _(e)===s},t.isSuspense=function(e){return _(e)===p},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===a||e===f||e===l||e===s||e===p||e===m||"object"===typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===g||e.$$typeof===c||e.$$typeof===u||e.$$typeof===d||e.$$typeof===b||e.$$typeof===w||e.$$typeof===x||e.$$typeof===y)},t.typeOf=_},qfHW:function(e,t,n){(function(e){t.fetch=s(e.fetch)&&s(e.ReadableStream),t.writableStream=s(e.WritableStream),t.abortController=s(e.AbortController),t.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),t.blobConstructor=!0}catch(e){}var n;function r(){if(void 0!==n)return n;if(e.XMLHttpRequest){n=new e.XMLHttpRequest;try{n.open("GET",e.XDomainRequest?"/":"https://example.com")}catch(e){n=null}}else n=null;return n}function i(e){var t=r();if(!t)return!1;try{return t.responseType=e,t.responseType===e}catch(e){}return!1}var o="undefined"!==typeof e.ArrayBuffer,a=o&&s(e.ArrayBuffer.prototype.slice);function s(e){return"function"===typeof e}t.arraybuffer=t.fetch||o&&i("arraybuffer"),t.msstream=!t.fetch&&a&&i("ms-stream"),t.mozchunkedarraybuffer=!t.fetch&&o&&i("moz-chunked-arraybuffer"),t.overrideMimeType=t.fetch||!!r()&&s(r().overrideMimeType),t.vbArray=s(e.VBArray),n=null}).call(this,n("yLpj"))},qqou:function(e,t,n){"use strict";var r=n("q1tI"),i=n.n(r);if("undefined"!==typeof Element&&!Element.prototype.matches){var o=Element.prototype;o.matches=o.matchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector||o.webkitMatchesSelector}var a=function(e,t,n){var r=e;while(r){var i=r===n||r===document.body;if(i||1===r.nodeType&&r.matches(t)){i&&(r=null);break}r=r.parentNode}return r},s=function(e){var t=e;do{var n=window.getComputedStyle(t),r=n.overflow;if(("auto"===r||"scroll"===r)&&t&&t.nodeType&&(t.offsetWidth""===t||!e.matches(t)).indexOf(e)},c="tr",u={TOP:1,BOTTOM:3},h="px",f="position:fixed;z-index:9999;height:0;margin-top:-1px;border-bottom:dashed 2px rgba(0,0,0,.3);display:none;";class d extends r["Component"]{constructor(e){super(e),this.onMouseDown=this.onMouseDown.bind(this),this.onDragStart=this.onDragStart.bind(this),this.onDragEnter=this.onDragEnter.bind(this),this.onDragEnd=this.onDragEnd.bind(this),this.autoScroll=this.autoScroll.bind(this),this.state={fromIndex:-1,toIndex:-1},this.scrollElement=null,this.scrollTimerId=-1,this.direction=u.BOTTOM}componentWillUnmount(){this.dragLine&&this.dragLine.parentNode&&(this.dragLine.parentNode.removeChild(this.dragLine),this.dragLine=null,this.cacheDragTarget=null)}onMouseDown(e){var t=this.getHandleNode(e.target);if(t){var n=this.props.handleSelector&&this.props.handleSelector!==this.props.nodeSelector?this.getDragNode(t):t;n&&(t.setAttribute("draggable",!1),n.setAttribute("draggable",!0),n.ondragstart=this.onDragStart,n.ondragend=this.onDragEnd)}}onDragStart(e){var t=this.getDragNode(e.target),n=e;if(t){var r=t.parentNode;n.dataTransfer.setData("Text",""),n.dataTransfer.effectAllowed="move",r.ondragenter=this.onDragEnter,r.ondragover=function(e){return e.preventDefault(),!0};var i=l(t,this.props.ignoreSelector);this.setState({fromIndex:i,toIndex:i}),this.scrollElement=s(r)}}onDragEnter(e){var t,n=this.getDragNode(e.target),r=e;n?(t=l(n,this.props.ignoreSelector),this.props.enableScroll&&this.resolveAutoScroll(r,n)):(t=-1,this.stopAutoScroll()),this.cacheDragTarget=n,this.setState({toIndex:t}),this.fixDragLine(n)}onDragEnd(e){var t=this.getDragNode(e.target);this.stopAutoScroll(),t&&(t.removeAttribute("draggable"),t.ondragstart=null,t.ondragend=null,t.parentNode.ondragenter=null,t.parentNode.ondragover=null,this.state.fromIndex>=0&&this.state.fromIndex!==this.state.toIndex&&this.props.onDragEnd(this.state.fromIndex,this.state.toIndex)),this.hideDragLine(),this.setState({fromIndex:-1,toIndex:-1})}getDragNode(e){return a(e,this.props.nodeSelector,this.dragList)}getHandleNode(e){return a(e,this.props.handleSelector||this.props.nodeSelector,this.dragList)}getDragLine(){return this.dragLine||(this.dragLine=window.document.createElement("div"),this.dragLine.setAttribute("style",f),window.document.body.appendChild(this.dragLine)),this.dragLine.className=this.props.lineClassName||"",this.dragLine}resolveAutoScroll(e,t){if(this.scrollElement){var n=this.scrollElement.getBoundingClientRect(),r=n.top,i=n.height,o=t.offsetHeight,a=e.pageY,s=o*(2/3);this.direction=0,a>r+i-s?this.direction=u.BOTTOM:au+c+2)return void this.hideDragLine()}t.style.left=r+h,t.style.width=o+h,t.style.top=s+h,t.style.display="block"}}render(){return i.a.createElement("div",{role:"presentation",onMouseDown:this.onMouseDown,ref:e=>{this.dragList=e}},this.props.children)}}d.defaultProps={nodeSelector:c,ignoreSelector:"",enableScroll:!0,scrollSpeed:10,handleSelector:"",lineClassName:"",children:null};var p=d,m="px",g="width:0;margin-left:-1px;margin-top:0;border-bottom:0 none;border-left:dashed 2px rgba(0,0,0,.3);",v={RIGHT:2,LEFT:4};class y extends p{getDragLine(){return this.dragLine||(super.getDragLine(),this.dragLine.setAttribute("style",this.dragLine.getAttribute("style")+g)),this.dragLine}resolveAutoScroll(e,t){if(this.scrollElement){var n=this.scrollElement.getBoundingClientRect(),r=n.left,i=n.width,o=t.offsetWidth,a=e.pageX,s=2*o/3;this.direction=0,a>r+i-s?this.direction=v.RIGHT:au+c+2)return void this.hideDragLine()}t.style.top=i+m,t.style.height=a+m,t.style.left=s+m,t.style.display="block"}}}var b=y;p.DragColumn=b;t["a"]=p},qx4F:function(e,t,n){"use strict";var r;function i(e){if("undefined"===typeof document)return 0;if(e||void 0===r){var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var n=document.createElement("div"),i=n.style;i.position="absolute",i.top=0,i.left=0,i.pointerEvents="none",i.visibility="hidden",i.width="200px",i.height="150px",i.overflow="hidden",n.appendChild(t),document.body.appendChild(n);var o=t.offsetWidth;n.style.overflow="scroll";var a=t.offsetWidth;o===a&&(a=n.clientWidth),document.body.removeChild(n),r=o-a}return r}n.d(t,"a",function(){return i})},r6D9:function(e,t,n){"use strict";var r=n("IlS8");function i(){}e.exports=function(){function e(e,t,n,i,o,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=i,n.PropTypes=n,n}},rA99:function(e,t,n){"use strict";var r=n("mrSG"),i=n("y+Vt"),o=n("QBsz"),a=n("Sj9i"),s=[],l=function(){function e(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1}return e}();function c(e,t,n){var r=e.cpx2,i=e.cpy2;return null!=r||null!=i?[(n?a["b"]:a["a"])(e.x1,e.cpx1,e.cpx2,e.x2,t),(n?a["b"]:a["a"])(e.y1,e.cpy1,e.cpy2,e.y2,t)]:[(n?a["i"]:a["h"])(e.x1,e.cpx1,e.x2,t),(n?a["i"]:a["h"])(e.y1,e.cpy1,e.y2,t)]}var u=function(e){function t(t){return e.call(this,t)||this}return Object(r["a"])(t,e),t.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},t.prototype.getDefaultShape=function(){return new l},t.prototype.buildPath=function(e,t){var n=t.x1,r=t.y1,i=t.x2,o=t.y2,l=t.cpx1,c=t.cpy1,u=t.cpx2,h=t.cpy2,f=t.percent;0!==f&&(e.moveTo(n,r),null==u||null==h?(f<1&&(Object(a["n"])(n,l,i,f,s),l=s[1],i=s[2],Object(a["n"])(r,c,o,f,s),c=s[1],o=s[2]),e.quadraticCurveTo(l,c,i,o)):(f<1&&(Object(a["g"])(n,l,u,i,f,s),l=s[1],u=s[2],i=s[3],Object(a["g"])(r,c,h,o,f,s),c=s[1],h=s[2],o=s[3]),e.bezierCurveTo(l,c,u,h,i,o)))},t.prototype.pointAt=function(e){return c(this.shape,e,!1)},t.prototype.tangentAt=function(e){var t=c(this.shape,e,!0);return o["k"](t,t)},t}(i["b"]);u.prototype.type="bezier-curve",t["a"]=u},rKIl:function(e,t,n){var r=n("c0Oy"),i=n("VPOE"),o=n("oxo0"),a=n("kCK5")("src"),s=n("b5re"),l="toString",c=(""+s).split(l);n("bV5f").inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var l="function"==typeof n;l&&(o(n,"name")||i(n,"name",t)),e[t]!==n&&(l&&(o(n,a)||i(n,a,e[t]?""+e[t]:c.join(String(t)))),e===r?e[t]=n:s?e[t]?e[t]=n:i(e,t,n):(delete e[t],i(e,t,n)))})(Function.prototype,l,function(){return"function"==typeof this&&this[a]||s.call(this)})},rTWY:function(e,t,n){var r=n("c0Oy"),i=n("vMx4").set,o=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,l="process"==n("2we2")(a);e.exports=function(){var e,t,n,c=function(){var r,i;l&&(r=a.domain)&&r.exit();while(e){i=e.fn,e=e.next;try{i()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(l)n=function(){a.nextTick(c)};else if(!o||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var u=s.resolve(void 0);n=function(){u.then(c)}}else n=function(){i.call(r,c)};else{var h=!0,f=document.createTextNode("");new o(c).observe(f,{characterData:!0}),n=function(){f.data=h=!h}}return function(r){var i={fn:r,next:void 0};t&&(t.next=i),e||(e=i,n()),t=i}}},rUcv:function(e,t,n){"use strict";var r=n("c0Oy"),i=n("oxo0"),o=n("8Z/V"),a=n("WGNW"),s=n("rKIl"),l=n("+y51").KEY,c=n("wUWy"),u=n("VyuQ"),h=n("lvAo"),f=n("kCK5"),d=n("gL7N"),p=n("zKnh"),m=n("/sWw"),g=n("T1nr"),v=n("EpXD"),y=n("7vYJ"),b=n("u8+u"),w=n("il4q"),x=n("OeOC"),_=n("8BMt"),E=n("pQGJ"),S=n("/Mfd"),k=n("CTsd"),C=n("15BC"),O=n("e6w7"),T=n("V5/1"),L=n("Igga"),A=C.f,P=T.f,j=k.f,M=r.Symbol,R=r.JSON,N=R&&R.stringify,D="prototype",I=d("_hidden"),$=d("toPrimitive"),F={}.propertyIsEnumerable,B=u("symbol-registry"),V=u("symbols"),W=u("op-symbols"),H=Object[D],U="function"==typeof M&&!!O.f,z=r.QObject,G=!z||!z[D]||!z[D].findChild,q=o&&c(function(){return 7!=S(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=A(H,t);r&&delete H[t],P(e,t,n),r&&e!==H&&P(H,t,r)}:P,K=function(e){var t=V[e]=S(M[D]);return t._k=e,t},Y=U&&"symbol"==typeof M.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof M},X=function(e,t,n){return e===H&&X(W,t,n),y(e),t=_(t,!0),y(n),i(V,t)?(n.enumerable?(i(e,I)&&e[I][t]&&(e[I][t]=!1),n=S(n,{enumerable:E(0,!1)})):(i(e,I)||P(e,I,E(1,{})),e[I][t]=!0),q(e,t,n)):P(e,t,n)},Q=function(e,t){y(e);var n,r=g(t=x(t)),i=0,o=r.length;while(o>i)X(e,n=r[i++],t[n]);return e},Z=function(e,t){return void 0===t?S(e):Q(S(e),t)},J=function(e){var t=F.call(this,e=_(e,!0));return!(this===H&&i(V,e)&&!i(W,e))&&(!(t||!i(this,e)||!i(V,e)||i(this,I)&&this[I][e])||t)},ee=function(e,t){if(e=x(e),t=_(t,!0),e!==H||!i(V,t)||i(W,t)){var n=A(e,t);return!n||!i(V,t)||i(e,I)&&e[I][t]||(n.enumerable=!0),n}},te=function(e){var t,n=j(x(e)),r=[],o=0;while(n.length>o)i(V,t=n[o++])||t==I||t==l||r.push(t);return r},ne=function(e){var t,n=e===H,r=j(n?W:x(e)),o=[],a=0;while(r.length>a)!i(V,t=r[a++])||n&&!i(H,t)||o.push(V[t]);return o};U||(M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===H&&t.call(W,n),i(this,I)&&i(this[I],e)&&(this[I][e]=!1),q(this,e,E(1,n))};return o&&G&&q(H,e,{configurable:!0,set:t}),K(e)},s(M[D],"toString",function(){return this._k}),C.f=ee,T.f=X,n("9HFh").f=k.f=te,n("LsAW").f=J,O.f=ne,o&&!n("FqPH")&&s(H,"propertyIsEnumerable",J,!0),p.f=function(e){return K(d(e))}),a(a.G+a.W+a.F*!U,{Symbol:M});for(var re="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ie=0;re.length>ie;)d(re[ie++]);for(var oe=L(d.store),ae=0;oe.length>ae;)m(oe[ae++]);a(a.S+a.F*!U,"Symbol",{for:function(e){return i(B,e+="")?B[e]:B[e]=M(e)},keyFor:function(e){if(!Y(e))throw TypeError(e+" is not a symbol!");for(var t in B)if(B[t]===e)return t},useSetter:function(){G=!0},useSimple:function(){G=!1}}),a(a.S+a.F*!U,"Object",{create:Z,defineProperty:X,defineProperties:Q,getOwnPropertyDescriptor:ee,getOwnPropertyNames:te,getOwnPropertySymbols:ne});var se=c(function(){O.f(1)});a(a.S+a.F*se,"Object",{getOwnPropertySymbols:function(e){return O.f(w(e))}}),R&&a(a.S+a.F*(!U||c(function(){var e=M();return"[null]"!=N([e])||"{}"!=N({a:e})||"{}"!=N(Object(e))})),"JSON",{stringify:function(e){var t,n,r=[e],i=1;while(arguments.length>i)r.push(arguments[i++]);if(n=t=r[1],(b(t)||void 0!==e)&&!Y(e))return v(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!Y(t))return t}),r[1]=t,N.apply(R,r)}}),M[D][$]||n("VPOE")(M[D],$,M[D].valueOf),h(M,"Symbol"),h(Math,"Math",!0),h(r.JSON,"JSON",!0)},rXFu:function(e,t,n){"use strict";(function(t,r){var i=n("lm0R");e.exports=_;var o,a=n("2Nt0");_.ReadableState=x;n("+qE3").EventEmitter;var s=function(e,t){return e.listeners(t).length},l=n("QpuX"),c=n("hwdV").Buffer,u=t.Uint8Array||function(){};function h(e){return c.from(e)}function f(e){return c.isBuffer(e)||e instanceof u}var d=Object.create(n("Onz0"));d.inherits=n("P7XM");var p=n(3),m=void 0;m=p&&p.debuglog?p.debuglog("stream"):function(){};var g,v=n("Xhqo"),y=n("RoFp");d.inherits(_,l);var b=["error","close","destroy","pause","resume"];function w(e,t,n){if("function"===typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}function x(e,t){o=o||n("sZro"),e=e||{};var r=t instanceof o;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(g||(g=n("fXKp").StringDecoder),this.decoder=new g(e.encoding),this.encoding=e.encoding)}function _(e){if(o=o||n("sZro"),!(this instanceof _))return new _(e);this._readableState=new x(e,this),this.readable=!0,e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy)),l.call(this)}function E(e,t,n,r,i){var o,a=e._readableState;null===t?(a.reading=!1,A(e,a)):(i||(o=k(a,t)),o?e.emit("error",o):a.objectMode||t&&t.length>0?("string"===typeof t||a.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=h(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):S(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?S(e,a,t,!1):M(e,a)):S(e,a,t,!1))):r||(a.reading=!1));return C(a)}function S(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&P(e)),M(e,t)}function k(e,t){var n;return f(t)||"string"===typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function C(e){return!e.ended&&(e.needReadable||e.length=O?e=O:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function L(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=T(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function A(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,P(e)}}function P(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(m("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(j,e):j(e))}function j(e){m("emit readable"),e.emit("readable"),F(e)}function M(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(R,e,t))}function R(e,t){var n=t.length;while(!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=V(e,t.buffer,t.decoder),n);var n}function V(e,t,n){var r;return eo.length?o.length:e;if(a===o.length?i+=o:i+=o.slice(0,e),e-=a,0===e){a===o.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++r}return t.length-=r,i}function H(e,t){var n=c.allocUnsafe(e),r=t.head,i=1;r.data.copy(n),e-=r.data.length;while(r=r.next){var o=r.data,a=e>o.length?o.length:e;if(o.copy(n,n.length-e,0,a),e-=a,0===e){a===o.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++i}return t.length-=i,n}function U(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(z,t,e))}function z(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function G(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return m("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?U(this):P(this),null;if(e=L(e,t),0===e&&t.ended)return 0===t.length&&U(this),null;var r,i=t.needReadable;return m("need readable",i),(0===t.length||t.length-e0?B(e,t):null,null===r?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&U(this)),null!==r&&this.emit("data",r),r},_.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},_.prototype.pipe=function(e,t){var n=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e);break}o.pipesCount+=1,m("pipe count=%d opts=%j",o.pipesCount,t);var a=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr,l=a?u:x;function c(e,t){m("onunpipe"),e===n&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,d())}function u(){m("onend"),e.end()}o.endEmitted?i.nextTick(l):n.once("end",l),e.on("unpipe",c);var h=N(n);e.on("drain",h);var f=!1;function d(){m("cleanup"),e.removeListener("close",y),e.removeListener("finish",b),e.removeListener("drain",h),e.removeListener("error",v),e.removeListener("unpipe",c),n.removeListener("end",u),n.removeListener("end",x),n.removeListener("data",g),f=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||h()}var p=!1;function g(t){m("ondata"),p=!1;var r=e.write(t);!1!==r||p||((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==G(o.pipes,e))&&!f&&(m("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,p=!0),n.pause())}function v(t){m("onerror",t),x(),e.removeListener("error",v),0===s(e,"error")&&e.emit("error",t)}function y(){e.removeListener("finish",b),x()}function b(){m("onfinish"),e.removeListener("close",y),x()}function x(){m("unpipe"),n.unpipe(e)}return n.on("data",g),w(e,"error",v),e.once("close",y),e.once("finish",b),e.emit("pipe",n),o.flowing||(m("pipe resume"),n.resume()),e},_.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o=1?1:Object(r["f"])(0,a,l,1,e,u)&&Object(r["a"])(0,s,c,1,u[0])}}}},s3Ml:function(e,t,n){e.exports={default:n("JbBM"),__esModule:!0}},s4An:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,"a",function(){return r})},s4NR:function(e,t,n){"use strict";t.decode=t.parse=n("kd2E"),t.encode=t.stringify=n("4JlD")},sFYk:function(e,t,n){"use strict";n.r(t);var r=n("jehZ"),i=n.n(r),o=n("1l/V"),a=n.n(o),s=n("q1tI"),l=n.n(s),c=n("Bl7J"),u=n("/MKj"),h=n("3a4m"),f=n.n(h),d=n("t3Un"),p=n("20nU"),m=n("IrRn"),g=n("G+eS"),v=n("k5Tp"),y=n("MJSk"),b=n("LadE"),w=n("Syqx"),x=n("/zI/"),_=n("NiBb"),E=n("TLXH"),S=n("xVpn"),k=n("l6yY");function C(){C=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var o=t&&t.prototype instanceof f?t:f,a=Object.create(o.prototype),s=new k(i||[]);return r(a,"_invoke",{value:x(e,n,s)}),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var h={};function f(){}function d(){}function p(){}var m={};l(m,o,function(){return this});var g=Object.getPrototypeOf,v=g&&g(g(O([])));v&&v!==t&&n.call(v,o)&&(m=v);var y=p.prototype=f.prototype=Object.create(m);function b(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function w(e,t){function i(r,o,a,s){var l=u(e[r],e,o);if("throw"!==l.type){var c=l.arg,h=c.value;return h&&"object"==typeof h&&n.call(h,"__await")?t.resolve(h.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(h).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function x(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=_(a,n);if(s){if(s===h)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=u(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function _(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,_(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var i=u(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,h;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;S(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},e}m["a"]([v["a"],y["a"],b["a"],w["a"],x["a"],_["a"],E["a"],k["a"],S["a"]]);class O extends l.a.Component{constructor(e){super(e),this.state={},this.orderChart=l.a.createRef(),this.orderChartObj=void 0,this.serverLastRankChart=l.a.createRef(),this.serverYesterdayRankChart=l.a.createRef(),this.serverLastRankChartObj=void 0;this.serverYesterdayRankChartObj=void 0}orderChartRender(e){var t;this.orderChartObj=g["b"](null===(t=this.orderChart)||void 0===t?void 0:t.current,"vintage",{renderer:"svg"});var n={tooltip:{trigger:"axis"},legend:{data:[],left:"0",z:4},grid:{left:"1%",right:"1%",bottom:"3%",containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:[]},yAxis:{type:"value"},series:[]};e.forEach(e=>{-1===n.legend.data.indexOf(e.type)&&n.legend.data.push(e.type),-1===n.xAxis.data.indexOf(e.date)&&n.xAxis.data.push(e.date);var t=n.series.find(t=>t.name===e.type);t?t.data.push(e.value):n.series.push({name:e.type,type:"line",smooth:!0,data:[e.value]})}),this.orderChartObj.setOption(n),window.addEventListener("resize",this.chartResize.bind(this))}serverLastRankChartRender(e){var t;this.serverLastRankChartObj=g["b"](null===(t=this.serverLastRankChart)||void 0===t?void 0:t.current);var n={tooltip:{trigger:"axis",formatter:e=>{return"".concat(e[0].value," GB")}},grid:{top:"1%",left:"1%",right:"1%",bottom:"3%",containLabel:!0},xAxis:{type:"value"},yAxis:{type:"category",data:[]},series:[{data:[],type:"bar"}]};e.reverse().forEach(e=>{n.yAxis.data.push(e.server_name),n.series[0].data.push(e.total)}),this.serverLastRankChartObj.setOption(n)}serverYesterdayRankChartRender(e){var t;this.serverYesterdayRankChartObj=g["b"](null===(t=this.serverYesterdayRankChart)||void 0===t?void 0:t.current);var n={tooltip:{trigger:"axis",formatter:e=>{return"".concat(e[0].value," GB")}},grid:{top:"1%",left:"1%",right:"1%",bottom:"3%",containLabel:!0},xAxis:{type:"value"},yAxis:{type:"category",data:[]},series:[{data:[],type:"bar"}]};e.reverse().forEach(e=>{n.yAxis.data.push(e.server_name),n.series[0].data.push(e.total)}),this.serverYesterdayRankChartObj.setOption(n)}chartResize(){this.orderChartObj.resize(),this.serverLastRankChartObj.resize();this.serverYesterdayRankChartObj.resize()}componentDidMount(){var e=this;a()(C().mark(function t(){return C().wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,e.checkQueue();case 2:case"end":return t.stop()}},t)}))(),this.props.dispatch({type:"stat/getOverride"}),this.props.dispatch({type:"stat/getOrder",complete:e=>{this.orderChartRender(e)}}),this.props.dispatch({type:"stat/getServerLastRank",complete:e=>{this.serverLastRankChartRender(e)}}),this.props.dispatch({type:"stat/getServerYesterdayRank",complete:e=>{this.serverYesterdayRankChartRender(e)}}),this.props.dispatch({type:"config/fetch",key:"site"})}componentWillUnmount(){window.removeEventListener("resize",this.chartResize.bind(this))}orderFilter(){this.props.dispatch({type:"order/addFilter",key:"commission_status",condition:"=",value:0}),this.props.dispatch({type:"order/addFilter",key:"invite_user_id",condition:"!=",value:""}),f.a.push("/order")}checkQueue(){var e=this;return a()(C().mark(function t(){var n,r;return C().wrap(function(t){while(1)switch(t.prev=t.next){case 0:return n=new URL(p["a"].serviceHost),t.next=3,Object(d["a"])((null===n||void 0===n?void 0:n.origin)+"/monitor/api/stats");case 3:r=t.sent,e.setState({queueStatus:null===r||void 0===r?void 0:r.status});case 5:case"end":return t.stop()}},t)}))()}render(){var e=this.props,t=e.stat,n=e.config,r=[];return t.ticket_pending_total&&r.push(l.a.createElement("div",{className:"alert alert-danger",role:"alert"},l.a.createElement("p",{className:"mb-0"},"有 ",t.ticket_pending_total," 条工单等待处理 ",l.a.createElement("a",{className:"alert-link",href:"javascript:void(0)",onClick:()=>f.a.push("/ticket")},"立即处理")))),t.commission_pending_total&&r.push(l.a.createElement("div",{className:"alert alert-danger",role:"alert"},l.a.createElement("p",{className:"mb-0"},"有 ",t.commission_pending_total," 笔佣金等待确认 ",l.a.createElement("a",{className:"alert-link",href:"javascript:void(0)",onClick:()=>{this.props.dispatch({type:"order/addFilter",key:"status",condition:"=",value:"3"}),this.props.dispatch({type:"order/addFilter",key:"commission_status",condition:"=",value:"0"}),this.props.dispatch({type:"order/addFilter",key:"commission_balance",condition:">",value:"0"}),f.a.push("/order")}},"立即处理")))),l.a.createElement(c["a"],i()({},this.props,{title:"仪表盘"}),this.state.queueStatus&&"running"!==this.state.queueStatus&&l.a.createElement("div",{className:"row"},l.a.createElement("div",{className:"col-lg-12"},l.a.createElement("div",{className:"alert alert-danger",role:"alert"},l.a.createElement("p",{className:"mb-0"},"当前队列服务运行异常,可能会导致业务无法使用。")))),r.map(e=>e),l.a.createElement("div",{className:"mb-0 block border-bottom js-classic-nav d-none d-sm-block"},l.a.createElement("div",{className:"block-content block-content-full"},l.a.createElement("div",{className:"row no-gutters border"},l.a.createElement("div",{className:"col-sm-6 col-xl-3 js-appear-enabled animated","data-toggle":"appear"},l.a.createElement("a",{className:"block block-bordered block-link-pop text-center mb-0",onClick:()=>f.a.push("/config/system")},l.a.createElement("div",{className:"block-content block-content-full text-center"},l.a.createElement("i",{className:"fa-2x si si-equalizer text-primary d-none d-sm-inline-block mb-3"}),l.a.createElement("div",{className:"font-w600 text-uppercase"},"系统设置")))),l.a.createElement("div",{className:"col-sm-6 col-xl-3 js-appear-enabled animated","data-toggle":"appear"},l.a.createElement("a",{className:"block block-bordered block-link-pop text-center mb-0",onClick:()=>f.a.push("/order")},l.a.createElement("div",{className:"block-content block-content-full text-center"},l.a.createElement("i",{className:"fa-2x si si-list text-primary d-none d-sm-inline-block mb-3"}),l.a.createElement("div",{className:"font-w600 text-uppercase"},"订单管理")))),l.a.createElement("div",{className:"col-sm-6 col-xl-3 js-appear-enabled animated","data-toggle":"appear"},l.a.createElement("a",{className:"block block-bordered block-link-pop text-center mb-0",onClick:()=>f.a.push("/plan")},l.a.createElement("div",{className:"block-content block-content-full text-center"},l.a.createElement("i",{className:"fa-2x si si-bag text-primary d-none d-sm-inline-block mb-3"}),l.a.createElement("div",{className:"font-w600 text-uppercase"},"订阅管理")))),l.a.createElement("div",{className:"col-sm-6 col-xl-3 js-appear-enabled animated","data-toggle":"appear"},l.a.createElement("a",{className:"block block-bordered block-link-pop text-center mb-0",onClick:()=>f.a.push("/user")},l.a.createElement("div",{className:"block-content block-content-full text-center"},l.a.createElement("i",{className:"fa-2x si si-users text-primary d-none d-sm-inline-block mb-3"}),l.a.createElement("div",{className:"font-w600 text-uppercase"},"用户管理"))))))),l.a.createElement("div",{className:"row no-gutters"},l.a.createElement("div",{className:"col-lg-12 js-appear-enabled animated","data-toggle":"appear"},l.a.createElement("div",{className:"block border-bottom mb-0"},l.a.createElement("div",{className:"block-content"},l.a.createElement("div",{className:"px-sm-3 clearfix"},l.a.createElement("i",{className:"fa fa-chart-line fa-2x text-gray-light float-right"}),l.a.createElement("p",{className:"text-muted w-75 mb-1"},"今日收入"),l.a.createElement("p",{className:"display-4 text-black font-w300 mb-2"},t.day_income?(t.day_income/100).toFixed(2):"0.00",l.a.createElement("span",{className:"font-size-h5 font-w600 text-muted"},n.site.currency)))))),l.a.createElement("div",{className:"col-lg-12 js-appear-enabled animated","data-toggle":"appear"},l.a.createElement("div",{className:"block border-bottom mb-0 v2board-stats-bar",onScroll:e=>console.log(e.currentTarget.scrollLeft)},l.a.createElement("div",{className:"block-content block-content-full"},l.a.createElement("div",{class:"d-flex align-items-center"},l.a.createElement("div",{class:"pr-4 pr-sm-5 pl-0 pl-sm-3"},l.a.createElement("p",{class:"fs-3 text-dark mb-0"},t.month_income?(t.month_income/100).toFixed(2):"0.00"," ",n.site.currency),l.a.createElement("p",{class:"text-muted mb-0"},"本月收入")),l.a.createElement("div",{class:"px-4 px-sm-5 border-start"},l.a.createElement("p",{class:"fs-3 text-dark mb-0"},t.last_month_income?(t.last_month_income/100).toFixed(2):"0.00"," ",n.site.currency),l.a.createElement("p",{class:"text-muted mb-0"},"上月收入")),l.a.createElement("div",{class:"px-4 px-sm-5 border-start"},l.a.createElement("p",{class:"fs-3 text-dark mb-0"},t.commission_last_month_payout?(t.commission_last_month_payout/100).toFixed(2):"0.00"," ",n.site.currency),l.a.createElement("p",{class:"text-muted mb-0"},"上月佣金支出")),l.a.createElement("div",{class:"px-4 px-sm-5 border-start"},l.a.createElement("p",{class:"fs-3 text-dark mb-0"},t.month_register_total||"-"),l.a.createElement("p",{class:"text-muted mb-0"},"本月新增用户")))))),l.a.createElement("div",{className:"col-lg-12 js-appear-enabled animated","data-toggle":"appear"},l.a.createElement("div",{className:"block border-bottom mb-0"},l.a.createElement("div",{className:"px-sm-3 pt-sm-3 py-3 clearfix",id:"orderChart",style:{height:400},ref:this.orderChart})))),l.a.createElement("div",{className:"row no-gutters mt-xl-3"},l.a.createElement("div",{className:"col-lg-12 js-appear-enabled animated","data-toggle":"appear"},l.a.createElement("div",{className:"block border-bottom mb-0"},l.a.createElement("div",{class:"block-header block-header-default"},l.a.createElement("h3",{class:"block-title"},"今日节点实时流量排行")),l.a.createElement("div",{className:"block-content"},l.a.createElement("div",{className:"px-sm-3 pt-sm-3 py-3 clearfix",id:"serverRankChart",style:{height:400},ref:this.serverLastRankChart}))))),l.a.createElement("div",{className:"row no-gutters mt-xl-3"},l.a.createElement("div",{className:"col-lg-12 js-appear-enabled animated","data-toggle":"appear"},l.a.createElement("div",{className:"block border-bottom mb-0"},l.a.createElement("div",{class:"block-header block-header-default"},l.a.createElement("h3",{class:"block-title"},"昨日节点流量排行")),l.a.createElement("div",{className:"block-content"},l.a.createElement("div",{className:"px-sm-3 pt-sm-3 py-3 clearfix",id:"serverRankChartYesterday",style:{height:400},ref:this.serverYesterdayRankChart}))))))}}t["default"]=Object(u["c"])(e=>{var t=e.stat,n=e.config;return{stat:t,config:n}})(O)},sRdV:function(e,t,n){"use strict";e.exports=function(e){var t={};t.src_Any=n("y8fO").source,t.src_Cc=n("p7ys").source,t.src_Z=n("T8I8").source,t.src_P=n("fKCf").source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");var r="[><|]";return t.src_pseudo_letter="(?:(?!"+r+"|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|"+r+"|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+r+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+").|;(?!"+t.src_ZCc+").|\\!+(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy="(^|"+r+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},sZro:function(e,t,n){"use strict";var r=n("lm0R"),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=h;var o=Object.create(n("Onz0"));o.inherits=n("P7XM");var a=n("rXFu"),s=n("3BRs");o.inherits(h,a);for(var l=i(s.prototype),c=0;c=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,i,o=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(a)throw i}}}}function f(e,t){if(e){if("string"===typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n-1){var t=e.slice(1).split("&");if(Array.isArray(t)&&t.length>0)return t.reduce(function(e,t){var n=t.split("="),r=i(n,2),o=r[0],a=r[1];return c({},e,u({},o,a))},{})}return{}};t.getUrlQuery=m},"saJ+":function(e,t,n){"use strict";function r(e){"@babel/helpers - typeof";return r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){"function"===typeof e?e(t):"object"===r(e)&&e&&"current"in e&&(e.current=t)}function o(){for(var e=arguments.length,t=new Array(e),n=0;n0&&(i[1-o]=this.state.showTimePicker?i[o]:void 0),this.props.onInputSelect(i),this.fireSelectValueChange(i,null,n||{source:"dateInput"})}}var F=function(e){function t(n){a()(this,t);var r=l()(this,e.call(this,n));B.call(r);var i=n.selectedValue||n.defaultSelectedValue,o=D(n,1);return r.state={selectedValue:i,prevSelectedValue:i,firstSelectedValue:null,hoverValue:n.hoverValue||[],value:o,showTimePicker:!1,mode:n.mode||["date","date"],panelTriggerSource:""},r}return u()(t,e),t.getDerivedStateFromProps=function(e,t){var n={};return"value"in e&&(n.value=D(e,0)),"hoverValue"in e&&!R(t.hoverValue,e.hoverValue)&&(n.hoverValue=e.hoverValue),"selectedValue"in e&&(n.selectedValue=e.selectedValue,n.prevSelectedValue=e.selectedValue),"mode"in e&&!R(t.mode,e.mode)&&(n.mode=e.mode),n},t.prototype.render=function(){var e,t,n=this.props,r=this.state,o=n.prefixCls,a=n.dateInputPlaceholder,s=n.seperator,l=n.timePicker,c=n.showOk,u=n.locale,h=n.showClear,d=n.showToday,p=n.type,m=n.clearIcon,g=r.hoverValue,v=r.selectedValue,b=r.mode,w=r.showTimePicker,x=(e={},e[n.className]=!!n.className,e[o]=1,e[o+"-hidden"]=!n.visible,e[o+"-range"]=1,e[o+"-show-time-picker"]=w,e[o+"-week-number"]=n.showWeekNumber,e),_=y()(x),E={selectedValue:r.selectedValue,onSelect:this.onSelect,onDayHover:"start"===p&&v[1]||"end"===p&&v[0]||g.length?this.onDayHover:void 0},k=void 0,A=void 0;a&&(Array.isArray(a)?(k=a[0],A=a[1]):k=A=a);var P=!0===c||!1!==c&&!!l,j=y()((t={},t[o+"-footer"]=!0,t[o+"-range-bottom"]=!0,t[o+"-footer-show-ok"]=P,t)),M=this.getStartValue(),R=this.getEndValue(),N=Object(S["e"])(M),D=N.month(),I=N.year(),$=M.year()===I&&M.month()===D||R.year()===I&&R.month()===D,F=M.clone().add(1,"months"),B=F.year()===R.year()&&F.month()===R.month(),V=n.renderFooter();return f.a.createElement("div",{ref:this.saveRoot,className:_,style:n.style,tabIndex:"0",onKeyDown:this.onKeyDown},n.renderSidebar(),f.a.createElement("div",{className:o+"-panel"},h&&v[0]&&v[1]?f.a.createElement("a",{role:"button",title:u.clear,onClick:this.clear},m||f.a.createElement("span",{className:o+"-clear-btn"})):null,f.a.createElement("div",{className:o+"-date-panel",onMouseLeave:"both"!==p?this.onDatePanelLeave:void 0,onMouseEnter:"both"!==p?this.onDatePanelEnter:void 0},f.a.createElement(C,i()({},n,E,{hoverValue:g,direction:"left",disabledTime:this.disabledStartTime,disabledMonth:this.disabledStartMonth,format:this.getFormat(),value:M,mode:b[0],placeholder:k,onInputChange:this.onStartInputChange,onInputSelect:this.onStartInputSelect,onValueChange:this.onStartValueChange,onPanelChange:this.onStartPanelChange,showDateInput:this.props.showDateInput,timePicker:l,showTimePicker:w||"time"===b[0],enablePrev:!0,enableNext:!B||this.isMonthYearPanelShow(b[1]),clearIcon:m})),f.a.createElement("span",{className:o+"-range-middle"},s),f.a.createElement(C,i()({},n,E,{hoverValue:g,direction:"right",format:this.getFormat(),timePickerDisabledTime:this.getEndDisableTime(),placeholder:A,value:R,mode:b[1],onInputChange:this.onEndInputChange,onInputSelect:this.onEndInputSelect,onValueChange:this.onEndValueChange,onPanelChange:this.onEndPanelChange,showDateInput:this.props.showDateInput,timePicker:l,showTimePicker:w||"time"===b[1],disabledTime:this.disabledEndTime,disabledMonth:this.disabledEndMonth,enablePrev:!B||this.isMonthYearPanelShow(b[0]),enableNext:!0,clearIcon:m}))),f.a.createElement("div",{className:j},d||n.timePicker||P||V?f.a.createElement("div",{className:o+"-footer-btn"},V,d?f.a.createElement(O["a"],i()({},n,{disabled:$,value:r.value[0],onToday:this.onToday,text:u.backToToday})):null,n.timePicker?f.a.createElement(L["a"],i()({},n,{showTimePicker:w||"time"===b[0]&&"time"===b[1],onOpenTimePicker:this.onOpenTimePicker,onCloseTimePicker:this.onCloseTimePicker,timePickerDisabled:!this.hasSelectedValue()||g.length})):null,P?f.a.createElement(T["a"],i()({},n,{onOk:this.onOk,okDisabled:!this.isAllowedDateAndTime(v)||!this.hasSelectedValue()||g.length})):null):null)))},t}(f.a.Component);F.propTypes=i()({},A["c"],{prefixCls:p.a.string,dateInputPlaceholder:p.a.any,seperator:p.a.string,defaultValue:p.a.any,value:p.a.any,hoverValue:p.a.any,mode:p.a.arrayOf(p.a.oneOf(["time","date","month","year","decade"])),showDateInput:p.a.bool,timePicker:p.a.any,showOk:p.a.bool,showToday:p.a.bool,defaultSelectedValue:p.a.array,selectedValue:p.a.array,onOk:p.a.func,showClear:p.a.bool,locale:p.a.object,onChange:p.a.func,onSelect:p.a.func,onValueChange:p.a.func,onHoverChange:p.a.func,onPanelChange:p.a.func,format:p.a.oneOfType([p.a.string,p.a.arrayOf(p.a.string)]),onClear:p.a.func,type:p.a.any,disabledDate:p.a.func,disabledTime:p.a.func,clearIcon:p.a.node,onKeyDown:p.a.func}),F.defaultProps=i()({},A["b"],{type:"both",seperator:"~",defaultSelectedValue:[],onValueChange:j,onHoverChange:j,onPanelChange:j,disabledTime:j,onInputSelect:j,showToday:!0,showDateInput:!0});var B=function(){var e=this;this.onDatePanelEnter=function(){e.hasSelectedValue()&&e.fireHoverValueChange(e.state.selectedValue.concat())},this.onDatePanelLeave=function(){e.hasSelectedValue()&&e.fireHoverValueChange([])},this.onSelect=function(t){var n=e.props.type,r=e.state,i=r.selectedValue,o=r.prevSelectedValue,a=r.firstSelectedValue,s=void 0;if("both"===n)a?e.compare(a,t)<0?(Object(S["h"])(o[1],t),s=[a,t]):(Object(S["h"])(o[0],t),Object(S["h"])(o[1],a),s=[t,a]):(Object(S["h"])(o[0],t),s=[t]);else if("start"===n){Object(S["h"])(o[0],t);var l=i[1];s=l&&e.compare(l,t)>0?[t,l]:[t]}else{var c=i[0];c&&e.compare(c,t)<=0?(Object(S["h"])(o[1],t),s=[c,t]):(Object(S["h"])(o[0],t),s=[t])}e.fireSelectValueChange(s)},this.onKeyDown=function(t){if("input"!==t.target.nodeName.toLowerCase()){var n=t.keyCode,r=t.ctrlKey||t.metaKey,i=e.state,o=i.selectedValue,a=i.hoverValue,s=i.firstSelectedValue,l=i.value,c=e.props,u=c.onKeyDown,h=c.disabledDate,f=function(n){var r=void 0,i=void 0,c=void 0;if(s?1===a.length?(r=a[0].clone(),i=n(r),c=e.onDayHover(i)):(r=a[0].isSame(s,"day")?a[1]:a[0],i=n(r),c=e.onDayHover(i)):(r=a[0]||o[0]||l[0]||g()(),i=n(r),c=[i],e.fireHoverValueChange(c)),c.length>=2){var u=c.some(function(e){return!Object(P["d"])(l,e,"month")});if(u){var h=c.slice().sort(function(e,t){return e.valueOf()-t.valueOf()});h[0].isSame(h[1],"month")&&(h[1]=h[0].clone().add(1,"month")),e.fireValueChange(h)}}else if(1===c.length){var f=l.findIndex(function(e){return e.isSame(r,"month")});if(-1===f&&(f=0),l.every(function(e){return!e.isSame(i,"month")})){var d=l.slice();d[f]=i.clone(),e.fireValueChange(d)}}return t.preventDefault(),i};switch(n){case w["a"].DOWN:return void f(function(e){return Object(P["c"])(e,1,"weeks")});case w["a"].UP:return void f(function(e){return Object(P["c"])(e,-1,"weeks")});case w["a"].LEFT:return void f(r?function(e){return Object(P["c"])(e,-1,"years")}:function(e){return Object(P["c"])(e,-1,"days")});case w["a"].RIGHT:return void f(r?function(e){return Object(P["c"])(e,1,"years")}:function(e){return Object(P["c"])(e,1,"days")});case w["a"].HOME:return void f(function(e){return Object(P["b"])(e)});case w["a"].END:return void f(function(e){return Object(P["a"])(e)});case w["a"].PAGE_DOWN:return void f(function(e){return Object(P["c"])(e,1,"month")});case w["a"].PAGE_UP:return void f(function(e){return Object(P["c"])(e,-1,"month")});case w["a"].ENTER:var d=void 0;return d=0===a.length?f(function(e){return e}):1===a.length?a[0]:a[0].isSame(s,"day")?a[1]:a[0],!d||h&&h(d)||e.onSelect(d),void t.preventDefault();default:u&&u(t)}}},this.onDayHover=function(t){var n=[],r=e.state,i=r.selectedValue,o=r.firstSelectedValue,a=e.props.type;if("start"===a&&i[1])n=e.compare(t,i[1])<0?[t,i[1]]:[t];else if("end"===a&&i[0])n=e.compare(t,i[0])>0?[i[0],t]:[];else{if(!o)return e.state.hoverValue.length&&e.setState({hoverValue:[]}),n;n=e.compare(t,o)<0?[t,o]:[o,t]}return e.fireHoverValueChange(n),n},this.onToday=function(){var t=Object(S["e"])(e.state.value[0]),n=t.clone().add(1,"months");e.setState({value:[t,n]})},this.onOpenTimePicker=function(){e.setState({showTimePicker:!0})},this.onCloseTimePicker=function(){e.setState({showTimePicker:!1})},this.onOk=function(){var t=e.state.selectedValue;e.isAllowedDateAndTime(t)&&e.props.onOk(e.state.selectedValue)},this.onStartInputChange=function(){for(var t=arguments.length,n=Array(t),r=0;r-1},this.hasSelectedValue=function(){var t=e.state.selectedValue;return!!t[1]&&!!t[0]},this.compare=function(t,n){return e.props.timePicker?t.diff(n):t.diff(n,"days")},this.fireSelectValueChange=function(t,n,r){var i=e.props.timePicker,o=e.state.prevSelectedValue;if(i&&i.props.defaultValue){var a=i.props.defaultValue;!o[0]&&t[0]&&Object(S["h"])(a[0],t[0]),!o[1]&&t[1]&&Object(S["h"])(a[1],t[1])}if("selectedValue"in e.props||e.setState({selectedValue:t}),!e.state.selectedValue[0]||!e.state.selectedValue[1]){var s=t[0]||g()(),l=t[1]||s.clone().add(1,"months");e.setState({selectedValue:t,value:N([s,l])})}t[0]&&!t[1]&&(e.setState({firstSelectedValue:t[0]}),e.fireHoverValueChange(t.concat())),e.props.onChange(t),(n||t[0]&&t[1])&&(e.setState({prevSelectedValue:t,firstSelectedValue:null}),e.fireHoverValueChange([]),e.props.onSelect(t,r))},this.fireValueChange=function(t){var n=e.props;"value"in n||e.setState({value:t}),n.onValueChange(t)},this.fireHoverValueChange=function(t){var n=e.props;"hoverValue"in n||e.setState({hoverValue:t}),n.onHoverChange(t)},this.clear=function(){e.fireSelectValueChange([],!0),e.props.onClear()},this.disabledStartTime=function(t){return e.props.disabledTime(t,"start")},this.disabledEndTime=function(t){return e.props.disabledTime(t,"end")},this.disabledStartMonth=function(t){var n=e.state.value;return t.isAfter(n[1],"month")},this.disabledEndMonth=function(t){var n=e.state.value;return t.isBefore(n[0],"month")}};Object(b["polyfill"])(F);t["a"]=Object(A["a"])(F)},t23M:function(e,t,n){"use strict";function r(e){return r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n1)v.default(!1,"Find more than one child node with `children` in ResizeObserver. Will only observe first one.");else if(0===t.length)return v.default(!1,"`children` of ResizeObserver is empty. Nothing is in observe."),null;var n=t[0];if(p.isValidElement(n)&&w.supportRef(n)){var r=n.ref;t[0]=p.cloneElement(n,{ref:y.composeRef(r,this.setChildNode)})}return 1===t.length?t[0]:t.map(function(e,t){return!p.isValidElement(e)||"key"in e&&null!==e.key?e:p.cloneElement(e,{key:"".concat(x,"-").concat(t)})})}}]),t}(p.Component);_.displayName="ResizeObserver",t.default=_},t3Un:function(e,t,n){"use strict";n.d(t,"b",function(){return v}),n.d(t,"a",function(){return y});var r=n("p0pE"),i=n.n(r),o=(n("/xke"),n("TeRw")),a=n("1l/V"),s=n.n(a),l=n("Hg0r"),c=n("20nU"),u=n("yWgo");function h(){h=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var f={};function d(){}function p(){}function m(){}var g={};l(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=u(e[r],e,o);if("throw"!==l.type){var c=l.arg,h=c.value;return h&&"object"==typeof h&&n.call(h,"__await")?t.resolve(h.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(h).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=u(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=u(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var f=c["a"].serviceHost;function d(e,t){return p.apply(this,arguments)}function p(){return p=s()(h().mark(function e(t,n){var r,a,s;return h().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return r=Object(u["c"])(),n=n||{},n.headers=n.headers||{},n.credentials="include",r&&(n.headers.authorization=r),-1!==t.indexOf("http")?t+=t.indexOf("?")>0?"&":"?":t=f+t,e.next=8,Object(l["b"])(t,n);case 8:if(a=e.sent,s={},"application/json"!==a.headers.get("content-type")){e.next=16;break}return e.next=13,a.json();case 13:s=e.sent,e.next=20;break;case 16:return e.next=18,a.arrayBuffer();case 18:e.t0=e.sent,s={buffer:e.t0};case 20:if(403!==a.status){e.next=24;break}return Object(u["g"])(),window.location.href=window.location.origin+window.location.pathname,e.abrupt("return",{code:a.status,msg:s.message});case 24:if(200===a.status){e.next=30;break}if(!s.errors){e.next=28;break}return o["a"].error({message:"请求失败",description:Object.values(s.errors)[0][0],duration:1.5}),e.abrupt("return",{code:a.status,msg:Object.values(s.errors)[0][0]});case 28:return o["a"].error({message:"请求失败",description:s.message,duration:1.5}),e.abrupt("return",{code:a.status,msg:s.message});case 30:return e.abrupt("return",i()({code:a.status},s));case 31:case"end":return e.stop()}},e)})),p.apply(this,arguments)}var m=(e,t,n)=>{if(null!==t){if("undefined"!==typeof t)if("object"===typeof t)for(var r in t)m(e+"["+r+"]",t[r],n);else n.push("".concat(e,"=").concat(encodeURIComponent(t)))}else n.push("".concat(e,"="))};function g(e){if(!e)return"";if("object"===typeof e&&!(e instanceof Array)){var t=[];for(var n in e)m(n,e[n],t);return t.join("&")}return""}function v(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];n=false;return d(e,{method:"POST",headers:{"Content-Type":n?"application/json":"application/x-www-form-urlencoded"},body:n?JSON.stringify(t):g(t)})}function y(e,t){var n=g(t);return d(n?e+(e.indexOf("?")>0?"&":"?")+n:e,null)}},t9FE:function(e,t,n){(function(t){function n(e,t){if(r("noDeprecation"))return e;var n=!1;function i(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}return i}function r(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=n}).call(this,n("yLpj"))},tEej:function(e,t,n){var r=n("Ojgd"),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},tEiQ:function(e,t,n){"use strict";(function(e){var r=n("q1tI"),i=n.n(r),o=n("dI71"),a=n("17x9"),s=n.n(a),l=1073741823,c="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof e?e:{};function u(){var e="__global_unique_id__";return c[e]=(c[e]||0)+1}function h(e,t){return e===t?0!==e||1/e===1/t:e!==e&&t!==t}function f(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter(function(t){return t!==e})},get:function(){return e},set:function(n,r){e=n,t.forEach(function(t){return t(e,r)})}}}function d(e){return Array.isArray(e)?e[0]:e}function p(e,t){var n,i,a="__create-react-context-"+u()+"__",c=function(e){function n(){var t;return t=e.apply(this,arguments)||this,t.emitter=f(t.props.value),t}Object(o["a"])(n,e);var r=n.prototype;return r.getChildContext=function(){var e;return e={},e[a]=this.emitter,e},r.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,i=e.value;h(r,i)?n=0:(n="function"===typeof t?t(r,i):l,n|=0,0!==n&&this.emitter.set(e.value,n))}},r.render=function(){return this.props.children},n}(r["Component"]);c.childContextTypes=(n={},n[a]=s.a.object.isRequired,n);var p=function(t){function n(){var e;return e=t.apply(this,arguments)||this,e.state={value:e.getValue()},e.onUpdate=function(t,n){var r=0|e.observedBits;0!==(r&n)&&e.setState({value:e.getValue()})},e}Object(o["a"])(n,t);var r=n.prototype;return r.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=void 0===t||null===t?l:t},r.componentDidMount=function(){this.context[a]&&this.context[a].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=void 0===e||null===e?l:e},r.componentWillUnmount=function(){this.context[a]&&this.context[a].off(this.onUpdate)},r.getValue=function(){return this.context[a]?this.context[a].get():e},r.render=function(){return d(this.props.children)(this.state.value)},n}(r["Component"]);return p.contextTypes=(i={},i[a]=s.a.object,i),{Provider:c,Consumer:p}}var m=i.a.createContext||p;t["a"]=m}).call(this,n("yLpj"))},tGd3:function(e,t,n){var r=n("7vYJ"),i=n("u8+u"),o=n("+mmm");e.exports=function(e,t){if(r(e),i(t)&&t.constructor===e)return t;var n=o.f(e),a=n.resolve;return a(t),n.promise}},tI4l:function(e,t,n){"use strict";t["a"]={i18nText:{"zh-CN":"简体中文","zh-TW":"繁體中文","en-US":"English","ja-JP":"日本語","vi-VN":"Tiếng Việt","ko-KR":"한국어"},periodText:{month_price:"月付",quarter_price:"季付",half_year_price:"半年付",year_price:"年付",two_year_price:"两年付",three_year_price:"三年付",onetime_price:"一次性",reset_price:"流量重置包"},tutorialCategoryText:{1:"Windows",2:"macOS",3:"iOS",4:"Android",5:"Linux",6:"路由器"},tutorialCategoryIcon:{1:"fab fa-2x fa-windows",2:"fab fa-2x fa-apple",3:"fab fa-2x fa-apple",4:"fab fa-2x fa-android",5:"fab fa-2x fa-linux",6:"fa fa-2x fa-wifi"},orderStatusText:{0:"待支付",1:"开通中",2:"已取消",3:"已完成",4:"已折抵"},commissionStatusText:{0:"待确认",1:"发放中",2:"已发放",3:"已驳回"},ticketStatusText:{0:"开启",1:"待回复",2:"待答复",3:"关闭"},routeActionText:{block:"禁止访问",dns:"指定DNS服务器进行解析"}}},tRgb:function(e,t,n){"use strict";var r=n("AU/w");function i(e){return s(e)||a(e)||o()}function o(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function a(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function s(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function b(e){return+e!=e&&(e=0),c.alloc(+e)}function w(e,t){if(c.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return X(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return J(e).length;default:if(r)return X(e).length;t=(""+t).toLowerCase(),r=!0}}function x(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";e||(e="utf8");while(1)switch(e){case"hex":return I(this,t,n);case"utf8":case"utf-8":return j(this,t,n);case"ascii":return N(this,t,n);case"latin1":case"binary":return D(this,t,n);case"base64":return P(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function _(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function E(e,t,n,r,i){if(0===e.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"===typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:S(e,t,n,r,i);if("number"===typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):S(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function S(e,t,n,r,i){var o,a=1,s=e.length,l=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,n/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var u=-1;for(o=n;os&&(n=s-l),o=n;o>=0;o--){for(var h=!0,f=0;fi&&(r=i)):r=i;var o=t.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a239?4:c>223?3:c>191?2:1;if(i+h<=n)switch(h){case 1:c<128&&(u=c);break;case 2:o=e[i+1],128===(192&o)&&(l=(31&c)<<6|63&o,l>127&&(u=l));break;case 3:o=e[i+1],a=e[i+2],128===(192&o)&&128===(192&a)&&(l=(15&c)<<12|(63&o)<<6|63&a,l>2047&&(l<55296||l>57343)&&(u=l));break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128===(192&o)&&128===(192&a)&&128===(192&s)&&(l=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s,l>65535&&l<1114112&&(u=l))}null===u?(u=65533,h=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=h}return R(r)}t.Buffer=c,t.SlowBuffer=b,t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:a(),t.kMaxLength=s(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return u(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return f(null,e,t,n)},c.allocUnsafe=function(e){return d(null,e)},c.allocUnsafeSlow=function(e){return d(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,i){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var o=i-r,a=n-t,s=Math.min(o,a),l=this.slice(r,i),u=e.slice(t,n),h=0;hi)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return k(this,e,t,n);case"utf8":case"utf-8":return C(this,e,t,n);case"ascii":return O(this,e,t,n);case"latin1":case"binary":return T(this,e,t,n);case"base64":return L(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var M=4096;function R(e){var t=e.length;if(t<=M)return String.fromCharCode.apply(String,e);var n="",r=0;while(rr)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function B(e,t,n,r,i,o){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function V(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function W(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function H(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function U(e,t,n,r,o){return o||H(e,t,n,4,34028234663852886e22,-34028234663852886e22),i.write(e,t,n,r,23,4),n+4}function z(e,t,n,r,o){return o||H(e,t,n,8,17976931348623157e292,-17976931348623157e292),i.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if(e=~~e,t=void 0===t?r:~~t,e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),t0&&(i*=256))r+=this[e+--t]*i;return r},c.prototype.readUInt8=function(e,t){return t||F(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||F(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||F(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||F(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||F(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||F(e,t,this.length);var r=this[e],i=1,o=0;while(++o=i&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||F(e,t,this.length);var r=t,i=1,o=this[e+--r];while(r>0&&(i*=256))o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},c.prototype.readInt8=function(e,t){return t||F(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||F(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||F(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||F(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||F(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||F(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||F(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||F(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||F(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;B(this,e,t,n,i,0)}var o=1,a=0;this[t]=255&e;while(++a=0&&(a*=256))this[t+o]=e/a&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):V(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):V(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):W(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):W(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);B(this,e,t,n,i-1,-i)}var o=0,a=1,s=0;this[t]=255&e;while(++o>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);B(this,e,t,n,i-1,-i)}var o=n-1,a=1,s=0;this[t+o]=255&e;while(--o>=0&&(a*=256))e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):V(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):V(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):W(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):W(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return U(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return U(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return z(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return z(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(o<1e3||!c.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"===typeof e)for(o=t;o55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function Q(e){for(var t=[],n=0;n>8,i=n%256,o.push(i),o.push(r)}return o}function J(e){return r.toByteArray(q(e))}function ee(e,t,n,r){for(var i=0;i=t.length||i>=e.length)break;t[i+n]=e[i]}return i}function te(e){return e!==e}}).call(this,n("yLpj"))},u2w5:function(e,t,n){"use strict";n("W3Xk")("trimRight",function(e){return function(){return e(this,2)}},"trimEnd")},u4tm:function(e,t,n){"use strict";n.r(t);var r=n("q1tI"),i=n.n(r),o=n("17x9"),a=n.n(o),s=n("/MKj"),l=n("CxXe"),c=n("AU/w");function u(e){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}var h=function(e){var t=e.getIn,n=e.toJS,r=function(e){return null!=e&&"object"===u(e)&&t(e,["location"])&&t(e,["action"])},i=function(e){var i=n(t(e,["router"]));if(!r(i))throw'Could not find router reducer in state tree, it must be mounted under "router"';return i},o=function(e){return n(t(i(e),["location"]))},a=function(e){return n(t(i(e),["action"]))},s=function(e){return n(t(i(e),["location","search"]))},c=function(e){return n(t(i(e),["location","hash"]))},h=function(e){var t=null,n=null;return function(r){var i=o(r)||{},a=i.pathname;if(a===t)return n;t=a;var s=Object(l["j"])(a,e);return s&&n&&s.url===n.url||(n=s),n}};return{getLocation:o,getAction:a,getRouter:i,getSearch:s,getHash:c,createMatchSelector:h}},f=h;function d(e){return d="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}function p(){return p=Object.assign||function(e){for(var t=1;t2&&void 0!==arguments[2]&&arguments[2];r.inTimeTravelling?r.inTimeTravelling=!1:a(e,t,n)};return r.unlisten=o.listen(s),s(o.location,o.action,!0),r}return x(t,e),v(t,[{key:"componentWillUnmount",value:function(){this.unlisten(),this.unsubscribe()}},{key:"render",value:function(){var e=this.props,t=e.history,n=e.children;return i.a.createElement(l["e"],{history:t},n)}}]),t}(r["PureComponent"]);o.propTypes={store:a.a.shape({getState:a.a.func.isRequired,subscribe:a.a.func.isRequired}).isRequired,history:a.a.shape({action:a.a.string.isRequired,listen:a.a.func.isRequired,location:a.a.object.isRequired,push:a.a.func.isRequired}).isRequired,basename:a.a.string,children:a.a.oneOfType([a.a.func,a.a.node]),onLocationChanged:a.a.func.isRequired};var u=function(e){return{onLocationChanged:function(t,n,r){return e(Object(c["f"])(t,n,r))}}},h=function(e){var t=e.context||s["b"];if(null==t)throw"Please upgrade to react-redux v6";return i.a.createElement(t.Consumer,null,function(t){var n=t.store;return i.a.createElement(o,p({store:n},e))})};return h.propTypes={context:a.a.object},Object(s["c"])(null,u)(h)},S=E,k=function(e){var t=e.fromJS,n=e.merge,r=function(e){var r=t({location:e.location,action:e.action});return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=i.type,a=i.payload;if(o===c["b"]){var s=a.location,l=a.action,u=a.isFirstRendering;return u?e:n(e,{location:t(s),action:l})}return e}};return r},C=k,O=function(e,t){if(!e)return e;var n=t.length;if(n){for(var r=e,i=0;i=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function De(e,t,n,r){var i=Ae.clone(e),o={width:t.width,height:t.height};return r.adjustX&&i.left=n.left&&i.left+o.width>n.right&&(o.width-=i.left+o.width-n.right),r.adjustX&&i.left+o.width>n.right&&(i.left=Math.max(n.right-o.width,n.left)),r.adjustY&&i.top=n.top&&i.top+o.height>n.bottom&&(o.height-=i.top+o.height-n.bottom),r.adjustY&&i.top+o.height>n.bottom&&(i.top=Math.max(n.bottom-o.height,n.top)),Ae.mix(i,o)}function Ie(e){var t,n,r;if(Ae.isWindow(e)||9===e.nodeType){var i=Ae.getWindow(e);t={left:Ae.getWindowScrollLeft(i),top:Ae.getWindowScrollTop(i)},n=Ae.viewportWidth(i),r=Ae.viewportHeight(i)}else t=Ae.offset(e),n=Ae.outerWidth(e),r=Ae.outerHeight(e);return t.width=n,t.height=r,t}function $e(e,t){var n=t.charAt(0),r=t.charAt(1),i=e.width,o=e.height,a=e.left,s=e.top;return"c"===n?s+=o/2:"b"===n&&(s+=o),"c"===r?a+=i/2:"r"===r&&(a+=i),{left:a,top:s}}function Fe(e,t,n,r,i){var o=$e(t,n[1]),a=$e(e,n[0]),s=[a.left-o.left,a.top-o.top];return{left:Math.round(e.left-s[0]+r[0]-i[0]),top:Math.round(e.top-s[1]+r[1]-i[1])}}function Be(e,t,n){return e.leftn.right}function Ve(e,t,n){return e.topn.bottom}function We(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.right||r.top>=n.bottom}function Xe(e,t,n){var r=n.target||t,i=Ie(r),o=!Ye(r,n.overflow&&n.overflow.alwaysByViewport);return Ke(e,i,n,o)}function Qe(e,t,n){var r,i,o=Ae.getDocument(e),a=o.defaultView||o.parentWindow,s=Ae.getWindowScrollLeft(a),l=Ae.getWindowScrollTop(a),c=Ae.viewportWidth(a),u=Ae.viewportHeight(a);r="pageX"in t?t.pageX:s+t.clientX,i="pageY"in t?t.pageY:l+t.clientY;var h={left:r,top:i,width:0,height:0},f=r>=0&&r<=s+c&&i>=0&&i<=l+u,d=[n.points[0],"cc"];return Ke(e,h,j(j({},n),{},{points:d}),f)}Xe.__getOffsetParent=je,Xe.__getVisibleRectForElement=Ne;function Ze(e,t){var n=void 0;function r(){n&&(clearTimeout(n),n=null)}function i(){r(),n=setTimeout(e,t)}return i.clear=r,i}function Je(e,t){return e===t||!(!e||!t)&&("pageX"in t&&"pageY"in t?e.pageX===t.pageX&&e.pageY===t.pageY:"clientX"in t&&"clientY"in t&&e.clientX===t.clientX&&e.clientY===t.clientY)}function et(e){return e&&"object"===typeof e&&e.window===e}function tt(e,t){var n=Math.floor(e),r=Math.floor(t);return Math.abs(n-r)<=1}function nt(e,t){e!==document.activeElement&&Object(y["a"])(t,e)&&e.focus()}function rt(e){return"function"===typeof e&&e?e():null}function it(e){return"object"===typeof e&&e?e:null}var ot=function(e){function t(){var e,n,r,i;a()(this,t);for(var o=arguments.length,s=Array(o),c=0;c1?(!n&&t&&(r.className+=" "+t),f.a.createElement("div",r)):f.a.Children.only(r.children)},t}(h["Component"]);ht.propTypes={children:p.a.any,className:p.a.string,visible:p.a.bool,hiddenClassName:p.a.string};var ft=ht,dt=function(e){function t(){return a()(this,t),l()(this,e.apply(this,arguments))}return u()(t,e),t.prototype.render=function(){var e=this.props,t=e.className;return e.visible||(t+=" "+e.hiddenClassName),f.a.createElement("div",{className:t,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onMouseDown:e.onMouseDown,onTouchStart:e.onTouchStart,style:e.style},f.a.createElement(ft,{className:e.prefixCls+"-content",visible:e.visible},e.children))},t}(h["Component"]);dt.propTypes={hiddenClassName:p.a.string,className:p.a.string,prefixCls:p.a.string,onMouseEnter:p.a.func,onMouseLeave:p.a.func,onMouseDown:p.a.func,onTouchStart:p.a.func,children:p.a.any};var pt=dt,mt=function(e){function t(n){a()(this,t);var r=l()(this,e.call(this,n));return gt.call(r),r.state={stretchChecked:!1,targetWidth:void 0,targetHeight:void 0},r.savePopupRef=O.bind(r,"popupInstance"),r.saveAlignRef=O.bind(r,"alignInstance"),r}return u()(t,e),t.prototype.componentDidMount=function(){this.rootNode=this.getPopupDomNode(),this.setStretchSize()},t.prototype.componentDidUpdate=function(){this.setStretchSize()},t.prototype.getPopupDomNode=function(){return g.a.findDOMNode(this.popupInstance)},t.prototype.getMaskTransitionName=function(){var e=this.props,t=e.maskTransitionName,n=e.maskAnimation;return!t&&n&&(t=e.prefixCls+"-"+n),t},t.prototype.getTransitionName=function(){var e=this.props,t=e.transitionName;return!t&&e.animation&&(t=e.prefixCls+"-"+e.animation),t},t.prototype.getClassName=function(e){return this.props.prefixCls+" "+this.props.className+" "+e},t.prototype.getPopupElement=function(){var e=this,t=this.savePopupRef,n=this.state,r=n.stretchChecked,o=n.targetHeight,a=n.targetWidth,s=this.props,l=s.align,c=s.visible,u=s.prefixCls,h=s.style,d=s.getClassNameFromAlign,p=s.destroyPopupOnHide,m=s.stretch,g=s.children,v=s.onMouseEnter,y=s.onMouseLeave,b=s.onMouseDown,w=s.onTouchStart,x=this.getClassName(this.currentAlignClassName||d(l)),_=u+"-hidden";c||(this.currentAlignClassName=null);var E={};m&&(-1!==m.indexOf("height")?E.height=o:-1!==m.indexOf("minHeight")&&(E.minHeight=o),-1!==m.indexOf("width")?E.width=a:-1!==m.indexOf("minWidth")&&(E.minWidth=a),r||(E.visibility="hidden",setTimeout(function(){e.alignInstance&&e.alignInstance.forceAlign()},0)));var S=i()({},E,h,this.getZIndexStyle()),k={className:x,prefixCls:u,ref:t,onMouseEnter:v,onMouseLeave:y,onMouseDown:b,onTouchStart:w,style:S};return p?f.a.createElement(lt["a"],{component:"",exclusive:!0,transitionAppear:!0,transitionName:this.getTransitionName()},c?f.a.createElement(st,{target:this.getAlignTarget(),key:"popup",ref:this.saveAlignRef,monitorWindowResize:!0,align:l,onAlign:this.onAlign},f.a.createElement(pt,i()({visible:!0},k),g)):null):f.a.createElement(lt["a"],{component:"",exclusive:!0,transitionAppear:!0,transitionName:this.getTransitionName(),showProp:"xVisible"},f.a.createElement(st,{target:this.getAlignTarget(),key:"popup",ref:this.saveAlignRef,monitorWindowResize:!0,xVisible:c,childrenProps:{visible:"xVisible"},disabled:!c,align:l,onAlign:this.onAlign},f.a.createElement(pt,i()({hiddenClassName:_},k),g)))},t.prototype.getZIndexStyle=function(){var e={},t=this.props;return void 0!==t.zIndex&&(e.zIndex=t.zIndex),e},t.prototype.getMaskElement=function(){var e=this.props,t=void 0;if(e.mask){var n=this.getMaskTransitionName();t=f.a.createElement(ft,{style:this.getZIndexStyle(),key:"mask",className:e.prefixCls+"-mask",hiddenClassName:e.prefixCls+"-mask-hidden",visible:e.visible}),n&&(t=f.a.createElement(lt["a"],{key:"mask",showProp:"visible",transitionAppear:!0,component:"",transitionName:n},t))}return t},t.prototype.render=function(){return f.a.createElement("div",null,this.getMaskElement(),this.getPopupElement())},t}(h["Component"]);mt.propTypes={visible:p.a.bool,style:p.a.object,getClassNameFromAlign:p.a.func,onAlign:p.a.func,getRootDomNode:p.a.func,align:p.a.any,destroyPopupOnHide:p.a.bool,className:p.a.string,prefixCls:p.a.string,onMouseEnter:p.a.func,onMouseLeave:p.a.func,onMouseDown:p.a.func,onTouchStart:p.a.func,stretch:p.a.string,children:p.a.node,point:p.a.shape({pageX:p.a.number,pageY:p.a.number})};var gt=function(){var e=this;this.onAlign=function(t,n){var r=e.props,i=r.getClassNameFromAlign(n);e.currentAlignClassName!==i&&(e.currentAlignClassName=i,t.className=e.getClassName(i)),r.onAlign(t,n)},this.setStretchSize=function(){var t=e.props,n=t.stretch,r=t.getRootDomNode,i=t.visible,o=e.state,a=o.stretchChecked,s=o.targetHeight,l=o.targetWidth;if(n&&i){var c=r();if(c){var u=c.offsetHeight,h=c.offsetWidth;s===u&&l===h&&a||e.setState({stretchChecked:!0,targetHeight:u,targetWidth:h})}}else a&&e.setState({stretchChecked:!1})},this.getTargetElement=function(){return e.props.getRootDomNode()},this.getAlignTarget=function(){var t=e.props.point;return t||e.getTargetElement}},vt=mt;function yt(){}function bt(){return""}function wt(){return window.document}var xt=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"],_t=!!m["createPortal"],Et={rcTrigger:p.a.shape({onPopupMouseDown:p.a.func})},St=function(e){function t(n){a()(this,t);var r=l()(this,e.call(this,n));kt.call(r);var i=void 0;return i="popupVisible"in n?!!n.popupVisible:!!n.defaultPopupVisible,r.state={prevPopupVisible:i,popupVisible:i},xt.forEach(function(e){r["fire"+e]=function(t){r.fireEvents(e,t)}}),r}return u()(t,e),t.prototype.getChildContext=function(){return{rcTrigger:{onPopupMouseDown:this.onPopupMouseDown}}},t.prototype.componentDidMount=function(){this.componentDidUpdate({},{popupVisible:this.state.popupVisible})},t.prototype.componentDidUpdate=function(e,t){var n=this.props,r=this.state,i=function(){t.popupVisible!==r.popupVisible&&n.afterPopupVisibleChange(r.popupVisible)};if(_t||this.renderComponent(null,i),r.popupVisible){var o=void 0;return this.clickOutsideHandler||!this.isClickToHide()&&!this.isContextMenuToShow()||(o=n.getDocument(),this.clickOutsideHandler=Object(b["a"])(o,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(o=o||n.getDocument(),this.touchOutsideHandler=Object(b["a"])(o,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(o=o||n.getDocument(),this.contextMenuOutsideHandler1=Object(b["a"])(o,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=Object(b["a"])(window,"blur",this.onContextMenuClose)))}this.clearOutsideHandler()},t.prototype.componentWillUnmount=function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout)},t.getDerivedStateFromProps=function(e,t){var n=e.popupVisible,r={};return void 0!==n&&t.popupVisible!==n&&(r.popupVisible=n,r.prevPopupVisible=t.popupVisible),r},t.prototype.getPopupDomNode=function(){return this._component&&this._component.getPopupDomNode?this._component.getPopupDomNode():null},t.prototype.getPopupAlign=function(){var e=this.props,t=e.popupPlacement,n=e.popupAlign,r=e.builtinPlacements;return t&&r?k(r,t,n):n},t.prototype.setPopupVisible=function(e,t){var n=this.props.alignPoint,r=this.state.popupVisible;this.clearDelayTimer(),r!==e&&("popupVisible"in this.props||this.setState({popupVisible:e,prevPopupVisible:r}),this.props.onPopupVisibleChange(e)),n&&t&&this.setPoint(t)},t.prototype.delaySetPopupVisible=function(e,t,n){var r=this,i=1e3*t;if(this.clearDelayTimer(),i){var o=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=setTimeout(function(){r.setPopupVisible(e,o),r.clearDelayTimer()},i)}else this.setPopupVisible(e,n)},t.prototype.clearDelayTimer=function(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)},t.prototype.clearOutsideHandler=function(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextMenuOutsideHandler1&&(this.contextMenuOutsideHandler1.remove(),this.contextMenuOutsideHandler1=null),this.contextMenuOutsideHandler2&&(this.contextMenuOutsideHandler2.remove(),this.contextMenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)},t.prototype.createTwoChains=function(e){var t=this.props.children.props,n=this.props;return t[e]&&n[e]?this["fire"+e]:t[e]||n[e]},t.prototype.isClickToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")},t.prototype.isContextMenuToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("contextMenu")||-1!==n.indexOf("contextMenu")},t.prototype.isClickToHide=function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")},t.prototype.isMouseEnterToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseEnter")},t.prototype.isMouseLeaveToHide=function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseLeave")},t.prototype.isFocusToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("focus")},t.prototype.isBlurToHide=function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("blur")},t.prototype.forcePopupAlign=function(){this.state.popupVisible&&this._component&&this._component.alignInstance&&this._component.alignInstance.forceAlign()},t.prototype.fireEvents=function(e,t){var n=this.props.children.props[e];n&&n(t);var r=this.props[e];r&&r(t)},t.prototype.close=function(){this.setPopupVisible(!1)},t.prototype.render=function(){var e=this,t=this.state.popupVisible,n=this.props,r=n.children,i=n.forceRender,o=n.alignPoint,a=n.className,s=f.a.Children.only(r),l={key:"trigger"};this.isContextMenuToShow()?l.onContextMenu=this.onContextMenu:l.onContextMenu=this.createTwoChains("onContextMenu"),this.isClickToHide()||this.isClickToShow()?(l.onClick=this.onClick,l.onMouseDown=this.onMouseDown,l.onTouchStart=this.onTouchStart):(l.onClick=this.createTwoChains("onClick"),l.onMouseDown=this.createTwoChains("onMouseDown"),l.onTouchStart=this.createTwoChains("onTouchStart")),this.isMouseEnterToShow()?(l.onMouseEnter=this.onMouseEnter,o&&(l.onMouseMove=this.onMouseMove)):l.onMouseEnter=this.createTwoChains("onMouseEnter"),this.isMouseLeaveToHide()?l.onMouseLeave=this.onMouseLeave:l.onMouseLeave=this.createTwoChains("onMouseLeave"),this.isFocusToShow()||this.isBlurToHide()?(l.onFocus=this.onFocus,l.onBlur=this.onBlur):(l.onFocus=this.createTwoChains("onFocus"),l.onBlur=this.createTwoChains("onBlur"));var c=E()(s&&s.props&&s.props.className,a);c&&(l.className=c);var u=f.a.cloneElement(s,l);if(!_t)return f.a.createElement(w["a"],{parent:this,visible:t,autoMount:!1,forceRender:i,getComponent:this.getComponent,getContainer:this.getContainer},function(t){var n=t.renderComponent;return e.renderComponent=n,u});var h=void 0;return(t||this._component||i)&&(h=f.a.createElement(x["a"],{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),[u,h]},t}(f.a.Component);St.propTypes={children:p.a.any,action:p.a.oneOfType([p.a.string,p.a.arrayOf(p.a.string)]),showAction:p.a.any,hideAction:p.a.any,getPopupClassNameFromAlign:p.a.any,onPopupVisibleChange:p.a.func,afterPopupVisibleChange:p.a.func,popup:p.a.oneOfType([p.a.node,p.a.func]).isRequired,popupStyle:p.a.object,prefixCls:p.a.string,popupClassName:p.a.string,className:p.a.string,popupPlacement:p.a.string,builtinPlacements:p.a.object,popupTransitionName:p.a.oneOfType([p.a.string,p.a.object]),popupAnimation:p.a.any,mouseEnterDelay:p.a.number,mouseLeaveDelay:p.a.number,zIndex:p.a.number,focusDelay:p.a.number,blurDelay:p.a.number,getPopupContainer:p.a.func,getDocument:p.a.func,forceRender:p.a.bool,destroyPopupOnHide:p.a.bool,mask:p.a.bool,maskClosable:p.a.bool,onPopupAlign:p.a.func,popupAlign:p.a.object,popupVisible:p.a.bool,defaultPopupVisible:p.a.bool,maskTransitionName:p.a.oneOfType([p.a.string,p.a.object]),maskAnimation:p.a.string,stretch:p.a.string,alignPoint:p.a.bool},St.contextTypes=Et,St.childContextTypes=Et,St.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:bt,getDocument:wt,onPopupVisibleChange:yt,afterPopupVisibleChange:yt,onPopupAlign:yt,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[]};var kt=function(){var e=this;this.onMouseEnter=function(t){var n=e.props.mouseEnterDelay;e.fireEvents("onMouseEnter",t),e.delaySetPopupVisible(!0,n,n?null:t)},this.onMouseMove=function(t){e.fireEvents("onMouseMove",t),e.setPoint(t)},this.onMouseLeave=function(t){e.fireEvents("onMouseLeave",t),e.delaySetPopupVisible(!1,e.props.mouseLeaveDelay)},this.onPopupMouseEnter=function(){e.clearDelayTimer()},this.onPopupMouseLeave=function(t){t.relatedTarget&&!t.relatedTarget.setTimeout&&e._component&&e._component.getPopupDomNode&&Object(y["a"])(e._component.getPopupDomNode(),t.relatedTarget)||e.delaySetPopupVisible(!1,e.props.mouseLeaveDelay)},this.onFocus=function(t){e.fireEvents("onFocus",t),e.clearDelayTimer(),e.isFocusToShow()&&(e.focusTime=Date.now(),e.delaySetPopupVisible(!0,e.props.focusDelay))},this.onMouseDown=function(t){e.fireEvents("onMouseDown",t),e.preClickTime=Date.now()},this.onTouchStart=function(t){e.fireEvents("onTouchStart",t),e.preTouchTime=Date.now()},this.onBlur=function(t){e.fireEvents("onBlur",t),e.clearDelayTimer(),e.isBlurToHide()&&e.delaySetPopupVisible(!1,e.props.blurDelay)},this.onContextMenu=function(t){t.preventDefault(),e.fireEvents("onContextMenu",t),e.setPopupVisible(!0,t)},this.onContextMenuClose=function(){e.isContextMenuToShow()&&e.close()},this.onClick=function(t){if(e.fireEvents("onClick",t),e.focusTime){var n=void 0;if(e.preClickTime&&e.preTouchTime?n=Math.min(e.preClickTime,e.preTouchTime):e.preClickTime?n=e.preClickTime:e.preTouchTime&&(n=e.preTouchTime),Math.abs(n-e.focusTime)<20)return;e.focusTime=0}e.preClickTime=0,e.preTouchTime=0,e.isClickToShow()&&(e.isClickToHide()||e.isBlurToHide())&&t&&t.preventDefault&&t.preventDefault();var r=!e.state.popupVisible;(e.isClickToHide()&&!r||r&&e.isClickToShow())&&e.setPopupVisible(!e.state.popupVisible,t)},this.onPopupMouseDown=function(){var t=e.context.rcTrigger,n=void 0===t?{}:t;e.hasPopupMouseDown=!0,clearTimeout(e.mouseDownTimeout),e.mouseDownTimeout=setTimeout(function(){e.hasPopupMouseDown=!1},0),n.onPopupMouseDown&&n.onPopupMouseDown.apply(n,arguments)},this.onDocumentClick=function(t){if(!e.props.mask||e.props.maskClosable){var n=t.target,r=Object(m["findDOMNode"])(e);Object(y["a"])(r,n)||e.hasPopupMouseDown||e.close()}},this.getRootDomNode=function(){return Object(m["findDOMNode"])(e)},this.getPopupClassNameFromAlign=function(t){var n=[],r=e.props,i=r.popupPlacement,o=r.builtinPlacements,a=r.prefixCls,s=r.alignPoint,l=r.getPopupClassNameFromAlign;return i&&o&&n.push(C(o,a,t,s)),l&&n.push(l(t)),n.join(" ")},this.getComponent=function(){var t=e.props,n=t.prefixCls,r=t.destroyPopupOnHide,o=t.popupClassName,a=t.action,s=t.onPopupAlign,l=t.popupAnimation,c=t.popupTransitionName,u=t.popupStyle,h=t.mask,d=t.maskAnimation,p=t.maskTransitionName,m=t.zIndex,g=t.popup,v=t.stretch,y=t.alignPoint,b=e.state,w=b.popupVisible,x=b.point,_=e.getPopupAlign(),E={};return e.isMouseEnterToShow()&&(E.onMouseEnter=e.onPopupMouseEnter),e.isMouseLeaveToHide()&&(E.onMouseLeave=e.onPopupMouseLeave),E.onMouseDown=e.onPopupMouseDown,E.onTouchStart=e.onPopupMouseDown,f.a.createElement(vt,i()({prefixCls:n,destroyPopupOnHide:r,visible:w,point:y&&x,className:o,action:a,align:_,onAlign:s,animation:l,getClassNameFromAlign:e.getPopupClassNameFromAlign},E,{stretch:v,getRootDomNode:e.getRootDomNode,style:u,mask:h,zIndex:m,transitionName:c,maskAnimation:d,maskTransitionName:p,ref:e.savePopup}),"function"===typeof g?g():g)},this.getContainer=function(){var t=e.props,n=document.createElement("div");n.style.position="absolute",n.style.top="0",n.style.left="0",n.style.width="100%";var r=t.getPopupContainer?t.getPopupContainer(Object(m["findDOMNode"])(e)):t.getDocument().body;return r.appendChild(n),n},this.setPoint=function(t){var n=e.props.alignPoint;n&&t&&e.setState({point:{pageX:t.pageX,pageY:t.pageY}})},this.handlePortalUpdate=function(){e.state.prevPopupVisible!==e.state.popupVisible&&e.props.afterPopupVisibleChange(e.state.popupVisible)},this.savePopup=function(t){e._component=t}};Object(v["polyfill"])(St);t["a"]=St},uhBA:function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,i="~";function o(){}function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,n,r,o){if("function"!==typeof n)throw new TypeError("The listener must be a function");var s=new a(n,r||e,o),l=i?i+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],s]:e._events[l].push(s):(e._events[l]=s,e._eventsCount++),e}function l(e,t){0===--e._eventsCount?e._events=new o:delete e._events[t]}function c(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(i=!1)),c.prototype.eventNames=function(){var e,t,n=[];if(0===this._eventsCount)return n;for(t in e=this._events)r.call(e,t)&&n.push(i?t.slice(1):t);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},c.prototype.listeners=function(e){var t=i?i+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,o=n.length,a=new Array(o);r span {\n font-weight: normal !important;\n}\n\n.ace-github .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-github .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-github .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-github .ace_gutter-active-line {\n background-color : rgba(0, 0, 0, 0.07);\n}\n\n.ace-github .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-github .ace_invisible {\n color: #BFBFBF\n}\n\n.ace-github .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-github .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-github .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'}),ace.define("ace/theme/github",["require","exports","module","ace/theme/github.css","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText=e("./github.css");var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass,!1)}),function(){ace.require(["ace/theme/github"],function(t){e&&(e.exports=t)})}()}).call(this,n("YuTi")(e))},usdK:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.push=o,t.replace=a,t.go=s,t.goBack=l,t.goForward=c,t.default=void 0;var r=i(n("RFCh"));function i(e){return e&&e.__esModule?e:{default:e}}function o(){r.default.push.apply(r.default,arguments)}function a(){r.default.replace.apply(r.default,arguments)}function s(){r.default.go.apply(r.default,arguments)}function l(){r.default.goBack.apply(r.default,arguments)}function c(){r.default.goForward.apply(r.default,arguments)}var u={push:o,replace:a,go:s,goBack:l,goForward:c};t.default=u},uzXD:function(e,t,n){"use strict";n.r(t);var r=n("jehZ"),i=n.n(r),o=(n("Mwp2"),n("VXEj")),a=(n("/zsF"),n("PArb")),s=(n("5NDa"),n("5rEg")),l=(n("+L6B"),n("2/Rp")),c=(n("miYZ"),n("tsqr")),u=(n("5Dmo"),n("3S7+")),h=(n("Awhp"),n("KrTs")),f=(n("BoS7"),n("Sdc0")),d=(n("qVdP"),n("jsC+")),p=(n("lUTK"),n("BvKs")),m=(n("Pwec"),n("CtXQ")),g=(n("+BJd"),n("mr32")),v=n("q1tI"),y=n.n(v),b=n("Bl7J"),w=n("H9LU"),x=n("qqou"),_=n("/MKj"),E=n("+QRC"),S=n.n(E),k=n("3XVG"),C=n("ykC2"),O=n("B6Jk"),T=n.n(O),L=n("yWgo"),A=n("AMgb"),P=n.n(A),j=n("Oa6W"),M=n("v32e"),R=(n("bbsP"),n("/wGt")),N=(n("OaEy"),n("2fM7")),D=n("p0pE"),I=n.n(D),$=n("lc5D"),F=n.n($),B=(n("VeWa"),n("umNf"),n("8zNj"));class V extends y.a.Component{constructor(e){super(e),this.state={server:this.props.record||{insecure:0,rate:1,is_obfs:0},visible:!1,childDrawer:{visible:!1}}}onShow(){this.setState({visible:!this.state.visible})}save(){var e=this.state.server;this.props.dispatch({type:"serverHysteria/save",params:e,callback:()=>{this.onShow()}})}showChildDrawer(e,t){this.setState({childDrawer:I()({},this.state.childDrawer,{visible:!this.state.childDrawer.visible,title:e,type:t})})}changeServer(e,t){this.setState({server:I()({},this.state.server,{[e]:t})})}formChange(e,t){this.setState({server:I()({},this.state.server,{[e]:t})})}render(){var e=this.state.server,t=this.props.serverHysteria.saveLoading,n=this.props.serverManage.servers,r=this.props.serverGroup.groups,i=this.props.serverRoute.routes;return y.a.createElement(y.a.Fragment,null,y.a.cloneElement(this.props.children,{onClick:()=>this.setState({visible:!0})}),y.a.createElement(R["a"],{id:"server",maskClosable:!0,title:e.id?"编辑节点":"新建节点",width:"80%",visible:this.state.visible,onClose:()=>this.onShow()},y.a.createElement("div",null,y.a.createElement("div",{className:"row"},y.a.createElement("div",{className:"form-group col-8"},y.a.createElement("label",null,"节点名称"),y.a.createElement(s["a"],{placeholder:"请输入节点名称",value:e.name,onChange:e=>this.formChange("name",e.target.value)})),y.a.createElement("div",{className:"form-group col-4"},y.a.createElement("label",null,"倍率"),y.a.createElement(s["a"],{addonAfter:"x",placeholder:"请输入节点倍率",value:e.rate,onChange:e=>this.formChange("rate",e.target.value)}))),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"节点标签"),y.a.createElement(N["a"],{mode:"tags",value:e.tags||[],style:{width:"100%"},placeholder:"输入后回车添加标签",onChange:e=>this.formChange("tags",e.length>0?e:null)})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"订阅排除地区"),y.a.createElement(N["a"],{mode:"tags",value:e.excludes||[],style:{width:"100%"},placeholder:"输入后回车添加排除规则",onChange:e=>this.formChange("excludes",e.length>0?e:null)})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"节点IPs"),y.a.createElement(N["a"],{mode:"tags",value:e.ips||[],style:{width:"100%"},placeholder:"输入后回车添加节点IP",onChange:e=>this.formChange("ips",e.length>0?e:null)})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"权限组 ",y.a.createElement(B["a"],null,y.a.createElement("a",{href:"javascript:(0);"},"添加权限组"))),y.a.createElement(N["a"],{mode:"multiple",value:e.group_id,placeholder:"请选择权限组",style:{width:"100%"},onChange:e=>this.formChange("group_id",e)},r.map(e=>{return y.a.createElement(N["a"].Option,{key:e.id},e.name)}))),y.a.createElement("div",{className:"row"},y.a.createElement("div",{className:"form-group col-md-12 col-xs-12"},y.a.createElement("label",null,"节点地址"),y.a.createElement(s["a"],{placeholder:"地址或IP",value:e.host,onChange:e=>this.formChange("host",e.target.value)}))),y.a.createElement("div",{className:"row"},y.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},y.a.createElement("label",null,"连接端口"),y.a.createElement(s["a"],{placeholder:"用户连接端口",value:e.port,onChange:e=>{this.formChange("port",e.target.value)}})),y.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},y.a.createElement("label",null,"服务端口"),y.a.createElement(s["a"],{placeholder:"服务端开放端口",value:e.server_port,onChange:e=>{this.formChange("server_port",e.target.value)}})),y.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},y.a.createElement("label",null,y.a.createElement(u["a"],{placement:"top",title:"使用自签名证书需要允许不安全,用户才可以连接"},"允许不安全 ",y.a.createElement(m["a"],{type:"question-circle"}))),y.a.createElement(N["a"],{value:parseInt(e.insecure)?1:0,placeholder:"允许不安全",style:{width:"100%"},onChange:e=>this.formChange("insecure",e)},y.a.createElement(N["a"].Option,{key:0,value:0},"否"),y.a.createElement(N["a"].Option,{key:1,value:1},"是"))),y.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},y.a.createElement("label",null,y.a.createElement(u["a"],{placement:"top",title:"Hysteria协议版本"},"协议版本 ",y.a.createElement(m["a"],{type:"question-circle"}))),y.a.createElement(N["a"],{value:parseInt(e.version?e.version:1),placeholder:"Version",style:{width:"100%"},onChange:e=>this.formChange("version",e)},y.a.createElement(N["a"].Option,{key:0,value:1},"v1"),y.a.createElement(N["a"].Option,{key:1,value:2},"v2"))),y.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},y.a.createElement("label",null,y.a.createElement(u["a"],{placement:"top",title:"开启obfs?"},"开启obfs? ",y.a.createElement(m["a"],{type:"question-circle"}))),y.a.createElement(N["a"],{value:parseInt(e.is_obfs?1:0),placeholder:"is_obfs",style:{width:"100%"},onChange:e=>this.formChange("is_obfs",e)},y.a.createElement(N["a"].Option,{key:0,value:0},"关闭"),y.a.createElement(N["a"].Option,{key:1,value:1},"开启"))),function(){if(e.version==2){return}return y.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},y.a.createElement("label",null,y.a.createElement(u["a"],{placement:"top",title:"应用层协议协商"},"ALPN ",y.a.createElement(m["a"],{type:"question-circle"}))),y.a.createElement(N["a"],{value:parseInt(e.alpn?e.alpn:0),placeholder:"ALPN",style:{width:"100%"},onChange:e=>this.formChange("alpn",e)},y.a.createElement(N["a"].Option,{key:0,value:0},"hysteria"),y.a.createElement(N["a"].Option,{key:1,value:1},"http/1.1"),y.a.createElement(N["a"].Option,{key:2,value:2},"h2"),y.a.createElement(N["a"].Option,{key:3,value:3},"h3")))}()),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"服务器名称指示(sni)"),y.a.createElement(s["a"],{placeholder:"当节点地址与证书不一致时用于证书验证",value:e.server_name,onChange:e=>this.formChange("server_name",e.target.value)})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"上行带宽"),y.a.createElement(s["a"],{addonAfter:"Mbps",placeholder:"请根据实际网络情况尽量准确地填写",value:e.up_mbps,onChange:e=>this.formChange("up_mbps",e.target.value)})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"下行带宽"),y.a.createElement(s["a"],{addonAfter:"Mbps",placeholder:"请根据实际网络情况尽量准确地填写",value:e.down_mbps,onChange:e=>this.formChange("down_mbps",e.target.value)})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,y.a.createElement(u["a"],{placement:"top"},"父节点 ",y.a.createElement("a",{target:"_blank",href:"https://docs.v2board.com/use/node.html#父节点与子节点关系",rel:"noreferrer"},"更多解答"))),y.a.createElement(N["a"],{value:e.parent_id||"",onChange:e=>this.formChange("parent_id",e),style:{width:"100%"}},y.a.createElement(N["a"].Option,{value:""},"无"),n.map(t=>{if("hysteria"===t.type&&t.id!==e.id)return y.a.createElement(N["a"].Option,{key:Math.random(),value:t.id},t.name)}))),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"路由组"),y.a.createElement(N["a"],{mode:"multiple",value:e.route_id||[],placeholder:"请选择路由组",style:{width:"100%"},onChange:e=>this.formChange("route_id",e.length>0?e:null)},i.map(e=>{return y.a.createElement(N["a"].Option,{key:e.id},e.remarks)})))),y.a.createElement("div",{className:"v2board-drawer-action"},y.a.createElement(l["a"],{style:{marginRight:8},onClick:()=>this.onShow()},"取消"),y.a.createElement(l["a"],{loading:t,onClick:()=>this.save(),type:"primary"},"提交"))))}}var W=Object(_["c"])(e=>{var t=e.serverHysteria,n=e.serverGroup,r=e.serverManage,i=e.serverRoute;return{serverHysteria:t,serverGroup:n,serverManage:r,serverRoute:i}})(V),H=(n("/xke"),n("TeRw"));class U extends y.a.Component{constructor(e){super(e);var t=this.props.settings;"{}"!==JSON.stringify(t)&&t||(t={server_name:"",allow_insecure:0}),this.state={settings:t}}change(e,t){var n=this.state.settings;n[e]=t,this.setState({settings:n}),this.props.onChange(this.state.settings)}render(){var e=this.state.settings,t=e.server_name,n=e.allow_insecure;e.private_key,e.public_key;return y.a.createElement(y.a.Fragment,null,y.a.createElement("div",null,y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"Server Name"),y.a.createElement(s["a"],{value:t,onChange:e=>this.change("server_name",e.target.value),placeholder:"不使用请留空"})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"Allow Insecure"),y.a.createElement("div",null,y.a.createElement(f["a"],{checked:parseInt(n),onChange:e=>this.change("allow_insecure",e?"1":"0")})))))}}class UR extends y.a.Component{constructor(e){super(e);var t=this.props.settings;"{}"!==JSON.stringify(t)&&t||(t={server_name:"",server_port:"",allow_insecure:0,public_key:"",private_key:"",short_id:""}),this.state={settings:t}}change(e,t){var n=this.state.settings;n[e]=t,this.setState({settings:n}),this.props.onChange(this.state.settings)}render(){var e=this.state.settings,t=e.server_name,p=e.server_port,n=e.allow_insecure,key=e.public_key,key2=e.private_key,id=e.short_id;return y.a.createElement(y.a.Fragment,null,y.a.createElement("div",null,y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"Server Name"),y.a.createElement(s["a"],{value:t,onChange:e=>this.change("server_name",e.target.value),placeholder:"请输入所偷证书网站的域名"})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"Server Port"),y.a.createElement(s["a"],{value:p,onChange:e=>this.change("server_port",e.target.value),placeholder:"请输入所偷证书网站的端口(默认443)"})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"Allow Insecure"),y.a.createElement("div",null,y.a.createElement(f["a"],{checked:parseInt(n),onChange:e=>this.change("allow_insecure",e?"1":"0")}))),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"Public Key"),y.a.createElement(s["a"],{value:key,onChange:e=>this.change("public_key",e.target.value),placeholder:"留空自动生成"})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"Private Key"),y.a.createElement(s["a"],{value:key2,onChange:e=>this.change("private_key",e.target.value),placeholder:"留空自动生成"})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"Short ID"),y.a.createElement(s["a"],{value:id,onChange:e=>this.change("short_id",e.target.value),placeholder:"留空自动生成"}))))}}class z extends y.a.Component{constructor(e){super(e),this.state={server:this.props.record||{tls:0,rate:1,flow:null},visible:!1,childDrawer:{visible:!1}}}onShow(){if(this.setState({visible:!this.state.visible}),this.state.server.network_settings&&"object"===typeof this.state.server.network_settings){var e=this.state.server;e.network_settings=JSON.stringify(e["network_settings"],null,2),this.setState({server:e})}}save(){try{var e=this.state.server;e.network_settings=e.network_settings?"string"===typeof e.network_settings&&JSON.parse(e.network_settings):null,this.props.dispatch({type:"serverVless/save",params:e,callback:()=>{this.onShow()}})}catch(e){H["a"].error({message:"请求失败",description:"传输协议配置格式有误"})}}showChildDrawer(e,t){this.setState({childDrawer:I()({},this.state.childDrawer,{visible:!this.state.childDrawer.visible,title:e,type:t})})}changeServer(e,t){this.setState({server:I()({},this.state.server,{[e]:t})})}renderChildDrawer(){var e=this.state.server,t=e.network_settings,n=e.tls_settings;switch(this.state.childDrawer.type){case"network_settings":var r={tcp:"",ws:JSON.stringify({path:"/",headers:{Host:"xtls.github.io"}},null,4),grpc:JSON.stringify({serviceName:"GunService"},null,4)};return y.a.createElement("div",{id:"v2ray-protocol"},y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"协议详细配置",y.a.createElement("a",{href:"https://www.v2ray.com/chapter_02/05_transport.html"},y.a.createElement(m["a"],{type:"link"}),"参考")),y.a.createElement(F.a,{placeholder:(null===r||void 0===r?void 0:r[this.state.server.network])||"",mode:"json",theme:"github",fontSize:14,showPrintMargin:!0,showGutter:!0,highlightActiveLine:!0,value:t||"",onChange:e=>this.formChange("network_settings",e),setOptions:{enableBasicAutocompletion:!1,enableLiveAutocompletion:!1,enableSnippets:!1,showLineNumbers:!0,tabSize:2},ref:"editor"})));case"tls_settings":return y.a.createElement(U,{settings:n,onChange:e=>this.changeServer("tls_settings",e)});case"reality_settings":return y.a.createElement(UR,{settings:n,onChange:e=>this.changeServer("tls_settings",e)})}}formChange(e,t){this.refs.editor&&this.refs.editor.editor.resize();var n=this.state.server;n[e]=t,this.setState({server:n})}render(){var e=this.state.server,t=this.props.serverVless.saveLoading,n=this.props.serverManage.servers,r=this.props.serverGroup.groups,i=this.props.serverRoute.routes;return y.a.createElement(y.a.Fragment,null,y.a.cloneElement(this.props.children,{onClick:()=>this.onShow()}),y.a.createElement(R["a"],{id:"server",maskClosable:!0,title:e.id?"编辑节点":"新建节点",width:"80%",visible:this.state.visible,onClose:()=>this.onShow()},y.a.createElement("div",null,y.a.createElement("div",{className:"row"},y.a.createElement("div",{className:"form-group col-8"},y.a.createElement("label",null,"节点名称"),y.a.createElement(s["a"],{placeholder:"请输入节点名称",value:e.name,onChange:e=>this.formChange("name",e.target.value)})),y.a.createElement("div",{className:"form-group col-4"},y.a.createElement("label",null,"倍率"),y.a.createElement(s["a"],{addonAfter:"x",placeholder:"请输入节点倍率",value:e.rate,onChange:e=>this.formChange("rate",e.target.value)}))),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"节点标签"),y.a.createElement(N["a"],{mode:"tags",value:e.tags||[],style:{width:"100%"},placeholder:"输入后回车添加标签",onChange:e=>this.formChange("tags",e.length>0?e:null)})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"订阅排除地区"),y.a.createElement(N["a"],{mode:"tags",value:e.excludes||[],style:{width:"100%"},placeholder:"输入后回车添加排除规则",onChange:e=>this.formChange("excludes",e.length>0?e:null)})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"节点IPs"),y.a.createElement(N["a"],{mode:"tags",value:e.ips||[],style:{width:"100%"},placeholder:"输入后回车添加节点IP",onChange:e=>this.formChange("ips",e.length>0?e:null)})),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"权限组 ",y.a.createElement(B["a"],null,y.a.createElement("a",{href:"javascript:(0);"},"添加权限组"))),y.a.createElement(N["a"],{mode:"multiple",value:e.group_id,placeholder:"请选择权限组",style:{width:"100%"},onChange:e=>this.formChange("group_id",e)},r.map(e=>{return y.a.createElement(N["a"].Option,{key:e.id},e.name)}))),y.a.createElement("div",{className:"row"},y.a.createElement("div",{className:"form-group col-md-8 col-xs-12"},y.a.createElement("label",null,"节点地址"),y.a.createElement(s["a"],{placeholder:"请输入连接地址",value:e.host,onChange:e=>this.formChange("host",e.target.value)})),y.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},y.a.createElement("label",null,"安全性 ",1===parseInt(e.tls)&&y.a.createElement("a",{href:"javascript:void(0);",onClick:()=>this.showChildDrawer("编辑安全性配置","tls_settings")},"编辑配置"),2===parseInt(e.tls)&&y.a.createElement("a",{href:"javascript:void(0);",onClick:()=>this.showChildDrawer("编辑Reality配置","reality_settings")},"编辑配置")),y.a.createElement(N["a"],{value:parseInt(e.tls)||0,style:{width:"100%"},onChange:e=>this.formChange("tls",e)},y.a.createElement(N["a"].Option,{key:0,value:0},"无"),y.a.createElement(N["a"].Option,{key:1,value:1},"TLS"),y.a.createElement(N["a"].Option,{key:2,value:2},"Reality")))),y.a.createElement("div",{className:"row"},y.a.createElement("div",{className:"form-group col-md-6 col-xs-12"},y.a.createElement("label",null,"连接端口"),y.a.createElement(s["a"],{placeholder:"用户连接端口",value:e.port,onChange:e=>{this.formChange("port",e.target.value)}})),y.a.createElement("div",{className:"form-group col-md-6 col-xs-12"},y.a.createElement("label",null,"服务端口"),y.a.createElement(s["a"],{placeholder:"非NAT同连接端口",value:e.server_port,onChange:e=>this.formChange("server_port",e.target.value)}))),y.a.createElement("div",{className:"row"},y.a.createElement("div",{className:"form-group col-md-12 col-xs-12"},y.a.createElement("label",null,"传输协议 ",y.a.createElement("a",{href:"javascript:void(0);",onClick:()=>this.showChildDrawer("编辑协议配置","network_settings")},"编辑配置")),y.a.createElement(N["a"],{value:e.network,placeholder:"选择传输协议",style:{width:"100%"},onChange:e=>this.formChange("network",e)},y.a.createElement(N["a"].Option,{value:"tcp"},"TCP"),y.a.createElement(N["a"].Option,{value:"ws"},"WebSocket"),y.a.createElement(N["a"].Option,{value:"grpc"},"gRPC")))),y.a.createElement("div",{className:"row"},y.a.createElement("div",{className:"form-group col-md-12 col-xs-12"},y.a.createElement("label",null,"XTLS流控算法"),y.a.createElement(N["a"],{value:e.flow,placeholder:"选择XTLS流控算法",style:{width:"100%"},onChange:e=>this.formChange("flow",e)},y.a.createElement(N["a"].Option,{value:null},"无"),y.a.createElement(N["a"].Option,{value:"xtls-rprx-vision"},"xtls-rprx-vision")))),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,y.a.createElement(u["a"],{placement:"top"},"父节点 ",y.a.createElement("a",{target:"_blank",href:"https://docs.v2board.com/use/node.html#父节点与子节点关系",rel:"noreferrer"},y.a.createElement(m["a"],{type:"read"})))),y.a.createElement(N["a"],{value:e.parent_id||"",onChange:e=>this.formChange("parent_id",e),style:{width:"100%"}},y.a.createElement(N["a"].Option,{value:""},"无"),n.map(t=>{if("vless"===t.type&&t.id!==e.id)return y.a.createElement(N["a"].Option,{key:Math.random(),value:t.id},t.name)}))),y.a.createElement("div",{className:"form-group"},y.a.createElement("label",null,"路由组"),y.a.createElement(N["a"],{mode:"multiple",value:e.route_id||[],placeholder:"请选择路由组",style:{width:"100%"},onChange:e=>this.formChange("route_id",e.length>0?e:null)},i.map(e=>{return y.a.createElement(N["a"].Option,{key:e.id},e.remarks)})))),y.a.createElement("div",{className:"v2board-drawer-action"},y.a.createElement(l["a"],{style:{marginRight:8},onClick:()=>this.onShow()},"取消"),y.a.createElement(l["a"],{loading:t,onClick:()=>this.save(),type:"primary"},"提交")),y.a.createElement(R["a"],{closable:!1,id:"server",width:"80%",title:this.state.childDrawer.title,visible:this.state.childDrawer.visible,onClose:()=>this.showChildDrawer()},this.renderChildDrawer())))}}var G=Object(_["c"])(e=>{var t=e.serverVless,n=e.serverGroup,r=e.serverManage,i=e.serverRoute;return{serverVless:t,serverGroup:n,serverManage:r,serverRoute:i}})(z);class q extends y.a.Component{constructor(e){super(e),this.state={searchKey:void 0,sortMode:!0,pageSize:Object(L["e"])("server_manage_page_size")||10}}componentDidMount(){this.props.dispatch({type:"serverManage/getNodes"}),this.props.dispatch({type:"serverGroup/fetch"}),this.props.dispatch({type:"serverRoute/fetch"})}getTypeTag(e,t){switch(e){case"shadowsocks":return y.a.createElement(g["a"],{color:"#489851"},t);case"vmess":return y.a.createElement(g["a"],{color:"#CB3180"},t);case"trojan":return y.a.createElement(g["a"],{color:"#F9B435"},t);case"hysteria":return y.a.createElement(g["a"],{color:"#1d75ee"},t);case"vless":return y.a.createElement(g["a"],{color:"#1A1A1A"},t)}}getDispatchTypeByType(e,t){switch(e){case"shadowsocks":return"serverShadowsocks/".concat(t);case"vmess":return"serverVmess/".concat(t);case"trojan":return"serverTrojan/".concat(t);case"hysteria":return"serverHysteria/".concat(t);case"vless":return"serverVless/".concat(t)}}copy(e){this.props.dispatch({type:this.getDispatchTypeByType(e.type,"copy"),id:e.id})}update(e,t,n){this.props.dispatch({type:this.getDispatchTypeByType(e.type,"update"),id:e.id,key:t,value:n})}drop(e){this.props.dispatch({type:this.getDispatchTypeByType(e.type,"drop"),id:e.id})}render(){var e,t,n,r,v,_=this.props.serverManage,E=_.servers,O=_.fetchLoading,A=_.sortMode,R=this.props.serverGroup.groups,N=this.state.searchKey,D={0:"error",1:"warning",2:"processing"},I=(e,t)=>y.a.createElement(d["a"],{trigger:"click",overlay:y.a.createElement(p["a"],null,y.a.createElement(p["a"].Item,{onContextMenu:e=>{e.stopPropagation()}},"shadowsocks"===e.type&&y.a.createElement(w["a"],{key:e.id,record:e},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"edit"})," 编辑")),"vmess"===e.type&&y.a.createElement(k["a"],{key:e.id,record:e},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"edit"})," 编辑")),"trojan"===e.type&&y.a.createElement(C["a"],{key:e.id,record:e},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"edit"})," 编辑")),"hysteria"===e.type&&y.a.createElement(W,{key:e.id,record:e},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"edit"})," 编辑")),"vless"===e.type&&y.a.createElement(G,{key:e.id,record:e},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"edit"})," 编辑"))),y.a.createElement(p["a"].Item,{onClick:()=>this.copy(e)},y.a.createElement(m["a"],{type:"copy"})," 复制"),y.a.createElement(p["a"].Item,{style:{color:"#ff4d4f"},onClick:()=>this.drop(e)},y.a.createElement(m["a"],{type:"delete"})," 删除"))},t||y.a.createElement("a",{href:"javascript:void(0);"},"操作 ",y.a.createElement(m["a"],{type:"caret-down"}))),$=[{title:"节点ID",dataIndex:"id",key:"id",width:150,filters:["Shadowsocks","Vmess","Trojan","Vless","Hysteria"].map(e=>({text:e,value:e})),onFilter:(e,t)=>t.type===e.toLowerCase(),render:(e,t)=>{return y.a.createElement("span",null,this.getTypeTag(t.type,t.parent_id?e+" => "+t.parent_id:e))}},{title:"显隐",dataIndex:"show",key:"show",render:(e,t)=>{return y.a.createElement(f["a"],{size:"small",checked:parseInt(e),onClick:()=>this.update(t,"show",parseInt(e)?0:1)})}},{title:y.a.createElement("span",null,y.a.createElement(u["a"],{placement:"top",title:y.a.createElement("div",null,y.a.createElement(h["a"],{status:"error"})," 未运行",y.a.createElement("br",null),y.a.createElement(h["a"],{status:"warning"})," 无人使用或服务端上报异常",y.a.createElement("br",null),y.a.createElement(h["a"],{status:"processing"})," 运行正常",y.a.createElement("br",null))},"节点 ",y.a.createElement(m["a"],{type:"question-circle"}))),dataIndex:"name",key:"name",render:(e,t)=>{return y.a.createElement(y.a.Fragment,null,y.a.createElement(h["a"],{status:D[t.available_status]}),y.a.createElement("span",null,e))}},{title:"地址",dataIndex:"host",key:"host",render:(e,t)=>{return y.a.createElement("span",{style:{cursor:"pointer"},onClick:()=>{S()(t.host),c["a"].success("复制成功")}},t.host+":"+t.port)}},{title:y.a.createElement("span",null,y.a.createElement(u["a"],{placement:"top",title:"根据服务端上报频率而定"},"人数 ",y.a.createElement(m["a"],{type:"question-circle"}))),dataIndex:"online",key:"online",align:"left",width:130,sorter:(e,t)=>e.online-t.online,render:e=>{return y.a.createElement(y.a.Fragment,null,y.a.createElement(m["a"],{type:"user"})," ",e||0)}},{title:y.a.createElement(u["a"],{placement:"top",title:"使用的流量将乘以倍率进行扣除"},"倍率 ",y.a.createElement(m["a"],{type:"question-circle"})),dataIndex:"rate",key:"rate",align:"center",render:e=>{return y.a.createElement(g["a"],{style:{minWidth:60}},e+" x")}},{title:"权限组",dataIndex:"group_id",key:"group_id",filters:R.map(e=>({text:e.name,value:e.id})),onFilter:(e,t)=>-1!==t.group_id.indexOf("".concat(e)),render:(e,t)=>{var n=[];return t.group_id.map(e=>{var t=R.find(t=>t.id===parseInt(e));t&&n.push(y.a.createElement(g["a"],null,t.name))}),y.a.createElement(y.a.Fragment,null,n)}},{title:"操作",dataIndex:"action",key:"action",align:"right",fixed:"right",width:100,render:(e,t,n)=>{return y.a.createElement("div",null,I(t))}}],F=this;return y.a.createElement(b["a"],i()({},this.props,{title:"节点管理"}),y.a.createElement(P.a,{when:A,message:e=>{return window.confirm("节点排序还没有保存,是否离开")}}),y.a.createElement(M["a"],{loading:O},y.a.createElement("div",{className:"block block-bottom ".concat(T.a.manage)},y.a.createElement("div",{className:"bg-white"},y.a.createElement("div",{className:"v2board-table-action",style:{padding:15}},y.a.createElement(d["a"],{overlay:y.a.createElement(p["a"],null,y.a.createElement(p["a"].Item,null,y.a.createElement(w["a"],{key:Math.random()},y.a.createElement("a",null,this.getTypeTag("shadowsocks","Shadowsocks")))),y.a.createElement(p["a"].Item,null,y.a.createElement(k["a"],{key:Math.random()},y.a.createElement("a",null,this.getTypeTag("vmess","VMess")))),y.a.createElement(p["a"].Item,null,y.a.createElement(C["a"],{key:Math.random()},y.a.createElement("a",null,this.getTypeTag("trojan","Trojan")))),y.a.createElement(p["a"].Item,null,y.a.createElement(W,{key:Math.random()},y.a.createElement("a",null,this.getTypeTag("hysteria","Hysteria")))),y.a.createElement(p["a"].Item,null,y.a.createElement(G,{key:Math.random()},y.a.createElement("a",null,this.getTypeTag("vless","VLess")))))},y.a.createElement(l["a"],null,y.a.createElement(m["a"],{type:"plus"}))),y.a.createElement(s["a"],{placeholder:"输入任意关键字搜索",style:{width:200},className:"ml-2",onChange:e=>this.setState({searchKey:e.target.value})}),!Object(L["f"])()&&y.a.createElement(l["a"],{style:{float:"right"},type:"primary",onClick:()=>{A?this.props.dispatch({type:"serverManage/saveSort"}):this.props.dispatch({type:"serverManage/setState",payload:{sortMode:!0}})}},A?"保存排序":"编辑排序")),Object(L["f"])()?y.a.createElement(o["a"],{className:"v2board-table",itemLayout:"vertical",dataSource:N?E.filter(e=>-1!==JSON.stringify(e).indexOf(N)):E,renderItem:e=>y.a.createElement(o["a"].Item,{className:"v2board_node_mobile ".concat(e.parent_id?"child_node":""),actions:[y.a.createElement(y.a.Fragment,null,this.getTypeTag(e.type,e.parent_id?e.id+" => "+e.parent_id:e.id),y.a.createElement(g["a"],null,y.a.createElement(m["a"],{type:"user"})," ",e.online||0),y.a.createElement(g["a"],null,e.rate," x"))],extra:y.a.createElement(y.a.Fragment,null,y.a.createElement(f["a"],{size:"small",checked:parseInt(e.show),onClick:()=>this.update(e,"show",parseInt(e.show)?0:1)}),y.a.createElement(a["a"],{type:"vertical"}),y.a.createElement("span",null,I(e)))},y.a.createElement(o["a"].Item.Meta,{title:y.a.createElement(y.a.Fragment,null,y.a.createElement(h["a"],{status:D[e.available_status]}),e.name),description:"".concat(e.host,":").concat(e.port)}))}):y.a.createElement(x["a"],{onDragEnd:(e,t)=>{console.log(e,t),F.props.dispatch({type:"serverManage/sort",fromIndex:e,toIndex:t})},nodeSelector:"tr",handleSelector:"i"},y.a.createElement(j["a"],{onContextMenu:e=>{this.record=e,this.forceUpdate()},disableRightClick:A,tableLayout:"auto",dataSource:N?E.filter(e=>-1!==JSON.stringify(e).indexOf(N)):E,columns:A?[{title:"排序",dataIndex:"sort",key:"sort",align:"left",width:100,render:(e,t,n)=>{return y.a.createElement("div",null,y.a.createElement(m["a"],{type:"menu",style:{cursor:"move"},title:"拖动排序"}))}},{title:"节点ID",dataIndex:"id",key:"id",width:150,render:(e,t)=>{return y.a.createElement("span",null,this.getTypeTag(t.type,t.parent_id?e+" => "+t.parent_id:e))}},{title:"节点",dataIndex:"name",key:"name"}]:$,pagination:!A&&{pageSize:this.state.pageSize,pageSizeOptions:["10","50","100","500"],showSizeChanger:!0,onShowSizeChange:(e,t)=>{this.setState({pageSize:t},()=>{Object(L["j"])("server_manage_page_size",t)})}},scroll:{x:1300},rowClassName:e=>e.parent_id?"child_node":""},y.a.createElement("ul",{className:"ant-dropdown-menu ant-dropdown-menu-light ant-dropdown-menu-root ant-dropdown-menu-vertical"},y.a.createElement("li",{className:"ant-dropdown-menu-item"},"shadowsocks"===(null===(e=this.record)||void 0===e?void 0:e.type)&&y.a.createElement(w["a"],{key:Math.random(),record:this.record},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"form"})," 编辑")),"vmess"===(null===(t=this.record)||void 0===t?void 0:t.type)&&y.a.createElement(k["a"],{key:Math.random(),record:this.record},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"form"})," 编辑")),"trojan"===(null===(n=this.record)||void 0===n?void 0:n.type)&&y.a.createElement(C["a"],{key:Math.random(),record:this.record},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"form"})," 编辑")),"hysteria"===(null===(r=this.record)||void 0===r?void 0:r.type)&&y.a.createElement(W,{key:Math.random(),record:this.record},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"form"})," 编辑")),"vless"===(null===(v=this.record)||void 0===v?void 0:v.type)&&y.a.createElement(G,{key:Math.random(),record:this.record},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"form"})," 编辑"))),y.a.createElement("li",{onClick:()=>this.copy(this.record),className:"ant-dropdown-menu-item"},y.a.createElement("a",null,y.a.createElement(m["a"],{type:"copy"})," 复制")),y.a.createElement("li",{onClick:()=>this.drop(this.record),className:"ant-dropdown-menu-item"},y.a.createElement("a",{style:{color:"#ff4d4f"}},y.a.createElement(m["a"],{type:"delete"})," 删除")))))))))}}t["default"]=Object(_["c"])(e=>{var t=e.serverManage,n=e.serverGroup;return{serverManage:t,serverGroup:n}})(q)},v32e:function(e,t,n){"use strict";n.d(t,"a",function(){return a});n("T2oS");var r=n("W9HT"),i=n("q1tI"),o=n.n(i);class a extends o.a.Component{render(){return o.a.createElement(r["a"],{spinning:this.props.loading,indicator:o.a.createElement("div",{className:"spinner-grow text-primary"})},this.props.children)}}},vA3T:function(e,t,n){"use strict";var r=n("QbLZ"),i=n.n(r),o=n("jo6Y"),a=n.n(o),s=n("iCc5"),l=n.n(s),c=n("V7oC"),u=n.n(c),h=n("FYw3"),f=n.n(h),d=n("mRg0"),p=n.n(d),m=n("q1tI"),g=n.n(m),v=n("17x9"),y=n.n(v),b=n("YEIV"),w=n.n(b),x=n("TSYQ"),_=n.n(x),E=n("hsuR");function S(e,t){var n=e.props,r=n.styles,i=n.panels,o=n.activeKey,a=n.direction,s=e.props.getRef("root"),l=e.props.getRef("nav")||s,c=e.props.getRef("inkBar"),u=e.props.getRef("activeTab"),h=c.style,f=e.props.tabBarPosition,d=Object(E["a"])(i,o);if(t&&(h.display="none"),u){var p=u,m=Object(E["i"])(h);if(Object(E["k"])(h,""),h.width="",h.height="",h.left="",h.top="",h.bottom="",h.right="","top"===f||"bottom"===f){var g=Object(E["c"])(p,l),v=p.offsetWidth;v===s.offsetWidth?v=0:r.inkBar&&void 0!==r.inkBar.width&&(v=parseFloat(r.inkBar.width,10),v&&(g+=(p.offsetWidth-v)/2)),"rtl"===a&&(g=Object(E["e"])(p,"margin-left")-g),m?Object(E["k"])(h,"translate3d("+g+"px,0,0)"):h.left=g+"px",h.width=v+"px"}else{var y=Object(E["f"])(p,l,!0),b=p.offsetHeight;r.inkBar&&void 0!==r.inkBar.height&&(b=parseFloat(r.inkBar.height,10),b&&(y+=(p.offsetHeight-b)/2)),m?(Object(E["k"])(h,"translate3d(0,"+y+"px,0)"),h.top="0"):h.top=y+"px",h.height=b+"px"}}h.display=-1!==d?"block":"none"}var k=function(e){function t(){return l()(this,t),f()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return p()(t,e),u()(t,[{key:"componentDidMount",value:function(){var e=this;this.timeout=setTimeout(function(){S(e,!0)},0)}},{key:"componentDidUpdate",value:function(){S(this)}},{key:"componentWillUnmount",value:function(){clearTimeout(this.timeout)}},{key:"render",value:function(){var e,t=this.props,n=t.prefixCls,r=t.styles,i=t.inkBarAnimated,o=n+"-ink-bar",a=_()((e={},w()(e,o,!0),w()(e,i?o+"-animated":o+"-no-animated",!0),e));return g.a.createElement("div",{style:r.inkBar,className:a,key:"inkBar",ref:this.props.saveRef("inkBar")})}}]),t}(g.a.Component),C=k;k.propTypes={prefixCls:y.a.string,styles:y.a.object,inkBarAnimated:y.a.bool,saveRef:y.a.func,direction:y.a.string},k.defaultProps={prefixCls:"",inkBarAnimated:!0,styles:{},saveRef:function(){}};var O=n("2W6z"),T=n.n(O),L=function(e){function t(){return l()(this,t),f()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return p()(t,e),u()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.panels,r=t.activeKey,o=t.prefixCls,a=t.tabBarGutter,s=t.saveRef,l=t.tabBarPosition,c=t.renderTabBarNode,u=t.direction,h=[];return g.a.Children.forEach(n,function(t,f){if(t){var d=t.key,p=r===d?o+"-tab-active":"";p+=" "+o+"-tab";var m={};t.props.disabled?p+=" "+o+"-tab-disabled":m={onClick:e.props.onTabClick.bind(e,d)};var v={};r===d&&(v.ref=s("activeTab"));var y=a&&f===n.length-1?0:a,b="rtl"===u?"marginLeft":"marginRight",x=w()({},Object(E["j"])(l)?"marginBottom":b,y);T()("tab"in t.props,"There must be `tab` property on children of Tabs.");var _=g.a.createElement("div",i()({role:"tab","aria-disabled":t.props.disabled?"true":"false","aria-selected":r===d?"true":"false"},m,{className:p,key:d,style:x},v),t.props.tab);c&&(_=c(_)),h.push(_)}}),g.a.createElement("div",{ref:s("navTabsContainer")},h)}}]),t}(g.a.Component),A=L;L.propTypes={activeKey:y.a.string,panels:y.a.node,prefixCls:y.a.string,tabBarGutter:y.a.number,onTabClick:y.a.func,saveRef:y.a.func,renderTabBarNode:y.a.func,tabBarPosition:y.a.string,direction:y.a.string},L.defaultProps={panels:[],prefixCls:[],tabBarGutter:null,onTabClick:function(){},saveRef:function(){}};var P=function(e){function t(){return l()(this,t),f()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return p()(t,e),u()(t,[{key:"render",value:function(){var e=this.props,t=e.prefixCls,n=e.onKeyDown,r=e.className,o=e.extraContent,s=e.style,l=e.tabBarPosition,c=e.children,u=a()(e,["prefixCls","onKeyDown","className","extraContent","style","tabBarPosition","children"]),h=_()(t+"-bar",w()({},r,!!r)),f="top"===l||"bottom"===l,d=f?{float:"right"}:{},p=o&&o.props?o.props.style:{},v=c;return o&&(v=[Object(m["cloneElement"])(o,{key:"extra",style:i()({},d,p)}),Object(m["cloneElement"])(c,{key:"content"})],v=f?v:v.reverse()),g.a.createElement("div",i()({role:"tablist",className:h,tabIndex:"0",ref:this.props.saveRef("root"),onKeyDown:n,style:s},Object(E["b"])(u)),v)}}]),t}(g.a.Component),j=P;P.propTypes={prefixCls:y.a.string,className:y.a.string,style:y.a.object,tabBarPosition:y.a.oneOf(["left","right","top","bottom"]),children:y.a.node,extraContent:y.a.node,onKeyDown:y.a.func,saveRef:y.a.func},P.defaultProps={prefixCls:"",className:"",style:{},tabBarPosition:"top",extraContent:null,children:null,onKeyDown:function(){},saveRef:function(){}};var M=n("sEfC"),R=n.n(M),N=n("bdgK"),D=function(e){function t(e){l()(this,t);var n=f()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.prevTransitionEnd=function(e){if("opacity"===e.propertyName){var t=n.props.getRef("container");n.scrollToActiveTab({target:t,currentTarget:t})}},n.scrollToActiveTab=function(e){var t=n.props.getRef("activeTab"),r=n.props.getRef("navWrap");if((!e||e.target===e.currentTarget)&&t){var i=n.isNextPrevShown()&&n.lastNextPrevShown;if(n.lastNextPrevShown=n.isNextPrevShown(),i){var o=n.getScrollWH(t),a=n.getOffsetWH(r),s=n.offset,l=n.getOffsetLT(r),c=n.getOffsetLT(t);l>c?(s+=l-c,n.setOffset(s)):l+a=0)l=!1,this.setOffset(0,!1),o=0;else if(a1&&void 0!==arguments[1])||arguments[1],n=Math.min(0,e);if(this.offset!==n){this.offset=n;var r={},i=this.props.tabBarPosition,o=this.props.getRef("nav").style,a=Object(E["i"])(o);"left"===i||"right"===i?r=a?{value:"translate3d(0,"+n+"px,0)"}:{name:"top",value:n+"px"}:a?("rtl"===this.props.direction&&(n=-n),r={value:"translate3d("+n+"px,0,0)"}):r={name:"left",value:n+"px"},a?Object(E["k"])(o,r.value):o[r.name]=r.value,t&&this.setNextPrev()}}},{key:"setPrev",value:function(e){this.state.prev!==e&&this.setState({prev:e})}},{key:"setNext",value:function(e){this.state.next!==e&&this.setState({next:e})}},{key:"isNextPrevShown",value:function(e){return e?e.next||e.prev:this.state.next||this.state.prev}},{key:"render",value:function(){var e,t,n,r,i=this.state,o=i.next,a=i.prev,s=this.props,l=s.prefixCls,c=s.scrollAnimated,u=s.navWrapper,h=s.prevIcon,f=s.nextIcon,d=a||o,p=g.a.createElement("span",{onClick:a?this.prev:null,unselectable:"unselectable",className:_()((e={},w()(e,l+"-tab-prev",1),w()(e,l+"-tab-btn-disabled",!a),w()(e,l+"-tab-arrow-show",d),e)),onTransitionEnd:this.prevTransitionEnd},h||g.a.createElement("span",{className:l+"-tab-prev-icon"})),m=g.a.createElement("span",{onClick:o?this.next:null,unselectable:"unselectable",className:_()((t={},w()(t,l+"-tab-next",1),w()(t,l+"-tab-btn-disabled",!o),w()(t,l+"-tab-arrow-show",d),t))},f||g.a.createElement("span",{className:l+"-tab-next-icon"})),v=l+"-nav",y=_()((n={},w()(n,v,!0),w()(n,c?v+"-animated":v+"-no-animated",!0),n));return g.a.createElement("div",{className:_()((r={},w()(r,l+"-nav-container",1),w()(r,l+"-nav-container-scrolling",d),r)),key:"container",ref:this.props.saveRef("container")},p,m,g.a.createElement("div",{className:l+"-nav-wrap",ref:this.props.saveRef("navWrap")},g.a.createElement("div",{className:l+"-nav-scroll"},g.a.createElement("div",{className:y,ref:this.props.saveRef("nav")},u(this.props.children)))))}}]),t}(g.a.Component),I=D;D.propTypes={activeKey:y.a.string,getRef:y.a.func.isRequired,saveRef:y.a.func.isRequired,tabBarPosition:y.a.oneOf(["left","right","top","bottom"]),prefixCls:y.a.string,scrollAnimated:y.a.bool,onPrevClick:y.a.func,onNextClick:y.a.func,navWrapper:y.a.func,children:y.a.node,prevIcon:y.a.node,nextIcon:y.a.node,direction:y.a.node},D.defaultProps={tabBarPosition:"left",prefixCls:"",scrollAnimated:!0,onPrevClick:function(){},onNextClick:function(){},navWrapper:function(e){return e}};var $=function(e){function t(){var e,n,r,i;l()(this,t);for(var o=arguments.length,a=Array(o),s=0;sn)t.push(arguments[n++]);return v[++g]=function(){s("function"==typeof e?e:Function(e),t)},r(g),g},d=function(e){delete v[e]},"process"==n("2we2")(h)?r=function(e){h.nextTick(a(b,e,1))}:m&&m.now?r=function(e){m.now(a(b,e,1))}:p?(i=new p,o=i.port2,i.port1.onmessage=w,r=a(o.postMessage,o,1)):u.addEventListener&&"function"==typeof postMessage&&!u.importScripts?(r=function(e){u.postMessage(e+"","*")},u.addEventListener("message",w,!1)):r=y in c("script")?function(e){l.appendChild(c("script"))[y]=function(){l.removeChild(this),b.call(e)}}:function(e){setTimeout(a(b,e,1),0)}),e.exports={set:f,clear:d}},"vPd/":function(e,t,n){var r=n("kCCV"),i=n("IX3V").each;function o(e,t){this.query=e,this.isUnconditional=t,this.handlers=[],this.mql=window.matchMedia(e);var n=this;this.listener=function(e){n.mql=e.currentTarget||e,n.assess()},this.mql.addListener(this.listener)}o.prototype={constuctor:o,addHandler:function(e){var t=new r(e);this.handlers.push(t),this.matches()&&t.on()},removeHandler:function(e){var t=this.handlers;i(t,function(n,r){if(n.equals(e))return n.destroy(),!t.splice(r,1)})},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){i(this.handlers,function(e){e.destroy()}),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var e=this.matches()?"on":"off";i(this.handlers,function(t){t[e]()})}},e.exports=o},vgmO:function(e,t,n){(function(t){var n;n="undefined"!==typeof window?window:"undefined"!==typeof t?t:"undefined"!==typeof self?self:{},e.exports=n}).call(this,n("yLpj"))},vpQ4:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("rePB");function i(e){for(var t=1;t=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},w6GO:function(e,t,n){var r=n("5vMV"),i=n("FpHa");e.exports=Object.keys||function(e){return r(e,i)}},w8uh:function(e,t,n){n("Jaki")("Uint16",2,function(e){return function(t,n,r){return e(this,t,n,r)}})},wCXF:function(e,t,n){"use strict";function r(e){"@babel/helpers - typeof";return r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var n=0;n0&&0===this.props.data.length&&this.hasScrollX()&&this.resetScrollX()}},{key:"componentWillUnmount",value:function(){this.resizeEvent&&this.resizeEvent.remove(),this.debouncedWindowResize&&this.debouncedWindowResize.cancel()}},{key:"setScrollPosition",value:function(e){if(this.scrollPosition=e,this.tableNode){var t=this.props.prefixCls;"both"===e?S.default(this.tableNode).remove(new RegExp("^".concat(t,"-scroll-position-.+$"))).add("".concat(t,"-scroll-position-left")).add("".concat(t,"-scroll-position-right")):S.default(this.tableNode).remove(new RegExp("^".concat(t,"-scroll-position-.+$"))).add("".concat(t,"-scroll-position-").concat(e))}}},{key:"setScrollPositionClassName",value:function(){var e=this.bodyTable,t=0===e.scrollLeft,n=e.scrollLeft+1>=e.children[0].getBoundingClientRect().width-e.getBoundingClientRect().width;t&&n?this.setScrollPosition("both"):t?this.setScrollPosition("left"):n?this.setScrollPosition("right"):"middle"!==this.scrollPosition&&this.setScrollPosition("middle")}},{key:"isTableLayoutFixed",value:function(){var e=this.props,t=e.tableLayout,n=e.columns,r=void 0===n?[]:n,i=e.useFixedHeader,o=e.scroll,a=void 0===o?{}:o;return"undefined"!==typeof t?"fixed"===t:!!r.some(function(e){var t=e.ellipsis;return!!t})||!(!i&&!a.y)||!(!a.x||!0===a.x||"max-content"===a.x)}},{key:"resetScrollX",value:function(){this.headTable&&(this.headTable.scrollLeft=0),this.bodyTable&&(this.bodyTable.scrollLeft=0)}},{key:"hasScrollX",value:function(){var e=this.props.scroll,t=void 0===e?{}:e;return"x"in t}},{key:"renderMainTable",value:function(){var e=this.props,t=e.scroll,n=e.prefixCls,r=this.columnManager.isAnyColumnsFixed(),i=r||t.x||t.y,o=[this.renderTable({columns:this.columnManager.groupedColumns(),isAnyColumnsFixed:r}),this.renderEmptyText(),this.renderFooter()];return i?v.createElement("div",{className:"".concat(n,"-scroll")},o):o}},{key:"renderLeftFixedTable",value:function(){var e=this.props.prefixCls;return v.createElement("div",{className:"".concat(e,"-fixed-left")},this.renderTable({columns:this.columnManager.leftColumns(),fixed:"left"}))}},{key:"renderRightFixedTable",value:function(){var e=this.props.prefixCls;return v.createElement("div",{className:"".concat(e,"-fixed-right")},this.renderTable({columns:this.columnManager.rightColumns(),fixed:"right"}))}},{key:"renderTable",value:function(e){var t=e.columns,n=e.fixed,r=e.isAnyColumnsFixed,i=this.props,o=i.prefixCls,a=i.scroll,s=void 0===a?{}:a,l=s.x||n?"".concat(o,"-fixed"):"",c=v.createElement(L.default,{key:"head",columns:t,fixed:n,tableClassName:l,handleBodyScrollLeft:this.handleBodyScrollLeft,expander:this.expander}),u=v.createElement(A.default,{key:"body",columns:t,fixed:n,tableClassName:l,getRowKey:this.getRowKey,handleWheel:this.handleWheel,handleBodyScroll:this.handleBodyScroll,expander:this.expander,isAnyColumnsFixed:r});return[c,u]}},{key:"renderTitle",value:function(){var e=this.props,t=e.title,n=e.prefixCls;return t?v.createElement("div",{className:"".concat(n,"-title"),key:"title"},t(this.props.data)):null}},{key:"renderFooter",value:function(){var e=this.props,t=e.footer,n=e.prefixCls;return t?v.createElement("div",{className:"".concat(n,"-footer"),key:"footer"},t(this.props.data)):null}},{key:"renderEmptyText",value:function(){var e=this.props,t=e.emptyText,n=e.prefixCls,r=e.data;if(r.length)return null;var i="".concat(n,"-placeholder");return v.createElement("div",{className:i,key:"emptyText"},"function"===typeof t?t():t)}},{key:"render",value:function(){var e,t=this,n=this.props,r=n.prefixCls;this.state.columns?this.columnManager.reset(n.columns):this.state.children&&this.columnManager.reset(null,n.children);var o=k.default(n.prefixCls,n.className,(e={},i(e,"".concat(r,"-fixed-header"),n.useFixedHeader||n.scroll&&n.scroll.y),i(e,"".concat(r,"-scroll-position-left ").concat(r,"-scroll-position-right"),"both"===this.scrollPosition),i(e,"".concat(r,"-scroll-position-").concat(this.scrollPosition),"both"!==this.scrollPosition),i(e,"".concat(r,"-layout-fixed"),this.isTableLayoutFixed()),e)),a=this.columnManager.isAnyColumnsLeftFixed(),s=this.columnManager.isAnyColumnsRightFixed(),l=O.getDataAndAriaProps(n);return v.createElement(_.Provider,{store:this.store},v.createElement(M.default,Object.assign({},n,{columnManager:this.columnManager,getRowKey:this.getRowKey}),function(e){return t.expander=e,v.createElement("div",Object.assign({ref:t.saveTableNodeRef,className:o,style:n.style,id:n.id},l),t.renderTitle(),v.createElement("div",{className:"".concat(r,"-content")},t.renderMainTable(),a&&t.renderLeftFixedTable(),s&&t.renderRightFixedTable()))}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.columns&&e.columns!==t.columns?{columns:e.columns,children:null}:e.children!==t.children?{columns:null,children:e.children}:null}}]),n}(v.Component);R.childContextTypes={table:y.any,components:y.any},R.Column=P.default,R.ColumnGroup=j.default,R.defaultProps={data:[],useFixedHeader:!1,rowKey:"key",rowClassName:function(){return""},onRow:function(){},onHeaderRow:function(){},prefixCls:"rc-table",bodyStyle:{},style:{},showHeader:!0,scroll:{},rowRef:function(){return null},emptyText:function(){return"No Data"}},C.polyfill(R),t.default=R},wD64:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un"),a=n("3a4m"),s=n.n(a),l=n("yWgo");function c(){c=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};l(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}t["default"]={name:"passport",state:{loginLoading:!1},reducers:{save(e,t){var n=t.payload;return i()({},e,n)}},effects:{login(e,t){var n=e.email,r=e.password,i=t.put;return c().mark(function e(){var t;return c().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"save",payload:{loginLoading:!0}});case 2:return e.next=4,Object(o["b"])("/passport/auth/login",{email:n,password:r});case 4:return t=e.sent,e.next=7,i({type:"save",payload:{loginLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:if(Object(l["h"])(t.data.auth_data),t.data.is_admin){e.next=12;break}return e.abrupt("return");case 12:return s.a.push("/dashboard"),e.next=15,i({type:"user/getUserInfo"});case 15:case"end":return e.stop()}},e)})()}}}},wHrr:function(e,t,n){var r=n("wYm8");e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},wMpi:function(e,t){function n(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}e.exports=n},wOl0:function(e,t,n){var r=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,i="function"===typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n,r){var i=t&&t.prototype instanceof m?t:m,o=Object.create(i.prototype),a=new T(r||[]);return o._invoke=S(e,n,a),o}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=l;var u="suspendedStart",h="suspendedYield",f="executing",d="completed",p={};function m(){}function g(){}function v(){}var y={};y[o]=function(){return this};var b=Object.getPrototypeOf,w=b&&b(b(L([])));w&&w!==n&&r.call(w,o)&&(y=w);var x=v.prototype=m.prototype=Object.create(y);function _(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function E(e){function t(n,i,o,a){var s=c(e[n],e,i);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"===typeof u&&r.call(u,"__await")?Promise.resolve(u.__await).then(function(e){t("next",e,o,a)},function(e){t("throw",e,o,a)}):Promise.resolve(u).then(function(e){l.value=e,o(l)},function(e){return t("throw",e,o,a)})}a(s.arg)}var n;function i(e,r){function i(){return new Promise(function(n,i){t(e,r,n,i)})}return n=n?n.then(i,i):i()}this._invoke=i}function S(e,t,n){var r=u;return function(i,o){if(r===f)throw new Error("Generator is already running");if(r===d){if("throw"===i)throw o;return A()}n.method=i,n.arg=o;while(1){var a=n.delegate;if(a){var s=k(a,n);if(s){if(s===p)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===u)throw r=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=f;var l=c(e,t,n);if("normal"===l.type){if(r=n.done?d:h,l.arg===p)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=d,n.method="throw",n.arg=l.arg)}}}function k(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator["return"]&&(n.method="return",n.arg=t,k(e,n),"throw"===n.method))return p;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var i=c(r,e.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,p;var o=i.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,p):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function L(e){if(e){var n=e[o];if(n)return n.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function n(){while(++i=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;O(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),p}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},wUWy:function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},wYm8:function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},wZXL:function(e,t,n){var r=n("vPd/"),i=n("IX3V"),o=i.each,a=i.isFunction,s=i.isArray;function l(){if(!window.matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!window.matchMedia("only all").matches}l.prototype={constructor:l,register:function(e,t,n){var i=this.queries,l=n&&this.browserIsIncapable;return i[e]||(i[e]=new r(e,l)),a(t)&&(t={match:t}),s(t)||(t=[t]),o(t,function(t){a(t)&&(t={match:t}),i[e].addHandler(t)}),this},unregister:function(e,t){var n=this.queries[e];return n&&(t?n.removeHandler(t):(n.clear(),delete this.queries[e])),this}},e.exports=l},wgeU:function(e,t){},"wgp+":function(e,t,n){"use strict";var r=n("q1tI"),i=n.n(r),o=n("17x9"),a=n.n(o),s=n("wd/R"),l=n.n(s),c=n("TSYQ"),u=n.n(c),h=n("VCL8");function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var n=0;n=0||v&&v.indexOf(p.minute())>=0||y&&y.indexOf(p.second())>=0)return void n.setState({invalid:!0});if(d){if(d.hour()!==p.hour()||d.minute()!==p.minute()||d.second()!==p.second()){var b=d.clone();b.hour(p.hour()),b.minute(p.minute()),b.second(p.second()),f(b)}}else d!==p&&f(p)}else f(null);n.setState({invalid:!1})}),w(v(n),"onKeyDown",function(e){var t=n.props,r=t.onEsc,i=t.onKeyDown;27===e.keyCode&&r(),i(e)});var r=e.value,i=e.format;return n.state={str:r&&r.format(i)||"",invalid:!1},n}return y(t,e),p(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props.focusOnOpen;if(t){var n=window.requestAnimationFrame||window.setTimeout;n(function(){e.refInput.focus(),e.refInput.select()})}}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.value,r=t.format;n!==e.value&&this.setState({str:n&&n.format(r)||"",invalid:!1})}},{key:"getProtoValue",value:function(){var e=this.props,t=e.value,n=e.defaultOpenValue;return t||n}},{key:"getInput",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.placeholder,o=t.inputReadOnly,a=this.state,s=a.invalid,l=a.str,c=s?"".concat(n,"-input-invalid"):"";return i.a.createElement("input",{className:u()("".concat(n,"-input"),c),ref:function(t){e.refInput=t},onKeyDown:this.onKeyDown,value:l,placeholder:r,onChange:this.onInputChange,readOnly:!!o})}},{key:"render",value:function(){var e=this.props.prefixCls;return i.a.createElement("div",{className:"".concat(e,"-input-wrap")},this.getInput())}}]),t}(r["Component"]);w(x,"propTypes",{format:a.a.string,prefixCls:a.a.string,disabledDate:a.a.func,placeholder:a.a.string,clearText:a.a.string,value:a.a.object,inputReadOnly:a.a.bool,hourOptions:a.a.array,minuteOptions:a.a.array,secondOptions:a.a.array,disabledHours:a.a.func,disabledMinutes:a.a.func,disabledSeconds:a.a.func,onChange:a.a.func,onEsc:a.a.func,defaultOpenValue:a.a.object,currentSelectPanel:a.a.string,focusOnOpen:a.a.bool,onKeyDown:a.a.func,clearIcon:a.a.node}),w(x,"defaultProps",{inputReadOnly:!1});var _=x,E=n("i8i4"),S=n.n(E),k=n("xEkU"),C=n.n(k);function O(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T(e,t){for(var n=0;n=0&&(r=!0),{value:n,disabled:r}},Y=function(e){function t(){var e,n;F(this,t);for(var r=arguments.length,i=new Array(r),o=0;o=12&&u.hour(u.hour()-12)),c(h)}else u.second(+t);i(u)}),q(U(n),"onEnterSelectPanel",function(e){var t=n.props.onCurrentSelectPanelChange;t(e)}),n}return z(t,e),V(t,[{key:"getHourSelect",value:function(e){var t=this,n=this.props,r=n.prefixCls,o=n.hourOptions,a=n.disabledHours,s=n.showHour,l=n.use12Hours,c=n.onEsc;if(!s)return null;var u,h,f=a();return l?(u=[12].concat(o.filter(function(e){return e<12&&e>0})),h=e%12||12):(u=o,h=e),i.a.createElement($,{prefixCls:r,options:u.map(function(e){return K(e,f)}),selectedIndex:u.indexOf(h),type:"hour",onSelect:this.onItemChange,onMouseEnter:function(){return t.onEnterSelectPanel("hour")},onEsc:c})}},{key:"getMinuteSelect",value:function(e){var t=this,n=this.props,r=n.prefixCls,o=n.minuteOptions,a=n.disabledMinutes,s=n.defaultOpenValue,l=n.showMinute,c=n.value,u=n.onEsc;if(!l)return null;var h=c||s,f=a(h.hour());return i.a.createElement($,{prefixCls:r,options:o.map(function(e){return K(e,f)}),selectedIndex:o.indexOf(e),type:"minute",onSelect:this.onItemChange,onMouseEnter:function(){return t.onEnterSelectPanel("minute")},onEsc:u})}},{key:"getSecondSelect",value:function(e){var t=this,n=this.props,r=n.prefixCls,o=n.secondOptions,a=n.disabledSeconds,s=n.showSecond,l=n.defaultOpenValue,c=n.value,u=n.onEsc;if(!s)return null;var h=c||l,f=a(h.hour(),h.minute());return i.a.createElement($,{prefixCls:r,options:o.map(function(e){return K(e,f)}),selectedIndex:o.indexOf(e),type:"second",onSelect:this.onItemChange,onMouseEnter:function(){return t.onEnterSelectPanel("second")},onEsc:u})}},{key:"getAMPMSelect",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.use12Hours,o=t.format,a=t.isAM,s=t.onEsc;if(!r)return null;var l=["am","pm"].map(function(e){return o.match(/\sA/)?e.toUpperCase():e}).map(function(e){return{value:e}}),c=a?0:1;return i.a.createElement($,{prefixCls:n,options:l,selectedIndex:c,type:"ampm",onSelect:this.onItemChange,onMouseEnter:function(){return e.onEnterSelectPanel("ampm")},onEsc:s})}},{key:"render",value:function(){var e=this.props,t=e.prefixCls,n=e.defaultOpenValue,r=e.value,o=r||n;return i.a.createElement("div",{className:"".concat(t,"-combobox")},this.getHourSelect(o.hour()),this.getMinuteSelect(o.minute()),this.getSecondSelect(o.second()),this.getAMPMSelect(o.hour()))}}]),t}(r["Component"]);q(Y,"propTypes",{format:a.a.string,defaultOpenValue:a.a.object,prefixCls:a.a.string,value:a.a.object,onChange:a.a.func,onAmPmChange:a.a.func,showHour:a.a.bool,showMinute:a.a.bool,showSecond:a.a.bool,hourOptions:a.a.array,minuteOptions:a.a.array,secondOptions:a.a.array,disabledHours:a.a.func,disabledMinutes:a.a.func,disabledSeconds:a.a.func,onCurrentSelectPanelChange:a.a.func,use12Hours:a.a.bool,onEsc:a.a.func,isAM:a.a.bool});var X=Y;function Q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Z(e){for(var t=1;t3&&void 0!==arguments[3]?arguments[3]:1,i=[],o=0;o=0&&n.hour()<12}},{key:"render",value:function(){var e=this.props,t=e.prefixCls,n=e.className,r=e.placeholder,o=e.disabledMinutes,a=e.disabledSeconds,s=e.hideDisabledOptions,l=e.showHour,c=e.showMinute,h=e.showSecond,f=e.format,d=e.defaultOpenValue,p=e.clearText,m=e.onEsc,g=e.addon,v=e.use12Hours,y=e.focusOnOpen,b=e.onKeyDown,w=e.hourStep,x=e.minuteStep,E=e.secondStep,S=e.inputReadOnly,k=e.clearIcon,C=this.state,O=C.value,T=C.currentSelectPanel,L=this.disabledHours(),A=o(O?O.hour():null),P=a(O?O.hour():null,O?O.minute():null),j=ce(24,L,s,w),M=ce(60,A,s,x),R=ce(60,P,s,E),N=ue(d,j,M,R);return i.a.createElement("div",{className:u()(n,"".concat(t,"-inner"))},i.a.createElement(_,{clearText:p,prefixCls:t,defaultOpenValue:N,value:O,currentSelectPanel:T,onEsc:m,format:f,placeholder:r,hourOptions:j,minuteOptions:M,secondOptions:R,disabledHours:this.disabledHours,disabledMinutes:o,disabledSeconds:a,onChange:this.onChange,focusOnOpen:y,onKeyDown:b,inputReadOnly:S,clearIcon:k}),i.a.createElement(X,{prefixCls:t,value:O,defaultOpenValue:N,format:f,onChange:this.onChange,onAmPmChange:this.onAmPmChange,showHour:l,showMinute:c,showSecond:h,hourOptions:j,minuteOptions:M,secondOptions:R,disabledHours:this.disabledHours,disabledMinutes:o,disabledSeconds:a,onCurrentSelectPanelChange:this.onCurrentSelectPanelChange,use12Hours:v,onEsc:m,isAM:this.isAM()}),g(this))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return"value"in e?Z({},t,{value:e.value}):null}}]),t}(r["Component"]);se(he,"propTypes",{clearText:a.a.string,prefixCls:a.a.string,className:a.a.string,defaultOpenValue:a.a.object,value:a.a.object,placeholder:a.a.string,format:a.a.string,inputReadOnly:a.a.bool,disabledHours:a.a.func,disabledMinutes:a.a.func,disabledSeconds:a.a.func,hideDisabledOptions:a.a.bool,onChange:a.a.func,onAmPmChange:a.a.func,onEsc:a.a.func,showHour:a.a.bool,showMinute:a.a.bool,showSecond:a.a.bool,use12Hours:a.a.bool,hourStep:a.a.number,minuteStep:a.a.number,secondStep:a.a.number,addon:a.a.func,focusOnOpen:a.a.bool,onKeyDown:a.a.func,clearIcon:a.a.node}),se(he,"defaultProps",{prefixCls:"rc-time-picker-panel",onChange:le,disabledHours:le,disabledMinutes:le,disabledSeconds:le,defaultOpenValue:l()(),use12Hours:!1,addon:le,onKeyDown:le,onAmPmChange:le,inputReadOnly:!1}),Object(h["polyfill"])(he);t["a"]=he},wlPd:function(e,t,n){"use strict";var r=n("il4q"),i=n("Spc3"),o=n("OsVd");e.exports=[].copyWithin||function(e,t){var n=r(this),a=o(n.length),s=i(e,a),l=i(t,a),c=arguments.length>2?arguments[2]:void 0,u=Math.min((void 0===c?a:i(c,a))-l,a-s),h=1;l0)l in n?n[s]=n[l]:delete n[s],s+=h,l+=h;return n}},wtDr:function(e,t,n){"use strict";n.r(t);var r=n("p0pE"),i=n.n(r),o=n("t3Un");function a(){a=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,i){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),s=new C(i||[]);return r(a,"_invoke",{value:_(e,n,s)}),a}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function d(){}function p(){}function m(){}var g={};c(g,o,function(){return this});var v=Object.getPrototypeOf,y=v&&v(v(O([])));y&&y!==t&&n.call(y,o)&&(g=y);var b=m.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach(function(t){c(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function i(r,o,a,s){var l=h(e[r],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then(function(e){i("next",e,a,s)},function(e){i("throw",e,a,s)}):t.resolve(u).then(function(e){c.value=e,a(c)},function(e){return i("throw",e,a,s)})}s(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function _(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return T()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=h(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var i=h(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,f;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}var s={switchLoading:{},saveLoading:!1};t["default"]={name:"serverVmess",state:i()({},s),reducers:{setState(e,t){var n=t.payload;return i()({},e,n)}},effects:{update(e,t){var n=e.id,r=e.key,i=e.value,s=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/vmess/update",{id:n,[r]:i});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,s({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},drop(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/vmess/drop",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},copy(e,t){var n=e.id,r=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,Object(o["b"])("/"+window.settings.secure_path+"/server/vmess/copy",{id:n});case 2:if(t=e.sent,200===t.code){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,r({type:"serverManage/getNodes"});case 7:case"end":return e.stop()}},e)})()},save(e,t){var n=e.params,r=e.callback,i=t.put;return a().mark(function e(){var t;return a().wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,i({type:"setState",payload:{saveLoading:!0}});case 2:return e.next=4,Object(o["b"])("/"+window.settings.secure_path+"/server/vmess/save",n);case 4:return t=e.sent,e.next=7,i({type:"setState",payload:{saveLoading:!1}});case 7:if(200===t.code){e.next=9;break}return e.abrupt("return");case 9:return e.next=11,i({type:"serverManage/getNodes"});case 11:"function"===typeof r&&r();case 12:case"end":return e.stop()}},e)})()}}}},wtkT:function(e,t,n){"use strict";n.r(t);var r=n("jehZ"),i=n.n(r),o=(n("g9YV"),n("wCAj")),a=(n("+L6B"),n("2/Rp")),s=(n("Pwec"),n("CtXQ")),l=(n("/zsF"),n("PArb")),c=n("p0pE"),u=n.n(c),h=n("q1tI"),f=n.n(h),d=n("Bl7J"),p=n("/MKj"),m=(n("8zNj"),n("v32e")),g=(n("2qtc"),n("kLXV")),v=(n("OaEy"),n("2fM7")),y=(n("5NDa"),n("5rEg")),b=n("tI4l");class w extends f.a.Component{constructor(e){super(e),this.state={route:e.route||{},visible:!1}}save(){var e=u()({},this.state.route);"object"===typeof e.match?e.match=e.match.filter(e=>!!e):e.match=e.match.split(",").filter(e=>!!e),this.props.dispatch({type:"serverRoute/save",params:e,callback:()=>{this.setState({visible:!1})}})}render(){var e,t,n,r=this.props.serverRoute.fetchLoading;return f.a.createElement(f.a.Fragment,null,f.a.cloneElement(this.props.children,{onClick:()=>this.setState({visible:!0})}),f.a.createElement(g["a"],{title:"".concat(this.state.route.id?"编辑路由":"创建路由"),visible:this.state.visible,onCancel:()=>this.setState({visible:!1}),onOk:()=>r||this.save(),okText:r?f.a.createElement(s["a"],{type:"loading"}):"提交",cancelText:"取消"},f.a.createElement("div",null,f.a.createElement("div",{className:"form-group"},f.a.createElement("label",{for:"example-text-input-alt"},"备注"),f.a.createElement(y["a"],{placeholder:"请输入备注",value:this.state.route.remarks,onChange:e=>{this.setState({route:u()({},this.state.route,{remarks:e.target.value})})}})),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",{for:"example-text-input-alt"},"匹配值"),f.a.createElement(y["a"].TextArea,{rows:5,placeholder:"example.com\n*.example.com",value:"object"===typeof this.state.route.match?null===(e=this.state.route.match)||void 0===e?void 0:e.join("\n"):null===(t=this.state.route.match)||void 0===t?void 0:null===(n=t.split(","))||void 0===n?void 0:n.join("\n"),onChange:e=>{var t;this.setState({route:u()({},this.state.route,{match:null===(t=e.target.value)||void 0===t?void 0:t.split("\n")})})}})),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",{for:"example-text-input-alt"},"动作"),f.a.createElement("div",null,f.a.createElement(v["a"],{value:this.state.route.action,placeholder:"请选择动作",style:{width:"100%"},onChange:e=>this.setState({route:u()({},this.state.route,{action:e})})},f.a.createElement(v["a"].Option,{value:"block"},b["a"].routeActionText["block"]),f.a.createElement(v["a"].Option,{value:"dns"},b["a"].routeActionText["dns"])))),"dns"===this.state.route.action&&f.a.createElement("div",{className:"form-group"},f.a.createElement("label",{for:"example-text-input-alt"},"DNS服务器"),f.a.createElement(y["a"],{placeholder:"请输入用于解析的DNS服务器地址",value:this.state.route.action_value,onChange:e=>{this.setState({route:u()({},this.state.route,{action_value:e.target.value})})}})))))}}var x=Object(p["c"])(e=>{var t=e.serverRoute;return{serverRoute:t}})(w);class _ extends f.a.Component{constructor(e){super(e),this.state={route:{}}}componentDidMount(){this.props.dispatch({type:"serverRoute/fetch"})}save(){var e=u()({},this.state.submit);this.props.dispatch({type:"serverRoute/save",params:e,callback:()=>{this.modalVisible()}})}drop(e){this.props.dispatch({type:"serverRoute/drop",id:e})}render(){var e=this.props.serverRoute,t=e.routes,n=e.fetchLoading,r=[{title:"ID",dataIndex:"id",key:"id"},{title:"备注",dataIndex:"remarks",key:"remarks"},{title:"匹配数量",dataIndex:"match",key:"match",render:e=>{var t;return"匹配 ".concat("string"===typeof e?null===(t=e.split(",").filter(e=>!!e))||void 0===t?void 0:t.length:e.length," 条规则")}},{title:"动作",dataIndex:"action",key:"action",render:e=>{return b["a"].routeActionText[e]}},{title:"操作",dataIndex:"action2",key:"action2",align:"right",render:(e,t)=>{return f.a.createElement("div",null,f.a.createElement(x,{route:t,key:t.id},f.a.createElement("a",{href:"javascript:void(0);"},"编辑")),f.a.createElement(l["a"],{type:"vertical"}),f.a.createElement("a",{href:"javascript:void(0);",onClick:()=>this.drop(t.id)},"删除"))}}];return f.a.createElement(d["a"],i()({},this.props,{title:"路由管理"}),f.a.createElement("div",{className:"d-flex justify-content-between align-items-center"}),f.a.createElement(m["a"],{loading:n},f.a.createElement("div",{className:"block block-rounded"},f.a.createElement("div",{className:"bg-white"},f.a.createElement("div",{style:{padding:15}},f.a.createElement(x,null,f.a.createElement(a["a"],{onClick:()=>this.modalVisible()},f.a.createElement(s["a"],{type:"plus"})," 添加路由"))),f.a.createElement(o["a"],{tableLayout:"auto",columns:r,dataSource:t,pagination:!1})))))}}t["default"]=Object(p["c"])(e=>{var t=e.serverRoute;return{serverRoute:t}})(_)},x1Ya:function(e,t,n){"use strict";var r=n("jo6Y"),i=n.n(r),o=n("QbLZ"),a=n.n(o),s=n("iCc5"),l=n.n(s),c=n("FYw3"),u=n.n(c),h=n("mRg0"),f=n.n(h),d=n("q1tI"),p=n.n(d),m=n("17x9"),g=n.n(m),v=n("TSYQ"),y=n.n(v),b=n("VCL8"),w=function(e){function t(n){l()(this,t);var r=u()(this,e.call(this,n));r.handleChange=function(e){var t=r.props,n=t.disabled,i=t.onChange;n||("checked"in r.props||r.setState({checked:e.target.checked}),i&&i({target:a()({},r.props,{checked:e.target.checked}),stopPropagation:function(){e.stopPropagation()},preventDefault:function(){e.preventDefault()},nativeEvent:e.nativeEvent}))},r.saveInput=function(e){r.input=e};var i="checked"in n?n.checked:n.defaultChecked;return r.state={checked:i},r}return f()(t,e),t.getDerivedStateFromProps=function(e,t){return"checked"in e?a()({},t,{checked:e.checked}):null},t.prototype.focus=function(){this.input.focus()},t.prototype.blur=function(){this.input.blur()},t.prototype.render=function(){var e,t=this.props,n=t.prefixCls,r=t.className,o=t.style,s=t.name,l=t.id,c=t.type,u=t.disabled,h=t.readOnly,f=t.tabIndex,d=t.onClick,m=t.onFocus,g=t.onBlur,v=t.autoFocus,b=t.value,w=i()(t,["prefixCls","className","style","name","id","type","disabled","readOnly","tabIndex","onClick","onFocus","onBlur","autoFocus","value"]),x=Object.keys(w).reduce(function(e,t){return"aria-"!==t.substr(0,5)&&"data-"!==t.substr(0,5)&&"role"!==t||(e[t]=w[t]),e},{}),_=this.state.checked,E=y()(n,r,(e={},e[n+"-checked"]=_,e[n+"-disabled"]=u,e));return p.a.createElement("span",{className:E,style:o},p.a.createElement("input",a()({name:s,id:l,type:c,readOnly:h,disabled:u,tabIndex:f,className:n+"-input",checked:!!_,onClick:d,onFocus:m,onBlur:g,onChange:this.handleChange,autoFocus:v,ref:this.saveInput,value:b},x)),p.a.createElement("span",{className:n+"-inner"}))},t}(d["Component"]);w.propTypes={prefixCls:g.a.string,className:g.a.string,style:g.a.object,name:g.a.string,id:g.a.string,type:g.a.string,defaultChecked:g.a.oneOfType([g.a.number,g.a.bool]),checked:g.a.oneOfType([g.a.number,g.a.bool]),disabled:g.a.bool,onFocus:g.a.func,onBlur:g.a.func,onChange:g.a.func,onClick:g.a.func,tabIndex:g.a.oneOfType([g.a.string,g.a.number]),readOnly:g.a.bool,autoFocus:g.a.bool,value:g.a.any},w.defaultProps={prefixCls:"rc-checkbox",className:"",style:{},type:"checkbox",defaultChecked:!1,onFocus:function(){},onBlur:function(){},onChange:function(){}},Object(b["polyfill"])(w);var x=w;t["a"]=x},x6Kt:function(e,t,n){"use strict";var r=n("mrSG"),i=n("y+Vt");function o(e,t){var n,r,i,o,a,s=t.x,l=t.y,c=t.width,u=t.height,h=t.r;c<0&&(s+=c,c=-c),u<0&&(l+=u,u=-u),"number"===typeof h?n=r=i=o=h:h instanceof Array?1===h.length?n=r=i=o=h[0]:2===h.length?(n=i=h[0],r=o=h[1]):3===h.length?(n=h[0],r=o=h[1],i=h[2]):(n=h[0],r=h[1],i=h[2],o=h[3]):n=r=i=o=0,n+r>c&&(a=n+r,n*=c/a,r*=c/a),i+o>c&&(a=i+o,i*=c/a,o*=c/a),r+i>u&&(a=r+i,r*=u/a,i*=u/a),n+o>u&&(a=n+o,n*=u/a,o*=u/a),e.moveTo(s+n,l),e.lineTo(s+c-r,l),0!==r&&e.arc(s+c-r,l+r,r,-Math.PI/2,0),e.lineTo(s+c,l+u-i),0!==i&&e.arc(s+c-i,l+u-i,i,0,Math.PI/2),e.lineTo(s+o,l+u),0!==o&&e.arc(s+o,l+u-o,o,Math.PI/2,Math.PI),e.lineTo(s,l+n),0!==n&&e.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}var a=n("nPnh"),s=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),l={},c=function(e){function t(t){return e.call(this,t)||this}return Object(r["a"])(t,e),t.prototype.getDefaultShape=function(){return new s},t.prototype.buildPath=function(e,t){var n,r,i,s;if(this.subPixelOptimize){var c=Object(a["c"])(l,t,this.style);n=c.x,r=c.y,i=c.width,s=c.height,c.r=t.r,t=c}else n=t.x,r=t.y,i=t.width,s=t.height;t.r?o(e,t):e.rect(n,r,i,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(i["b"]);c.prototype.type="rect";t["a"]=c},xEkU:function(e,t,n){(function(t){for(var r=n("bQgK"),i="undefined"===typeof window?t:window,o=["moz","webkit"],a="AnimationFrame",s=i["request"+a],l=i["cancel"+a]||i["cancelRequest"+a],c=0;!s&&c=55296&&s<=57343){if(s>=55296&&s<=56319&&r+1=56320&&l<=57343)){u+=encodeURIComponent(e[r]+e[r+1]),r++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[r]);return u}o.defaultChars=";/?:@&=+$,-_.!~*'()#",o.componentChars="-_.!~*'()",e.exports=o},xI0J:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.create=t.connect=t.Provider=void 0;var r=n("Z4ex"),i=c(r),o=n("V/6I"),a=c(o),s=n("luuN"),l=c(s);function c(e){return e&&e.__esModule?e:{default:e}}t.Provider=i.default,t.connect=a.default,t.create=l.default},xJie:function(e,t,n){var r=n("oxo0"),i=n("OeOC"),o=n("Lnex")(!1),a=n("J57/")("IE_PROTO");e.exports=function(e,t){var n,s=i(e),l=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);while(t.length>l)r(s,n=t[l++])&&(~o(c,n)||c.push(n));return c}},xKz9:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=u;var r=o(n("q1tI")),i=o(n("CnBM"));function o(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},xg5P:function(e,t,n){"use strict";n.r(t),n.d(t,"_onCreate",function(){return h}),n.d(t,"getApp",function(){return f}),n.d(t,"_DvaContainer",function(){return d});var r=n("p0pE"),i=n.n(r),o=n("Hg0r"),a=n("q1tI"),s=n("0Wa5"),l=n.n(s),c=n("RFCh"),u=null;function h(){var e=n("PszG"),t=e.mergeConfig("dva");return u=Object(o["a"])(i()({history:c["default"]},t.config||{},window.g_useSSR?{initialState:window.g_initialData}:{})),u.use(l()()),(t.plugins||[]).forEach(e=>{u.use(e)}),u.model(i()({namespace:"auth"},n("dX6P").default)),u.model(i()({namespace:"config"},n("6lKK").default)),u.model(i()({namespace:"coupon"},n("eOCx").default)),u.model(i()({namespace:"knowledge"},n("mHNb").default)),u.model(i()({namespace:"layout"},n("7tDr").default)),u.model(i()({namespace:"notice"},n("lETv").default)),u.model(i()({namespace:"order"},n("3moC").default)),u.model(i()({namespace:"passport"},n("wD64").default)),u.model(i()({namespace:"payment"},n("N9RS").default)),u.model(i()({namespace:"plan"},n("GmDa").default)),u.model(i()({namespace:"serverGroup"},n("ZlA7").default)),u.model(i()({namespace:"serverHysteria"},n("hjwd").default)),u.model(i()({namespace:"serverManage"},n("1dD/").default)),u.model(i()({namespace:"serverRoute"},n("0fn0").default)),u.model(i()({namespace:"serverShadowsocks"},n("LMyI").default)),u.model(i()({namespace:"serverTrojan"},n("lWxU").default)),u.model(i()({namespace:"serverVless"},n("nPtr").default)),u.model(i()({namespace:"serverVmess"},n("wtDr").default)),u.model(i()({namespace:"stat"},n("T4gb").default)),u.model(i()({namespace:"system"},n("gENZ").default)),u.model(i()({namespace:"theme"},n("O8oq").default)),u.model(i()({namespace:"ticket"},n("e+9n").default)),u.model(i()({namespace:"user"},n("hlQx").default)),u}function f(){return u}class d extends a["Component"]{render(){var e=f();return e.router(()=>this.props.children),e.start()()}}},"y+Vt":function(e,t,n){"use strict";var r=n("mrSG"),i=n("Gev7"),o=n("IMiH");function a(e,t,n,r,i,o,a){if(0===i)return!1;var s=i,l=0,c=e;if(a>t+s&&a>r+s||ae+s&&o>n+s||ot+f&&h>r+f&&h>o+f&&h>l+f||he+f&&u>n+f&&u>i+f&&u>a+f||ut+u&&c>r+u&&c>o+u||ce+u&&l>n+u&&l>i+u||ln||u+ci&&(i+=f);var p=Math.atan2(l,s);return p<0&&(p+=f),p>=r&&p<=i||p+f>=r&&p+f<=i}function p(e,t,n,r,i,o){if(o>t&&o>r||oi?s:0}var m=o["a"].CMD,g=2*Math.PI,v=1e-4;function y(e,t){return Math.abs(e-t)t&&u>r&&u>o&&u>l||u1&&x(),p=s["a"](t,r,o,l,w[0]),d>1&&(m=s["a"](t,r,o,l,w[1]))),2===d?vt&&l>r&&l>o||l=0&&u<=1){for(var h=0,f=s["h"](t,r,o,u),d=0;dn||s<-n)return 0;var l=Math.sqrt(n*n-s*s);b[0]=-l,b[1]=l;var c=Math.abs(r-i);if(c<1e-4)return 0;if(c>=g-1e-4){r=0,i=g;var u=o?1:-1;return a>=b[0]+e&&a<=b[1]+e?u:0}if(r>i){var h=r;r=i,i=h}r<0&&(r+=g,i+=g);for(var f=0,d=0;d<2;d++){var p=b[d];if(p+e>a){var m=Math.atan2(s,p);u=o?1:-1;m<0&&(m=g+m),(m>=r&&m<=i||m+g>=r&&m+g<=i)&&(m>Math.PI/2&&m<1.5*Math.PI&&(u=-u),f+=u)}}return f}function k(e,t,n,r,i){for(var o,s,u=e.data,h=e.len(),f=0,g=0,v=0,b=0,w=0,x=0;x1&&(n||(f+=p(g,v,b,w,r,i))),C&&(g=u[x],v=u[x+1],b=g,w=v),k){case m.M:b=u[x++],w=u[x++],g=b,v=w;break;case m.L:if(n){if(a(g,v,u[x],u[x+1],t,r,i))return!0}else f+=p(g,v,u[x],u[x+1],r,i)||0;g=u[x++],v=u[x++];break;case m.C:if(n){if(l(g,v,u[x++],u[x++],u[x++],u[x++],u[x],u[x+1],t,r,i))return!0}else f+=_(g,v,u[x++],u[x++],u[x++],u[x++],u[x],u[x+1],r,i)||0;g=u[x++],v=u[x++];break;case m.Q:if(n){if(c(g,v,u[x++],u[x++],u[x],u[x+1],t,r,i))return!0}else f+=E(g,v,u[x++],u[x++],u[x],u[x+1],r,i)||0;g=u[x++],v=u[x++];break;case m.A:var O=u[x++],T=u[x++],L=u[x++],A=u[x++],P=u[x++],j=u[x++];x+=1;var M=!!(1-u[x++]);o=Math.cos(P)*L+O,s=Math.sin(P)*A+T,C?(b=o,w=s):f+=p(g,v,o,s,r,i);var R=(r-O)*A/L+O;if(n){if(d(O,T,A,P,P+j,M,t,R,i))return!0}else f+=S(O,T,A,P,P+j,M,R,i);g=Math.cos(P+j)*L+O,v=Math.sin(P+j)*A+T;break;case m.R:b=g=u[x++],w=v=u[x++];var N=u[x++],D=u[x++];if(o=b+N,s=w+D,n){if(a(b,w,o,w,t,r,i)||a(o,w,o,s,t,r,i)||a(o,s,b,s,t,r,i)||a(b,s,b,w,t,r,i))return!0}else f+=p(o,w,o,s,r,i),f+=p(b,s,b,w,r,i);break;case m.Z:if(n){if(a(g,v,b,w,t,r,i))return!0}else f+=p(g,v,b,w,r,i);g=b,v=w;break}}return n||y(v,w)||(f+=p(g,v,b,w,r,i)||0),0!==f}function C(e,t,n){return k(e,0,!1,t,n)}function O(e,t,n,r){return k(e,t,!0,n,r)}var T=n("bYtY"),L=n("Qe9p"),A=n("LPTA"),P=n("S8SX"),j=n("hYLj");n.d(t,"a",function(){return M});var M=Object(T["i"])({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},i["b"]),R={style:Object(T["i"])({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},i["a"].style)},N=j["a"].concat(["invisible","culling","z","z2","zlevel","parent"]),D=function(e){function t(t){return e.call(this,t)||this}return Object(r["a"])(t,e),t.prototype.update=function(){var n=this;e.prototype.update.call(this);var r=this.style;if(r.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(e){n.buildPath(e,n.shape)}),i.silent=!0;var o=i.style;for(var a in r)o[a]!==r[a]&&(o[a]=r[a]);o.fill=r.fill?r.decal:null,o.decal=null,o.shadowColor=null,r.strokeFirst&&(o.stroke=null);for(var s=0;s.5?A["a"]:t>.2?A["c"]:A["d"]}if(e)return A["d"]}return A["a"]},t.prototype.getInsideTextStroke=function(e){var t=this.style.fill;if(Object(T["y"])(t)){var n=this.__zr,r=!(!n||!n.isDarkMode()),i=Object(L["c"])(e,0)0))},t.prototype.hasFill=function(){var e=this.style,t=e.fill;return null!=t&&"none"!==t},t.prototype.getBoundingRect=function(){var e=this._rect,t=this.style,n=!e;if(n){var r=!1;this.path||(r=!0,this.createPathProxy());var i=this.path;(r||this.__dirty&P["b"])&&(i.beginPath(),this.buildPath(i,this.shape,!1),this.pathUpdated()),e=i.getBoundingRect()}if(this._rect=e,this.hasStroke()&&this.path&&this.path.len()>0){var o=this._rectStroke||(this._rectStroke=e.clone());if(this.__dirty||n){o.copy(e);var a=t.strokeNoScale?this.getLineScale():1,s=t.lineWidth;if(!this.hasFill()){var l=this.strokeContainThreshold;s=Math.max(s,null==l?4:l)}a>1e-10&&(o.width+=s/a,o.height+=s/a,o.x-=s/a/2,o.y-=s/a/2)}return o}return e},t.prototype.contain=function(e,t){var n=this.transformCoordToLocal(e,t),r=this.getBoundingRect(),i=this.style;if(e=n[0],t=n[1],r.contain(e,t)){var o=this.path;if(this.hasStroke()){var a=i.lineWidth,s=i.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),O(o,a/s,e,t)))return!0}if(this.hasFill())return C(o,e,t)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=P["b"],this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(e){return this.animate("shape",e)},t.prototype.updateDuringAnimation=function(e){"style"===e?this.dirtyStyle():"shape"===e?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(t,n){"shape"===t?this.setShape(n):e.prototype.attrKV.call(this,t,n)},t.prototype.setShape=function(e,t){var n=this.shape;return n||(n=this.shape={}),"string"===typeof e?n[e]=t:Object(T["l"])(n,e),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&P["b"])},t.prototype.createStyle=function(e){return Object(T["g"])(M,e)},t.prototype._innerSaveToNormal=function(t){e.prototype._innerSaveToNormal.call(this,t);var n=this._normalState;t.shape&&!n.shape&&(n.shape=Object(T["l"])({},this.shape))},t.prototype._applyStateObj=function(t,n,r,i,o,a){e.prototype._applyStateObj.call(this,t,n,r,i,o,a);var s,l=!(n&&i);if(n&&n.shape?o?i?s=n.shape:(s=Object(T["l"])({},r.shape),Object(T["l"])(s,n.shape)):(s=Object(T["l"])({},i?this.shape:r.shape),Object(T["l"])(s,n.shape)):l&&(s=r.shape),s)if(o){this.shape=Object(T["l"])({},this.shape);for(var c={},u=Object(T["B"])(s),h=0;h-1}function G(e,t){var n=this.__data__,r=J(n,e);return r<0?n.push([e,t]):n[r][1]=t,this}function q(e){var t=-1,n=e?e.length:0;this.clear();while(++t>1,u=23===t?A(2,-24)-A(2,-77):0,h=0,f=e<0||0===e&&1/e<0?1:0;for(e=L(e),e!=e||e===O?(i=e!=e?1:0,r=l):(r=P(j(e)/M),e*(o=A(2,-r))<1&&(r--,o*=2),e+=r+c>=1?u/o:u*A(2,1-c),e*o>=2&&(r++,o/=2),r+c>=l?(i=0,r=l):r+c>=1?(i=(e*o-1)*A(2,t),r+=c):(i=e*A(2,c-1)*A(2,t),r=0));t>=8;a[h++]=255&i,i/=256,t-=8);for(r=r<0;a[h++]=255&r,r/=256,s-=8);return a[--h]|=128*f,a}function V(e,t,n){var r,i=8*n-t-1,o=(1<>1,s=i-7,l=n-1,c=e[l--],u=127&c;for(c>>=7;s>0;u=256*u+e[l],l--,s-=8);for(r=u&(1<<-s)-1,u>>=-s,s+=t;s>0;r=256*r+e[l],l--,s-=8);if(0===u)u=1-a;else{if(u===o)return r?NaN:c?-O:O;r+=A(2,t),u-=a}return(c?-1:1)*r*A(2,u-t)}function W(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function H(e){return[255&e]}function U(e){return[255&e,e>>8&255]}function z(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function G(e){return B(e,52,8)}function q(e){return B(e,23,4)}function K(e,t,n){m(e[w],t,{get:function(){return this[n]}})}function Y(e,t,n,r){var i=+n,o=d(i);if(o+t>e[$])throw C(_);var a=e[I]._b,s=o+e[F],l=a.slice(s,s+t);return r?l:l.reverse()}function X(e,t,n,r,i,o){var a=+n,s=d(a);if(s+t>e[$])throw C(_);for(var l=e[I]._b,c=s+e[F],u=r(+i),h=0;hee;)(Q=J[ee++])in E||s(E,Q,T[Q]);o||(Z.constructor=E)}var te=new S(new E(2)),ne=S[w].setInt8;te.setInt8(0,2147483648),te.setInt8(1,2147483649),!te.getInt8(0)&&te.getInt8(1)||l(S[w],{setInt8:function(e,t){ne.call(this,e,t<<24>>24)},setUint8:function(e,t){ne.call(this,e,t<<24>>24)}},!0)}else E=function(e){u(this,E,y);var t=d(e);this._b=g.call(new Array(t),0),this[$]=t},S=function(e,t,n){u(this,S,b),u(e,E,b);var r=e[$],i=h(t);if(i<0||i>r)throw C("Wrong offset!");if(n=void 0===n?r-i:f(n),i+n>r)throw C(x);this[I]=e,this[F]=i,this[$]=n},i&&(K(E,N,"_l"),K(S,R,"_b"),K(S,N,"_l"),K(S,D,"_o")),l(S[w],{getInt8:function(e){return Y(this,1,e)[0]<<24>>24},getUint8:function(e){return Y(this,1,e)[0]},getInt16:function(e){var t=Y(this,2,e,arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=Y(this,2,e,arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return W(Y(this,4,e,arguments[1]))},getUint32:function(e){return W(Y(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return V(Y(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return V(Y(this,8,e,arguments[1]),52,8)},setInt8:function(e,t){X(this,1,e,H,t)},setUint8:function(e,t){X(this,1,e,H,t)},setInt16:function(e,t){X(this,2,e,U,t,arguments[2])},setUint16:function(e,t){X(this,2,e,U,t,arguments[2])},setInt32:function(e,t){X(this,4,e,z,t,arguments[2])},setUint32:function(e,t){X(this,4,e,z,t,arguments[2])},setFloat32:function(e,t){X(this,4,e,q,t,arguments[2])},setFloat64:function(e,t){X(this,8,e,G,t,arguments[2])}});v(E,y),v(S,b),s(S[w],a.VIEW,!0),t[y]=E,t[b]=S},yLpj:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"===typeof window&&(n=window)}e.exports=n},yQtW:function(e,t,n){(function(e,r,i){var o=n("qfHW"),a=n("P7XM"),s=n("43KI"),l=t.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},c=t.IncomingMessage=function(t,n,a,l){var c=this;if(s.Readable.call(c),c._mode=a,c.headers={},c.rawHeaders=[],c.trailers={},c.rawTrailers=[],c.on("end",function(){e.nextTick(function(){c.emit("close")})}),"fetch"===a){if(c._fetchResponse=n,c.url=n.url,c.statusCode=n.status,c.statusMessage=n.statusText,n.headers.forEach(function(e,t){c.headers[t.toLowerCase()]=e,c.rawHeaders.push(t,e)}),o.writableStream){var u=new WritableStream({write:function(e){return new Promise(function(t,n){c._destroyed?n():c.push(new r(e))?t():c._resumeFetch=t})},close:function(){i.clearTimeout(l),c._destroyed||c.push(null)},abort:function(e){c._destroyed||c.emit("error",e)}});try{return void n.body.pipeTo(u).catch(function(e){i.clearTimeout(l),c._destroyed||c.emit("error",e)})}catch(e){}}var h=n.body.getReader();function f(){h.read().then(function(e){if(!c._destroyed){if(e.done)return i.clearTimeout(l),void c.push(null);c.push(new r(e.value)),f()}}).catch(function(e){i.clearTimeout(l),c._destroyed||c.emit("error",e)})}f()}else{c._xhr=t,c._pos=0,c.url=t.responseURL,c.statusCode=t.status,c.statusMessage=t.statusText;var d=t.getAllResponseHeaders().split(/\r?\n/);if(d.forEach(function(e){var t=e.match(/^([^:]+):\s*(.*)/);if(t){var n=t[1].toLowerCase();"set-cookie"===n?(void 0===c.headers[n]&&(c.headers[n]=[]),c.headers[n].push(t[2])):void 0!==c.headers[n]?c.headers[n]+=", "+t[2]:c.headers[n]=t[2],c.rawHeaders.push(t[1],t[2])}}),c._charset="x-user-defined",!o.overrideMimeType){var p=c.rawHeaders["mime-type"];if(p){var m=p.match(/;\s*charset=([^;])(;|$)/);m&&(c._charset=m[1].toLowerCase())}c._charset||(c._charset="utf-8")}}};a(c,s.Readable),c.prototype._read=function(){var e=this,t=e._resumeFetch;t&&(e._resumeFetch=null,t())},c.prototype._onXHRProgress=function(){var e=this,t=e._xhr,n=null;switch(e._mode){case"text:vbarray":if(t.readyState!==l.DONE)break;try{n=new i.VBArray(t.responseBody).toArray()}catch(e){}if(null!==n){e.push(new r(n));break}case"text":try{n=t.responseText}catch(t){e._mode="text:vbarray";break}if(n.length>e._pos){var o=n.substr(e._pos);if("x-user-defined"===e._charset){for(var a=new r(o.length),s=0;se._pos&&(e.push(new r(new Uint8Array(c.result.slice(e._pos)))),e._pos=c.result.byteLength)},c.onload=function(){e.push(null)},c.readAsArrayBuffer(n);break}e._xhr.readyState===l.DONE&&"ms-stream"!==e._mode&&e.push(null)}}).call(this,n("Q2Ig"),n("tjlA").Buffer,n("yLpj"))},yVla:function(e,t,n){"use strict";t.__esModule=!0;t.canUseDOM=!("undefined"===typeof window||!window.document||!window.document.createElement),t.getConfirmation=function(e,t){return t(window.confirm(e))},t.supportsHistory=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history},t.supportsPopStateOnHashChange=function(){return-1===window.navigator.userAgent.indexOf("Trident")},t.supportsGoWithoutReloadUsingHash=function(){return-1===window.navigator.userAgent.indexOf("Firefox")},t.isExtraneousPopstateEvent=function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")}},yWgo:function(e,t,n){"use strict";n.d(t,"d",function(){return a}),n.d(t,"f",function(){return s}),n.d(t,"i",function(){return l}),n.d(t,"j",function(){return c}),n.d(t,"e",function(){return u}),n.d(t,"b",function(){return h}),n.d(t,"a",function(){return f}),n.d(t,"h",function(){return d}),n.d(t,"g",function(){return p}),n.d(t,"c",function(){return m});n("miYZ");var r=n("tsqr"),i=(n("wd/R"),n("+QRC")),o=n.n(i);function a(e){return document.cookie.split("; ").reduce((t,n)=>{var r=n.split("=");return r[0]===e?decodeURIComponent(r[1]):t},"")}function s(){return-1!==window.navigator.userAgent.toLowerCase().indexOf("mobile")}function l(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:525600,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"/",i=arguments.length>4?arguments[4]:void 0,o=new Date(Date.now()+6e4*n).toGMTString();document.cookie=e+"=".concat(encodeURIComponent(t),";expires=").concat(o,";path=").concat(r)+(i?";domain=".concat(i):"")}function c(e,t){try{if(localStorage.getItem("habit")){var n=localStorage.getItem("habit");n[e]=t,localStorage.setItem("habit",JSON.stringify(n))}else localStorage.setItem("habit",JSON.stringify({[e]:t}))}catch(n){localStorage.setItem("habit",JSON.stringify({[e]:t}))}}function u(e){try{if(!localStorage.getItem("habit"))return!1;var t=JSON.parse(localStorage.getItem("habit"));return t[e]}catch(e){return!1}}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;e=parseInt(e);var t=1024,n=1048576,r=1073741824;return e>r?(e/r).toFixed(2)+" GB":e>n?(e/n).toFixed(2)+" MB":e>t?(e/t).toFixed(2)+" KB":e<0?0:e.toFixed(2)+" B"}function f(e){o()(e),r["a"].success("复制成功")}function d(e){return window.localStorage.setItem("authorization",e)}function p(){return window.localStorage.removeItem("authorization")}function m(){return window.localStorage.getItem("authorization")}},ykC2:function(e,t,n){"use strict";n("bbsP");var r=n("/wGt"),i=(n("+L6B"),n("2/Rp")),o=(n("5Dmo"),n("3S7+")),a=(n("Pwec"),n("CtXQ")),s=(n("OaEy"),n("2fM7")),l=(n("5NDa"),n("5rEg")),c=n("p0pE"),u=n.n(c),h=n("q1tI"),f=n.n(h),d=n("/MKj"),p=(n("lc5D"),n("VeWa"),n("umNf"),n("8zNj"));var w=n("lc5D"),x=n.n(w),R=(n("bbsP"),n("/wGt")),H=(n("/xke"),n("TeRw"));class m extends f.a.Component{constructor(e){super(e),this.state={server:this.props.record||{tls:0,rate:1},visible:!1,childDrawer:{visible:!1}}}onShow(){if(this.setState({visible:!this.state.visible}),this.state.server.networkSettings&&"object"===typeof this.state.server.networkSettings){var e=this.state.server;e.networkSettings=JSON.stringify(e["networkSettings"],null,2),this.setState({server:e})}}save(){try{var e=this.state.server;e.networkSettings=e.networkSettings?"string"===typeof e.networkSettings&&JSON.parse(e.networkSettings):null,this.props.dispatch({type:"serverTrojan/save",params:e,callback:()=>{this.onShow()}})}catch(e){H["a"].error({message:"请求失败",description:"传输协议配置格式有误"})}}showChildDrawer(e,t){this.setState({childDrawer:u()({},this.state.childDrawer,{visible:!this.state.childDrawer.visible,title:e,type:t})})}changeServer(e,t){this.setState({server:u()({},this.state.server,{[e]:t})})}renderChildDrawer(){var e=this.state.server,t=e.networkSettings;switch(this.state.childDrawer.type){case"networkSettings":var o={tcp:"",ws:JSON.stringify({path:"/",headers:{Host:"v2ray.com"}},null,4),grpc:JSON.stringify({serviceName:"GunService"},null,4)};return f.a.createElement("div",{id:"v2ray-protocol"},f.a.createElement("div",{className:"form-group"},f.a.createElement("label",null,"协议详细配置",f.a.createElement("a",{href:"https://www.v2ray.com/chapter_02/05_transport.html"},f.a.createElement(l["a"],{type:"link"}),"参考")),f.a.createElement(x.a,{placeholder:(null===o||void 0===o?void 0:o[this.state.server.network])||"",mode:"json",theme:"github",fontSize:14,showPrintMargin:!0,showGutter:!0,highlightActiveLine:!0,value:t||"",onChange:e=>this.formChange("networkSettings",e),setOptions:{enableBasicAutocompletion:!1,enableLiveAutocompletion:!1,enableSnippets:!1,showLineNumbers:!0,tabSize:2},ref:"editor"})))}}formChange(e,t){this.setState({server:u()({},this.state.server,{[e]:t})})}render(){var e=this.state.server,t=this.props.serverTrojan.saveLoading,n=this.props.serverManage.servers,c=this.props.serverGroup.groups,u=this.props.serverRoute.routes;return f.a.createElement(f.a.Fragment,null,f.a.cloneElement(this.props.children,{onClick:()=>this.onShow()}),f.a.createElement(r["a"],{id:"server",maskClosable:!0,title:e.id?"编辑节点":"新建节点",width:"80%",visible:this.state.visible,onClose:()=>this.onShow()},f.a.createElement("div",null,f.a.createElement("div",{className:"row"},f.a.createElement("div",{className:"form-group col-8"},f.a.createElement("label",null,"节点名称"),f.a.createElement(l["a"],{placeholder:"请输入节点名称",value:e.name,onChange:e=>this.formChange("name",e.target.value)})),f.a.createElement("div",{className:"form-group col-4"},f.a.createElement("label",null,"倍率"),f.a.createElement(l["a"],{addonAfter:"x",placeholder:"请输入节点倍率",value:e.rate,onChange:e=>this.formChange("rate",e.target.value)}))),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",null,"节点标签"),f.a.createElement(s["a"],{mode:"tags",value:e.tags||[],style:{width:"100%"},placeholder:"输入后回车添加标签",onChange:e=>this.formChange("tags",e.length>0?e:null)})),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",null,"订阅排除地区"),f.a.createElement(s["a"],{mode:"tags",value:e.excludes||[],style:{width:"100%"},placeholder:"输入后回车添加排除规则",onChange:e=>this.formChange("excludes",e.length>0?e:null)})),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",null,"节点IPs"),f.a.createElement(s["a"],{mode:"tags",value:e.ips||[],style:{width:"100%"},placeholder:"输入后回车添加节点IP",onChange:e=>this.formChange("ips",e.length>0?e:null)})),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",null,"权限组 ",f.a.createElement(p["a"],null,f.a.createElement("a",{href:"javascript:(0);"},"添加权限组"))),f.a.createElement(s["a"],{mode:"multiple",value:e.group_id,placeholder:"请选择权限组",style:{width:"100%"},onChange:e=>this.formChange("group_id",e)},c.map(e=>{return f.a.createElement(s["a"].Option,{key:e.id},e.name)}))),f.a.createElement("div",{className:"row"},f.a.createElement("div",{className:"form-group col-md-12 col-xs-12"},f.a.createElement("label",null,"节点地址"),f.a.createElement(l["a"],{placeholder:"地址或IP",value:e.host,onChange:e=>this.formChange("host",e.target.value)}))),f.a.createElement("div",{className:"row"},f.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},f.a.createElement("label",null,"连接端口"),f.a.createElement(l["a"],{placeholder:"用户连接端口",value:e.port,onChange:e=>{this.formChange("port",e.target.value)}})),f.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},f.a.createElement("label",null,"服务端口"),f.a.createElement(l["a"],{placeholder:"服务端开放端口",value:e.server_port,onChange:e=>{this.formChange("server_port",e.target.value)}})),f.a.createElement("div",{className:"form-group col-md-4 col-xs-12"},f.a.createElement("label",null,f.a.createElement(o["a"],{placement:"top",title:"使用自签名证书需要允许不安全,用户才可以连接"},"允许不安全 ",f.a.createElement(a["a"],{type:"question-circle"}))),f.a.createElement(s["a"],{value:parseInt(e.allow_insecure)?1:0,placeholder:"允许不安全",style:{width:"100%"},onChange:e=>this.formChange("allow_insecure",e)},f.a.createElement(s["a"].Option,{key:0,value:0},"否"),f.a.createElement(s["a"].Option,{key:1,value:1},"是")))),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",null,"服务器名称指示(sni)"),f.a.createElement(l["a"],{placeholder:"当节点地址与证书不一致时用于证书验证",value:e.server_name,onChange:e=>this.formChange("server_name",e.target.value)})),f.a.createElement("div",{className:"row"},f.a.createElement("div",{className:"form-group col-md-12 col-xs-12"},f.a.createElement("label",null,"传输协议 ",f.a.createElement("a",{href:"javascript:void(0);",onClick:()=>this.showChildDrawer("编辑协议配置","networkSettings")},"编辑配置")),f.a.createElement(s["a"],{value:e.network,placeholder:"选择传输协议",style:{width:"100%"},onChange:e=>this.formChange("network",e)},f.a.createElement(s["a"].Option,{value:"tcp"},"TCP"),f.a.createElement(s["a"].Option,{value:"ws"},"WebSocket"),f.a.createElement(s["a"].Option,{value:"grpc"},"gRPC")))),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",null,f.a.createElement(o["a"],{placement:"top"},"父节点 ",f.a.createElement("a",{target:"_blank",href:"https://docs.v2board.com/use/node.html#父节点与子节点关系",rel:"noreferrer"},"更多解答"))),f.a.createElement(s["a"],{value:e.parent_id||"",onChange:e=>this.formChange("parent_id",e),style:{width:"100%"}},f.a.createElement(s["a"].Option,{value:""},"无"),n.map(t=>{if("trojan"===t.type&&t.id!==e.id)return f.a.createElement(s["a"].Option,{key:Math.random(),value:t.id},t.name)}))),f.a.createElement("div",{className:"form-group"},f.a.createElement("label",null,"路由组"),f.a.createElement(s["a"],{mode:"multiple",value:e.route_id||[],placeholder:"请选择路由组",style:{width:"100%"},onChange:e=>this.formChange("route_id",e.length>0?e:null)},u.map(e=>{return f.a.createElement(s["a"].Option,{key:e.id},e.remarks)})))),f.a.createElement("div",{className:"v2board-drawer-action"},f.a.createElement(i["a"],{style:{marginRight:8},onClick:()=>this.onShow()},"取消"),f.a.createElement(i["a"],{loading:t,onClick:()=>this.save(),type:"primary"},"提交")),f.a.createElement(R["a"],{closable:!1,id:"server",width:"80%",title:this.state.childDrawer.title,visible:this.state.childDrawer.visible,onClose:()=>this.showChildDrawer()},this.renderChildDrawer())))}}t["a"]=Object(d["c"])(e=>{var t=e.serverTrojan,n=e.serverGroup,r=e.serverManage,i=e.serverRoute;return{serverTrojan:t,serverGroup:n,serverManage:r,serverRoute:i}})(m)},yoD8:function(e,t,n){"use strict";var r=n("3Oj7"),i=[0,0],o=[0,0],a=new r["a"],s=new r["a"],l=function(){function e(e,t){this._corners=[],this._axes=[],this._origin=[0,0];for(var n=0;n<4;n++)this._corners[n]=new r["a"];for(n=0;n<2;n++)this._axes[n]=new r["a"];e&&this.fromBoundingRect(e,t)}return e.prototype.fromBoundingRect=function(e,t){var n=this._corners,i=this._axes,o=e.x,a=e.y,s=o+e.width,l=a+e.height;if(n[0].set(o,a),n[1].set(s,a),n[2].set(s,l),n[3].set(o,l),t)for(var c=0;c<4;c++)n[c].transform(t);r["a"].sub(i[0],n[1],n[0]),r["a"].sub(i[1],n[3],n[0]),i[0].normalize(),i[1].normalize();for(c=0;c<2;c++)this._origin[c]=i[c].dot(n[0])},e.prototype.intersect=function(e,t){var n=!0,i=!t;return a.set(1/0,1/0),s.set(0,0),!this._intersectCheckOneSide(this,e,a,s,i,1)&&(n=!1,i)?n:!this._intersectCheckOneSide(e,this,a,s,i,-1)&&(n=!1,i)?n:(i||r["a"].copy(t,n?a:s),n)},e.prototype._intersectCheckOneSide=function(e,t,n,a,s,l){for(var c=!0,u=0;u<2;u++){var h=this._axes[u];if(this._getProjMinMaxOnAxis(u,e._corners,i),this._getProjMinMaxOnAxis(u,t._corners,o),i[1]o[1]){if(c=!1,s)return c;var f=Math.abs(o[0]-i[1]),d=Math.abs(i[0]-o[1]);Math.min(f,d)>a.len()&&(f0?!0===a?r.scrollTop(t,b.top+w.top):!1===a?r.scrollTop(t,b.top+x.top):w.top<0?r.scrollTop(t,b.top+w.top):r.scrollTop(t,b.top+x.top):o||(a=void 0===a||!!a,a?r.scrollTop(t,b.top+w.top):r.scrollTop(t,b.top+x.top)),i&&(w.left<0||x.left>0?!0===s?r.scrollLeft(t,b.left+w.left):!1===s?r.scrollLeft(t,b.left+x.left):w.left<0?r.scrollLeft(t,b.left+w.left):r.scrollLeft(t,b.left+x.left):o||(s=void 0===s||!!s,s?r.scrollLeft(t,b.left+w.left):r.scrollLeft(t,b.left+x.left)))}e.exports=i},zxrt:function(e,t,n){"use strict";var r=n("WGNW"),i=n("88Vn"),o=n("yLMY"),a=n("7vYJ"),s=n("Spc3"),l=n("OsVd"),c=n("u8+u"),u=n("c0Oy").ArrayBuffer,h=n("VeyY"),f=o.ArrayBuffer,d=o.DataView,p=i.ABV&&u.isView,m=f.prototype.slice,g=i.VIEW,v="ArrayBuffer";r(r.G+r.W+r.F*(u!==f),{ArrayBuffer:f}),r(r.S+r.F*!i.CONSTR,v,{isView:function(e){return p&&p(e)||c(e)&&g in e}}),r(r.P+r.U+r.F*n("wUWy")(function(){return!new f(2).slice(1,void 0).byteLength}),v,{slice:function(e,t){if(void 0!==m&&void 0===t)return m.call(a(this),e);var n=a(this).byteLength,r=s(e,n),i=s(void 0===t?n:t,n),o=new(h(this,f))(l(i-r)),c=new d(this),u=new d(o),p=0;while(r-1}e.exports=i},"+Hau":function(e,t,n){"use strict";n.d(t,"d",function(){return s}),n.d(t,"c",function(){return l}),n.d(t,"b",function(){return u}),n.d(t,"a",function(){return c}),n.d(t,"e",function(){return f}),n.d(t,"i",function(){return p}),n.d(t,"B",function(){return m}),n.d(t,"y",function(){return v}),n.d(t,"m",function(){return y}),n.d(t,"q",function(){return b}),n.d(t,"l",function(){return x}),n.d(t,"h",function(){return _}),n.d(t,"r",function(){return w}),n.d(t,"n",function(){return S}),n.d(t,"j",function(){return k}),n.d(t,"w",function(){return j}),n.d(t,"f",function(){return M}),n.d(t,"o",function(){return C}),n.d(t,"u",function(){return T}),n.d(t,"z",function(){return I}),n.d(t,"s",function(){return D}),n.d(t,"k",function(){return A}),n.d(t,"x",function(){return E}),n.d(t,"g",function(){return P}),n.d(t,"p",function(){return L}),n.d(t,"v",function(){return N}),n.d(t,"A",function(){return R}),n.d(t,"t",function(){return z});var r=n("bYtY"),i=n("OELB"),o=n("71kh"),a=n("Qxkt"),s=1e3,l=60*s,u=60*l,c=24*u,f=365*c,d={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},h="{yyyy}-{MM}-{dd}",p={year:"{yyyy}",month:"{yyyy}-{MM}",day:h,hour:h+" "+d.hour,minute:h+" "+d.minute,second:h+" "+d.second,millisecond:d.none},g=["year","month","day","hour","minute","second","millisecond"],m=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function v(e,t){return e+="","0000".substr(0,t-e.length)+e}function y(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function b(e){return e===y(e)}function x(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function _(e,t,n,r){var s=i["l"](e),l=s[k(n)](),u=s[j(n)]()+1,c=Math.floor((u-1)/3)+1,f=s[M(n)](),d=s["get"+(n?"UTC":"")+"Day"](),h=s[C(n)](),p=(h-1)%12+1,g=s[T(n)](),m=s[I(n)](),y=s[D(n)](),b=r instanceof a["a"]?r:Object(o["d"])(r||o["a"])||Object(o["c"])(),x=b.getModel("time"),_=x.get("month"),w=x.get("monthAbbr"),O=x.get("dayOfWeek"),S=x.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,l+"").replace(/{yy}/g,l%100+"").replace(/{Q}/g,c+"").replace(/{MMMM}/g,_[u-1]).replace(/{MMM}/g,w[u-1]).replace(/{MM}/g,v(u,2)).replace(/{M}/g,u+"").replace(/{dd}/g,v(f,2)).replace(/{d}/g,f+"").replace(/{eeee}/g,O[d]).replace(/{ee}/g,S[d]).replace(/{e}/g,d+"").replace(/{HH}/g,v(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,v(p+"",2)).replace(/{h}/g,p+"").replace(/{mm}/g,v(g,2)).replace(/{m}/g,g+"").replace(/{ss}/g,v(m,2)).replace(/{s}/g,m+"").replace(/{SSS}/g,v(y,3)).replace(/{S}/g,y+"")}function w(e,t,n,i,o){var a=null;if(r["y"](n))a=n;else if(r["u"](n))a=n(e.value,t,{level:e.level});else{var s=r["l"]({},d);if(e.level>0)for(var l=0;l=0;--l)if(u[c]){a=u[c];break}a=a||s.none}if(r["r"](a)){var h=null==e.level?0:e.level>=0?e.level:a.length+e.level;h=Math.min(h,a.length-1),a=a[h]}}return _(new Date(e.value),a,o,i)}function O(e,t){var n=i["l"](e),r=n[j(t)]()+1,o=n[M(t)](),a=n[C(t)](),s=n[T(t)](),l=n[I(t)](),u=n[D(t)](),c=0===u,f=c&&0===l,d=f&&0===s,h=d&&0===a,p=h&&1===o,g=p&&1===r;return g?"year":p?"month":h?"day":d?"hour":f?"minute":c?"second":"millisecond"}function S(e,t,n){var o=r["w"](e)?i["l"](e):e;switch(t=t||O(e,n),t){case"year":return o[k(n)]();case"half-year":return o[j(n)]()>=6?1:0;case"quarter":return Math.floor((o[j(n)]()+1)/4);case"month":return o[j(n)]();case"day":return o[M(n)]();case"half-day":return o[C(n)]()/24;case"hour":return o[C(n)]();case"minute":return o[T(n)]();case"second":return o[I(n)]();case"millisecond":return o[D(n)]()}}function k(e){return e?"getUTCFullYear":"getFullYear"}function j(e){return e?"getUTCMonth":"getMonth"}function M(e){return e?"getUTCDate":"getDate"}function C(e){return e?"getUTCHours":"getHours"}function T(e){return e?"getUTCMinutes":"getMinutes"}function I(e){return e?"getUTCSeconds":"getSeconds"}function D(e){return e?"getUTCMilliseconds":"getMilliseconds"}function A(e){return e?"setUTCFullYear":"setFullYear"}function E(e){return e?"setUTCMonth":"setMonth"}function P(e){return e?"setUTCDate":"setDate"}function L(e){return e?"setUTCHours":"setHours"}function N(e){return e?"setUTCMinutes":"setMinutes"}function R(e){return e?"setUTCSeconds":"setSeconds"}function z(e){return e?"setUTCMilliseconds":"setMilliseconds"}},"+K+b":function(e,t,n){var r=n("JHRd");function i(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}e.exports=i},"+Qka":function(e,t,n){var r=n("fmRc"),i=n("t2Dn"),o=n("cq/+"),a=n("T1AV"),s=n("GoyQ"),l=n("mTTR"),u=n("itsj");function c(e,t,n,f,d){e!==t&&o(t,function(o,l){if(d||(d=new r),s(o))a(e,t,l,n,c,f,d);else{var h=f?f(u(e,l),o,l+"",e,t,d):void 0;void 0===h&&(h=o),i(e,l,h)}},l)}e.exports=c},"+TT/":function(e,t,n){"use strict";n.d(t,"a",function(){return f}),n.d(t,"d",function(){return d}),n.d(t,"f",function(){return h}),n.d(t,"b",function(){return p}),n.d(t,"e",function(){return g}),n.d(t,"c",function(){return m});var r=n("bYtY"),i=n("mFDi"),o=n("OELB"),a=n("7aKB"),s=r["j"],l=["left","right","top","bottom","width","height"],u=[["width","left","right"],["height","top","bottom"]];function c(e,t,n,r,i){var o=0,a=0;null==r&&(r=1/0),null==i&&(i=1/0);var s=0;t.eachChild(function(l,u){var c,f,d=l.getBoundingRect(),h=t.childAt(u+1),p=h&&h.getBoundingRect();if("horizontal"===e){var g=d.width+(p?-p.x+d.x:0);c=o+g,c>r||l.newline?(o=0,c=g,a+=s+n,s=d.height):s=Math.max(s,d.height)}else{var m=d.height+(p?-p.y+d.y:0);f=a+m,f>i||l.newline?(o+=s+n,a=0,f=m,s=d.width):s=Math.max(s,d.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===e?o=c+n:a=f+n)})}var f=c;r["h"](c,"vertical"),r["h"](c,"horizontal");function d(e,t,n){n=a["f"](n||0);var r=t.width,s=t.height,l=Object(o["m"])(e.left,r),u=Object(o["m"])(e.top,s),c=Object(o["m"])(e.right,r),f=Object(o["m"])(e.bottom,s),d=Object(o["m"])(e.width,r),h=Object(o["m"])(e.height,s),p=n[2]+n[0],g=n[1]+n[3],m=e.aspect;switch(isNaN(d)&&(d=r-c-g-l),isNaN(h)&&(h=s-f-p-u),null!=m&&(isNaN(d)&&isNaN(h)&&(m>r/s?d=.8*r:h=.8*s),isNaN(d)&&(d=m*h),isNaN(h)&&(h=d/m)),isNaN(l)&&(l=r-c-d-g),isNaN(u)&&(u=s-f-h-p),e.left||e.right){case"center":l=r/2-d/2-n[3];break;case"right":l=r-d-g;break}switch(e.top||e.bottom){case"middle":case"center":u=s/2-h/2-n[0];break;case"bottom":u=s-h-p;break}l=l||0,u=u||0,isNaN(d)&&(d=r-g-l-(c||0)),isNaN(h)&&(h=s-p-u-(f||0));var v=new i["a"](l+n[3],u+n[0],d,h);return v.margin=n,v}function h(e,t,n,o,a,s){var l,u=!a||!a.hv||a.hv[0],c=!a||!a.hv||a.hv[1],f=a&&a.boundingMode||"all";if(s=s||e,s.x=e.x,s.y=e.y,!u&&!c)return!1;if("raw"===f)l="group"===e.type?new i["a"](0,0,+t.width||0,+t.height||0):e.getBoundingRect();else if(l=e.getBoundingRect(),e.needLocalTransform()){var h=e.getLocalTransform();l=l.clone(),l.applyTransform(h)}var p=d(r["i"]({width:l.width,height:l.height},t),n,o),g=u?p.x-l.x:0,m=c?p.y-l.y:0;return"raw"===f?(s.x=g,s.y=m):(s.x+=g,s.y+=m),s===e&&e.markRedraw(),!0}function p(e){var t=e.layoutMode||e.constructor.layoutMode;return r["x"](t)?t:t?{type:t}:null}function g(e,t,n){var i=n&&n.ignoreSize;!r["r"](i)&&(i=[i,i]);var o=l(u[0],0),a=l(u[1],1);function l(n,r){var o={},a=0,l={},u=0,d=2;if(s(n,function(t){l[t]=e[t]}),s(n,function(e){c(t,e)&&(o[e]=l[e]=t[e]),f(o,e)&&a++,f(l,e)&&u++}),i[r])return f(t,n[1])?l[n[2]]=null:f(t,n[2])&&(l[n[1]]=null),l;if(u!==d&&a){if(a>=d)return o;for(var h=0;h0?"top":"bottom",r="center"):Object(f["h"])(o-x)?(i=n>0?"bottom":"top",r="center"):(i="middle",r=o>0&&o0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:r,textVerticalAlign:i}},e.makeAxisEventDataBase=function(e){var t={componentType:e.mainType,componentIndex:e.componentIndex};return t[e.mainType+"Index"]=e.componentIndex,t},e.isLabelSilent=function(e){var t=e.get("tooltip");return e.get("silent")||!(e.get("triggerEvent")||t&&t.show)},e}(),w={axisLine:function(e,t,n,i){var s=t.get(["axisLine","show"]);if("auto"===s&&e.handleAutoShown&&(s=e.handleAutoShown("axisLine")),s){var l=t.axis.getExtent(),u=i.transform,c=[l[0],0],f=[l[1],0],h=c[0]>f[0];u&&(Object(p["b"])(c,c,u),Object(p["b"])(f,f,u));var g=Object(r["l"])({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),m=new o["a"]({shape:{x1:c[0],y1:c[1],x2:f[0],y2:f[1]},style:g,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});a["subPixelOptimizeLine"](m.shape,m.style.lineWidth),m.anid="line",n.add(m);var v=t.get(["axisLine","symbol"]);if(null!=v){var y=t.get(["axisLine","symbolSize"]);Object(r["y"])(v)&&(v=[v,v]),(Object(r["y"])(y)||Object(r["w"])(y))&&(y=[y,y]);var b=Object(d["b"])(t.get(["axisLine","symbolOffset"])||0,y),x=y[0],_=y[1];Object(r["j"])([{rotate:e.rotation+Math.PI/2,offset:b[0],r:0},{rotate:e.rotation-Math.PI/2,offset:b[1],r:Math.sqrt((c[0]-f[0])*(c[0]-f[0])+(c[1]-f[1])*(c[1]-f[1]))}],function(t,r){if("none"!==v[r]&&null!=v[r]){var i=Object(d["a"])(v[r],-x/2,-_/2,x,_,g.stroke,!0),o=t.r+t.offset,a=h?f:c;i.attr({rotation:t.rotate,x:a[0]+o*Math.cos(e.rotation),y:a[1]-o*Math.sin(e.rotation),silent:!0,z2:11}),n.add(i)}})}}},axisTickLabel:function(e,t,n,i){var o=T(n,i,t,e),a=D(n,i,t,e);if(S(t,a,o),I(n,i,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var s=y(Object(r["D"])(a,function(e){return{label:e,priority:e.z2,defaultAttr:{ignore:e.ignore}}}));b(s)}},axisName:function(e,t,n,i){var o=Object(r["J"])(e.axisName,t.get("name"));if(o){var c,f,d=t.get("nameLocation"),h=e.nameDirection,p=t.getModel("nameTextStyle"),g=t.get("nameGap")||0,m=t.axis.getExtent(),v=m[0]>m[1]?-1:1,y=["start"===d?m[0]-v*g:"end"===d?m[1]+v*g:(m[0]+m[1])/2,M(d)?e.labelOffset+h*g:0],b=t.get("nameRotate");null!=b&&(b=b*x/180),M(d)?c=_.innerTextLayout(e.rotation,null!=b?b:e.rotation,h):(c=O(e.rotation,d,b||0,m),f=e.axisNameAvailableWidth,null!=f&&(f=Math.abs(f/Math.sin(c.rotation)),!isFinite(f)&&(f=null)));var w=p.getFont(),S=t.get("nameTruncate",!0)||{},k=S.ellipsis,j=Object(r["J"])(e.nameTruncateMaxWidth,S.maxWidth,f),C=new s["a"]({x:y[0],y:y[1],rotation:c.rotation,silent:_.isLabelSilent(t),style:Object(u["a"])(p,{text:o,font:w,overflow:"truncate",width:j,ellipsis:k,fill:p.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:p.get("align")||c.textAlign,verticalAlign:p.get("verticalAlign")||c.textVerticalAlign}),z2:1});if(a["setTooltipConfig"]({el:C,componentModel:t,itemName:o}),C.__fullText=o,C.anid="name",t.get("triggerEvent")){var T=_.makeAxisEventDataBase(t);T.targetType="axisName",T.name=o,Object(l["a"])(C).eventData=T}i.add(C),C.updateTransform(),n.add(C),C.decomposeTransform()}}};function O(e,t,n,r){var i,o,a=Object(f["p"])(n-e),s=r[0]>r[1],l="start"===t&&!s||"start"!==t&&s;return Object(f["h"])(a-x/2)?(o=l?"bottom":"top",i="center"):Object(f["h"])(a-1.5*x)?(o=l?"top":"bottom",i="center"):(o="middle",i=a<1.5*x&&a>x/2?l?"left":"right":l?"right":"left"),{rotation:a,textAlign:i,textVerticalAlign:o}}function S(e,t,n){if(!Object(g["j"])(e.axis)){var r=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],n=n||[];var o=t[0],a=t[1],s=t[t.length-1],l=t[t.length-2],u=n[0],c=n[1],f=n[n.length-1],d=n[n.length-2];!1===r?(k(o),k(u)):j(o,a)&&(r?(k(a),k(c)):(k(o),k(u))),!1===i?(k(s),k(f)):j(l,s)&&(i?(k(l),k(d)):(k(s),k(f)))}}function k(e){e&&(e.ignore=!0)}function j(e,t){var n=e&&e.getBoundingRect().clone(),r=t&&t.getBoundingRect().clone();if(n&&r){var i=h["c"]([]);return h["f"](i,i,-e.rotation),n.applyTransform(h["e"]([],i,e.getLocalTransform())),r.applyTransform(h["e"]([],i,t.getLocalTransform())),n.intersect(r)}}function M(e){return"middle"===e||"center"===e}function C(e,t,n,r,i){for(var s=[],l=[],u=[],c=0;ct&&(t=e[n]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,n=0;n10&&"cartesian2d"===l.type&&s){var c=l.getBaseAxis(),f=l.getOtherAxis(c),d=c.getExtent(),h=n.getDevicePixelRatio(),p=Math.abs(d[1]-d[0])*(h||1),g=Math.round(u/p);if(isFinite(g)&&g>1){"lttb"===s&&e.setData(a.lttbDownSample(a.mapDimension(f.dim),1/g));var m=void 0;Object(r["y"])(s)?m=i[s]:Object(r["u"])(s)&&(m=s),m&&e.setData(a.downSample(a.mapDimension(f.dim),1/g,m,o))}}}}}},"/f6Q":function(e,t,n){"use strict";var r=n("AGgm").isSpace;e.exports=function(e,t,n,i){var o,a,s,l,u=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(o=e.src.charCodeAt(u++),42!==o&&45!==o&&95!==o)return!1;a=1;while(u=0},t.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(l["a"]),f=c,d=n("Qe9p"),h=n("LcXL"),p=n("dqUG"),g=n("x6Kt"),m=n("IwbS"),v=n("fWwa"),y=n("eDfh"),b=n("eRkO"),x=n("+TT/"),_=n("sS/r"),w=n("oVpE"),O=n("s8Fb"),S=o["h"],k=o["j"],j=h["a"],M=function(e){function t(){var n=null!==e&&e.apply(this,arguments)||this;return n.type=t.type,n.newlineDisabled=!1,n}return Object(i["a"])(t,e),t.prototype.init=function(){this.group.add(this._contentGroup=new j),this.group.add(this._selectorGroup=new j),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(e,t,n){var r=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),e.get("show",!0)){var i=e.get("align"),a=e.get("orient");i&&"auto"!==i||(i="right"===e.get("left")&&"vertical"===a?"right":"left");var s=e.get("selector",!0),l=e.get("selectorPosition",!0);!s||l&&"auto"!==l||(l="horizontal"===a?"end":"start"),this.renderInner(i,e,t,n,s,a,l);var u=e.getBoxLayoutParams(),c={width:n.getWidth(),height:n.getHeight()},f=e.get("padding"),d=x["d"](u,c,f),h=this.layoutInner(e,i,d,r,s,l),p=x["d"](o["i"]({width:h.width,height:h.height},u),c,f);this.group.x=p.x-h.x,this.group.y=p.y-h.y,this.group.markRedraw(),this.group.add(this._backgroundEl=Object(b["b"])(h,e))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(e,t,n,r,i,a,s){var l=this.getContentGroup(),u=o["f"](),c=t.get("selectedMode"),f=[];n.eachRawSeries(function(e){!e.get("legendHoverLink")&&f.push(e.id)}),k(t.getData(),function(i,a){var s=i.get("name");if(!this.newlineDisabled&&(""===s||"\n"===s)){var h=new j;return h.newline=!0,void l.add(h)}var p=n.getSeriesByName(s)[0];if(!u.get(s)){if(p){var g=p.getData(),m=g.getVisual("legendLineStyle")||{},v=g.getVisual("legendIcon"),y=g.getVisual("style"),b=this._createItem(p,s,a,i,t,e,m,y,v,c,r);b.on("click",S(I,s,null,r,f)).on("mouseover",S(A,p.name,null,r,f)).on("mouseout",S(E,p.name,null,r,f)),u.set(s,!0)}else n.eachRawSeries(function(n){if(!u.get(s)&&n.legendVisualProvider){var l=n.legendVisualProvider;if(!l.containName(s))return;var h=l.indexOfName(s),p=l.getItemVisual(h,"style"),g=l.getItemVisual(h,"legendIcon"),m=Object(d["d"])(p.fill);m&&0===m[3]&&(m[3]=.2,p=o["l"](o["l"]({},p),{fill:Object(d["e"])(m,"rgba")}));var v=this._createItem(n,s,a,i,t,e,{},p,g,c,r);v.on("click",S(I,null,s,r,f)).on("mouseover",S(A,null,s,r,f)).on("mouseout",S(E,null,s,r,f)),u.set(s,!0)}},this);0}},this),i&&this._createSelector(i,t,r,a,s)},t.prototype._createSelector=function(e,t,n,r,i){var o=this.getSelectorGroup();k(e,function(e){var r=e.type,i=new p["a"]({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===r?"legendAllSelect":"legendInverseSelect"})}});o.add(i);var a=t.getModel("selectorLabel"),s=t.getModel(["emphasis","selectorLabel"]);Object(y["e"])(i,{normal:a,emphasis:s},{defaultText:e.title}),Object(v["m"])(i)})},t.prototype._createItem=function(e,t,n,r,i,a,s,l,u,c,f){var d=e.visualDrawType,h=i.get("itemWidth"),b=i.get("itemHeight"),x=i.isSelected(t),_=r.get("symbolRotate"),w=r.get("symbolKeepAspect"),O=r.get("icon");u=O||u||"roundRect";var S=C(u,r,s,l,d,x,f),k=new j,M=r.getModel("textStyle");if(!o["u"](e.getLegendIcon)||O&&"inherit"!==O){var I="inherit"===O&&e.getData().getVisual("symbol")?"inherit"===_?e.getData().getVisual("symbolRotate"):_:0;k.add(T({itemWidth:h,itemHeight:b,icon:u,iconRotate:I,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:w}))}else k.add(e.getLegendIcon({itemWidth:h,itemHeight:b,icon:u,iconRotate:_,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:w}));var D="left"===a?h+5:-5,A=a,E=i.get("formatter"),P=t;o["y"](E)&&E?P=E.replace("{name}",null!=t?t:""):o["u"](E)&&(P=E(t));var L=r.get("inactiveColor");k.add(new p["a"]({style:Object(y["a"])(M,{text:P,x:D,y:b/2,fill:x?M.getTextColor():L,align:A,verticalAlign:"middle"})}));var N=new g["a"]({shape:k.getBoundingRect(),invisible:!0}),R=r.getModel("tooltip");return R.get("show")&&m["setTooltipConfig"]({el:N,componentModel:i,itemName:t,itemTooltipOption:R.option}),k.add(N),k.eachChild(function(e){e.silent=!0}),N.silent=!c,this.getContentGroup().add(k),Object(v["m"])(k),k.__legendDataIndex=n,k},t.prototype.layoutInner=function(e,t,n,r,i,o){var a=this.getContentGroup(),s=this.getSelectorGroup();x["a"](e.get("orient"),a,e.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),i){x["a"]("horizontal",s,e.get("selectorItemGap",!0));var c=s.getBoundingRect(),f=[-c.x,-c.y],d=e.get("selectorButtonGap",!0),h=e.getOrient().index,p=0===h?"width":"height",g=0===h?"height":"width",m=0===h?"y":"x";"end"===o?f[h]+=l[p]+d:u[h]+=c[p]+d,f[1-h]+=l[g]/2-c[g]/2,s.x=f[0],s.y=f[1],a.x=u[0],a.y=u[1];var v={x:0,y:0};return v[p]=l[p]+d+c[p],v[g]=Math.max(l[g],c[g]),v[m]=Math.min(0,c[m]+f[1-h]),v}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(_["a"]);function C(e,t,n,r,i,o,a){function s(e,t){"auto"===e.lineWidth&&(e.lineWidth=t.lineWidth>0?2:0),k(e,function(n,r){"inherit"===e[r]&&(e[r]=t[r])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),c=0===e.lastIndexOf("empty",0)?"fill":"stroke",f=l.getShallow("decal");u.decal=f&&"inherit"!==f?Object(O["a"])(f,a):r.decal,"inherit"===u.fill&&(u.fill=r[i]),"inherit"===u.stroke&&(u.stroke=r[c]),"inherit"===u.opacity&&(u.opacity=("fill"===i?r:n).opacity),s(u,r);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,n),"auto"===u.fill&&(u.fill=r.fill),"auto"===u.stroke&&(u.stroke=r.fill),"auto"===h.stroke&&(h.stroke=r.fill),!o){var p=t.get("inactiveBorderWidth"),g=u[c];u.lineWidth="auto"===p?r.lineWidth>0&&g?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function T(e){var t=e.icon||"roundRect",n=Object(w["a"])(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return n.setStyle(e.itemStyle),n.rotation=(e.iconRotate||0)*Math.PI/180,n.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n}function I(e,t,n,r){E(e,t,n,r),n.dispatchAction({type:"legendToggleSelect",name:null!=e?e:t}),A(e,t,n,r)}function D(e){var t,n=e.getZr().storage.getDisplayList(),r=0,i=n.length;while(rn[i],m=[-d.x,-d.y];t||(m[r]=u[l]);var v=[0,0],y=[-h.x,-h.y],b=o["K"](e.get("pageButtonGap",!0),e.get("itemGap",!0));if(p){var _=e.get("pageButtonPosition",!0);"end"===_?y[r]+=n[i]-h[i]:v[r]+=h[i]+b}y[1-r]+=d[a]/2-h[a]/2,u.setPosition(m),c.setPosition(v),f.setPosition(y);var w={x:0,y:0};if(w[i]=p?n[i]:d[i],w[a]=Math.max(d[a],h[a]),w[s]=Math.min(0,h[s]+y[1-r]),c.__rectSize=n[i],p){var O={x:0,y:0};O[i]=Math.max(n[i]-h[i]-b,0),O[a]=w[a],c.setClipPath(new g["a"]({shape:O})),c.__rectSize=O[i]}else f.eachChild(function(e){e.attr({invisible:!0,silent:!0})});var S=this._getPageInfo(e);return null!=S.pageIndex&&G["h"](u,{x:S.contentPosition[0],y:S.contentPosition[1]},p?e:null),this._updatePageInfoView(e,S),w},t.prototype._pageGo=function(e,t,n){var r=this._getPageInfo(t)[e];null!=r&&n.dispatchAction({type:"legendScroll",scrollDataIndex:r,legendId:t.id})},t.prototype._updatePageInfoView=function(e,t){var n=this._controllerGroup;o["j"](["pagePrev","pageNext"],function(r){var i=r+"DataIndex",o=null!=t[i],a=n.childOfName(r);a&&(a.setStyle("fill",o?e.get("pageIconColor",!0):e.get("pageIconInactiveColor",!0)),a.cursor=o?"pointer":"default")});var r=n.childOfName("pageText"),i=e.get("pageFormatter"),a=t.pageIndex,s=null!=a?a+1:0,l=t.pageCount;r&&i&&r.setStyle("text",o["y"](i)?i.replace("{current}",null==s?"":s+"").replace("{total}",null==l?"":l+""):i({current:s,total:l}))},t.prototype._getPageInfo=function(e){var t=e.get("scrollDataIndex",!0),n=this.getContentGroup(),r=this._containerGroup.__rectSize,i=e.getOrient().index,o=U[i],a=H[i],s=this._findTargetItemIndex(t),l=n.children(),u=l[s],c=l.length,f=c?1:0,d={contentPosition:[n.x,n.y],pageCount:f,pageIndex:f-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return d;var h=y(u);d.contentPosition[i]=-h.s;for(var p=s+1,g=h,m=h,v=null;p<=c;++p)v=y(l[p]),(!v&&m.e>g.s+r||v&&!b(v,g.s))&&(g=m.i>g.i?m:v,g&&(null==d.pageNextDataIndex&&(d.pageNextDataIndex=g.i),++d.pageCount)),m=v;for(p=s-1,g=h,m=h,v=null;p>=-1;--p)v=y(l[p]),v&&b(m,v.s)||!(g.i=t&&e.s<=t+r}},t.prototype._findTargetItemIndex=function(e){if(!this._showController)return 0;var t,n,r=this.getContentGroup();return r.eachChild(function(r,i){var o=r.__legendDataIndex;null==n&&null!=o&&(n=i),o===e&&(t=i)}),null!=t?t:n},t.type="legend.scroll",t}(P),K=q;function Z(e){e.registerAction("legendScroll","legendscroll",function(e,t){var n=e.scrollDataIndex;null!=n&&t.eachComponent({mainType:"legend",subType:"scroll",query:e},function(e){e.setScrollDataIndex(n)})})}function X(e){Object(r["a"])(z),e.registerComponentModel(V),e.registerComponentView(K),Z(e)}function Q(e){Object(r["a"])(z),Object(r["a"])(X)}n.d(t,"a",function(){return Q})},"03A+":function(e,t,n){var r=n("JTzB"),i=n("ExA7"),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return i(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},"0Cz8":function(e,t,n){var r=n("Xi7e"),i=n("ebwN"),o=n("e4Nc"),a=200;function s(e,t){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.length65535?l:u}function p(){return[1/0,-1/0]}function g(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function m(e,t,n,r,i){var o=d[n||"float"];if(i){var a=e[t],s=a&&a.length;if(s!==r){for(var l=new o(r),u=0;uv[1]&&(v[1]=g)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(e,t,n){for(var r=this._provider,o=this._chunks,a=this._dimensions,s=a.length,l=this._rawExtent,u=Object(i["D"])(a,function(e){return e.property}),c=0;cb[1]&&(b[1]=y)}}!r.persistent&&r.clean&&r.clean(),this._rawCount=this._count=t,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(e,t){if(!(t>=0&&t=0&&t=this._rawCount||e<0)return-1;if(!this._indices)return e;var t=this._indices,n=t[e];if(null!=n&&ne))return o;i=o-1}}return-1},e.prototype.indicesOfNearest=function(e,t,n){var r=this._chunks,i=r[e],o=[];if(!i)return o;null==n&&(n=1/0);for(var a=1/0,s=-1,l=0,u=0,c=this.count();u=0&&s<0)&&(a=h,s=d,l=0),d===s&&(o[l++]=u))}return o.length=l,o},e.prototype.getIndices=function(){var e,t=this._indices;if(t){var n=t.constructor,r=this._count;if(n===Array){e=new n(r);for(var i=0;i=f&&b<=d||isNaN(b))&&(l[u++]=m),m++}g=!0}else if(2===o){v=p[r[0]];var x=p[r[1]],_=e[r[1]][0],w=e[r[1]][1];for(y=0;y=f&&b<=d||isNaN(b))&&(O>=_&&O<=w||isNaN(O))&&(l[u++]=m),m++}g=!0}}if(!g)if(1===o)for(y=0;y=f&&b<=d||isNaN(b))&&(l[u++]=S)}else for(y=0;ye[M][1])&&(k=!1)}k&&(l[u++]=t.getRawIndex(y))}return uv[1]&&(v[1]=m)}}}},e.prototype.lttbDownSample=function(e,t){var n,r,i,o=this.clone([e],!0),a=o._chunks,s=a[e],l=this.count(),u=0,c=Math.floor(1/t),f=this.getRawIndex(0),d=new(h(this._rawCount))(Math.min(2*(Math.ceil(l/c)+2),l));d[u++]=f;for(var p=1;pn&&(n=r,i=x))}M>0&&Mu-g&&(s=u-g,a.length=s);for(var m=0;mc[1]&&(c[1]=y),f[d++]=b}return i._count=d,i._indices=f,i._updateGetRawIdx(),i},e.prototype.each=function(e,t){if(this._count)for(var n=e.length,r=this._chunks,i=0,o=this.count();is&&(s=c)}return r=[a,s],this._extent[e]=r,r},e.prototype.getRawDataItem=function(e){var t=this.getRawIndex(e);if(this._provider.persistent)return this._provider.getItem(t);for(var n=[],r=this._chunks,i=0;i=0?this._indices[e]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function e(e,t,n,r){return Object(o["b"])(e[r],this._dimensions[r])}r={arrayRows:e,objectRows:function(e,t,n,r){return Object(o["b"])(e[t],this._dimensions[r])},keyedColumns:e,original:function(e,t,n,r){var i=e&&(null==e.value?e:e.value);return Object(o["b"])(i instanceof Array?i[r]:i,this._dimensions[r])},typedArray:function(e,t,n,r){return e[r]}}}(),e}();t["b"]=v},"1M3H":function(e,t,n){"use strict";e.exports=n("CK61")},"1nBO":function(e,t,n){"use strict";var r=n("AGgm").normalizeReference,i=n("AGgm").isSpace;e.exports=function(e,t,n,o){var a,s,l,u,c,f,d,h,p,g,m,v,y,b,x,_,w=0,O=e.bMarks[t]+e.tShift[t],S=e.eMarks[t],k=t+1;if(e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(O))return!1;while(++O3)&&!(e.sCount[k]<0)){for(b=!1,f=0,d=x.length;f0){var h=d.duration,p=d.delay,g=d.easing,m={duration:h,delay:p||0,easing:g,done:s,force:!!s||!!l,setToFinal:!f,scope:e,during:l};c?t.animateFrom(n,m):t.animateTo(n,m)}else t.stopAnimation(),!c&&t.attr(n),l&&l(1),s&&s()}function l(e,t,n,r,i,o){s("update",e,t,n,r,i,o)}function u(e,t,n,r,i,o){s("enter",e,t,n,r,i,o)}function c(e){if(!e.__zr)return!0;for(var t=0;tt[1]&&(t[1]=e[1])},e.prototype.unionExtentFromData=function(e,t){this.unionExtent(e.getApproximateExtent(t))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(e,t){var n=this._extent;isNaN(e)||(n[0]=e),isNaN(t)||(n[1]=t)},e.prototype.isInExtentRange=function(e){return this._extent[0]<=e&&this._extent[1]>=e},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(e){this._isBlank=e},e}();r["c"](i),t["a"]=i},"4Vez":function(e,t,n){var r=n("e+LU"),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=r?r.toStringTag:void 0;function l(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var i=a.call(e);return r&&(t?e[s]=n:delete e[s]),i}e.exports=l},"4fNk":function(e,t,n){"use strict";e.exports=["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","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]},"4kuk":function(e,t,n){var r=n("SfRM"),i=n("Hvzi"),o=n("u8Dt"),a=n("ekgI"),s=n("JSQU");function l(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t32))return l;if(41===i){if(0===o)break;o--}t++}}return s===t?l:0!==o?l:(l.str=r(e.slice(s,t)),l.lines=a,l.pos=t,l.ok=!0,l)}},"5Tg0":function(e,t,n){(function(e){var r=n("Kz5y"),i=t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a?r.Buffer:void 0,l=s?s.allocUnsafe:void 0;function u(e,t){if(t)return e.slice();var n=e.length,r=l?l(n):new e.constructor(n);return e.copy(r),r}e.exports=u}).call(this,n("YuTi")(e))},"6A5J":function(e,t,n){"use strict";var r=n("AGgm").isSpace;e.exports=function(e,t,n,i){var o,a,s,l,u,c,f,d,h,p,g,m,v,y,b,x,_,w,O,S,k=e.lineMax,j=e.bMarks[t]+e.tShift[t],M=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(j++))return!1;if(i)return!0;l=h=e.sCount[t]+1,32===e.src.charCodeAt(j)?(j++,l++,h++,o=!1,x=!0):9===e.src.charCodeAt(j)?(x=!0,(e.bsCount[t]+h)%4===3?(j++,l++,h++,o=!1):o=!0):x=!1,p=[e.bMarks[t]],e.bMarks[t]=j;while(j=M,y=[e.sCount[t]],e.sCount[t]=h-l,b=[e.tShift[t]],e.tShift[t]=j-e.bMarks[t],w=e.md.block.ruler.getRules("blockquote"),v=e.parentType,e.parentType="blockquote",d=t+1;d=M)break;if(62!==e.src.charCodeAt(j++)||S){if(c)break;for(_=!1,s=0,u=w.length;s=M,g.push(e.bsCount[d]),e.bsCount[d]=e.sCount[d]+1+(x?1:0),y.push(e.sCount[d]),e.sCount[d]=h-l,b.push(e.tShift[d]),e.tShift[d]=j-e.bMarks[d]}}for(m=e.blkIndent,e.blkIndent=0,O=e.push("blockquote_open","blockquote",1),O.markup=">",O.map=f=[t,0],e.md.block.tokenize(e,t,d),O=e.push("blockquote_close","blockquote",-1),O.markup=">",e.lineMax=k,e.parentType=v,f[1]=e.line,s=0;s-1?l:c}():c;function p(e,t){e=e.toUpperCase(),d[e]=new r["a"](t),f[e]=t}function g(e){if(Object(s["y"])(e)){var t=f[e.toUpperCase()]||{};return e===l||e===u?Object(s["d"])(t):Object(s["E"])(Object(s["d"])(t),Object(s["d"])(f[c]),!1)}return Object(s["E"])(Object(s["d"])(e),Object(s["d"])(f[c]),!1)}function m(e){return d[e]}function v(){return d[c]}p(u,o),p(l,a)},"77Zs":function(e,t,n){var r=n("Xi7e");function i(){this.__data__=new r,this.size=0}e.exports=i},"7G+c":function(e,t,n){"use strict";n.d(t,"e",function(){return l}),n.d(t,"b",function(){return u}),n.d(t,"c",function(){return c}),n.d(t,"a",function(){return f}),n.d(t,"d",function(){return d}),n.d(t,"f",function(){return v});var r=n("bYtY"),i=n("B/3G"),o=n("4NO4"),a=n("D5nY"),s=function(){function e(e){this.data=e.data||(e.sourceFormat===i["d"]?{}:[]),this.sourceFormat=e.sourceFormat||i["h"],this.seriesLayoutBy=e.seriesLayoutBy||i["a"],this.startIndex=e.startIndex||0,this.dimensionsDetectedCount=e.dimensionsDetectedCount,this.metaRawOption=e.metaRawOption;var t=this.dimensionsDefine=e.dimensionsDefine;if(t)for(var n=0;n1?"."+t[1]:"")}function l(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(e,t){return t.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var u=r["H"];function c(e,t,n){var i="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function l(e){return e&&r["O"](e)?e:"-"}function u(e){return!(null==e||isNaN(e)||!isFinite(e))}var c="time"===t,f=e instanceof Date;if(c||f){var d=c?Object(o["l"])(e):e;if(!isNaN(+d))return Object(a["h"])(d,i,n);if(f)return"-"}if("ordinal"===t)return r["z"](e)?l(e):r["w"](e)&&u(e)?e+"":"-";var h=Object(o["k"])(e);return u(h)?s(h):r["z"](e)?l(e):"boolean"===typeof e?e+"":"-"}var f=["a","b","c","d","e","f","g"],d=function(e,t){return"{"+e+(null==t?"":t)+"}"};function h(e,t,n){r["r"](t)||(t=[t]);var o=t.length;if(!o)return"";for(var a=t[0].$vars||[],s=0;s':'';var l=n.markerId||"markerX";return{renderMode:s,content:"{"+l+"|} ",style:"subItem"===a?{width:4,height:4,borderRadius:2,backgroundColor:o}:{width:10,height:10,borderRadius:5,backgroundColor:o}}}function g(e,t){return t=t||"transparent",r["y"](e)?e:r["x"](e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function m(e,t){if("_blank"===t||"blank"===t){var n=window.open();n.opener=null,n.location.href=e}else window.open(e,t)}},"7bO/":function(e,t,n){"use strict";var r={};n.r(r),n.d(r,"take",function(){return Me}),n.d(r,"takem",function(){return Ce}),n.d(r,"put",function(){return Te}),n.d(r,"all",function(){return Ie}),n.d(r,"race",function(){return De}),n.d(r,"call",function(){return Ee}),n.d(r,"apply",function(){return Pe}),n.d(r,"cps",function(){return Le}),n.d(r,"fork",function(){return Ne}),n.d(r,"spawn",function(){return Re}),n.d(r,"join",function(){return ze}),n.d(r,"cancel",function(){return Fe}),n.d(r,"select",function(){return Be}),n.d(r,"actionChannel",function(){return Ye}),n.d(r,"cancelled",function(){return Ve}),n.d(r,"flush",function(){return Ge}),n.d(r,"getContext",function(){return We}),n.d(r,"setContext",function(){return Ue}),n.d(r,"takeEvery",function(){return yt}),n.d(r,"takeLatest",function(){return bt}),n.d(r,"throttle",function(){return xt});var i=Object.assign||function(e){for(var t=1;t=0&&e.splice(n,1)}var O={from:function(e){var t=Array(e.length);for(var n in e)b(e,n)&&(t[n]=e[n]);return t}};function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=i({},e),n=new Promise(function(e,n){t.resolve=e,t.reject=n});return t.promise=n,t}function k(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=void 0,r=new Promise(function(r){n=setTimeout(function(){return r(t)},e)});return r[c]=function(){return clearTimeout(n)},r}function j(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function(){return++e}}var M=j(),C=function(e){throw e},T=function(e){return{value:e,done:!0}};function I(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:C,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments[3],i={name:n,next:e,throw:t,return:T};return r&&(i[l]=!0),"undefined"!==typeof Symbol&&(i[Symbol.iterator]=function(){return i}),i}function D(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";"undefined"===typeof window?console.log("redux-saga "+e+": "+t+"\n"+(n&&n.stack||n)):console[e](t,n)}function A(e,t){return function(){return e.apply(void 0,arguments)}}var E=function(e,t){return e+" has been deprecated in favor of "+t+", please update your code"},P=function(e){return new Error("\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\n Error: "+e+"\n")},L=function(e,t){return(e?e+".":"")+"setContext(props): argument "+t+" is not a plain object"},N=function(e){return function(t){return e(Object.defineProperty(t,f,{value:!0}))}},R="Channel's Buffer overflow!",z=1,F=2,B=3,Y=4,V={isEmpty:p,put:g,take:g};function G(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=arguments[1],n=new Array(e),r=0,i=0,o=0,a=function(t){n[i]=t,i=(i+1)%e,r++},s=function(){if(0!=r){var t=n[o];return n[o]=null,r--,o=(o+1)%e,t}},l=function(){var e=[];while(r)e.push(s());return e};return{isEmpty:function(){return 0==r},put:function(s){if(r0&&void 0!==arguments[0]?arguments[0]:W.fixed(),t=!1,n=[];function r(){if(t&&n.length)throw P("Cannot have a closed channel with pending takers");if(n.length&&!e.isEmpty())throw P("Cannot have pending takers with non empty buffer")}function i(i){if(r(),v(i,x.notUndef,ie),!t){if(!n.length)return e.put(i);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:W.none(),n=arguments[2];arguments.length>2&&v(n,x.func,"Invalid match function passed to eventChannel");var r=oe(t),i=function(){r.__closed__||(o&&o(),r.close())},o=e(function(e){te(e)?i():n&&!n(e)||r.put(e)});if(r.__closed__&&o(),!x.func(o))throw new Error("in eventChannel: subscribe should return a function to unsubscribe");return{take:r.take,flush:r.flush,close:i}}function se(e){var t=ae(function(t){return e(function(e){e[f]?t(e):K(function(){return t(e)})})});return $({},t,{take:function(e,n){arguments.length>1&&(v(n,x.func,"channel.take's matcher argument must be a function"),e[u]=n),t.take(e)}})}var le=a("IO"),ue="TAKE",ce="PUT",fe="ALL",de="RACE",he="CALL",pe="CPS",ge="FORK",me="JOIN",ve="CANCEL",ye="SELECT",be="ACTION_CHANNEL",xe="CANCELLED",_e="FLUSH",we="GET_CONTEXT",Oe="SET_CONTEXT",Se="\n(HINT: if you are getting this errors in tests, consider using createMockTask from redux-saga/utils)",ke=function(e,t){var n;return n={},n[le]=!0,n[e]=t,n},je=function(e){return v(qe.fork(e),x.object,"detach(eff): argument must be a fork effect"),e[ge].detached=!0,e};function Me(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"*";if(arguments.length&&v(arguments[0],x.notUndef,"take(patternOrChannel): patternOrChannel is undefined"),x.pattern(e))return ke(ue,{pattern:e});if(x.channel(e))return ke(ue,{channel:e});throw new Error("take(patternOrChannel): argument "+String(e)+" is not valid channel or a valid pattern")}Me.maybe=function(){var e=Me.apply(void 0,arguments);return e[ue].maybe=!0,e};var Ce=A(Me.maybe,E("takem","take.maybe"));function Te(e,t){return arguments.length>1?(v(e,x.notUndef,"put(channel, action): argument channel is undefined"),v(e,x.channel,"put(channel, action): argument "+e+" is not a valid channel"),v(t,x.notUndef,"put(channel, action): argument action is undefined")):(v(e,x.notUndef,"put(action): argument action is undefined"),t=e,e=null),ke(ce,{channel:e,action:t})}function Ie(e){return ke(fe,e)}function De(e){return ke(de,e)}function Ae(e,t,n){v(t,x.notUndef,e+": argument fn is undefined");var r=null;if(x.array(t)){var i=t;r=i[0],t=i[1]}else if(t.fn){var o=t;r=o.context,t=o.fn}return r&&x.string(t)&&x.func(r[t])&&(t=r[t]),v(t,x.func,e+": argument "+t+" is not a function"),{context:r,fn:t,args:n}}function Ee(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:[];return ke(he,Ae("apply",{context:e,fn:t},n))}function Le(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r1)return Ie(t.map(function(e){return ze(e)}));var r=t[0];return v(r,x.notUndef,"join(task): argument task is undefined"),v(r,x.task,"join(task): argument "+r+" is not a valid Task object "+Se),ke(me,r)}function Fe(){for(var e=arguments.length,t=Array(e),n=0;n1)return Ie(t.map(function(e){return Fe(e)}));var r=t[0];return 1===t.length&&(v(r,x.notUndef,"cancel(task): argument task is undefined"),v(r,x.task,"cancel(task): argument "+r+" is not a valid Task object "+Se)),ke(ve,r||d)}function Be(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r1&&(v(t,x.notUndef,"actionChannel(pattern, buffer): argument buffer is undefined"),v(t,x.buffer,"actionChannel(pattern, buffer): argument "+t+" is not a valid buffer")),ke(be,{pattern:e,buffer:t})}function Ve(){return ke(xe,{})}function Ge(e){return v(e,x.channel,"flush(channel): argument "+e+" is not valid channel"),ke(_e,e)}function We(e){return v(e,x.string,"getContext(prop): argument "+e+" is not a string"),ke(we,e)}function Ue(e){return v(e,x.object,L(null,e)),ke(Oe,e)}Te.resolve=function(){var e=Te.apply(void 0,arguments);return e[ce].resolve=!0,e},Te.sync=A(Te.resolve,E("put.sync","put.resolve"));var He=function(e){return function(t){return t&&t[le]&&t[e]}},qe={take:He(ue),put:He(ce),all:He(fe),race:He(de),call:He(he),cps:He(pe),fork:He(ge),join:He(me),cancel:He(ve),select:He(ye),actionChannel:He(be),cancelled:He(xe),flush:He(_e),getContext:He(we),setContext:He(Oe)},Ke=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:function(){return g},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:g,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"anonymous",u=arguments[8];v(e,x.iterator,Qe);var f="[...effects]",h=A(ee,E(f,"all("+f+")")),p=o.sagaMonitor,m=o.logger,y=o.onError,b=m||D,k=function(e){var t=e.sagaStack;!t&&e.stack&&(t=-1!==e.stack.split("\n")[0].indexOf(e.message)?e.stack:"Error: "+e.message+"\n"+e.stack),b("error","uncaught at "+l,t||e.message||e)},j=se(t),C=Object.create(i);z.cancel=g;var T=fe(a,l,e,u),I={name:l,cancel:N,isRunning:!0},P=nt(l,I,F);function N(){I.isRunning&&!I.isCancelled&&(I.isCancelled=!0,z(Je))}function R(){e._isRunning&&!e._isCancelled&&(e._isCancelled=!0,P.cancelAll(),F(Je))}return u&&(u.cancel=R),e._isRunning=!0,z(),T;function z(t,n){if(!I.isRunning)throw new Error("Trying to resume an already finished generator");try{var r=void 0;n?r=e.throw(t):t===Je?(I.isCancelled=!0,z.cancel(),r=x.func(e.return)?e.return(Je):{done:!0,value:Je}):r=t===$e?x.func(e.return)?e.return():{done:!0}:e.next(t),r.done?(I.isMainRunning=!1,I.cont&&I.cont(r.value)):B(r.value,a,"",z)}catch(e){I.isCancelled&&k(e),I.isMainRunning=!1,I.cont(e,!0)}}function F(t,n){e._isRunning=!1,j.close(),n?(t instanceof Error&&Object.defineProperty(t,"sagaStack",{value:"at "+l+" \n "+(t.sagaStack||t.stack),configurable:!0}),T.cont||(t instanceof Error&&y?y(t):k(t)),e._error=t,e._isAborted=!0,e._deferredEnd&&e._deferredEnd.reject(t)):(e._result=t,e._deferredEnd&&e._deferredEnd.resolve(t)),T.cont&&T.cont(t,n),T.joiners.forEach(function(e){return e.cb(t,n)}),T.joiners=null}function B(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments[3],i=M();p&&p.effectTriggered({effectId:i,parentEffectId:t,label:n,effect:e});var o=void 0;function a(e,t){o||(o=!0,r.cancel=g,p&&(t?p.effectRejected(i,e):p.effectResolved(i,e)),r(e,t))}a.cancel=g,r.cancel=function(){if(!o){o=!0;try{a.cancel()}catch(e){k(e)}a.cancel=g,p&&p.effectCancelled(i)}};var s=void 0;return x.promise(e)?Y(e,a):x.helper(e)?X(it(e),i,a):x.iterator(e)?V(e,i,l,a):x.array(e)?h(e,i,a):(s=qe.take(e))?G(s,a):(s=qe.put(e))?U(s,a):(s=qe.all(e))?ee(s,i,a):(s=qe.race(e))?ne(s,i,a):(s=qe.call(e))?H(s,i,a):(s=qe.cps(e))?q(s,a):(s=qe.fork(e))?X(s,i,a):(s=qe.join(e))?$(s,a):(s=qe.cancel(e))?J(s,a):(s=qe.select(e))?re(s,a):(s=qe.actionChannel(e))?ie(s,a):(s=qe.flush(e))?le(s,a):(s=qe.cancelled(e))?oe(s,a):(s=qe.getContext(e))?ue(s,a):(s=qe.setContext(e))?ce(s,a):a(e)}function Y(e,t){var n=e[c];x.func(n)?t.cancel=n:x.func(e.abort)&&(t.cancel=function(){return e.abort()}),e.then(t,function(e){return t(e,!0)})}function V(e,i,a,s){ot(e,t,n,r,C,o,i,a,s)}function G(e,t){var n=e.channel,r=e.pattern,i=e.maybe;n=n||j;var o=function(e){return e instanceof Error?t(e,!0):te(e)&&!i?t($e):t(e)};try{n.take(o,tt(r))}catch(e){return t(e,!0)}t.cancel=o.cancel}function U(e,t){var r=e.channel,i=e.action,o=e.resolve;K(function(){var e=void 0;try{e=(r?r.put:n)(i)}catch(e){if(r||o)return t(e,!0);k(e)}if(!o||!x.promise(e))return t(e);Y(e,t)})}function H(e,t,n){var r=e.context,i=e.fn,o=e.args,a=void 0;try{a=i.apply(r,o)}catch(e){return n(e,!0)}return x.promise(a)?Y(a,n):x.iterator(a)?V(a,t,i.name,n):n(a)}function q(e,t){var n=e.context,r=e.fn,i=e.args;try{var o=function(e,n){return x.undef(e)?t(n):t(e,!0)};r.apply(n,i.concat(o)),o.cancel&&(t.cancel=function(){return o.cancel()})}catch(e){return t(e,!0)}}function X(e,i,a){var s=e.context,l=e.fn,u=e.args,c=e.detached,f=rt({context:s,fn:l,args:u});try{Z();var d=ot(f,t,n,r,C,o,i,l.name,c?null:g);c?a(d):f._isRunning?(P.addTask(d),a(d)):f._error?P.abort(f._error):a(d)}finally{Q()}}function $(e,t){if(e.isRunning()){var n={task:T,cb:t};t.cancel=function(){return w(e.joiners,n)},e.joiners.push(n)}else e.isAborted()?t(e.error(),!0):t(e.result())}function J(e,t){e===d&&(e=T),e.isRunning()&&e.cancel(),t()}function ee(e,t,n){var r=Object.keys(e);if(!r.length)return n(x.array(e)?[]:{});var i=0,o=void 0,a={},s={};function l(){i===r.length&&(o=!0,n(x.array(e)?O.from(Ke({},a,{length:r.length})):a))}r.forEach(function(e){var t=function(t,r){o||(r||te(t)||t===$e||t===Je?(n.cancel(),n(t,r)):(a[e]=t,i++,l()))};t.cancel=g,s[e]=t}),n.cancel=function(){o||(o=!0,r.forEach(function(e){return s[e].cancel()}))},r.forEach(function(n){return B(e[n],t,n,s[n])})}function ne(e,t,n){var r=void 0,i=Object.keys(e),o={};i.forEach(function(t){var a=function(o,a){if(!r)if(a)n.cancel(),n(o,!0);else if(!te(o)&&o!==$e&&o!==Je){var s;n.cancel(),r=!0;var l=(s={},s[t]=o,s);n(x.array(e)?[].slice.call(Ke({},l,{length:i.length})):l)}};a.cancel=g,o[t]=a}),n.cancel=function(){r||(r=!0,i.forEach(function(e){return o[e].cancel()}))},i.forEach(function(n){r||B(e[n],t,n,o[n])})}function re(e,t){var n=e.selector,i=e.args;try{var o=n.apply(void 0,[r()].concat(i));t(o)}catch(e){t(e,!0)}}function ie(e,n){var r=e.pattern,i=e.buffer,o=tt(r);o.pattern=r,n(ae(t,i||W.fixed(),o))}function oe(e,t){t(!!I.isCancelled)}function le(e,t){e.flush(t)}function ue(e,t){t(C[e])}function ce(e,t){_.assign(C,e),t()}function fe(e,t,n,r){var i,o,a;return n._deferredEnd=null,o={},o[s]=!0,o.id=e,o.name=t,i="done",a={},a[i]=a[i]||{},a[i].get=function(){if(n._deferredEnd)return n._deferredEnd.promise;var e=S();return n._deferredEnd=e,n._isRunning||(n._error?e.reject(n._error):e.resolve(n._result)),e.promise},o.cont=r,o.joiners=[],o.cancel=R,o.isRunning=function(){return n._isRunning},o.isCancelled=function(){return n._isCancelled},o.isAborted=function(){return n._isAborted},o.result=function(){return n._result},o.error=function(){return n._error},o.setContext=function(e){v(e,x.object,L("task",e)),_.assign(C,e)},Xe(o,a),o}}var at="runSaga(storeInterface, saga, ...args)",st=at+": saga argument must be a Generator function!";function lt(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;i=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function ct(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.context,n=void 0===t?{}:t,r=ut(e,["context"]),i=r.sagaMonitor,o=r.logger,a=r.onError;if(x.func(r))throw new Error("Saga middleware no longer accept Generator functions. Use sagaMiddleware.run instead");if(o&&!x.func(o))throw new Error("`options.logger` passed to the Saga middleware is not a function!");if(a&&!x.func(a))throw new Error("`options.onError` passed to the Saga middleware is not a function!");if(r.emitter&&!x.func(r.emitter))throw new Error("`options.emitter` passed to the Saga middleware is not a function!");function s(e){var t=e.getState,l=e.dispatch,u=ne();return u.emit=(r.emitter||m)(u.emit),s.run=lt.bind(null,{context:n,subscribe:u.subscribe,dispatch:l,getState:t,sagaMonitor:i,logger:o,onError:a}),function(e){return function(t){i&&i.actionDispatched&&i.actionDispatched(t);var n=e(t);return u.emit(t),n}}}return s.run=function(){throw new Error("Before running a Saga, you must mount the Saga middleware on the Store using applyMiddleware")},s.setContext=function(e){v(e,x.object,L("sagaMiddleware",e)),_.assign(n,e)},s}var ft={done:!0,value:void 0},dt={};function ht(e){return x.channel(e)?"channel":Array.isArray(e)?String(e.map(function(e){return String(e)})):String(e)}function pt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"iterator",r=void 0,i=t;function o(t,n){if(i===dt)return ft;if(n)throw i=dt,n;r&&r(t);var o=e[i](),a=o[0],s=o[1],l=o[2];return i=a,r=l,i===dt?ft:s}return I(o,function(e){return o(null,e)},n,!0)}function gt(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;i2?n-2:0),i=2;i3?r-3:0),o=3;o2?n-2:0),i=2;i2?n-2:0),i=2;i3?r-3:0),o=3;o0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}e.exports=o},"8wmI":function(e,t){function n(e){return null!=e&&"object"==typeof e}e.exports=n},"9Nap":function(e,t,n){var r=n("/9aa"),i=1/0;function o(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}e.exports=o},"9ggG":function(e,t,n){var r=n("Z0cm"),i=n("/9aa"),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;function s(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!i(e))||(a.test(e)||!o.test(e)||null!=t&&e in Object(t))}e.exports=s},"9lhp":function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n("bYtY"),i="undefined"!==typeof Float32Array,o=i?Float32Array:Array;function a(e){return Object(r["r"])(e)?i?new Float32Array(e):e:new o(e)}},AGgm:function(e,t,n){"use strict";function r(e){return Object.prototype.toString.call(e)}function i(e){return"[object String]"===r(e)}var o=Object.prototype.hasOwnProperty;function a(e,t){return o.call(e,t)}function s(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){if(t){if("object"!==typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach(function(n){e[n]=t[n]})}}),e}function l(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))}function u(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!==(65535&e)&&65534!==(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function c(e){if(e>65535){e-=65536;var t=55296+(e>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var f=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,d=/&([a-z#][a-z0-9]{1,31});/gi,h=new RegExp(f.source+"|"+d.source,"gi"),p=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,g=n("vWgF");function m(e,t){var n=0;return a(g,t)?g[t]:35===t.charCodeAt(0)&&p.test(t)&&(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10),u(n))?c(n):e}function v(e){return e.indexOf("\\")<0?e:e.replace(f,"$1")}function y(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(h,function(e,t,n){return t||m(e,n)})}var b=/[&<>"]/,x=/[&<>"]/g,_={"&":"&","<":"<",">":">",'"':"""};function w(e){return _[e]}function O(e){return b.test(e)?e.replace(x,w):e}var S=/[.?*+^$[\]\\(){}|-]/g;function k(e){return e.replace(S,"\\$&")}function j(e){switch(e){case 9:case 32:return!0}return!1}function M(e){if(e>=8192&&e<=8202)return!0;switch(e){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}var C=n("fKCf");function T(e){return C.test(e)}function I(e){switch(e){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 D(e){return e=e.trim().replace(/\s+/g," "),"\u1e7e"==="\u1e9e".toLowerCase()&&(e=e.replace(/\u1e9e/g,"\xdf")),e.toLowerCase().toUpperCase()}t.lib={},t.lib.mdurl=n("2KYT"),t.lib.ucmicro=n("1dGX"),t.assign=s,t.isString=i,t.has=a,t.unescapeMd=v,t.unescapeAll=y,t.isValidEntityCode=u,t.fromCodePoint=c,t.escapeHtml=O,t.arrayReplaceAt=l,t.isSpace=j,t.isWhiteSpace=M,t.isMdAsciiPunct=I,t.isPunctChar=T,t.escapeRE=k,t.normalizeReference=D},AP2z:function(e,t,n){var r=n("nmnc"),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=r?r.toStringTag:void 0;function l(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var i=a.call(e);return r&&(t?e[s]=n:delete e[s]),i}e.exports=l},AVZG:function(e,t,n){"use strict";n.d(t,"c",function(){return o}),n.d(t,"b",function(){return a}),n.d(t,"a",function(){return s});var r=n("bYtY"),i=n("4NO4");function o(e,t,n){n=n||{};var i=e.coordinateSystem,o=t.axis,a={},s=o.getAxesOnZeroOf()[0],l=o.position,u=s?"onZero":l,c=o.dim,f=i.getRect(),d=[f.x,f.x+f.width,f.y,f.y+f.height],h={left:0,right:1,top:0,bottom:1,onZero:2},p=t.get("offset")||0,g="x"===c?[d[2]-p,d[3]+p]:[d[0]-p,d[1]+p];if(s){var m=s.toGlobalCoord(s.dataToCoord(0));g[h.onZero]=Math.max(Math.min(m,g[1]),g[0])}a.position=["y"===c?g[h[u]]:d[0],"x"===c?g[h[u]]:d[3]],a.rotation=Math.PI/2*("x"===c?0:1);var v={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=v[l],a.labelOffset=s?g[h[l]]-g[h.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),r["J"](n.labelInside,t.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var y=t.get(["axisLabel","rotate"]);return a.labelRotate="top"===u?-y:y,a.z2=1,a}function a(e){return"cartesian2d"===e.get("coordinateSystem")}function s(e){var t={xAxisModel:null,yAxisModel:null};return r["j"](t,function(n,r){var o=r.replace(/Model$/,""),a=e.getReferringComponents(o,i["b"]).models[0];t[r]=a}),t}},"B/3G":function(e,t,n){"use strict";n.d(t,"i",function(){return i}),n.d(t,"f",function(){return o}),n.d(t,"c",function(){return a}),n.d(t,"e",function(){return s}),n.d(t,"d",function(){return l}),n.d(t,"g",function(){return u}),n.d(t,"h",function(){return c}),n.d(t,"a",function(){return f}),n.d(t,"b",function(){return d});var r=n("bYtY"),i=Object(r["f"])(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),o="original",a="arrayRows",s="objectRows",l="keyedColumns",u="typedArray",c="unknown",f="column",d="row"},B1jb:function(e,t,n){"use strict";var r=n("AGgm").isSpace;e.exports=function(e,t,n,i){var o,a,s,l,u=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(o=e.src.charCodeAt(u),35!==o||u>=c)return!1;a=1,o=e.src.charCodeAt(++u);while(35===o&&u6||uu&&r(e.src.charCodeAt(s-1))&&(c=s),e.line=t+1,l=e.push("heading_open","h"+String(a),1),l.markup="########".slice(0,a),l.map=[t,e.line],l=e.push("inline","",0),l.content=e.src.slice(u,c).trim(),l.map=[t,e.line],l.children=[],l=e.push("heading_close","h"+String(a),-1),l.markup="########".slice(0,a),!0))}},B8du:function(e,t){function n(){return!1}e.exports=n},"BPd+":function(e,t,n){"use strict";n.d(t,"b",function(){return v}),n.d(t,"a",function(){return y});var r=n("B/3G"),i=n("4NO4"),o=n("bYtY"),a=n("KxfA"),s=n("t9mh"),l=n("7a4p"),u=n("7G+c"),c=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(e){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(e){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(e,t){},e.prototype.retrieveValueFromItem=function(e,t){},e.prototype.convertValue=function(e,t){return Object(s["b"])(e,t)},e}();function f(e,t){var n=new c,i=e.data,s=n.sourceFormat=e.sourceFormat,u=e.startIndex,f="";e.seriesLayoutBy!==r["a"]&&Object(l["c"])(f);var m=[],v={},y=e.dimensionsDefine;if(y)Object(o["j"])(y,function(e,t){var n=e.name,r={index:t,name:n,displayName:e.displayName};if(m.push(r),null!=n){var i="";Object(o["o"])(v,n)&&Object(l["c"])(i),v[n]=r}});else for(var b=0;b=0))try{t.hostname=f.toASCII(t.hostname)}catch(e){}return c.encode(c.format(t))}function y(e){var t=c.parse(e,!0);if(t.hostname&&(!t.protocol||m.indexOf(t.protocol)>=0))try{t.hostname=f.toUnicode(t.hostname)}catch(e){}return c.decode(c.format(t),c.decode.defaultChars+"%")}function b(e,t){if(!(this instanceof b))return new b(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new l,this.block=new s,this.core=new a,this.renderer=new o,this.linkify=new u,this.validateLink=g,this.normalizeLink=v,this.normalizeLinkText=y,this.utils=r,this.helpers=r.assign({},i),this.options={},this.configure(e),t&&this.set(t)}b.prototype.set=function(e){return r.assign(this.options,e),this},b.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&(t=e,e=d[t],!e))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach(function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)}),this},b.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(t){n=n.concat(this[t].ruler.enable(e,!0))},this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter(function(e){return n.indexOf(e)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},b.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(t){n=n.concat(this[t].ruler.disable(e,!0))},this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter(function(e){return n.indexOf(e)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},b.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},b.prototype.parse=function(e,t){if("string"!==typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},b.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},b.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},b.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=b},CWsV:function(e,t,n){"use strict";function r(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}r.prototype.attrIndex=function(e){var t,n,r;if(!this.attrs)return-1;for(t=this.attrs,n=0,r=t.length;n=0&&(n=this.attrs[t][1]),n},r.prototype.attrJoin=function(e,t){var n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t},e.exports=r},CXva:function(e,t,n){"use strict";var r=n("CWsV"),i=n("AGgm").isWhiteSpace,o=n("AGgm").isPunctChar,a=n("AGgm").isMdAsciiPunct;function s(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1}s.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},s.prototype.push=function(e,t,n){this.pending&&this.pushPending();var i=new r(e,t,n),o=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),i.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(i),this.tokens_meta.push(o),i},s.prototype.scanDelims=function(e,t){var n,r,s,l,u,c,f,d,h,p=e,g=!0,m=!0,v=this.posMax,y=this.src.charCodeAt(e);n=e>0?this.src.charCodeAt(e-1):32;while(p=0;a--)r[a]&&!u["j"](r[a])?o=!0:(r[a]=null,!o&&i--);r.length=i,e[n]=r}}),delete e[w],e},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(e){this._payload=e},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(e,t){var n=this._componentsMap.get(e);if(n){var r=n[t||0];if(r)return r;if(null==t)for(var i=0;i=t:"max"===n?e<=t:e===t}function B(e,t){return e.join(",")===t.join(",")}var Y=N,V=o["j"],G=o["x"],W=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function U(e){var t=e&&e.itemStyle;if(t)for(var n=0,r=W.length;n=0;g--){var m=e[g];if(s||(d=m.data.rawIndexOf(m.stackedByDimension,f)),d>=0){var v=m.data.getByRawIndex(m.stackResultDimension,d);if("all"===l||"positive"===l&&v>0||"negative"===l&&v<0||"samesign"===l&&h>=0&&v>0||"samesign"===l&&h<=0&&v<0){h=Object(de["a"])(h,v),p=v;break}}}return r[0]=h,r[1]=p,r})})}var ge=n("T4UG"),me=n("sS/r"),ve=n("6Ic6"),ye=n("x6Kt"),be=n("Dagg"),xe=n("3soF"),_e=n("y+Vt"),we=n("hhxK"),Oe=n("fWwa"),Se=n("iLNv"),ke=n("KCsZ"),je=n("VR9l"),Me=n("OQFs"),Ce=Object(u["m"])(),Te={itemStyle:Object(ke["a"])(je["a"],!0),lineStyle:Object(ke["a"])(Me["a"],!0)},Ie={lineStyle:"stroke",itemStyle:"fill"};function De(e,t){var n=e.visualStyleMapper||Te[t];return n||(console.warn("Unkown style type '"+t+"'."),Te.itemStyle)}function Ae(e,t){var n=e.visualDrawType||Ie[t];return n||(console.warn("Unkown style type '"+t+"'."),"fill")}var Ee={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var n=e.getData(),r=e.visualStyleAccessPath||"itemStyle",i=e.getModel(r),a=De(e,r),s=a(i),l=i.getShallow("decal");l&&(n.setVisual("decal",l),l.dirty=!0);var u=Ae(e,r),c=s[u],f=Object(o["u"])(c)?c:null,d="auto"===s.fill||"auto"===s.stroke;if(!s[u]||f||d){var h=e.getColorFromPalette(e.name,null,t.getSeriesCount());s[u]||(s[u]=h,n.setVisual("colorFromPalette",!0)),s.fill="auto"===s.fill||Object(o["u"])(s.fill)?h:s.fill,s.stroke="auto"===s.stroke||Object(o["u"])(s.stroke)?h:s.stroke}if(n.setVisual("style",s),n.setVisual("drawType",u),!t.isSeriesFiltered(e)&&f)return n.setVisual("colorFromPalette",!1),{dataEach:function(t,n){var r=e.getDataParams(n),i=Object(o["l"])({},s);i[u]=f(r),t.setItemVisual(n,"style",i)}}}},Pe=new c["a"],Le={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!e.ignoreStyleOnData&&!t.isSeriesFiltered(e)){var n=e.getData(),r=e.visualStyleAccessPath||"itemStyle",i=De(e,r),a=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(e,t){var n=e.getRawDataItem(t);if(n&&n[r]){Pe.option=n[r];var s=i(Pe),l=e.ensureUniqueItemVisual(t,"style");Object(o["l"])(l,s),Pe.option.decal&&(e.setItemVisual(t,"decal",Pe.option.decal),Pe.option.decal.dirty=!0),a in s&&e.setItemVisual(t,"colorFromPalette",!1)}}:null}}}},Ne={performRawSeries:!0,overallReset:function(e){var t=Object(o["f"])();e.eachSeries(function(e){var n=e.getColorBy();if(!e.isColorBySeries()){var r=e.type+"-"+n,i=t.get(r);i||(i={},t.set(r,i)),Ce(e).scope=i}}),e.eachSeries(function(t){if(!t.isColorBySeries()&&!e.isSeriesFiltered(t)){var n=t.getRawData(),r={},i=t.getData(),o=Ce(t).scope,a=t.visualStyleAccessPath||"itemStyle",s=Ae(t,a);i.each(function(e){var t=i.getRawIndex(e);r[t]=e}),n.each(function(e){var a=r[e],l=i.getItemVisual(a,"colorFromPalette");if(l){var u=i.ensureUniqueItemVisual(a,"style"),c=n.getName(e)||e+"",f=n.count();u[s]=t.getColorFromPalette(c,o,f)}})}})}},Re=n("LcXL"),ze=n("dqUG"),Fe=n("jTL6"),Be=Math.PI;function Ye(e,t){t=t||{},o["i"](t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Re["a"],r=new ye["a"]({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});n.add(r);var i,a=new ze["a"]({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),s=new ye["a"]({style:{fill:"none"},textContent:a,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});return n.add(s),t.showSpinner&&(i=new Fe["a"]({shape:{startAngle:-Be/2,endAngle:-Be/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),i.animateShape(!0).when(1e3,{endAngle:3*Be/2}).start("circularInOut"),i.animateShape(!0).when(1e3,{startAngle:3*Be/2}).delay(300).start("circularInOut"),n.add(i)),n.resize=function(){var n=a.getBoundingRect().width,o=t.showSpinner?t.spinnerRadius:0,l=(e.getWidth()-2*o-(t.showSpinner&&n?10:0)-n)/2-(t.showSpinner&&n?0:5+n/2)+(t.showSpinner?0:n/2)+(n?0:o),u=e.getHeight()/2;t.showSpinner&&i.setShape({cx:l,cy:u}),s.setShape({x:l-o,y:u-o,width:2*o,height:2*o}),r.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},n.resize(),n}var Ve=n("n7yn"),Ge=n("iRjW"),We=function(){function e(e,t,n,r){this._stageTaskMap=Object(o["f"])(),this.ecInstance=e,this.api=t,n=this._dataProcessorHandlers=n.slice(),r=this._visualHandlers=r.slice(),this._allHandlers=n.concat(r)}return e.prototype.restoreData=function(e,t){e.restoreData(t),this._stageTaskMap.each(function(e){var t=e.overallTask;t&&t.dirty()})},e.prototype.getPerformArgs=function(e,t){if(e.__pipeline){var n=this._pipelineMap.get(e.__pipeline.id),r=n.context,i=!t&&n.progressiveEnabled&&(!r||r.progressiveRender)&&e.__idxInPipeline>n.blockIndex,o=i?n.step:null,a=r&&r.modDataCount,s=null!=a?Math.ceil(a/o):null;return{step:o,modBy:s,modDataCount:a}}},e.prototype.getPipeline=function(e){return this._pipelineMap.get(e)},e.prototype.updateStreamModes=function(e,t){var n=this._pipelineMap.get(e.uid),r=e.getData(),i=r.count(),o=n.progressiveEnabled&&t.incrementalPrepareRender&&i>=n.threshold,a=e.get("large")&&i>=e.get("largeThreshold"),s="mod"===e.get("progressiveChunkMode")?i:null;e.pipelineContext=n.context={progressiveRender:o,modDataCount:s,large:a}},e.prototype.restorePipelines=function(e){var t=this,n=t._pipelineMap=Object(o["f"])();e.eachSeries(function(e){var r=e.getProgressive(),i=e.uid;n.set(i,{id:i,head:null,tail:null,threshold:e.getProgressiveThreshold(),progressiveEnabled:r&&!(e.preventIncremental&&e.preventIncremental()),blockIndex:-1,step:Math.round(r||700),count:0}),t._pipe(e,e.dataTask)})},e.prototype.prepareStageTasks=function(){var e=this._stageTaskMap,t=this.api.getModel(),n=this.api;Object(o["j"])(this._allHandlers,function(r){var i=e.get(r.uid)||e.set(r.uid,{}),a="";Object(o["b"])(!(r.reset&&r.overallReset),a),r.reset&&this._createSeriesStageTask(r,i,t,n),r.overallReset&&this._createOverallStageTask(r,i,t,n)},this)},e.prototype.prepareView=function(e,t,n,r){var i=e.renderTask,o=i.context;o.model=t,o.ecModel=n,o.api=r,i.__block=!e.incrementalPrepareRender,this._pipe(t,i)},e.prototype.performDataProcessorTasks=function(e,t){this._performStageTasks(this._dataProcessorHandlers,e,t,{block:!0})},e.prototype.performVisualTasks=function(e,t,n){this._performStageTasks(this._visualHandlers,e,t,n)},e.prototype._performStageTasks=function(e,t,n,r){r=r||{};var i=!1,a=this;function s(e,t){return e.setDirty&&(!e.dirtyMap||e.dirtyMap.get(t.__pipeline.id))}Object(o["j"])(e,function(e,o){if(!r.visualType||r.visualType===e.visualType){var l=a._stageTaskMap.get(e.uid),u=l.seriesTaskMap,c=l.overallTask;if(c){var f,d=c.agentStubMap;d.each(function(e){s(r,e)&&(e.dirty(),f=!0)}),f&&c.dirty(),a.updatePayload(c,n);var h=a.getPerformArgs(c,r.block);d.each(function(e){e.perform(h)}),c.perform(h)&&(i=!0)}else u&&u.each(function(o,l){s(r,o)&&o.dirty();var u=a.getPerformArgs(o,r.block);u.skip=!e.performRawSeries&&t.isSeriesFiltered(o.context.model),a.updatePayload(o,n),o.perform(u)&&(i=!0)})}}),this.unfinished=i||this.unfinished},e.prototype.performSeriesTasks=function(e){var t;e.eachSeries(function(e){t=e.dataTask.perform()||t}),this.unfinished=t||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(e){var t=e.tail;do{if(t.__block){e.blockIndex=t.__idxInPipeline;break}t=t.getUpstream()}while(t)})},e.prototype.updatePayload=function(e,t){"remain"!==t&&(e.context.payload=t)},e.prototype._createSeriesStageTask=function(e,t,n,r){var i=this,a=t.seriesTaskMap,s=t.seriesTaskMap=Object(o["f"])(),l=e.seriesType,u=e.getTargetSeries;function c(t){var o=t.uid,l=s.set(o,a&&a.get(o)||Object(Ve["a"])({plan:Ze,reset:Xe,count:Je}));l.context={model:t,ecModel:n,api:r,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:i},i._pipe(t,l)}e.createOnAllSeries?n.eachRawSeries(c):l?n.eachRawSeriesByType(l,c):u&&u(n,r).each(c)},e.prototype._createOverallStageTask=function(e,t,n,r){var i=this,a=t.overallTask=t.overallTask||Object(Ve["a"])({reset:Ue});a.context={ecModel:n,api:r,overallReset:e.overallReset,scheduler:i};var s=a.agentStubMap,l=a.agentStubMap=Object(o["f"])(),u=e.seriesType,c=e.getTargetSeries,f=!0,d=!1,h="";function p(e){var t=e.uid,n=l.set(t,s&&s.get(t)||(d=!0,Object(Ve["a"])({reset:He,onDirty:Ke})));n.context={model:e,overallProgress:f},n.agent=a,n.__block=f,i._pipe(e,n)}Object(o["b"])(!e.createOnAllSeries,h),u?n.eachRawSeriesByType(u,p):c?c(n,r).each(p):(f=!1,Object(o["j"])(n.getSeries(),p)),d&&a.dirty()},e.prototype._pipe=function(e,t){var n=e.uid,r=this._pipelineMap.get(n);!r.head&&(r.head=t),r.tail&&r.tail.pipe(t),r.tail=t,t.__idxInPipeline=r.count++,t.__pipeline=r},e.wrapStageHandler=function(e,t){return Object(o["u"])(e)&&(e={overallReset:e,seriesType:et(e)}),e.uid=Object(Ge["c"])("stageHandler"),t&&(e.visualType=t),e},e}();function Ue(e){e.overallReset(e.ecModel,e.api,e.payload)}function He(e){return e.overallProgress&&qe}function qe(){this.agent.dirty(),this.getDownstream().dirty()}function Ke(){this.agent&&this.agent.dirty()}function Ze(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function Xe(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=Object(u["p"])(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Object(o["D"])(t,function(e,t){return $e(t)}):Qe}var Qe=$e(0);function $e(e){return function(t,n){var r=n.data,i=n.resetDefines[e];if(i&&i.dataEach)for(var o=t.start;o0&&c===i.length-u.length){var f=i.slice(0,c);"data"!==f&&(t.mainType=f,t[u.toLowerCase()]=e,o=!0)}}s.hasOwnProperty(i)&&(n[i]=e,o=!0),o||(r[i]=e)})}return{cptQuery:t,dataQuery:n,otherQuery:r}},e.prototype.filter=function(e,t){var n=this.eventInfo;if(!n)return!0;var r=n.targetEl,i=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=t.cptQuery,l=t.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,i,"name")&&u(l,i,"dataIndex")&&u(l,i,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(e,t.otherQuery,r,i));function u(e,t,n,r){return null==e[n]||t[r||n]===e[n]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),mt=["symbol","symbolSize","symbolRotate","symbolOffset"],vt=mt.concat(["symbolKeepAspect"]),yt={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var n=e.getData();if(e.legendIcon&&n.setVisual("legendIcon",e.legendIcon),e.hasSymbolVisual){for(var r={},i={},a=!1,s=0;s0&&e.unfinished);e.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(e,t,n){if(!this[Qt])if(this._disposed)An(this.id);else{var r,i,a;if(Object(o["x"])(t)&&(n=t.lazyUpdate,r=t.silent,i=t.replaceMerge,a=t.transition,t=t.notMerge),this[Qt]=!0,!this._model||t){var s=new Y(this._api),l=this._theme,u=this._model=new I;u.scheduler=this._scheduler,u.ssr=this._ssr,u.init(null,null,null,l,this._locale,s)}this._model.setOption(e,{replaceMerge:i},Nn);var c={seriesTransition:a,optionChanged:!0};if(n)this[$t]={silent:r,updateParams:c},this[Qt]=!1,this.getZr().wakeUp();else{try{un(this),dn.update.call(this,null,c)}catch(e){throw this[$t]=null,this[Qt]=!1,e}this._ssr||this._zr.flush(),this[$t]=null,this[Qt]=!1,mn.call(this,r),vn.call(this,r)}}},t.prototype.setTheme=function(){Object(_["a"])("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Et&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(e){return this.renderToCanvas(e)},t.prototype.renderToCanvas=function(e){e=e||{};var t=this._zr.painter;return t.getRenderedCanvas({backgroundColor:e.backgroundColor||this._model.get("backgroundColor"),pixelRatio:e.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(e){e=e||{};var t=this._zr.painter;return t.renderToString({useViewBox:e.useViewBox})},t.prototype.getSvgDataURL=function(){if(a["a"].svgSupported){var e=this._zr,t=e.storage.getDisplayList();return Object(o["j"])(t,function(e){e.stopAnimation(null,!0)}),e.painter.toDataURL()}},t.prototype.getDataURL=function(e){if(!this._disposed){e=e||{};var t=e.excludeComponents,n=this._model,r=[],i=this;Object(o["j"])(t,function(e){n.eachComponent({mainType:e},function(e){var t=i._componentsMap[e.__viewId];t.group.ignore||(r.push(t),t.group.ignore=!0)})});var a="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.renderToCanvas(e).toDataURL("image/"+(e&&e.type||"png"));return Object(o["j"])(r,function(e){e.group.ignore=!1}),a}An(this.id)},t.prototype.getConnectedDataURL=function(e){if(!this._disposed){var t="svg"===e.type,n=this.group,r=Math.min,a=Math.max,s=1/0;if(Yn[n]){var l=s,u=s,c=-s,f=-s,d=[],h=e&&e.pixelRatio||this.getDevicePixelRatio();Object(o["j"])(Bn,function(i,s){if(i.group===n){var h=t?i.getZr().painter.getSvgDom().innerHTML:i.renderToCanvas(Object(o["d"])(e)),p=i.getDom().getBoundingClientRect();l=r(p.left,l),u=r(p.top,u),c=a(p.right,c),f=a(p.bottom,f),d.push({dom:h,left:p.left,top:p.top})}}),l*=h,u*=h,c*=h,f*=h;var p=c-l,g=f-u,m=Dt["d"].createCanvas(),v=i["a"](m,{renderer:t?"svg":"canvas"});if(v.resize({width:p,height:g}),t){var y="";return Object(o["j"])(d,function(e){var t=e.left-l,n=e.top-u;y+=''+e.dom+""}),v.painter.getSvgRoot().innerHTML=y,e.connectedBackgroundColor&&v.painter.setBackgroundColor(e.connectedBackgroundColor),v.refreshImmediately(),v.painter.toDataURL()}return e.connectedBackgroundColor&&v.add(new ye["a"]({shape:{x:0,y:0,width:p,height:g},style:{fill:e.connectedBackgroundColor}})),Object(o["j"])(d,function(e){var t=new be["a"]({style:{x:e.left*h-l,y:e.top*h-u,image:e.dom}});v.add(t)}),v.refreshImmediately(),m.toDataURL("image/"+(e&&e.type||"png"))}return this.getDataURL(e)}An(this.id)},t.prototype.convertToPixel=function(e,t){return hn(this,"convertToPixel",e,t)},t.prototype.convertFromPixel=function(e,t){return hn(this,"convertFromPixel",e,t)},t.prototype.containPixel=function(e,t){if(!this._disposed){var n,r=this._model,i=u["q"](r,e);return Object(o["j"])(i,function(e,r){r.indexOf("Models")>=0&&Object(o["j"])(e,function(e){var i=e.coordinateSystem;if(i&&i.containPoint)n=n||!!i.containPoint(t);else if("seriesModels"===r){var o=this._chartsMap[e.__viewId];o&&o.containPoint&&(n=n||o.containPoint(t,e))}else 0},this)},this),!!n}An(this.id)},t.prototype.getVisual=function(e,t){var n=this._model,r=u["q"](n,e,{defaultMainType:"series"}),i=r.seriesModel;var o=i.getData(),a=r.hasOwnProperty("dataIndexInside")?r.dataIndexInside:r.hasOwnProperty("dataIndex")?o.indexOfRawIndex(r.dataIndex):null;return null!=a?xt(o,a,t):_t(o,t)},t.prototype.getViewOfComponentModel=function(e){return this._componentsMap[e.__viewId]},t.prototype.getViewOfSeriesModel=function(e){return this._chartsMap[e.__viewId]},t.prototype._initEvents=function(){var e=this;Object(o["j"])(Dn,function(t){var n=function(n){var r,i=e.getModel(),a=n.target,s="globalout"===t;if(s?r={}:a&&Object(jt["a"])(a,function(e){var t=Object(we["a"])(e);if(t&&null!=t.dataIndex){var n=t.dataModel||i.getSeriesByIndex(t.seriesIndex);return r=n&&n.getDataParams(t.dataIndex,t.dataType)||{},!0}if(t.eventData)return r=Object(o["l"])({},t.eventData),!0},!0),r){var l=r.componentType,u=r.componentIndex;"markLine"!==l&&"markPoint"!==l&&"markArea"!==l||(l="series",u=r.seriesIndex);var c=l&&null!=u&&i.getComponent(l,u),f=c&&e["series"===c.mainType?"_chartsMap":"_componentsMap"][c.__viewId];0,r.event=n,r.type=t,e._$eventProcessor.eventInfo={targetEl:a,packedEvent:r,model:c,view:f},e.trigger(t,r)}};n.zrEventfulCallAtLast=!0,e._zr.on(t,n,e)}),Object(o["j"])(Pn,function(t,n){e._messageCenter.on(n,function(e){this.trigger(n,e)},e)}),Object(o["j"])(["selectchanged"],function(t){e._messageCenter.on(t,function(e){this.trigger(t,e)},e)}),Ot(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){this._disposed?An(this.id):this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed)An(this.id);else{this._disposed=!0;var e=this.getDom();e&&u["u"](this.getDom(),Gn,"");var t=this,n=t._api,r=t._model;Object(o["j"])(t._componentsViews,function(e){e.dispose(r,n)}),Object(o["j"])(t._chartsViews,function(e){e.dispose(r,n)}),t._zr.dispose(),t._dom=t._model=t._chartsMap=t._componentsMap=t._chartsViews=t._componentsViews=t._scheduler=t._api=t._zr=t._throttledZrFlush=t._theme=t._coordSysMgr=t._messageCenter=null,delete Bn[t.id]}},t.prototype.resize=function(e){if(!this[Qt])if(this._disposed)An(this.id);else{this._zr.resize(e);var t=this._model;if(this._loadingFX&&this._loadingFX.resize(),t){var n=t.resetOption("media"),r=e&&e.silent;this[$t]&&(null==r&&(r=this[$t].silent),n=!0,this[$t]=null),this[Qt]=!0;try{n&&un(this),dn.update.call(this,{type:"resize",animation:Object(o["l"])({duration:0},e&&e.animation)})}catch(e){throw this[Qt]=!1,e}this[Qt]=!1,mn.call(this,r),vn.call(this,r)}}},t.prototype.showLoading=function(e,t){if(this._disposed)An(this.id);else if(Object(o["x"])(e)&&(t=e,e=""),e=e||"default",this.hideLoading(),Fn[e]){var n=Fn[e](this._api,t),r=this._zr;this._loadingFX=n,r.add(n)}},t.prototype.hideLoading=function(){this._disposed?An(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},t.prototype.makeActionFromEvent=function(e){var t=Object(o["l"])({},e);return t.type=Pn[e.type],t},t.prototype.dispatchAction=function(e,t){if(this._disposed)An(this.id);else if(Object(o["x"])(t)||(t={silent:!!t}),En[e.type]&&this._model)if(this[Qt])this._pendingActions.push(e);else{var n=t.silent;gn.call(this,e,n);var r=t.flush;r?this._zr.flush():!1!==r&&a["a"].browser.weChat&&this._throttledZrFlush(),mn.call(this,n),vn.call(this,n)}},t.prototype.updateLabelLayout=function(){It.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(e){if(this._disposed)An(this.id);else{var t=e.seriesIndex,n=this.getModel(),r=n.getSeriesByIndex(t);0,r.appendData(e),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},t.internalField=function(){function e(e){e.clearColorPalette(),e.eachSeries(function(e){e.clearColorPalette()})}function t(e){var t=[],n=[],r=!1;if(e.eachComponent(function(e,i){var o=i.get("zlevel")||0,a=i.get("z")||0,s=i.getZLevelKey();r=r||!!s,("series"===e?n:t).push({zlevel:o,z:a,idx:i.componentIndex,type:e,key:s})}),r){var i,a,l=t.concat(n);Object(s["a"])(l,function(e,t){return e.zlevel===t.zlevel?e.z-t.z:e.zlevel-t.zlevel}),Object(o["j"])(l,function(t){var n=e.getComponent(t.type,t.idx),r=t.zlevel,o=t.key;null!=i&&(r=Math.max(i,r)),o?(r===i&&o!==a&&r++,a=o):a&&(r===i&&r++,a=""),i=r,n.setZLevel(r)})}}function n(e){for(var t=[],n=e.currentStates,r=0;rt.get("hoverLayerThreshold")&&!a["a"].node&&!a["a"].worker&&t.eachSeries(function(t){if(!t.preventUsingHoverLayer){var n=e._chartsMap[t.__viewId];n.__alive&&n.eachRendered(function(e){e.states.emphasis&&(e.states.emphasis.hoverLayer=!0)})}})}function l(e,t){var n=e.get("blendMode")||null;t.eachRendered(function(e){e.isGroup||(e.style.blend=n)})}function c(e,t){if(!e.preventAutoZ){var n=e.get("z")||0,r=e.get("zlevel")||0;t.eachRendered(function(e){return f(e,n,r,-1/0),!0})}}function f(e,t,n,r){var i=e.getTextContent(),o=e.getTextGuideLine(),a=e.isGroup;if(a)for(var s=e.childrenRef(),l=0;l0?{duration:o,delay:r.get("delay"),easing:r.get("easing")}:null;t.eachRendered(function(e){if(e.states&&e.states.emphasis){if(xe["d"](e))return;if(e instanceof _e["b"]&&Object(Oe["B"])(e),e.__dirty){var t=e.prevStates;t&&e.useStates(t)}if(i){e.stateTransition=a;var r=e.getTextContent(),o=e.getTextGuideLine();r&&(r.stateTransition=a),o&&(o.stateTransition=a)}e.__dirty&&n(e)}})}un=function(e){var t=e._scheduler;t.restorePipelines(e._model),t.prepareStageTasks(),cn(e,!0),cn(e,!1),t.plan()},cn=function(e,t){for(var n=e._model,r=e._scheduler,i=t?e._componentsViews:e._chartsViews,o=t?e._componentsMap:e._chartsMap,a=e._zr,s=e._api,l=0;l=0)){nr.push(n);var a=ot.wrapStageHandler(n,i);a.__prio=t,a.__raw=n,e.push(a)}}function ir(e,t){Fn[e]=t}function or(e,t,n){var r=Object(At["a"])("registerMap");r&&r(e,t,n)}var ar=St["b"];tr(Vt,Ee),tr(Ut,Le),tr(Ut,Ne),tr(Vt,yt),tr(Ut,bt),tr(Zt,Ct),qn(fe),Kn(Nt,he),ir("default",Ye),$n({type:Oe["c"],event:Oe["c"],update:Oe["c"]},o["G"]),$n({type:Oe["b"],event:Oe["b"],update:Oe["b"]},o["G"]),$n({type:Oe["f"],event:Oe["f"],update:Oe["f"]},o["G"]),$n({type:Oe["i"],event:Oe["i"],update:Oe["i"]},o["G"]),$n({type:Oe["h"],event:Oe["h"],update:Oe["h"]},o["G"]),Hn("light",st),Hn("dark",ht)},GDDg:function(e,t,n){"use strict";var r=n("bYtY"),i=n("Qxkt"),o=n("gPAo"),a=n("KxfA"),s=n("B/3G"),l=function(){function e(e,t){this._encode=e,this._schema=t}return e.prototype.get=function(){return{fullDimensions:this._getFullDimensionNames(),encode:this._encode}},e.prototype._getFullDimensionNames=function(){return this._cachedDimNames||(this._cachedDimNames=this._schema?this._schema.makeOutputDimensionNames():[]),this._cachedDimNames},e}();function u(e,t){var n={},i=n.encode={},o=Object(r["f"])(),a=[],u=[],f={};Object(r["j"])(e.dimensions,function(t){var n=e.getDimensionInfo(t),r=n.coordDim;if(r){0;var l=n.coordDimIndex;c(i,r)[l]=t,n.isExtraCoord||(o.set(r,1),d(n.type)&&(a[0]=t),c(f,r)[l]=e.getDimensionIndex(n.name)),n.defaultTooltip&&u.push(t)}s["i"].each(function(e,t){var r=c(i,t),o=n.otherDims[t];null!=o&&!1!==o&&(r[o]=n.name)})});var h=[],p={};o.each(function(e,t){var n=i[t];p[t]=n[0],h=h.concat(n)}),n.dataDimsOnCoord=h,n.dataDimIndicesOnCoord=Object(r["D"])(h,function(t){return e.getDimensionInfo(t).storeDimIndex}),n.encodeFirstDimNotExtra=p;var g=i.label;g&&g.length&&(a=g.slice());var m=i.tooltip;return m&&m.length?u=m.slice():u.length||(u=a.slice()),i.defaultedLabel=a,i.defaultedTooltip=u,n.userOutput=new l(f,t),n}function c(e,t){return e.hasOwnProperty(t)||(e[t]=[]),e[t]}function f(e){return"category"===e?"ordinal":"time"===e?"time":"float"}function d(e){return!("ordinal"===e||"time"===e)}var h,p,g,m,v,y,b,x=function(){function e(e){this.otherDims={},null!=e&&r["l"](this,e)}return e}(),_=x,w=n("4NO4"),O=n("hhxK"),S=n("7G+c"),k=n("0M5g"),j=n("gLkn"),M=r["x"],C=r["D"],T="undefined"===typeof Int32Array?Array:Int32Array,I="e\0\0",D=-1,A=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],E=["_approximateExtent"],P=function(){function e(e,t){var n;this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var i=!1;Object(j["d"])(e)?(n=e.dimensions,this._dimOmitted=e.isDimensionOmitted(),this._schema=e):(i=!0,n=e),n=n||["x","y"];for(var o={},a=[],s={},l=!1,u={},c=0;c=t)){var n=this._store,r=n.getProvider();this._updateOrdinalMeta();var i=this._nameList,o=this._idList,a=r.getSource().sourceFormat,l=a===s["f"];if(l&&!r.pure)for(var u=[],c=e;c0},e.prototype.ensureUniqueItemVisual=function(e,t){var n=this._itemVisuals,i=n[e];i||(i=n[e]={});var o=i[t];return null==o&&(o=this.getVisual(t),r["r"](o)?o=o.slice():M(o)&&(o=r["l"]({},o)),i[t]=o),o},e.prototype.setItemVisual=function(e,t,n){var i=this._itemVisuals[e]||{};this._itemVisuals[e]=i,M(t)?r["l"](i,t):i[t]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(e,t){M(e)?r["l"](this._layout,e):this._layout[e]=t},e.prototype.getLayout=function(e){return this._layout[e]},e.prototype.getItemLayout=function(e){return this._itemLayouts[e]},e.prototype.setItemLayout=function(e,t,n){this._itemLayouts[e]=n?r["l"](this._itemLayouts[e]||{},t):t},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(e,t){var n=this.hostModel&&this.hostModel.seriesIndex;Object(O["b"])(n,this.dataType,e,t),this._graphicEls[e]=t},e.prototype.getItemGraphicEl=function(e){return this._graphicEls[e]},e.prototype.eachItemGraphicEl=function(e,t){r["j"](this._graphicEls,function(n,r){n&&e&&e.call(t,n,r)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:C(this.dimensions,this._getDimInfo,this),this.hostModel)),v(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(e,t){var n=this[e];r["u"](n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(e),this[e]=function(){var e=n.apply(this,arguments);return t.apply(this,[e].concat(r["N"](arguments)))})},e.internalField=function(){h=function(e){var t=e._invertedIndicesMap;r["j"](t,function(n,r){var i=e._dimInfos[r],o=i.ordinalMeta,a=e._store;if(o){n=t[r]=new T(o.categories.length);for(var s=0;s1&&(s+="__ec__"+u),r[t]=s}}}(),e}(),L=P,N=n("D5nY");function R(e,t){Object(S["e"])(e)||(e=Object(S["c"])(e)),t=t||{};var n=t.coordDimensions||[],i=t.dimensionsDefine||e.dimensionsDefine||[],o=Object(r["f"])(),a=[],l=F(e,n,i,t.dimensionsCount),u=t.canOmitUnusedDimensions&&Object(j["e"])(l),c=i===e.dimensionsDefine,f=c?Object(j["c"])(e):Object(j["b"])(i),d=t.encodeDefine;!d&&t.encodeDefaulter&&(d=t.encodeDefaulter(e,l));for(var h=Object(r["f"])(d),p=new k["a"](l),g=0;g0&&(i.name=o+(a-1)),a++,t.set(o,a)}}function F(e,t,n,i){var o=Math.max(e.dimensionsDetectedCount||1,t.length,n.length,i||0);return Object(r["j"])(t,function(e){var t;Object(r["x"])(e)&&(t=e.dimsDef)&&(o=Math.max(o,t.length))}),o}function B(e,t,n){var r=t.data;if(n||r.hasOwnProperty(e)){var i=0;while(r.hasOwnProperty(e+i))i++;e+=i}return t.set(e,!0),e}var Y=n("HznI"),V=function(){function e(e){this.coordSysDims=[],this.axisMap=Object(r["f"])(),this.categoryAxisMap=Object(r["f"])(),this.coordSysName=e}return e}();function G(e){var t=e.get("coordinateSystem"),n=new V(t),r=W[t];if(r)return r(e,n,n.axisMap,n.categoryAxisMap),n}var W={cartesian2d:function(e,t,n,r){var i=e.getReferringComponents("xAxis",w["b"]).models[0],o=e.getReferringComponents("yAxis",w["b"]).models[0];t.coordSysDims=["x","y"],n.set("x",i),n.set("y",o),U(i)&&(r.set("x",i),t.firstCategoryDimIndex=0),U(o)&&(r.set("y",o),null==t.firstCategoryDimIndex&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,n,r){var i=e.getReferringComponents("singleAxis",w["b"]).models[0];t.coordSysDims=["single"],n.set("single",i),U(i)&&(r.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,n,r){var i=e.getReferringComponents("polar",w["b"]).models[0],o=i.findAxisModel("radiusAxis"),a=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),U(o)&&(r.set("radius",o),t.firstCategoryDimIndex=0),U(a)&&(r.set("angle",a),null==t.firstCategoryDimIndex&&(t.firstCategoryDimIndex=1))},geo:function(e,t,n,r){t.coordSysDims=["lng","lat"]},parallel:function(e,t,n,i){var o=e.ecModel,a=o.getComponent("parallel",e.get("parallelIndex")),s=t.coordSysDims=a.dimensions.slice();Object(r["j"])(a.parallelAxisIndex,function(e,r){var a=o.getComponent("parallelAxis",e),l=s[r];n.set(l,a),U(a)&&(i.set(l,a),null==t.firstCategoryDimIndex&&(t.firstCategoryDimIndex=r))})}};function U(e){return"category"===e.get("type")}var H=n("7hqr");function q(e,t){var n,i=e.get("coordinateSystem"),o=Y["a"].get(i);return t&&t.coordSysDims&&(n=r["D"](t.coordSysDims,function(e){var n={name:e},r=t.axisMap.get(e);if(r){var i=r.get("type");n.type=f(i)}return n})),n||(n=o&&(o.getDimensionsInfo?o.getDimensionsInfo():o.dimensions.slice())||["x","y"]),n}function K(e,t,n){var i,o;return n&&r["j"](e,function(e,r){var a=e.coordDim,s=n.categoryAxisMap.get(a);s&&(null==i&&(i=r),e.ordinalMeta=s.getOrdinalMeta(),t&&(e.createInvertedIndices=!0)),null!=e.otherDims.itemName&&(o=!0)}),o||null==i||(e[i].otherDims.itemName=0),i}function Z(e,t,n){n=n||{};var i,o=t.getSourceManager(),a=!1;e?(a=!0,i=Object(S["c"])(e)):(i=o.getSource(),a=i.sourceFormat===s["f"]);var l=G(t),u=q(t,l),c=n.useEncodeDefaulter,f=r["u"](c)?c:c?r["h"](N["c"],u,t):null,d={coordDimensions:u,generateCoord:n.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:f,canOmitUnusedDimensions:!a},h=R(i,d),p=K(h.dimensions,n.createInvertedIndices,l),g=a?null:o.getSharedDataStore(h),m=Object(H["a"])(t,{schema:h,store:g}),v=new L(h,t);v.setCalculationInfo(m);var y=null!=p&&X(i)?function(e,t,n,r){return r===p?n:this.defaultDimValueGetter(e,t,n,r)}:null;return v.hasItemOption=!1,v.initData(a?i:g,null,y),v}function X(e){if(e.sourceFormat===s["f"]){var t=Q(e.data||[]);return!r["r"](Object(w["g"])(t))}}function Q(e){var t=0;while(t=4)return!1;for(d=e.parentType,e.parentType="paragraph";h3)){if(e.sCount[h]>=e.blkIndent&&(l=e.bMarks[h]+e.tShift[h],u=e.eMarks[h],l=u)))){c=61===f?1:2;break}if(!(e.sCount[h]<0)){for(i=!1,o=0,a=p.length;o0&&void 0!==arguments[0]?arguments[0]:{},t=e.history||Object(c["b"])(),n={initialReducer:{router:I(t)},setupMiddlewares:function(e){return[D(t)].concat(Object(o["a"])(e))},setupApp:function(e){e._history=z(t)}},r=Object(p["a"])(e,n),a=r.start;return r.router=s,r.start=l,r;function s(e){u()(A(e),"[app.router] router should be function, but got ".concat(Object(i["a"])(e))),r._router=e}function l(e){L(e)&&(e=d.a.querySelector(e),u()(e,"[app.start] container ".concat(e," not found"))),u()(!e||P(e),"[app.start] container should be HTMLElement"),u()(r._router,"[app.start] router must be registered before app.start()"),r._store||a.call(r);var t=r._store;if(r._getProvider=N.bind(null,t,r),!e)return N(t,this,this._router);R(e,t,r,r._router),r._plugin.apply("onHmr")(R.bind(null,e,t,r))}}function P(e){return"object"===Object(i["a"])(e)&&null!==e&&e.nodeType&&e.nodeName}function L(e){return"string"===typeof e}function N(e,t,n){var i=function(i){return s.a.createElement(h["a"],{store:e},n(Object(r["a"])({app:t,history:t._history},i)))};return i}function R(e,t,r,i){var o=n("i8i4");o.render(s.a.createElement(N(t,r,i)),e)}function z(e){var t=e.listen;return e.listen=function(n){var r=n.toString(),i="handleLocationChange"===n.name&&r.indexOf("onLocationChanged")>-1||r.indexOf(".inTimeTravelling")>-1&&r.indexOf(".inTimeTravelling")>-1&&r.indexOf("arguments[2]")>-1;return n(e.location,e.action),t.call(e,function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&r++,"text"===i[t].type&&t+11||n>0&&!e.noHeader;return Object(o["j"])(e.blocks,function(e){var n=g(e);n>=t&&(t=n+ +(r&&(!n||h(e)&&!e.noHeader)))}),t}return 0}function m(e,t,n,s){var c=t.noHeader,f=b(g(t)),d=[],h=t.blocks||[];Object(o["b"])(!h||Object(o["r"])(h)),h=h||[];var m=e.orderMode;if(t.sortBlocks&&m){h=h.slice();var v={valueAsc:"asc",valueDesc:"desc"};if(Object(o["o"])(v,m)){var y=new a["a"](v[m],null);h.sort(function(e,t){return y.evaluate(e.sortParam,t.sortParam)})}else"seriesDesc"===m&&h.reverse()}Object(o["j"])(h,function(n,r){var i=t.valueFormatter,a=p(n)(i?Object(o["l"])(Object(o["l"])({},e),{valueFormatter:i}):e,n,r>0?f.html:0,s);null!=a&&d.push(a)});var _="richText"===e.renderMode?d.join(f.richText):x(d.join(""),c?n:f.html);if(c)return _;var w=Object(i["e"])(t.header,"ordinal",e.useUTC),S=u(s,e.renderMode).nameStyle;return"richText"===e.renderMode?O(e,w,S)+f.richText+_:x('
'+Object(r["a"])(w)+"
"+_,n)}function v(e,t,n,r){var a=e.renderMode,s=t.noName,l=t.noValue,c=!t.markerType,f=t.name,d=e.useUTC,h=t.valueFormatter||e.valueFormatter||function(e){return e=Object(o["r"])(e)?e:[e],Object(o["D"])(e,function(e,t){return Object(i["e"])(e,Object(o["r"])(m)?m[t]:m,d)})};if(!s||!l){var p=c?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",a),g=s?"":Object(i["e"])(f,"ordinal",d),m=t.valueType,v=l?[]:h(t.value),y=!c||!s,b=!c&&s,k=u(r,a),j=k.nameStyle,M=k.valueStyle;return"richText"===a?(c?"":p)+(s?"":O(e,g,j))+(l?"":S(e,v,y,b,M)):x((c?"":p)+(s?"":_(g,!c,j))+(l?"":w(v,y,b,M)),n)}}function y(e,t,n,r,i,o){if(e){var a=p(e),s={useUTC:i,renderMode:n,orderMode:r,markupStyleCreator:t,valueFormatter:e.valueFormatter};return a(s,e,0,o)}}function b(e){return{html:c[e],richText:f[e]}}function x(e,t){var n='
',r="margin: "+t+"px 0 0";return'
'+e+n+"
"}function _(e,t,n){var i=t?"margin-left:2px":"";return''+Object(r["a"])(e)+""}function w(e,t,n,i){var a=n?"10px":"20px",s=t?"float:right;margin-left:"+a:"";return e=Object(o["r"])(e)?e:[e],''+Object(o["D"])(e,function(e){return Object(r["a"])(e)}).join("  ")+""}function O(e,t,n){return e.markupStyleCreator.wrapRichTextStyle(t,n)}function S(e,t,n,r,i){var a=[i],s=r?10:20;return n&&a.push({padding:[0,0,0,s],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(Object(o["r"])(t)?t.join(" "):t,a)}function k(e,t){var n=e.getData().getItemVisual(t,"style"),r=n[e.visualDrawType];return Object(i["b"])(r)}function j(e,t){var n=e.get("padding");return null!=n?n:"richText"===t?[8,10]:10}var M=function(){function e(){this.richTextStyles={},this._nextStyleNameId=Object(s["f"])()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(e,t,n){var r="richText"===n?this._generateStyleName():null,a=Object(i["d"])({color:t,type:e,renderMode:n,markerId:r});return Object(o["y"])(a)?a:(this.richTextStyles[r]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(e,t){var n={};Object(o["r"])(t)?Object(o["j"])(t,function(e){return Object(o["l"])(n,e)}):Object(o["l"])(n,t);var r=this._generateStyleName();return this.richTextStyles[r]=n,"{"+r+"|"+e+"}"},e}()},Ioao:function(e,t,n){var r=n("heNW"),i=Math.max;function o(e,t,n){return t=i(void 0===t?e.length-1:t,0),function(){var o=arguments,a=-1,s=i(o.length-t,0),l=Array(s);while(++a=0||(f.push(e),Object(l["u"])(e)&&(e={install:e}),e.install(d))}},IwbS:function(e,t,n){"use strict";n.r(t),n.d(t,"extendShape",function(){return L}),n.d(t,"extendPath",function(){return R}),n.d(t,"registerShape",function(){return z}),n.d(t,"getShapeClass",function(){return F}),n.d(t,"makePath",function(){return B}),n.d(t,"makeImage",function(){return Y}),n.d(t,"mergePath",function(){return G}),n.d(t,"resizePath",function(){return W}),n.d(t,"subPixelOptimizeLine",function(){return U}),n.d(t,"subPixelOptimizeRect",function(){return H}),n.d(t,"subPixelOptimize",function(){return q}),n.d(t,"getTransform",function(){return K}),n.d(t,"applyTransform",function(){return Z}),n.d(t,"transformDirection",function(){return X}),n.d(t,"groupTransition",function(){return J}),n.d(t,"clipPointsByRect",function(){return ee}),n.d(t,"clipRectByRect",function(){return te}),n.d(t,"createIcon",function(){return ne}),n.d(t,"linePolygonIntersect",function(){return re}),n.d(t,"lineLineIntersect",function(){return ie}),n.d(t,"setTooltipConfig",function(){return se}),n.d(t,"traverseElements",function(){return ue});var r=n("NC18"),i=n("Fofx"),o=n("QBsz"),a=n("y+Vt");n.d(t,"Path",function(){return a["b"]});var s=n("hYLj"),l=n("Dagg");n.d(t,"Image",function(){return l["a"]});var u=n("LcXL");n.d(t,"Group",function(){return u["a"]});var c=n("dqUG");n.d(t,"Text",function(){return c["a"]});var f=n("2fw6");n.d(t,"Circle",function(){return f["a"]});var d=n("rmlV");n.d(t,"Ellipse",function(){return d["a"]});var h=n("SqI9");n.d(t,"Sector",function(){return h["a"]});var p=n("RXMa");n.d(t,"Ring",function(){return p["a"]});var g=n("h7HQ");n.d(t,"Polygon",function(){return g["a"]});var m=n("1Jh7");n.d(t,"Polyline",function(){return m["a"]});var v=n("x6Kt");n.d(t,"Rect",function(){return v["a"]});var y=n("yxFR");n.d(t,"Line",function(){return y["a"]});var b=n("rA99");n.d(t,"BezierCurve",function(){return b["a"]});var x=n("jTL6");n.d(t,"Arc",function(){return x["a"]});var _=n("1MYJ");n.d(t,"CompoundPath",function(){return _["a"]});var w=n("SKnc");n.d(t,"LinearGradient",function(){return w["a"]});var O=n("3e3G");n.d(t,"RadialGradient",function(){return O["a"]});var S=n("mFDi");n.d(t,"BoundingRect",function(){return S["a"]});var k=n("yoD8");n.d(t,"OrientedBoundingRect",function(){return k["a"]});var j=n("3Oj7");n.d(t,"Point",function(){return j["a"]});var M=n("OS9S");n.d(t,"IncrementalDisplayable",function(){return M["a"]});var C=n("nPnh"),T=n("bYtY"),I=n("hhxK"),D=n("3soF");n.d(t,"updateProps",function(){return D["h"]}),n.d(t,"initProps",function(){return D["c"]}),n.d(t,"removeElement",function(){return D["e"]}),n.d(t,"removeElementWithFadeOut",function(){return D["f"]}),n.d(t,"isElementRemoved",function(){return D["d"]});var A=Math.max,E=Math.min,P={};function L(e){return a["b"].extend(e)}var N=r["c"];function R(e,t){return N(e,t)}function z(e,t){P[e]=t}function F(e){if(P.hasOwnProperty(e))return P[e]}function B(e,t,n,i){var o=r["b"](e,t);return n&&("center"===i&&(n=V(n,o.getBoundingRect())),W(o,n)),o}function Y(e,t,n){var r=new l["a"]({style:{image:e,x:t.x,y:t.y,width:t.width,height:t.height},onload:function(e){if("center"===n){var i={width:e.width,height:e.height};r.setStyle(V(t,i))}}});return r}function V(e,t){var n,r=t.width/t.height,i=e.height*r;i<=e.width?n=e.height:(i=e.width,n=i/r);var o=e.x+e.width/2,a=e.y+e.height/2;return{x:o-i/2,y:a-n/2,width:i,height:n}}var G=r["d"];function W(e,t){if(e.applyTransform){var n=e.getBoundingRect(),r=n.calculateTransform(t);e.applyTransform(r)}}function U(e,t){return C["b"](e,e,{lineWidth:t}),e}function H(e){return C["c"](e.shape,e.shape,e.style),e}var q=C["a"];function K(e,t){var n=i["c"]([]);while(e&&e!==t)i["e"](n,e.getLocalTransform(),n),e=e.parent;return n}function Z(e,t,n){return t&&!Object(T["s"])(t)&&(t=s["c"].getLocalTransform(t)),n&&(t=i["d"]([],t)),o["b"]([],e,t)}function X(e,t,n){var r=0===t[4]||0===t[5]||0===t[0]?1:Math.abs(2*t[4]/t[0]),i=0===t[4]||0===t[5]||0===t[2]?1:Math.abs(2*t[4]/t[2]),o=["left"===e?-r:"right"===e?r:0,"top"===e?-i:"bottom"===e?i:0];return o=Z(o,t,n),Math.abs(o[0])>Math.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function Q(e){return!e.isGroup}function $(e){return null!=e.shape}function J(e,t,n){if(e&&t){var r=i(e);t.traverse(function(e){if(Q(e)&&e.anid){var t=r[e.anid];if(t){var i=o(e);e.attr(o(t)),Object(D["h"])(e,i,n,Object(I["a"])(e).dataIndex)}}})}function i(e){var t={};return e.traverse(function(e){Q(e)&&e.anid&&(t[e.anid]=e)}),t}function o(e){var t={x:e.x,y:e.y,rotation:e.rotation};return $(e)&&(t.shape=Object(T["l"])({},e.shape)),t}}function ee(e,t){return Object(T["D"])(e,function(e){var n=e[0];n=A(n,t.x),n=E(n,t.x+t.width);var r=e[1];return r=A(r,t.y),r=E(r,t.y+t.height),[n,r]})}function te(e,t){var n=A(e.x,t.x),r=E(e.x+e.width,t.x+t.width),i=A(e.y,t.y),o=E(e.y+e.height,t.y+t.height);if(r>=n&&o>=i)return{x:n,y:i,width:r-n,height:o-i}}function ne(e,t,n){var r=Object(T["l"])({rectHover:!0},t),i=r.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},e)return 0===e.indexOf("image://")?(i.image=e.slice(8),Object(T["i"])(i,n),new l["a"](r)):B(e.replace("path://",""),r,n,"center")}function re(e,t,n,r,i){for(var o=0,a=i[i.length-1];o1)return!1;var m=oe(h,p,c,f)/d;return!(m<0||m>1)}function oe(e,t,n,r){return e*r-n*t}function ae(e){return e<=1e-6&&e>=-1e-6}function se(e){var t=e.itemTooltipOption,n=e.componentModel,r=e.itemName,i=Object(T["y"])(t)?{formatter:t}:t,o=n.mainType,a=n.componentIndex,s={componentType:o,name:r,$vars:["name"]};s[o+"Index"]=a;var l=e.formatterParamsExtra;l&&Object(T["j"])(Object(T["B"])(l),function(e){Object(T["o"])(s,e)||(s[e]=l[e],s.$vars.push(e))});var u=Object(I["a"])(e.el);u.componentMainType=o,u.componentIndex=a,u.tooltipConfig={name:r,option:Object(T["i"])({content:r,formatterParams:s},i)}}function le(e,t){var n;e.isGroup&&(n=t(e)),n||e.traverse(t)}function ue(e,t){if(e)if(Object(T["r"])(e))for(var n=0;n=0||o&&r["p"](o,l)<0)){var u=n.getShallow(l,t);null!=u&&(a[e[s][0]]=u)}}return a}}},KMkd:function(e,t){function n(){this.__data__=[],this.size=0}e.exports=n},KOyK:function(e,t,n){"use strict";var r=/^([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])?)*)$/,i=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;e.exports=function(e,t){var n,o,a,s,l,u,c=e.pos;if(60!==e.src.charCodeAt(c))return!1;for(l=e.pos,u=e.posMax;;){if(++c>=u)return!1;if(s=e.src.charCodeAt(c),60===s)return!1;if(62===s)break}return n=e.src.slice(l+1,c),i.test(n)?(o=e.md.normalizeLink(n),!!e.md.validateLink(o)&&(t||(a=e.push("link_open","a",1),a.attrs=[["href",o]],a.markup="autolink",a.info="auto",a=e.push("text","",0),a.content=e.md.normalizeLinkText(n),a=e.push("link_close","a",-1),a.markup="autolink",a.info="auto"),e.pos+=n.length+2,!0)):!!r.test(n)&&(o=e.md.normalizeLink("mailto:"+n),!!e.md.validateLink(o)&&(t||(a=e.push("link_open","a",1),a.attrs=[["href",o]],a.markup="autolink",a.info="auto",a=e.push("text","",0),a.content=e.md.normalizeLinkText(n),a=e.push("link_close","a",-1),a.markup="autolink",a.info="auto"),e.pos+=n.length+2,!0))}},KfNM:function(e,t){var n=Object.prototype,r=n.toString;function i(e){return r.call(e)}e.exports=i},KxfA:function(e,t,n){"use strict";n.d(t,"a",function(){return d}),n.d(t,"c",function(){return g}),n.d(t,"b",function(){return y}),n.d(t,"d",function(){return _}),n.d(t,"e",function(){return O});var r,i,o,a,s,l=n("bYtY"),u=n("4NO4"),c=n("7G+c"),f=n("B/3G"),d=function(){function e(e,t){var n=Object(c["e"])(e)?e:Object(c["c"])(e);this._source=n;var r=this._data=n.data;n.sourceFormat===f["g"]&&(this._offset=0,this._dimSize=t,this._data=r),s(this,r,n)}return e.prototype.getSource=function(){return this._source},e.prototype.count=function(){return 0},e.prototype.getItem=function(e,t){},e.prototype.appendData=function(e){},e.prototype.clean=function(){},e.protoInitialize=function(){var t=e.prototype;t.pure=!1,t.persistent=!0}(),e.internalField=function(){var e;s=function(e,i,o){var s=o.sourceFormat,u=o.seriesLayoutBy,c=o.startIndex,d=o.dimensionsDefine,h=a[w(s,u)];if(Object(l["l"])(e,h),s===f["g"])e.getItem=t,e.count=r,e.fillStorage=n;else{var p=g(s,u);e.getItem=Object(l["c"])(p,null,i,c,d);var m=y(s,u);e.count=Object(l["c"])(m,null,i,c,d)}};var t=function(e,t){e-=this._offset,t=t||[];for(var n=this._data,r=this._dimSize,i=r*e,o=0;ou&&(u=h)}s[0]=l,s[1]=u}},r=function(){return this._data?this._data.length/this._dimSize:0};function i(e){for(var t=0;t-1?(l+="top:50%",c+="translateY(-50%) rotate("+(o="left"===a?-225:-45)+"deg)"):(l+="left:50%",c+="translateX(-50%) rotate("+(o="top"===a?225:45)+"deg)");var f=o*Math.PI/180,d=s+i,p=d*Math.abs(Math.cos(f))+d*Math.abs(Math.sin(f)),g=Math.round(100*((p-Math.SQRT2*i)/2+Math.SQRT2*i-(p-d)/2))/100;l+=";"+a+":-"+g+"px";var m=t+" solid "+i+"px;",v=["position:absolute;width:"+s+"px;height:"+s+"px;",l+";"+c+";","border-bottom:"+m,"border-right:"+m,"background-color:"+r+";"];return'
'}function j(e,t){var n="cubic-bezier(0.23,1,0.32,1)",r=" "+e/2+"s "+n,i="opacity"+r+",visibility"+r;return t||(r=" "+e+"s "+n,i+=c["a"].transformSupported?","+w+r:",left"+r+",top"+r),_+":"+i}function M(e,t,n){var r=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!c["a"].transformSupported)return n?"top:"+i+";left:"+r+";":[["top",i],["left",r]];var o=c["a"].transform3dSupported,a="translate"+(o?"3d":"")+"("+r+","+i+(o?",0":"")+")";return n?"top:0;left:0;"+w+":"+a+";":[["top",0],["left",0],[m,a]]}function C(e){var t=[],n=e.get("fontSize"),r=e.getTextColor();r&&t.push("color:"+r),t.push("font:"+e.getFont()),n&&t.push("line-height:"+Math.round(3*n/2)+"px");var i=e.get("textShadowColor"),o=e.get("textShadowBlur")||0,a=e.get("textShadowOffsetX")||0,s=e.get("textShadowOffsetY")||0;return i&&o&&t.push("text-shadow:"+a+"px "+s+"px "+o+"px "+i),Object(u["j"])(["decoration","align"],function(n){var r=e.get(n);r&&t.push("text-"+n+":"+r)}),t.join(";")}function T(e,t,n){var r=[],i=e.get("transitionDuration"),o=e.get("backgroundColor"),a=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),c=e.get("shadowOffsetY"),f=e.getModel("textStyle"),d=Object(x["d"])(e,"html"),p=l+"px "+c+"px "+a+"px "+s;return r.push("box-shadow:"+p),t&&i&&r.push(j(i,n)),o&&r.push("background-color:"+o),Object(u["j"])(["width","color","radius"],function(t){var n="border-"+t,i=Object(h["g"])(n),o=e.get(i);null!=o&&r.push(n+":"+o+("color"===t?"":"px"))}),r.push(C(f)),null!=d&&r.push("padding:"+Object(h["f"])(d).join("px ")+"px"),r.join(";")+";"}function I(e,t,n,r,i){var o=t&&t.painter;if(n){var a=o&&o.getViewportRoot();a&&Object(d["d"])(e,a,document.body,r,i)}else{e[0]=r,e[1]=i;var s=o&&o.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var D=function(){function e(e,t,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,c["a"].wxa)return null;var r=document.createElement("div");r.domBelongToZr=!0,this.el=r;var i=this._zr=t.getZr(),o=this._appendToBody=n&&n.appendToBody;I(this._styleCoord,i,o,t.getWidth()/2,t.getHeight()/2),o?document.body.appendChild(r):e.appendChild(r),this._container=e;var a=this;r.onmouseenter=function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0},r.onmousemove=function(e){if(e=e||window.event,!a._enterable){var t=i.handler,n=i.painter.getViewportRoot();Object(f["d"])(n,e,!0),t.dispatch("mousemove",e)}},r.onmouseleave=function(){a._inContent=!1,a._enterable&&a._show&&a.hideLater(a._hideDelay)}}return e.prototype.update=function(e){var t=this._container,n=b(t,"position"),r=t.style;"absolute"!==r.position&&"absolute"!==n&&(r.position="relative");var i=e.get("alwaysShowContent");i&&this._moveIfResized(),this.el.className=e.get("className")||""},e.prototype.show=function(e,t){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,r=n.style,i=this._styleCoord;n.innerHTML?r.cssText=O+T(e,!this._firstShow,this._longHide)+M(i[0],i[1],!0)+"border-color:"+Object(h["b"])(t)+";"+(e.get("extraCssText")||"")+";pointer-events:"+(this._enterable?"auto":"none"):r.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(e,t,n,r,i){var o=this.el;if(null!=e){var a="";if(Object(u["y"])(i)&&"item"===n.get("trigger")&&!p(n)&&(a=k(n,r,i)),Object(u["y"])(e))o.innerHTML=e+a;else if(e){o.innerHTML="",Object(u["r"])(e)||(e=[e]);for(var s=0;s=0?this._tryShow(n,r):"leave"===e&&this._hide(r))},this))},t.prototype._keepShow=function(){var e=this._tooltipModel,t=this._ecModel,n=this._api,r=e.get("triggerOn");if(null!=this._lastX&&null!=this._lastY&&"none"!==r&&"click"!==r){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!n.isDisposed()&&i.manuallyShowTip(e,t,n,{x:i._lastX,y:i._lastY,dataByCoordSys:i._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(e,t,n,r){if(r.from!==this.uid&&!c["a"].node&&n.getDom()){var i=ie(r,n);this._ticket="";var o=r.dataByCoordSys,a=ue(r,t,n);if(a){var s=a.el.getBoundingRect().clone();s.applyTransform(a.el.transform),this._tryShow({offsetX:s.x+s.width/2,offsetY:s.y+s.height/2,target:a.el,position:r.position,positionDefault:"bottom"},i)}else if(r.tooltip&&null!=r.x&&null!=r.y){var l=te;l.x=r.x,l.y=r.y,l.update(),Object(Q["a"])(l).tooltipConfig={name:null,option:r.tooltip},this._tryShow({offsetX:r.x,offsetY:r.y,target:l},i)}else if(o)this._tryShow({offsetX:r.x,offsetY:r.y,position:r.position,dataByCoordSys:o,tooltipOption:r.tooltipOption},i);else if(null!=r.seriesIndex){if(this._manuallyAxisShowTip(e,t,n,r))return;var u=Object(V["a"])(r,t),f=u.point[0],d=u.point[1];null!=f&&null!=d&&this._tryShow({offsetX:f,offsetY:d,target:u.el,position:r.position,positionDefault:"bottom"},i)}else null!=r.x&&null!=r.y&&(n.dispatchAction({type:"updateAxisPointer",x:r.x,y:r.y}),this._tryShow({offsetX:r.x,offsetY:r.y,position:r.position,target:n.getZr().findHover(r.x,r.y).target},i))}},t.prototype.manuallyHideTip=function(e,t,n,r){var i=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&i.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,r.from!==this.uid&&this._hide(ie(r,n))},t.prototype._manuallyAxisShowTip=function(e,t,n,r){var i=r.seriesIndex,o=r.dataIndex,a=t.getComponent("axisPointer").coordSysAxesInfo;if(null!=i&&null!=o&&null!=a){var s=t.getSeriesByIndex(i);if(s){var l=s.getData(),u=re([l.getItemModel(o),s,(s.coordinateSystem||{}).model],this._tooltipModel);if("axis"===u.get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:i,dataIndex:o,position:r.position}),!0}}},t.prototype._tryShow=function(e,t){var n=e.target,r=this._tooltipModel;if(r){this._lastX=e.offsetX,this._lastY=e.offsetY;var i=e.dataByCoordSys;if(i&&i.length)this._showAxisTooltip(i,e);else if(n){var o,a;this._lastDataByCoordSys=null,Object(J["a"])(n,function(e){return null!=Object(Q["a"])(e).dataIndex?(o=e,!0):null!=Object(Q["a"])(e).tooltipConfig?(a=e,!0):void 0},!0),o?this._showSeriesItemTooltip(e,o,t):a?this._showComponentItemTooltip(e,a,t):this._hide(t)}else this._lastDataByCoordSys=null,this._hide(t)}},t.prototype._showOrMove=function(e,t){var n=e.get("showDelay");t=Object(u["c"])(t,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(t,n):t()},t.prototype._showAxisTooltip=function(e,t){var n=this._ecModel,r=this._tooltipModel,i=[t.offsetX,t.offsetY],o=re([t.tooltipOption],r),a=this._renderMode,s=[],l=Object(x["c"])("section",{blocks:[],noHeader:!0}),c=[],f=new x["a"];Object(u["j"])(e,function(e){Object(u["j"])(e.dataByAxis,function(e){var t=n.getComponent(e.axisDim+"Axis",e.axisIndex),i=e.value;if(t&&null!=i){var o=q["d"](i,t.axis,n,e.seriesDataIndices,e.valueLabelOpt),d=Object(x["c"])("section",{header:o,noHeader:!Object(u["O"])(o),sortBlocks:!0,blocks:[]});l.blocks.push(d),Object(u["j"])(e.seriesDataIndices,function(l){var p=n.getSeriesByIndex(l.seriesIndex),g=l.dataIndexInside,m=p.getDataParams(g);if(!(m.dataIndex<0)){m.axisDim=e.axisDim,m.axisIndex=e.axisIndex,m.axisType=e.axisType,m.axisId=e.axisId,m.axisValue=H["c"](t.axis,{value:i}),m.axisValueLabel=o,m.marker=f.makeTooltipMarker("item",Object(h["b"])(m.color),a);var v=Object($["b"])(p.formatTooltip(g,!0,null)),y=v.frag;if(y){var b=re([p],r).get("valueFormatter");d.blocks.push(b?Object(u["l"])({valueFormatter:b},y):y)}v.text&&c.push(v.text),s.push(m)}})}})}),l.blocks.reverse(),c.reverse();var d=t.position,p=o.get("order"),g=Object(x["b"])(l,f,a,p,n.get("useUTC"),o.get("textStyle"));g&&c.unshift(g);var m="richText"===a?"\n\n":"
",v=c.join(m);this._showOrMove(o,function(){this._updateContentNotChangedOnAxis(e,s)?this._updatePosition(o,d,i[0],i[1],this._tooltipContent,s):this._showTooltipContent(o,v,s,Math.random()+"",i[0],i[1],d,null,f)})},t.prototype._showSeriesItemTooltip=function(e,t,n){var r=this._ecModel,i=Object(Q["a"])(t),o=i.seriesIndex,a=r.getSeriesByIndex(o),s=i.dataModel||a,l=i.dataIndex,c=i.dataType,f=s.getData(c),d=this._renderMode,p=e.positionDefault,g=re([f.getItemModel(l),s,a&&(a.coordinateSystem||{}).model],this._tooltipModel,p?{position:p}:null),m=g.get("trigger");if(null==m||"item"===m){var v=s.getDataParams(l,c),y=new x["a"];v.marker=y.makeTooltipMarker("item",Object(h["b"])(v.color),d);var b=Object($["b"])(s.formatTooltip(l,!1,c)),_=g.get("order"),w=g.get("valueFormatter"),O=b.frag,S=O?Object(x["b"])(w?Object(u["l"])({valueFormatter:w},O):O,y,d,_,r.get("useUTC"),g.get("textStyle")):b.text,k="item_"+s.name+"_"+l;this._showOrMove(g,function(){this._showTooltipContent(g,S,v,k,e.offsetX,e.offsetY,e.position,e.target,y)}),n({type:"showTip",dataIndexInside:l,dataIndex:f.getRawIndex(l),seriesIndex:o,from:this.uid})}},t.prototype._showComponentItemTooltip=function(e,t,n){var r=Object(Q["a"])(t),i=r.tooltipConfig,o=i.option||{};if(Object(u["y"])(o)){var a=o;o={content:a,formatter:a}}var s=[o],l=this._ecModel.getComponent(r.componentMainType,r.componentIndex);l&&s.push(l),s.push({formatter:o.content});var c=e.positionDefault,f=re(s,this._tooltipModel,c?{position:c}:null),d=f.get("content"),h=Math.random()+"",p=new x["a"];this._showOrMove(f,function(){var n=Object(u["d"])(f.get("formatterParams")||{});this._showTooltipContent(f,d,n,h,e.offsetX,e.offsetY,e.position,t,p)}),n({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(e,t,n,r,i,o,a,s,l){if(this._ticket="",e.get("showContent")&&e.get("show")){var c=this._tooltipContent;c.setEnterable(e.get("enterable"));var f=e.get("formatter");a=a||e.get("position");var d=t,p=this._getNearestPoint([i,o],n,e.get("trigger"),e.get("borderColor")),g=p.color;if(f)if(Object(u["y"])(f)){var m=e.ecModel.get("useUTC"),v=Object(u["r"])(n)?n[0]:n,y=v&&v.axisType&&v.axisType.indexOf("time")>=0;d=f,y&&(d=Object(X["h"])(v.axisValue,d,m)),d=Object(h["c"])(d,n,!0)}else if(Object(u["u"])(f)){var b=Object(u["c"])(function(t,r){t===this._ticket&&(c.setContent(r,l,e,g,a),this._updatePosition(e,a,i,o,c,n,s))},this);this._ticket=r,d=f(n,r,b)}else d=f;c.setContent(d,l,e,g,a),c.show(e,g),this._updatePosition(e,a,i,o,c,n,s)}},t.prototype._getNearestPoint=function(e,t,n,r){return"axis"===n||Object(u["r"])(t)?{color:r||("html"===this._renderMode?"#fff":"none")}:Object(u["r"])(t)?void 0:{color:r||t.color||t.borderColor}},t.prototype._updatePosition=function(e,t,n,r,i,o,a){var s=this._api.getWidth(),l=this._api.getHeight();t=t||e.get("position");var c=i.getSize(),f=e.get("align"),d=e.get("verticalAlign"),h=a&&a.getBoundingRect().clone();if(a&&h.applyTransform(a.transform),Object(u["u"])(t)&&(t=t([n,r],o,i.el,h,{viewSize:[s,l],contentSize:c.slice()})),Object(u["r"])(t))n=Object(B["m"])(t[0],s),r=Object(B["m"])(t[1],l);else if(Object(u["x"])(t)){var g=t;g.width=c[0],g.height=c[1];var m=Object(G["d"])(g,{width:s,height:l});n=m.x,r=m.y,f=null,d=null}else if(Object(u["y"])(t)&&a){var v=se(t,h,c,e.get("borderWidth"));n=v[0],r=v[1]}else{v=oe(n,r,i,s,l,f?null:20,d?null:20);n=v[0],r=v[1]}if(f&&(n-=le(f)?c[0]/2:"right"===f?c[0]:0),d&&(r-=le(d)?c[1]/2:"bottom"===d?c[1]:0),p(e)){v=ae(n,r,i,s,l);n=v[0],r=v[1]}i.moveTo(n,r)},t.prototype._updateContentNotChangedOnAxis=function(e,t){var n=this._lastDataByCoordSys,r=this._cbParamsList,i=!!n&&n.length===e.length;return i&&Object(u["j"])(n,function(n,o){var a=n.dataByAxis||[],s=e[o]||{},l=s.dataByAxis||[];i=i&&a.length===l.length,i&&Object(u["j"])(a,function(e,n){var o=l[n]||{},a=e.seriesDataIndices||[],s=o.seriesDataIndices||[];i=i&&e.value===o.value&&e.axisType===o.axisType&&e.axisId===o.axisId&&a.length===s.length,i&&Object(u["j"])(a,function(e,t){var n=s[t];i=i&&e.seriesIndex===n.seriesIndex&&e.dataIndex===n.dataIndex}),r&&Object(u["j"])(e.seriesDataIndices,function(e){var n=e.seriesIndex,o=t[n],a=r[n];o&&a&&a.data!==o.data&&(i=!1)})})}),this._lastDataByCoordSys=e,this._cbParamsList=t,!!i},t.prototype._hide=function(e){this._lastDataByCoordSys=null,e({type:"hideTip",from:this.uid})},t.prototype.dispose=function(e,t){!c["a"].node&&t.getDom()&&(Object(ee["a"])(this,"_updatePosition"),this._tooltipContent.dispose(),U["b"]("itemTooltip",t))},t.type="tooltip",t}(Z["a"]);function re(e,t,n){var r,i=t.ecModel;n?(r=new W["a"](n,i,i),r=new W["a"](t.option,r,i)):r=t;for(var o=e.length-1;o>=0;o--){var a=e[o];a&&(a instanceof W["a"]&&(a=a.get("tooltip",!0)),Object(u["y"])(a)&&(a={formatter:a}),a&&(r=new W["a"](a,r,i)))}return r}function ie(e,t){return e.dispatchAction||Object(u["c"])(t.dispatchAction,t)}function oe(e,t,n,r,i,o,a){var s=n.getSize(),l=s[0],u=s[1];return null!=o&&(e+l+o+2>r?e-=l+o:e+=o),null!=a&&(t+u+a>i?t-=u+a:t+=a),[e,t]}function ae(e,t,n,r,i){var o=n.getSize(),a=o[0],s=o[1];return e=Math.min(e+a,r)-a,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function se(e,t,n,r){var i=n[0],o=n[1],a=Math.ceil(Math.SQRT2*r)+8,s=0,l=0,u=t.width,c=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+c/2-o/2;break;case"top":s=t.x+u/2-i/2,l=t.y-o-a;break;case"bottom":s=t.x+u/2-i/2,l=t.y+c+a;break;case"left":s=t.x-i-a,l=t.y+c/2-o/2;break;case"right":s=t.x+u+a,l=t.y+c/2-o/2}return[s,l]}function le(e){return"center"===e||"middle"===e}function ue(e,t,n){var r=Object(K["r"])(e).queryOptionMap,i=r.keys()[0];if(i&&"series"!==i){var o=Object(K["t"])(t,i,r.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),a=o.models[0];if(a){var s,l=n.getViewOfComponentModel(a);return l.group.traverse(function(t){var n=Object(Q["a"])(t).tooltipConfig;if(n&&n.name===e.name)return s=t,!0}),s?{componentMainType:i,componentIndex:a.componentIndex,el:s}:void 0}}}var ce=ne;function fe(e){Object(i["a"])(r["a"]),e.registerComponentModel(l),e.registerComponentView(ce),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},u["G"]),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},u["G"])}n.d(t,"a",function(){return fe})},LcsW:function(e,t,n){var r=n("kekF"),i=r(Object.getPrototypeOf,Object);e.exports=i},LsHQ:function(e,t,n){var r=n("EA7m"),i=n("mv/X");function o(e){return r(function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;a=e.length>3&&"function"==typeof a?(o--,a):void 0,s&&i(n[0],n[1],s)&&(a=o<3?void 0:a,o=1),t=Object(t);while(++r=0}function c(e){return e+"Axis"}function f(e,t){var n,r=Object(o["f"])(),i=[],a=Object(o["f"])();e.eachComponent({mainType:"dataZoom",query:t},function(e){a.get(e.uid)||l(e)});do{n=!1,e.eachComponent("dataZoom",s)}while(n);function s(e){!a.get(e.uid)&&u(e)&&(l(e),n=!0)}function l(e){a.set(e.uid,!0),i.push(e),c(e)}function u(e){var t=!1;return e.eachTargetAxis(function(e,n){var i=r.get(e);i&&i[n]&&(t=!0)}),t}function c(e){e.eachTargetAxis(function(e,t){(r.get(e)||r.set(e,[]))[t]=!0})}return i}var d=n("4NO4"),h=function(){function e(){this.indexList=[],this.indexMap=[]}return e.prototype.add=function(e){this.indexMap[e]||(this.indexList.push(e),this.indexMap[e]=!0)},e}(),p=function(e){function t(){var n=null!==e&&e.apply(this,arguments)||this;return n.type=t.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=["percent","percent"],n}return Object(i["a"])(t,e),t.prototype.init=function(e,t,n){var r=g(e);this.settledOption=r,this.mergeDefaultAndTheme(e,n),this._doInit(r)},t.prototype.mergeOption=function(e){var t=g(e);Object(o["E"])(this.option,e,!0),Object(o["E"])(this.settledOption,t,!0),this._doInit(t)},t.prototype._doInit=function(e){var t=this.option;this._setDefaultThrottle(e),this._updateRangeUse(e);var n=this.settledOption;Object(o["j"])([["start","startValue"],["end","endValue"]],function(e,r){"value"===this._rangePropMode[r]&&(t[e[0]]=n[e[0]]=null)},this),this._resetTarget()},t.prototype._resetTarget=function(){var e=this.get("orient",!0),t=this._targetAxisInfoMap=Object(o["f"])(),n=this._fillSpecifiedTargetAxis(t);n?this._orient=e||this._makeAutoOrientByTargetAxis():(this._orient=e||"horizontal",this._fillAutoTargetAxisByOrient(t,this._orient)),this._noTarget=!0,t.each(function(e){e.indexList.length&&(this._noTarget=!1)},this)},t.prototype._fillSpecifiedTargetAxis=function(e){var t=!1;return Object(o["j"])(s,function(n){var r=this.getReferringComponents(c(n),d["a"]);if(r.specified){t=!0;var i=new h;Object(o["j"])(r.models,function(e){i.add(e.componentIndex)}),e.set(n,i)}},this),t},t.prototype._fillAutoTargetAxisByOrient=function(e,t){var n=this.ecModel,r=!0;if(r){var i="vertical"===t?"y":"x",a=n.findComponents({mainType:i+"Axis"});l(a,i)}if(r){a=n.findComponents({mainType:"singleAxis",filter:function(e){return e.get("orient",!0)===t}});l(a,"single")}function l(t,n){var i=t[0];if(i){var a=new h;if(a.add(i.componentIndex),e.set(n,a),r=!1,"x"===n||"y"===n){var s=i.getReferringComponents("grid",d["b"]).models[0];s&&Object(o["j"])(t,function(e){i.componentIndex!==e.componentIndex&&s===e.getReferringComponents("grid",d["b"]).models[0]&&a.add(e.componentIndex)})}}}r&&Object(o["j"])(s,function(t){if(r){var i=n.findComponents({mainType:c(t),filter:function(e){return"category"===e.get("type",!0)}});if(i[0]){var o=new h;o.add(i[0].componentIndex),e.set(t,o),r=!1}}},this)},t.prototype._makeAutoOrientByTargetAxis=function(){var e;return this.eachTargetAxis(function(t){!e&&(e=t)},this),"y"===e?"vertical":"horizontal"},t.prototype._setDefaultThrottle=function(e){if(e.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var t=this.ecModel.option;this.option.throttle=t.animation&&t.animationDurationUpdate>0?100:20}},t.prototype._updateRangeUse=function(e){var t=this._rangePropMode,n=this.get("rangeMode");Object(o["j"])([["start","startValue"],["end","endValue"]],function(r,i){var o=null!=e[r[0]],a=null!=e[r[1]];o&&!a?t[i]="percent":!o&&a?t[i]="value":n?t[i]=n[i]:o&&(t[i]="percent")})},t.prototype.noTarget=function(){return this._noTarget},t.prototype.getFirstTargetAxisModel=function(){var e;return this.eachTargetAxis(function(t,n){null==e&&(e=this.ecModel.getComponent(c(t),n))},this),e},t.prototype.eachTargetAxis=function(e,t){this._targetAxisInfoMap.each(function(n,r){Object(o["j"])(n.indexList,function(n){e.call(t,r,n)})})},t.prototype.getAxisProxy=function(e,t){var n=this.getAxisModel(e,t);if(n)return n.__dzAxisProxy},t.prototype.getAxisModel=function(e,t){var n=this._targetAxisInfoMap.get(e);if(n&&n.indexMap[t])return this.ecModel.getComponent(c(e),t)},t.prototype.setRawRange=function(e){var t=this.option,n=this.settledOption;Object(o["j"])([["start","startValue"],["end","endValue"]],function(r){null==e[r[0]]&&null==e[r[1]]||(t[r[0]]=n[r[0]]=e[r[0]],t[r[1]]=n[r[1]]=e[r[1]])},this),this._updateRangeUse(e)},t.prototype.setCalculatedRange=function(e){var t=this.option;Object(o["j"])(["start","startValue","end","endValue"],function(n){t[n]=e[n]})},t.prototype.getPercentRange=function(){var e=this.findRepresentativeAxisProxy();if(e)return e.getDataPercentWindow()},t.prototype.getValueRange=function(e,t){if(null!=e||null!=t)return this.getAxisProxy(e,t).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},t.prototype.findRepresentativeAxisProxy=function(e){if(e)return e.__dzAxisProxy;for(var t,n=this._targetAxisInfoMap.keys(),r=0;ro&&(t[1-r]=t[r]+u.sign*o),t}function j(e,t){var n=e[t]-e[1-t];return{span:Math.abs(n),sign:n>0?-1:n<0?1:t?-1:1}}function M(e,t){return Math.min(null!=t[1]?t[1]:1/0,Math.max(null!=t[0]?t[0]:-1/0,e))}var C=n("aX7z"),T=n("U4/e"),I=o["j"],D=S["b"],A=function(){function e(e,t,n,r){this._dimName=e,this._axisIndex=t,this.ecModel=r,this._dataZoomModel=n}return e.prototype.hostedBy=function(e){return this._dataZoomModel===e},e.prototype.getDataValueWindow=function(){return this._valueWindow.slice()},e.prototype.getDataPercentWindow=function(){return this._percentWindow.slice()},e.prototype.getTargetSeriesModels=function(){var e=[];return this.ecModel.eachSeries(function(t){if(u(t)){var n=c(this._dimName),r=t.getReferringComponents(n,d["b"]).models[0];r&&this._axisIndex===r.componentIndex&&e.push(t)}},this),e},e.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},e.prototype.getMinMaxSpan=function(){return o["d"](this._minMaxSpan)},e.prototype.calculateDataWindow=function(e){var t,n=this._dataExtent,r=this.getAxisModel(),i=r.axis.scale,o=this._dataZoomModel.getRangePropMode(),a=[0,100],s=[],l=[];I(["start","end"],function(r,u){var c=e[r],f=e[r+"Value"];"percent"===o[u]?(null==c&&(c=a[u]),f=i.parse(S["i"](c,a,n))):(t=!0,f=null==f?n[u]:i.parse(f),c=S["i"](f,n,a)),l[u]=f,s[u]=c}),D(l),D(s);var u=this._minMaxSpan;function c(e,t,n,r,o){var a=o?"Span":"ValueSpan";k(0,e,n,"all",u["min"+a],u["max"+a]);for(var s=0;s<2;s++)t[s]=S["i"](e[s],n,r,!0),o&&(t[s]=i.parse(t[s]))}return t?c(l,s,n,a,!1):c(s,l,a,n,!0),{valueWindow:l,percentWindow:s}},e.prototype.reset=function(e){if(e===this._dataZoomModel){var t=this.getTargetSeriesModels();this._dataExtent=E(this,this._dimName,t),this._updateMinMaxSpan();var n=this.calculateDataWindow(e.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},e.prototype.filterData=function(e,t){if(e===this._dataZoomModel){var n=this._dimName,r=this.getTargetSeriesModels(),i=e.get("filterMode"),a=this._valueWindow;"none"!==i&&I(r,function(e){var t=e.getData(),r=t.mapDimensionsAll(n);if(r.length){if("weakFilter"===i){var l=t.getStore(),u=o["D"](r,function(e){return t.getDimensionIndex(e)},t);t.filterSelf(function(e){for(var t,n,i,o=0;oa[1];if(c&&!f&&!d)return!0;c&&(i=!0),f&&(t=!0),d&&(n=!0)}return i&&t&&n})}else I(r,function(n){if("empty"===i)e.setData(t=t.map(n,function(e){return s(e)?e:NaN}));else{var r={};r[n]=a,t.selectRange(r)}});I(r,function(e){t.setApproximateExtent(a,e)})}})}function s(e){return e>=a[0]&&e<=a[1]}},e.prototype._updateMinMaxSpan=function(){var e=this._minMaxSpan={},t=this._dataZoomModel,n=this._dataExtent;I(["min","max"],function(r){var i=t.get(r+"Span"),o=t.get(r+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?i=S["i"](n[0]+o,n,[0,100],!0):null!=i&&(o=S["i"](i,[0,100],n,!0)-n[0]),e[r+"Span"]=i,e[r+"ValueSpan"]=o},this)},e.prototype._setAxisModel=function(){var e=this.getAxisModel(),t=this._percentWindow,n=this._valueWindow;if(t){var r=S["d"](n,[0,500]);r=Math.min(r,20);var i=e.axis.scale.rawExtentInfo;0!==t[0]&&i.setDeterminedMinMax("min",+n[0].toFixed(r)),100!==t[1]&&i.setDeterminedMinMax("max",+n[1].toFixed(r)),i.freeze()}},e}();function E(e,t,n){var r=[1/0,-1/0];I(n,function(e){Object(C["k"])(r,e.getData(),t)});var i=e.getAxisModel(),o=Object(T["a"])(i.axis.scale,i,r).calculate();return[o.min,o.max]}var P=A,L={getTargetSeries:function(e){function t(t){e.eachComponent("dataZoom",function(n){n.eachTargetAxis(function(r,i){var o=e.getComponent(c(r),i);t(r,i,o,n)})})}t(function(e,t,n,r){n.__dzAxisProxy=null});var n=[];t(function(t,r,i,o){i.__dzAxisProxy||(i.__dzAxisProxy=new P(t,r,o,e),n.push(i.__dzAxisProxy))});var r=Object(o["f"])();return Object(o["j"])(n,function(e){Object(o["j"])(e.getTargetSeriesModels(),function(e){r.set(e.uid,e)})}),r},overallReset:function(e,t){e.eachComponent("dataZoom",function(e){e.eachTargetAxis(function(t,n){e.getAxisProxy(t,n).reset(e)}),e.eachTargetAxis(function(n,r){e.getAxisProxy(n,r).filterData(e,t)})}),e.eachComponent("dataZoom",function(e){var t=e.findRepresentativeAxisProxy();if(t){var n=t.getDataPercentWindow(),r=t.getDataValueWindow();e.setCalculatedRange({start:n[0],end:n[1],startValue:r[0],endValue:r[1]})}})}},N=L;function R(e){e.registerAction("dataZoom",function(e,t){var n=f(t,e);Object(o["j"])(n,function(t){t.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})})}var z=!1;function F(e){z||(z=!0,e.registerProcessor(e.PRIORITY.PROCESSOR.FILTER,N),R(e),e.registerSubTypeDefaulter("dataZoom",function(){return"slider"}))}function B(e){e.registerComponentModel(y),e.registerComponentView(O),F(e)}var Y=function(){function e(){}return e}(),V={};function G(e,t){V[e]=t}function W(e){return V[e]}var U=function(e){function t(){var n=null!==e&&e.apply(this,arguments)||this;return n.type=t.type,n}return Object(i["a"])(t,e),t.prototype.optionUpdated=function(){e.prototype.optionUpdated.apply(this,arguments);var t=this.ecModel;o["j"](this.option.feature,function(e,n){var r=W(n);r&&(r.getDefaultOption&&(r.defaultOption=r.getDefaultOption(t)),o["E"](e,r.defaultOption))})},t.type="toolbox",t.layoutMode={type:"box",ignoreSize:!0},t.defaultOption={show:!0,z:6,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1,position:"bottom"}},t}(a["a"]),H=U,q=n("6GrX"),K=n("IwbS"),Z=n("fWwa"),X=n("Qxkt"),Q=n("gPAo"),$=n("eRkO"),J=n("iRjW"),ee=n("dqUG"),te=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(i["a"])(t,e),t.prototype.render=function(e,t,n,r){var i=this.group;if(i.removeAll(),e.get("show")){var a=+e.get("itemSize"),s="vertical"===e.get("orient"),l=e.get("feature")||{},u=this._features||(this._features={}),c=[];o["j"](l,function(e,t){c.push(t)}),new Q["a"](this._featureNames||[],c).add(f).update(f).remove(o["h"](f,null)).execute(),this._featureNames=c,$["a"](i,e,n),i.add($["b"](i.getBoundingRect(),e)),s||i.eachChild(function(e){var t=e.__title,r=e.ensureState("emphasis"),s=r.textConfig||(r.textConfig={}),l=e.getTextContent(),u=l&&l.ensureState("emphasis");if(u&&!o["u"](u)&&t){var c=u.style||(u.style={}),f=q["d"](t,ee["a"].makeFont(c)),d=e.x+i.x,h=e.y+i.y+a,p=!1;h+f.height>n.getHeight()&&(s.position="top",p=!0);var g=p?-5-f.height:a+10;d+f.width/2>n.getWidth()?(s.position=["100%",g],c.align="right"):d-f.width/2<0&&(s.position=[0,g],c.align="left")}})}function f(i,o){var a,s=c[i],f=c[o],h=l[s],p=new X["a"](h,e,e.ecModel);if(r&&null!=r.newTitle&&r.featureName===s&&(h.title=r.newTitle),s&&!f){if(ne(s))a={onclick:p.option.onclick,featureName:s};else{var g=W(s);if(!g)return;a=new g}u[s]=a}else if(a=u[f],!a)return;a.uid=Object(J["c"])("toolbox-feature"),a.model=p,a.ecModel=t,a.api=n;var m=a instanceof Y;s||!f?!p.get("show")||m&&a.unusable?m&&a.remove&&a.remove(t,n):(d(p,a,s),p.setIconStatus=function(e,t){var n=this.option,r=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[e]=t,r[e]&&("emphasis"===t?Z["o"]:Z["z"])(r[e])},a instanceof Y&&a.render&&a.render(p,t,n,r)):m&&a.dispose&&a.dispose(t,n)}function d(r,l,u){var c,f,d=r.getModel("iconStyle"),h=r.getModel(["emphasis","iconStyle"]),p=l instanceof Y&&l.getIcons?l.getIcons():r.get("icon"),g=r.get("title")||{};o["y"](p)?(c={},c[u]=p):c=p,o["y"](g)?(f={},f[u]=g):f=g;var m=r.iconPaths={};o["j"](c,function(u,c){var p=K["createIcon"](u,{},{x:-a/2,y:-a/2,width:a,height:a});p.setStyle(d.getItemStyle());var g=p.ensureState("emphasis");g.style=h.getItemStyle();var v=new ee["a"]({style:{text:f[c],align:h.get("textAlign"),borderRadius:h.get("textBorderRadius"),padding:h.get("textPadding"),fill:null},ignore:!0});p.setTextContent(v),K["setTooltipConfig"]({el:p,componentModel:e,itemName:c,formatterParamsExtra:{title:f[c]}}),p.__title=f[c],p.on("mouseover",function(){var t=h.getItemStyle(),r=s?null==e.get("right")&&"right"!==e.get("left")?"right":"left":null==e.get("bottom")&&"bottom"!==e.get("top")?"bottom":"top";v.setStyle({fill:h.get("textFill")||t.fill||t.stroke||"#000",backgroundColor:h.get("textBackgroundColor")}),p.setTextConfig({position:h.get("textPosition")||r}),v.ignore=!e.get("showTitle"),n.enterEmphasis(this)}).on("mouseout",function(){"emphasis"!==r.get(["iconStatus",c])&&n.leaveEmphasis(this),v.hide()}),("emphasis"===r.get(["iconStatus",c])?Z["o"]:Z["z"])(p),i.add(p),p.on("click",o["c"](l.onclick,l,t,n,c)),m[c]=p})}},t.prototype.updateView=function(e,t,n,r){o["j"](this._features,function(e){e instanceof Y&&e.updateView&&e.updateView(e.model,t,n,r)})},t.prototype.remove=function(e,t){o["j"](this._features,function(n){n instanceof Y&&n.remove&&n.remove(e,t)}),this.group.removeAll()},t.prototype.dispose=function(e,t){o["j"](this._features,function(n){n instanceof Y&&n.dispose&&n.dispose(e,t)})},t.type="toolbox",t}(b["a"]);function ne(e){return 0===e.indexOf("my")}var re=te,ie=n("ItGF"),oe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(i["a"])(t,e),t.prototype.onclick=function(e,t){var n=this.model,r=n.get("name")||e.get("title.0.text")||"echarts",i="svg"===t.getZr().painter.getType(),a=i?"svg":n.get("type",!0)||"png",s=t.getConnectedDataURL({type:a,backgroundColor:n.get("backgroundColor",!0)||e.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")}),l=ie["a"].browser;if(Object(o["u"])(MouseEvent)&&(l.newEdge||!l.ie&&!l.edge)){var u=document.createElement("a");u.download=r+"."+a,u.target="_blank",u.href=s;var c=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});u.dispatchEvent(c)}else if(window.navigator.msSaveOrOpenBlob||i){var f=s.split(","),d=f[0].indexOf("base64")>-1,h=i?decodeURIComponent(f[1]):f[1];d&&(h=window.atob(h));var p=r+"."+a;if(window.navigator.msSaveOrOpenBlob){var g=h.length,m=new Uint8Array(g);while(g--)m[g]=h.charCodeAt(g);var v=new Blob([m]);window.navigator.msSaveOrOpenBlob(v,p)}else{var y=document.createElement("iframe");document.body.appendChild(y);var b=y.contentWindow,x=b.document;x.open("image/svg+xml","replace"),x.write(h),x.close(),b.focus(),x.execCommand("SaveAs",!0,p),document.body.removeChild(y)}}else{var _=n.get("lang"),w='',O=window.open();O.document.write(w),O.document.title=r}},t.getDefaultOption=function(e){var t={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:e.getLocaleModel().get(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],lang:e.getLocaleModel().get(["toolbox","saveAsImage","lang"])};return t},t}(Y),ae=oe,se=n("G+eS"),le="__ec_magicType_stack__",ue=[["line","bar"],["stack"]],ce=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(i["a"])(t,e),t.prototype.getIcons=function(){var e=this.model,t=e.get("icon"),n={};return o["j"](e.get("type"),function(e){t[e]&&(n[e]=t[e])}),n},t.getDefaultOption=function(e){var t={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:e.getLocaleModel().get(["toolbox","magicType","title"]),option:{},seriesIndex:{}};return t},t.prototype.onclick=function(e,t,n){var r=this.model,i=r.get(["seriesIndex",n]);if(fe[n]){var a,s={series:[]},l=function(e){var t=e.subType,i=e.id,a=fe[n](t,i,e,r);a&&(o["i"](a,e.option),s.series.push(a));var l=e.coordinateSystem;if(l&&"cartesian2d"===l.type&&("line"===n||"bar"===n)){var u=l.getAxesByScale("ordinal")[0];if(u){var c=u.dim,f=c+"Axis",h=e.getReferringComponents(f,d["b"]).models[0],p=h.componentIndex;s[f]=s[f]||[];for(var g=0;g<=p;g++)s[f][p]=s[f][p]||{};s[f][p].boundaryGap="bar"===n}}};o["j"](ue,function(e){o["p"](e,n)>=0&&o["j"](e,function(e){r.setIconStatus(e,"normal")})}),r.setIconStatus(n,"emphasis"),e.eachComponent({mainType:"series",query:null==i?null:{seriesIndex:i}},l);var u=n;"stack"===n&&(a=o["E"]({stack:r.option.title.tiled,tiled:r.option.title.stack},r.option.title),"emphasis"!==r.get(["iconStatus",n])&&(u="tiled")),t.dispatchAction({type:"changeMagicType",currentType:u,newOption:s,newTitle:a,featureName:"magicType"})}},t}(Y),fe={line:function(e,t,n,r){if("bar"===e)return o["E"]({id:t,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},r.get(["option","line"])||{},!0)},bar:function(e,t,n,r){if("line"===e)return o["E"]({id:t,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},r.get(["option","bar"])||{},!0)},stack:function(e,t,n,r){var i=n.get("stack")===le;if("line"===e||"bar"===e)return r.setIconStatus("stack",i?"normal":"emphasis"),o["E"]({id:t,stack:i?"":le},r.get(["option","stack"])||{},!0)}};se["c"]({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(e,t){t.mergeOption(e.newOption)});var de=ce,he=n("YH21"),pe=new Array(60).join("-"),ge="\t";function me(e){var t={},n=[],r=[];return e.eachRawSeries(function(e){var i=e.coordinateSystem;if(!i||"cartesian2d"!==i.type&&"polar"!==i.type)n.push(e);else{var o=i.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;t[a]||(t[a]={categoryAxis:o,valueAxis:i.getOtherAxis(o),series:[]},r.push({axisDim:o.dim,axisIndex:o.index})),t[a].series.push(e)}else n.push(e)}}),{seriesGroupByCategoryAxis:t,other:n,meta:r}}function ve(e){var t=[];return o["j"](e,function(e,n){var r=e.categoryAxis,i=e.valueAxis,a=i.dim,s=[" "].concat(o["D"](e.series,function(e){return e.name})),l=[r.model.getCategories()];o["j"](e.series,function(e){var t=e.getRawData();l.push(e.getRawData().mapArray(t.mapDimension(a),function(e){return e}))});for(var u=[s.join(ge)],c=0;c=0)return!0}var we=new RegExp("["+ge+"]+","g");function Oe(e){for(var t=e.split(/\n+/g),n=xe(t.shift()).split(we),r=[],i=o["D"](n,function(e){return{name:e,data:[]}}),a=0;a=0;i--){var o=n[i];if(o[r])break}if(i<0){var a=e.queryComponents({mainType:"dataZoom",subType:"select",id:r})[0];if(a){var s=a.getPercentRange();n[0][r]={dataZoomId:r,start:s[0],end:s[1]}}}}),n.push(t)}function Ae(e){var t=Le(e),n=t[t.length-1];t.length>1&&t.pop();var r={};return Te(n,function(e,n){for(var i=t.length-1;i>=0;i--)if(e=t[i][n],e){r[n]=e;break}}),r}function Ee(e){Ie(e).snapshots=null}function Pe(e){return Le(e).length}function Le(e){var t=Ie(e);return t.snapshots||(t.snapshots=[{}]),t.snapshots}var Ne=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(i["a"])(t,e),t.prototype.onclick=function(e,t){Ee(e),t.dispatchAction({type:"restore",from:this.uid})},t.getDefaultOption=function(e){var t={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:e.getLocaleModel().get(["toolbox","restore","title"])};return t},t}(Y);se["c"]({type:"restore",event:"restore",update:"prepareAndUpdate"},function(e,t){t.resetOption("recreate")});var Re=Ne,ze=n("b9Ot"),Fe=n("LcXL"),Be=n("x6Kt"),Ye=n("1Jh7"),Ve=n("h7HQ"),Ge="\0_ec_interaction_mutex";function We(e,t,n){var r=He(e);r[t]=n}function Ue(e,t,n){var r=He(e),i=r[t];i===n&&(r[t]=null)}function He(e){return e[Ge]||(e[Ge]={})}se["c"]({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},o["G"]);var qe=!0,Ke=Math.min,Ze=Math.max,Xe=Math.pow,Qe=1e4,$e=6,Je=6,et="globalPan",tt={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},nt={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},rt={brushStyle:{lineWidth:2,stroke:"rgba(210,219,238,0.3)",fill:"#D2DBEE"},transformable:!0,brushMode:"single",removeOnClick:!1},it=0,ot=function(e){function t(t){var n=e.call(this)||this;return n._track=[],n._covers=[],n._handlers={},n._zr=t,n.group=new Fe["a"],n._uid="brushController_"+it++,Object(o["j"])(Rt,function(e,t){this._handlers[t]=Object(o["c"])(e,this)},n),n}return Object(i["a"])(t,e),t.prototype.enableBrush=function(e){return this._brushType&&this._doDisableBrush(),e.brushType&&this._doEnableBrush(e),this},t.prototype._doEnableBrush=function(e){var t=this._zr;this._enableGlobalPan||We(t,et,this._uid),Object(o["j"])(this._handlers,function(e,n){t.on(n,e)}),this._brushType=e.brushType,this._brushOption=Object(o["E"])(Object(o["d"])(rt),e,!0)},t.prototype._doDisableBrush=function(){var e=this._zr;Ue(e,et,this._uid),Object(o["j"])(this._handlers,function(t,n){e.off(n,t)}),this._brushType=this._brushOption=null},t.prototype.setPanels=function(e){if(e&&e.length){var t=this._panels={};Object(o["j"])(e,function(e){t[e.panelId]=Object(o["d"])(e)})}else this._panels=null;return this},t.prototype.mount=function(e){e=e||{},this._enableGlobalPan=e.enableGlobalPan;var t=this.group;return this._zr.add(t),t.attr({x:e.x||0,y:e.y||0,rotation:e.rotation||0,scaleX:e.scaleX||1,scaleY:e.scaleY||1}),this._transform=t.getLocalTransform(),this},t.prototype.updateCovers=function(e){e=Object(o["D"])(e,function(e){return Object(o["E"])(Object(o["d"])(rt),e,!0)});var t="\0-brush-index-",n=this._covers,r=this._covers=[],i=this,a=this._creatingCover;return new Q["a"](n,e,l,s).add(u).update(u).remove(c).execute(),this;function s(e,n){return(null!=e.id?e.id:t+n)+"-"+e.brushType}function l(e,t){return s(e.__brushOption,t)}function u(t,o){var s=e[t];if(null!=o&&n[o]===a)r[t]=n[o];else{var l=r[t]=null!=o?(n[o].__brushOption=s,n[o]):st(i,at(i,s));ct(i,l)}}function c(e){n[e]!==a&&i.group.remove(n[e])}},t.prototype.unmount=function(){return this.enableBrush(!1),pt(this),this._zr.remove(this.group),this},t.prototype.dispose=function(){this.unmount(),this.off()},t}(ze["a"]);function at(e,t){var n=Bt[t.brushType].createCover(e,t);return n.__brushOption=t,ut(n,t),e.group.add(n),n}function st(e,t){var n=ft(t);return n.endCreating&&(n.endCreating(e,t),ut(t,t.__brushOption)),t}function lt(e,t){var n=t.__brushOption;ft(t).updateCoverShape(e,t,n.range,n)}function ut(e,t){var n=t.z;null==n&&(n=Qe),e.traverse(function(e){e.z=n,e.z2=n})}function ct(e,t){ft(t).updateCommon(e,t),lt(e,t)}function ft(e){return Bt[e.__brushOption.brushType]}function dt(e,t,n){var r,i=e._panels;if(!i)return qe;var a=e._transform;return Object(o["j"])(i,function(e){e.isTargetByCursor(t,n,a)&&(r=e)}),r}function ht(e,t){var n=e._panels;if(!n)return qe;var r=t.__brushOption.panelId;return null!=r?n[r]:qe}function pt(e){var t=e._covers,n=t.length;return Object(o["j"])(t,function(t){e.group.remove(t)},e),t.length=0,!!n}function gt(e,t){var n=Object(o["D"])(e._covers,function(e){var t=e.__brushOption,n=Object(o["d"])(t.range);return{brushType:t.brushType,panelId:t.panelId,range:n}});e.trigger("brush",{areas:n,isEnd:!!t.isEnd,removeOnClick:!!t.removeOnClick})}function mt(e){var t=e._track;if(!t.length)return!1;var n=t[t.length-1],r=t[0],i=n[0]-r[0],o=n[1]-r[1],a=Xe(i*i+o*o,.5);return a>$e}function vt(e){var t=e.length-1;return t<0&&(t=0),[e[0],e[t]]}function yt(e,t,n,r){var i=new Fe["a"];return i.add(new Be["a"]({name:"main",style:wt(n),silent:!0,draggable:!0,cursor:"move",drift:Object(o["h"])(Mt,e,t,i,["n","s","w","e"]),ondragend:Object(o["h"])(gt,t,{isEnd:!0})})),Object(o["j"])(r,function(n){i.add(new Be["a"]({name:n.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:Object(o["h"])(Mt,e,t,i,n),ondragend:Object(o["h"])(gt,t,{isEnd:!0})}))}),i}function bt(e,t,n,r){var i=r.brushStyle.lineWidth||0,o=Ze(i,Je),a=n[0][0],s=n[1][0],l=a-i/2,u=s-i/2,c=n[0][1],f=n[1][1],d=c-o+i/2,h=f-o+i/2,p=c-a,g=f-s,m=p+i,v=g+i;_t(e,t,"main",a,s,p,g),r.transformable&&(_t(e,t,"w",l,u,o,v),_t(e,t,"e",d,u,o,v),_t(e,t,"n",l,u,m,o),_t(e,t,"s",l,h,m,o),_t(e,t,"nw",l,u,o,o),_t(e,t,"ne",d,u,o,o),_t(e,t,"sw",l,h,o,o),_t(e,t,"se",d,h,o,o))}function xt(e,t){var n=t.__brushOption,r=n.transformable,i=t.childAt(0);i.useStyle(wt(n)),i.attr({silent:!r,cursor:r?"move":"default"}),Object(o["j"])([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],function(n){var i=t.childOfName(n.join("")),o=1===n.length?kt(e,n[0]):jt(e,n);i&&i.attr({silent:!r,invisible:!r,cursor:r?nt[o]+"-resize":null})})}function _t(e,t,n,r,i,o,a){var s=t.childOfName(n);s&&s.setShape(Dt(It(e,t,[[r,i],[r+o,i+a]])))}function wt(e){return Object(o["i"])({strokeNoScale:!0},e.brushStyle)}function Ot(e,t,n,r){var i=[Ke(e,n),Ke(t,r)],o=[Ze(e,n),Ze(t,r)];return[[i[0],o[0]],[i[1],o[1]]]}function St(e){return K["getTransform"](e.group)}function kt(e,t){var n={w:"left",e:"right",n:"top",s:"bottom"},r={left:"w",right:"e",top:"n",bottom:"s"},i=K["transformDirection"](n[t],St(e));return r[i]}function jt(e,t){var n=[kt(e,t[0]),kt(e,t[1])];return("e"===n[0]||"w"===n[0])&&n.reverse(),n.join("")}function Mt(e,t,n,r,i,a){var s=n.__brushOption,l=e.toRectRange(s.range),u=Tt(t,i,a);Object(o["j"])(r,function(e){var t=tt[e];l[t[0]][t[1]]+=u[t[0]]}),s.range=e.fromRectRange(Ot(l[0][0],l[1][0],l[0][1],l[1][1])),ct(t,n),gt(t,{isEnd:!1})}function Ct(e,t,n,r){var i=t.__brushOption.range,a=Tt(e,n,r);Object(o["j"])(i,function(e){e[0]+=a[0],e[1]+=a[1]}),ct(e,t),gt(e,{isEnd:!1})}function Tt(e,t,n){var r=e.group,i=r.transformCoordToLocal(t,n),o=r.transformCoordToLocal(0,0);return[i[0]-o[0],i[1]-o[1]]}function It(e,t,n){var r=ht(e,t);return r&&r!==qe?r.clipPath(n,e._transform):Object(o["d"])(n)}function Dt(e){var t=Ke(e[0][0],e[1][0]),n=Ke(e[0][1],e[1][1]),r=Ze(e[0][0],e[1][0]),i=Ze(e[0][1],e[1][1]);return{x:t,y:n,width:r-t,height:i-n}}function At(e,t,n){if(e._brushType&&!Ft(e,t.offsetX,t.offsetY)){var r=e._zr,i=e._covers,o=dt(e,t,n);if(!e._dragging)for(var a=0;ar.getWidth()||n<0||n>r.getHeight()}var Bt={lineX:Yt(0),lineY:Yt(1),rect:{createCover:function(e,t){function n(e){return e}return yt({toRectRange:n,fromRectRange:n},e,t,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(e){var t=vt(e);return Ot(t[1][0],t[1][1],t[0][0],t[0][1])},updateCoverShape:function(e,t,n,r){bt(e,t,n,r)},updateCommon:xt,contain:Pt},polygon:{createCover:function(e,t){var n=new Fe["a"];return n.add(new Ye["a"]({name:"main",style:wt(t),silent:!0})),n},getCreatingRange:function(e){return e},endCreating:function(e,t){t.remove(t.childAt(0)),t.add(new Ve["a"]({name:"main",draggable:!0,drift:Object(o["h"])(Ct,e,t),ondragend:Object(o["h"])(gt,e,{isEnd:!0})}))},updateCoverShape:function(e,t,n,r){t.childAt(0).setShape({points:It(e,t,n)})},updateCommon:xt,contain:Pt}};function Yt(e){return{createCover:function(t,n){return yt({toRectRange:function(t){var n=[t,[0,100]];return e&&n.reverse(),n},fromRectRange:function(t){return t[e]}},t,n,[[["w"],["e"]],[["n"],["s"]]][e])},getCreatingRange:function(t){var n=vt(t),r=Ke(n[0][e],n[1][e]),i=Ze(n[0][e],n[1][e]);return[r,i]},updateCoverShape:function(t,n,r,i){var o,a=ht(t,n);if(a!==qe&&a.getLinearBrushOtherExtent)o=a.getLinearBrushOtherExtent(e);else{var s=t._zr;o=[0,[s.getWidth(),s.getHeight()][1-e]]}var l=[r,o];e&&l.reverse(),bt(t,n,l,i)},updateCommon:xt,contain:Pt}}var Vt=ot,Gt=n("mFDi"),Wt={axisPointer:1,tooltip:1,brush:1};function Ut(e,t,n){var r=t.getComponentByElement(e.topTarget),i=r&&r.coordinateSystem;return r&&r!==n&&!Wt.hasOwnProperty(r.mainType)&&i&&i.model!==n}function Ht(e){return e=Zt(e),function(t){return K["clipPointsByRect"](t,e)}}function qt(e,t){return e=Zt(e),function(n){var r=null!=t?t:n,i=r?e.width:e.height,o=r?e.x:e.y;return[o,o+(i||0)]}}function Kt(e,t,n){var r=Zt(e);return function(e,i){return r.contain(i[0],i[1])&&!Ut(e,t,n)}}function Zt(e){return Gt["a"].create(e)}var Xt=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],Qt=function(){function e(e,t,n){var r=this;this._targetInfoList=[];var i=Jt(t,e);Object(o["j"])(en,function(e,t){(!n||!n.include||Object(o["p"])(n.include,t)>=0)&&e(i,r._targetInfoList)})}return e.prototype.setOutputRanges=function(e,t){return this.matchOutputRanges(e,t,function(e,t,n){if((e.coordRanges||(e.coordRanges=[])).push(t),!e.coordRange){e.coordRange=t;var r=rn[e.brushType](0,n,t);e.__rangeOffset={offset:an[e.brushType](r.values,e.range,[1,1]),xyMinMax:r.xyMinMax}}}),e},e.prototype.matchOutputRanges=function(e,t,n){Object(o["j"])(e,function(e){var r=this.findTargetInfo(e,t);r&&!0!==r&&Object(o["j"])(r.coordSyses,function(r){var i=rn[e.brushType](1,r,e.range,!0);n(e,i.values,r,t)})},this)},e.prototype.setInputRanges=function(e,t){Object(o["j"])(e,function(e){var n=this.findTargetInfo(e,t);if(e.range=e.range||[],n&&!0!==n){e.panelId=n.panelId;var r=rn[e.brushType](0,n.coordSys,e.coordRange),i=e.__rangeOffset;e.range=i?an[e.brushType](r.values,i.offset,ln(r.xyMinMax,i.xyMinMax)):r.values}},this)},e.prototype.makePanelOpts=function(e,t){return Object(o["D"])(this._targetInfoList,function(n){var r=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:t?t(n):null,clipPath:Ht(r),isTargetByCursor:Kt(r,e,n.coordSysModel),getLinearBrushOtherExtent:qt(r)}})},e.prototype.controlSeries=function(e,t,n){var r=this.findTargetInfo(e,n);return!0===r||r&&Object(o["p"])(r.coordSyses,t.coordinateSystem)>=0},e.prototype.findTargetInfo=function(e,t){for(var n=this._targetInfoList,r=Jt(t,e),i=0;ie[1]&&e.reverse(),e}function Jt(e,t){return Object(d["q"])(e,t,{includeMainTypes:Xt})}var en={grid:function(e,t){var n=e.xAxisModels,r=e.yAxisModels,i=e.gridModels,a=Object(o["f"])(),s={},l={};(n||r||i)&&(Object(o["j"])(n,function(e){var t=e.axis.grid.model;a.set(t.id,t),s[t.id]=!0}),Object(o["j"])(r,function(e){var t=e.axis.grid.model;a.set(t.id,t),l[t.id]=!0}),Object(o["j"])(i,function(e){a.set(e.id,e),s[e.id]=!0,l[e.id]=!0}),a.each(function(e){var i=e.coordinateSystem,a=[];Object(o["j"])(i.getCartesians(),function(e,t){(Object(o["p"])(n,e.getAxis("x").model)>=0||Object(o["p"])(r,e.getAxis("y").model)>=0)&&a.push(e)}),t.push({panelId:"grid--"+e.id,gridModel:e,coordSysModel:e,coordSys:a[0],coordSyses:a,getPanelRect:nn.grid,xAxisDeclared:s[e.id],yAxisDeclared:l[e.id]})}))},geo:function(e,t){Object(o["j"])(e.geoModels,function(e){var n=e.coordinateSystem;t.push({panelId:"geo--"+e.id,geoModel:e,coordSysModel:e,coordSys:n,coordSyses:[n],getPanelRect:nn.geo})})}},tn=[function(e,t){var n=e.xAxisModel,r=e.yAxisModel,i=e.gridModel;return!i&&n&&(i=n.axis.grid.model),!i&&r&&(i=r.axis.grid.model),i&&i===t.gridModel},function(e,t){var n=e.geoModel;return n&&n===t.geoModel}],nn={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var e=this.coordSys,t=e.getBoundingRect().clone();return t.applyTransform(K["getTransform"](e)),t}},rn={lineX:Object(o["h"])(on,0),lineY:Object(o["h"])(on,1),rect:function(e,t,n,r){var i=e?t.pointToData([n[0][0],n[1][0]],r):t.dataToPoint([n[0][0],n[1][0]],r),o=e?t.pointToData([n[0][1],n[1][1]],r):t.dataToPoint([n[0][1],n[1][1]],r),a=[$t([i[0],o[0]]),$t([i[1],o[1]])];return{values:a,xyMinMax:a}},polygon:function(e,t,n,r){var i=[[1/0,-1/0],[1/0,-1/0]],a=Object(o["D"])(n,function(n){var o=e?t.pointToData(n,r):t.dataToPoint(n,r);return i[0][0]=Math.min(i[0][0],o[0]),i[1][0]=Math.min(i[1][0],o[1]),i[0][1]=Math.max(i[0][1],o[0]),i[1][1]=Math.max(i[1][1],o[1]),o});return{values:a,xyMinMax:i}}};function on(e,t,n,r){var i=n.getAxis(["x","y"][e]),a=$t(Object(o["D"])([0,1],function(e){return t?i.coordToData(i.toLocalCoord(r[e]),!0):i.toGlobalCoord(i.dataToCoord(r[e]))})),s=[];return s[e]=a,s[1-e]=[NaN,NaN],{values:a,xyMinMax:s}}var an={lineX:Object(o["h"])(sn,0),lineY:Object(o["h"])(sn,1),rect:function(e,t,n){return[[e[0][0]-n[0]*t[0][0],e[0][1]-n[0]*t[0][1]],[e[1][0]-n[1]*t[1][0],e[1][1]-n[1]*t[1][1]]]},polygon:function(e,t,n){return Object(o["D"])(e,function(e,r){return[e[0]-n[0]*t[r][0],e[1]-n[1]*t[r][1]]})}};function sn(e,t,n,r){return[t[0]-r[e]*n[0],t[1]-r[e]*n[1]]}function ln(e,t){var n=un(e),r=un(t),i=[n[0]/r[0],n[1]/r[1]];return isNaN(i[0])&&(i[0]=1),isNaN(i[1])&&(i[1]=1),i}function un(e){return e?[e[0][1]-e[0][0],e[1][1]-e[1][0]]:[NaN,NaN]}var cn=Qt,fn=n("Lx9C"),dn=o["j"],hn=Object(d["n"])("toolbox-dataZoom_"),pn=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(i["a"])(t,e),t.prototype.render=function(e,t,n,r){this._brushController||(this._brushController=new Vt(n.getZr()),this._brushController.on("brush",o["c"](this._onBrush,this)).mount()),yn(e,t,this,r,n),vn(e,t)},t.prototype.onclick=function(e,t,n){gn[n].call(this)},t.prototype.remove=function(e,t){this._brushController&&this._brushController.unmount()},t.prototype.dispose=function(e,t){this._brushController&&this._brushController.dispose()},t.prototype._onBrush=function(e){var t=e.areas;if(e.isEnd&&t.length){var n={},r=this.ecModel;this._brushController.updateCovers([]);var i=new cn(mn(this.model),r,{include:["grid"]});i.matchOutputRanges(t,r,function(e,t,n){if("cartesian2d"===n.type){var r=e.brushType;"rect"===r?(o("x",n,t[0]),o("y",n,t[1])):o({lineX:"x",lineY:"y"}[r],n,t)}}),De(r,n),this._dispatchZoomAction(n)}function o(e,t,i){var o=t.getAxis(e),s=o.model,l=a(e,s,r),u=l.findRepresentativeAxisProxy(s).getMinMaxSpan();null==u.minValueSpan&&null==u.maxValueSpan||(i=k(0,i.slice(),o.scale.getExtent(),0,u.minValueSpan,u.maxValueSpan)),l&&(n[l.id]={dataZoomId:l.id,startValue:i[0],endValue:i[1]})}function a(e,t,n){var r;return n.eachComponent({mainType:"dataZoom",subType:"select"},function(n){var i=n.getAxisModel(e,t.componentIndex);i&&(r=n)}),r}},t.prototype._dispatchZoomAction=function(e){var t=[];dn(e,function(e,n){t.push(o["d"](e))}),t.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:t})},t.getDefaultOption=function(e){var t={show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:e.getLocaleModel().get(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}};return t},t}(Y),gn={zoom:function(){var e=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:e})},back:function(){this._dispatchZoomAction(Ae(this.ecModel))}};function mn(e){var t={xAxisIndex:e.get("xAxisIndex",!0),yAxisIndex:e.get("yAxisIndex",!0),xAxisId:e.get("xAxisId",!0),yAxisId:e.get("yAxisId",!0)};return null==t.xAxisIndex&&null==t.xAxisId&&(t.xAxisIndex="all"),null==t.yAxisIndex&&null==t.yAxisId&&(t.yAxisIndex="all"),t}function vn(e,t){e.setIconStatus("back",Pe(t)>1?"emphasis":"normal")}function yn(e,t,n,r,i){var o=n._isZoomActive;r&&"takeGlobalCursor"===r.type&&(o="dataZoomSelect"===r.key&&r.dataZoomSelectActive),n._isZoomActive=o,e.setIconStatus("zoom",o?"emphasis":"normal");var a=new cn(mn(e),t,{include:["grid"]}),s=a.makePanelOpts(i,function(e){return e.xAxisDeclared&&!e.yAxisDeclared?"lineX":!e.xAxisDeclared&&e.yAxisDeclared?"lineY":"rect"});n._brushController.setPanels(s).enableBrush(!(!o||!s.length)&&{brushType:"auto",brushStyle:e.getModel("brushStyle").getItemStyle()})}Object(fn["b"])("dataZoom",function(e){var t=e.getComponent("toolbox",0),n=["feature","dataZoom"];if(t&&null!=t.get(n)){var r=t.getModel(n),i=[],o=mn(r),a=Object(d["q"])(e,o);return dn(a.xAxisModels,function(e){return s(e,"xAxis","xAxisIndex")}),dn(a.yAxisModels,function(e){return s(e,"yAxis","yAxisIndex")}),i}function s(e,t,n){var o=e.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:r.get("filterMode",!0)||"filter",id:hn+t+o};a[n]=o,i.push(a)}});var bn=pn;function xn(e){e.registerComponentModel(H),e.registerComponentView(re),G("saveAsImage",ae),G("magicType",de),G("dataView",Ce),G("dataZoom",bn),G("restore",Re),Object(r["a"])(B)}n.d(t,"a",function(){return xn})},MMmD:function(e,t,n){var r=n("lSCD"),i=n("shjB");function o(e){return null!=e&&i(e.length)&&!r(e)}e.exports=o},MrPd:function(e,t,n){var r=n("hypo"),i=n("ljhN"),o=Object.prototype,a=o.hasOwnProperty;function s(e,t,n){var o=e[t];a.call(e,t)&&i(o,n)&&(void 0!==n||t in e)||r(e,t,n)}e.exports=s},N5VM:function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&e.handleMarkers(_,t);for(r=0;r-1&&(u.style.stroke=u.style.fill,u.style.fill="#fff",u.style.lineWidth=2),t},t.type="series.line",t.dependencies=["grid","polar"],t.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},t}(o["b"]),u=l,c=n("bYtY"),f=n("3soF"),d=n("IwbS"),h=n("hhxK"),p=n("fWwa"),g=n("x3X8"),m=n("eDfh"),v=n("Dagg"),y=function(e){function t(t,n,r,i){var o=e.call(this)||this;return o.updateData(t,n,r,i),o}return Object(r["a"])(t,e),t.prototype._createSymbol=function(e,t,n,r,i){this.removeAll();var o=Object(a["a"])(e,-1,-1,2,2,null,i);o.attr({z2:100,culling:!0,scaleX:r[0]/2,scaleY:r[1]/2}),o.drift=b,this._symbolType=e,this.add(o)},t.prototype.stopSymbolAnimation=function(e){this.childAt(0).stopAnimation(null,e)},t.prototype.getSymbolType=function(){return this._symbolType},t.prototype.getSymbolPath=function(){return this.childAt(0)},t.prototype.highlight=function(){Object(p["o"])(this.childAt(0))},t.prototype.downplay=function(){Object(p["z"])(this.childAt(0))},t.prototype.setZ=function(e,t){var n=this.childAt(0);n.zlevel=e,n.z=t},t.prototype.setDraggable=function(e,t){var n=this.childAt(0);n.draggable=e,n.cursor=!t&&e?"move":n.cursor},t.prototype.updateData=function(e,n,r,i){this.silent=!1;var o=e.getItemVisual(n,"symbol")||"circle",a=e.hostModel,s=t.getSymbolSize(e,n),l=o!==this._symbolType,u=i&&i.disableAnimation;if(l){var c=e.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,e,n,s,c)}else{var d=this.childAt(0);d.silent=!1;var h={scaleX:s[0]/2,scaleY:s[1]/2};u?d.attr(h):f["h"](d,h,a,n),Object(f["g"])(d)}if(this._updateCommon(e,n,s,r,i),l){d=this.childAt(0);if(!u){h={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:d.style.opacity}};d.scaleX=d.scaleY=0,d.style.opacity=0,f["c"](d,h,a,n)}}u&&this.childAt(0).stopAnimation("leave")},t.prototype._updateCommon=function(e,t,n,r,i){var o,s,l,u,f,d,h,y,b,x=this.childAt(0),_=e.hostModel;if(r&&(o=r.emphasisItemStyle,s=r.blurItemStyle,l=r.selectItemStyle,u=r.focus,f=r.blurScope,h=r.labelStatesModels,y=r.hoverScale,b=r.cursorStyle,d=r.emphasisDisabled),!r||e.hasItemOption){var w=r&&r.itemModel?r.itemModel:e.getItemModel(t),O=w.getModel("emphasis");o=O.getModel("itemStyle").getItemStyle(),l=w.getModel(["select","itemStyle"]).getItemStyle(),s=w.getModel(["blur","itemStyle"]).getItemStyle(),u=O.get("focus"),f=O.get("blurScope"),d=O.get("disabled"),h=Object(m["c"])(w),y=O.getShallow("scale"),b=w.getShallow("cursor")}var S=e.getItemVisual(t,"symbolRotate");x.attr("rotation",(S||0)*Math.PI/180||0);var k=Object(a["b"])(e.getItemVisual(t,"symbolOffset"),n);k&&(x.x=k[0],x.y=k[1]),b&&x.attr("cursor",b);var j=e.getItemVisual(t,"style"),M=j.fill;if(x instanceof v["a"]){var C=x.style;x.useStyle(Object(c["l"])({image:C.image,x:C.x,y:C.y,width:C.width,height:C.height},j))}else x.__isEmptyBrush?x.useStyle(Object(c["l"])({},j)):x.useStyle(j),x.style.decal=null,x.setColor(M,i&&i.symbolInnerColor),x.style.strokeNoScale=!0;var T=e.getItemVisual(t,"liftZ"),I=this._z2;null!=T?null==I&&(this._z2=x.z2,x.z2+=T):null!=I&&(x.z2=I,this._z2=null);var D=i&&i.useNameLabel;function A(t){return D?e.getName(t):Object(g["b"])(e,t)}Object(m["e"])(x,h,{labelFetcher:_,labelDataIndex:t,defaultText:A,inheritColor:M,defaultOpacity:j.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var E=x.ensureState("emphasis");E.style=o,x.ensureState("select").style=l,x.ensureState("blur").style=s;var P=null==y||!0===y?Math.max(1.1,3/this._sizeY):isFinite(y)&&y>0?+y:1;E.scaleX=this._sizeX*P,E.scaleY=this._sizeY*P,this.setSymbolScale(1),Object(p["E"])(this,u,f,d)},t.prototype.setSymbolScale=function(e){this.scaleX=this.scaleY=e},t.prototype.fadeOut=function(e,t,n){var r=this.childAt(0),i=Object(h["a"])(this).dataIndex,o=n&&n.animation;if(this.silent=r.silent=!0,n&&n.fadeLabel){var a=r.getTextContent();a&&f["e"](a,{style:{opacity:0}},t,{dataIndex:i,removeOpt:o,cb:function(){r.removeTextContent()}})}else r.removeTextContent();f["e"](r,{style:{opacity:0},scaleX:0,scaleY:0},t,{dataIndex:i,cb:e,removeOpt:o})},t.getSymbolSize=function(e,t){return Object(a["c"])(e.getItemVisual(t,"symbolSize"))},t}(s["a"]);function b(e,t){this.parent.drift(e,t)}var x=y;function _(e,t,n,r){return t&&!isNaN(t[0])&&!isNaN(t[1])&&!(r.isIgnore&&r.isIgnore(n))&&!(r.clipShape&&!r.clipShape.contain(t[0],t[1]))&&"none"!==e.getItemVisual(n,"symbol")}function w(e){return null==e||Object(c["x"])(e)||(e={isIgnore:e}),e||{}}function O(e){var t=e.hostModel,n=t.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:t.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:t.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),emphasisDisabled:n.get("disabled"),hoverScale:n.get("scale"),labelStatesModels:Object(m["c"])(t),cursorStyle:t.get("cursor")}}var S=function(){function e(e){this.group=new s["a"],this._SymbolCtor=e||x}return e.prototype.updateData=function(e,t){this._progressiveEls=null,t=w(t);var n=this.group,r=e.hostModel,i=this._data,o=this._SymbolCtor,a=t.disableAnimation,s=O(e),l={disableAnimation:a},u=t.getSymbolPoint||function(t){return e.getItemLayout(t)};i||n.removeAll(),e.diff(i).add(function(r){var i=u(r);if(_(e,i,r,t)){var a=new o(e,r,s,l);a.setPosition(i),e.setItemGraphicEl(r,a),n.add(a)}}).update(function(c,d){var h=i.getItemGraphicEl(d),p=u(c);if(_(e,p,c,t)){var g=e.getItemVisual(c,"symbol")||"circle",m=h&&h.getSymbolType&&h.getSymbolType();if(!h||m&&m!==g)n.remove(h),h=new o(e,c,s,l),h.setPosition(p);else{h.updateData(e,c,s,l);var v={x:p[0],y:p[1]};a?h.attr(v):f["h"](h,v,r)}n.add(h),e.setItemGraphicEl(c,h)}else n.remove(h)}).remove(function(e){var t=i.getItemGraphicEl(e);t&&t.fadeOut(function(){n.remove(t)},r)}).execute(),this._getSymbolPoint=u,this._data=e},e.prototype.updateLayout=function(){var e=this,t=this._data;t&&t.eachItemGraphicEl(function(t,n){var r=e._getSymbolPoint(n);t.setPosition(r),t.markRedraw()})},e.prototype.incrementalPrepareUpdate=function(e){this._seriesScope=O(e),this._data=null,this.group.removeAll()},e.prototype.incrementalUpdate=function(e,t,n){function r(e){e.isGroup||(e.incremental=!0,e.ensureState("emphasis").hoverLayer=!0)}this._progressiveEls=[],n=w(n);for(var i=e.start;i0?n=r[0]:r[1]<0&&(n=r[1]),n}function T(e,t,n,r){var i=NaN;e.stacked&&(i=n.get(n.getCalculationInfo("stackedOverDimension"),r)),isNaN(i)&&(i=e.valueStart);var o=e.baseDataOffset,a=[];return a[o]=n.get(e.baseDim,r),a[1-o]=i,t.dataToPoint(a)}var I=n("9lhp");function D(e,t){var n=[];return t.diff(e).add(function(e){n.push({cmd:"+",idx:e})}).update(function(e,t){n.push({cmd:"=",idx:t,idx1:e})}).remove(function(e){n.push({cmd:"-",idx:e})}).execute(),n}function A(e,t,n,r,i,o,a,s){for(var l=D(e,t),u=[],c=[],f=[],d=[],h=[],p=[],g=[],m=M(i,t,a),v=e.getLayout("points")||[],y=t.getLayout("points")||[],b=0;b=i||g<0)break;if(Y(v,y)){if(l){g+=o;continue}break}if(g===n)e[o>0?"moveTo":"lineTo"](v,y),f=v,d=y;else{var b=v-u,x=y-c;if(b*b+x*x<.5){g+=o;continue}if(a>0){var _=g+o,w=t[2*_],O=t[2*_+1];while(w===v&&O===y&&m=r||Y(w,O))h=v,p=y;else{j=w-u,M=O-c;var I=v-u,D=w-v,A=y-c,E=O-y,P=void 0,L=void 0;if("x"===s){P=Math.abs(I),L=Math.abs(D);var N=j>0?1:-1;h=v-N*P*a,p=y,C=v+N*L*a,T=y}else if("y"===s){P=Math.abs(A),L=Math.abs(E);var R=M>0?1:-1;h=v,p=y-R*P*a,C=v,T=y+R*L*a}else P=Math.sqrt(I*I+A*A),L=Math.sqrt(D*D+E*E),k=L/(L+P),h=v-j*a*(1-k),p=y-M*a*(1-k),C=v+j*a*k,T=y+M*a*k,C=F(C,B(w,v)),T=F(T,B(O,y)),C=B(C,F(w,v)),T=B(T,F(O,y)),j=C-v,M=T-y,h=v-j*P/L,p=y-M*P/L,h=F(h,B(u,v)),p=F(p,B(c,y)),h=B(h,F(u,v)),p=B(p,F(c,y)),j=v-h,M=y-p,C=v+j*L/P,T=y+M*L/P}e.bezierCurveTo(f,d,h,p,v,y),f=C,d=T}else e.lineTo(v,y)}u=v,c=y,g+=o}return m}var G=function(){function e(){this.smooth=0,this.smoothConstraint=!0}return e}(),W=function(e){function t(t){var n=e.call(this,t)||this;return n.type="ec-polyline",n}return Object(r["a"])(t,e),t.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},t.prototype.getDefaultShape=function(){return new G},t.prototype.buildPath=function(e,t){var n=t.points,r=0,i=n.length/2;if(t.connectNulls){for(;i>0;i--)if(!Y(n[2*i-2],n[2*i-1]))break;for(;r=0){var y=s?(d-r)*v+r:(f-n)*v+n;return s?[e,y]:[y,e]}n=f,r=d;break;case a.C:f=o[u++],d=o[u++],h=o[u++],p=o[u++],g=o[u++],m=o[u++];var b=s?Object(z["f"])(n,f,h,g,e,l):Object(z["f"])(r,d,p,m,e,l);if(b>0)for(var x=0;x=0){y=s?Object(z["a"])(r,d,p,m,_):Object(z["a"])(n,f,h,g,_);return s?[e,y]:[y,e]}}n=g,r=m;break}}},t}(N["b"]),U=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r["a"])(t,e),t}(G),H=function(e){function t(t){var n=e.call(this,t)||this;return n.type="ec-polygon",n}return Object(r["a"])(t,e),t.prototype.getDefaultShape=function(){return new U},t.prototype.buildPath=function(e,t){var n=t.points,r=t.stackedOnPoints,i=0,o=n.length/2,a=t.smoothMonotone;if(t.connectNulls){for(;o>0;o--)if(!Y(n[2*o-2],n[2*o-1]))break;for(;it){r?i.push(a(r,l,t)):n&&i.push(a(n,l,0),a(n,l,t));break}n&&(i.push(a(n,l,0)),n=null),i.push(l),r=l}}return i}function oe(e,t,n){var r=e.getVisual("visualMeta");if(r&&r.length&&e.count()&&"cartesian2d"===t.type){for(var i,o,a=r.length-1;a>=0;a--){var s=e.getDimensionInfo(r[a].dimension);if(i=s&&s.coordDim,"x"===i||"y"===i){o=r[a];break}}if(o){var l=t.getAxis(i),u=c["D"](o.stops,function(e){return{coord:l.toGlobalCoord(l.dataToCoord(e.value)),color:e.color}}),f=u.length,d=o.outerColors.slice();f&&u[0].coord>u[f-1].coord&&(u.reverse(),d.reverse());var h=ie(u,"x"===i?n.getWidth():n.getHeight()),p=h.length;if(!p&&f)return u[0].coord<0?d[1]?d[1]:u[f-1].color:d[0]?d[0]:u[0].color;var g=10,m=h[0].coord-g,v=h[p-1].coord+g,y=v-m;if(y<.001)return"transparent";c["j"](h,function(e){e.offset=(e.coord-m)/y}),h.push({offset:p?h[p-1].offset:.5,color:d[1]||"transparent"}),h.unshift({offset:p?h[0].offset:.5,color:d[0]||"transparent"});var b=new E["a"](0,0,0,0,h,!0);return b[i]=m,b[i+"2"]=v,b}}}function ae(e,t,n){var r=e.get("showAllSymbol"),i="auto"===r;if(!r||i){var o=n.getAxesByScale("ordinal")[0];if(o&&(!i||!se(o,t))){var a=t.mapDimension(o.dim),s={};return c["j"](o.getViewLabels(),function(e){var t=o.scale.getRawOrdinalNumber(e.tickValue);s[t]=1}),function(e){return!s.hasOwnProperty(t.get(a,e))}}}}function se(e,t){var n=e.getExtent(),r=Math.abs(n[1]-n[0])/e.scale.count();isNaN(r)&&(r=0);for(var i=t.count(),o=Math.max(1,Math.round(i/5)),a=0;ar)return!1;return!0}function le(e,t){return isNaN(e)||isNaN(t)}function ue(e){for(var t=e.length/2;t>0;t--)if(!le(e[2*t-2],e[2*t-1]))break;return t-1}function ce(e,t){return[e[2*t],e[2*t+1]]}function fe(e,t,n){for(var r,i,o=e.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u=t||r>=t&&i<=t){l=u;break}s=u,r=i}else r=i;return{range:[s,l],t:(t-r)/(i-r)}}function de(e){if(e.get(["endLabel","show"]))return!0;for(var t=0;t0&&"bolder"===e.get(["emphasis","lineStyle","width"])){var F=v.getState("emphasis").style;F.lineWidth=+v.style.lineWidth+1}Object(h["a"])(v).seriesIndex=e.seriesIndex,Object(p["E"])(v,N,R,z);var B=te(e.get("smooth")),Y=e.get("smoothMonotone");if(v.setShape({smooth:B,smoothMonotone:Y,connectNulls:j}),y){var V=a.getCalculationInfo("stackedOnSeries"),G=0;y.useStyle(c["i"](l.getAreaStyle(),{fill:A,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),V&&(G=te(V.get("smooth"))),y.setShape({smooth:B,stackedOnSmooth:G,smoothMonotone:Y,connectNulls:j}),Object(p["D"])(y,e,"areaStyle"),Object(h["a"])(y).seriesIndex=e.seriesIndex,Object(p["E"])(y,N,R,z)}var W=function(e){r._changePolyState(e)};a.eachItemGraphicEl(function(e){e&&(e.onHoverStateChange=W)}),this._polyline.onHoverStateChange=W,this._data=a,this._coordSys=i,this._stackedOnPoints=S,this._points=u,this._step=D,this._valueOrigin=w,e.get("triggerLineEvent")&&(this.packEventData(e,v),y&&this.packEventData(e,y))},t.prototype.packEventData=function(e,t){Object(h["a"])(t).eventData={componentType:"series",componentSubType:"line",componentIndex:e.componentIndex,seriesIndex:e.seriesIndex,seriesName:e.name,seriesType:"line"}},t.prototype.highlight=function(e,t,n,r){var i=e.getData(),o=L["s"](i,r);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=i.getLayout("points"),s=i.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;var c=e.get("zlevel")||0,f=e.get("z")||0;s=new x(i,o),s.x=l,s.y=u,s.setZ(c,f);var d=s.getSymbolPath().getTextContent();d&&(d.zlevel=c,d.z=f,d.z2=this._polyline.z2+1),s.__temp=!0,i.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else q["a"].prototype.highlight.call(this,e,t,n,r)},t.prototype.downplay=function(e,t,n,r){var i=e.getData(),o=L["s"](i,r);if(this._changePolyState("normal"),null!=o&&o>=0){var a=i.getItemGraphicEl(o);a&&(a.__temp?(i.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else q["a"].prototype.downplay.call(this,e,t,n,r)},t.prototype._changePolyState=function(e){var t=this._polygon;Object(p["C"])(this._polyline,e),t&&Object(p["C"])(t,e)},t.prototype._newPolyline=function(e){var t=this._polyline;return t&&this._lineGroup.remove(t),t=new W({shape:{points:e},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(t),this._polyline=t,t},t.prototype._newPolygon=function(e,t){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new H({shape:{points:e,stackedOnPoints:t},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},t.prototype._initSymbolLabelAnimation=function(e,t,n){var r,i,o=t.getBaseAxis(),a=o.inverse;"cartesian2d"===t.type?(r=o.isHorizontal(),i=!1):"polar"===t.type&&(r="angle"===o.dim,i=!0);var s=e.hostModel,l=s.get("animationDuration");c["u"](l)&&(l=l(null));var u=s.get("animationDelay")||0,f=c["u"](u)?u(null):u;e.eachItemGraphicEl(function(e,o){var s=e;if(s){var d=[e.x,e.y],h=void 0,p=void 0,g=void 0;if(n)if(i){var m=n,v=t.pointToCoord(d);r?(h=m.startAngle,p=m.endAngle,g=-v[1]/180*Math.PI):(h=m.r0,p=m.r,g=v[0])}else{var y=n;r?(h=y.x,p=y.x+y.width,g=e.x):(h=y.y+y.height,p=y.y,g=e.y)}var b=p===h?0:(g-h)/(p-h);a&&(b=1-b);var x=c["u"](u)?u(o):l*b+f,_=s.getSymbolPath(),w=_.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:x}),w&&w.animateFrom({style:{opacity:0}},{duration:300,delay:x}),_.disableLabelAnimation=!0}})},t.prototype._initOrUpdateEndLabel=function(e,t,n){var r=e.getModel("endLabel");if(de(e)){var i=e.getData(),o=this._polyline,a=i.getLayout("points");if(!a)return o.removeTextContent(),void(this._endLabel=null);var s=this._endLabel;s||(s=this._endLabel=new P["a"]({z2:200}),s.ignoreClip=!0,o.setTextContent(this._endLabel),o.disableLabelAnimation=!0);var l=ue(a);l>=0&&(Object(m["e"])(o,Object(m["c"])(e,"endLabel"),{inheritColor:n,labelFetcher:e,labelDataIndex:l,defaultText:function(e,t,n){return null!=n?Object(g["a"])(i,n):Object(g["b"])(i,e)},enableTextSetter:!0},pe(r,t)),o.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},t.prototype._endLabelOnDuring=function(e,t,n,r,i,o,a){var s=this._endLabel,l=this._polyline;if(s){e<1&&null==r.originalX&&(r.originalX=s.x,r.originalY=s.y);var u=n.getLayout("points"),c=n.hostModel,f=c.get("connectNulls"),d=o.get("precision"),h=o.get("distance")||0,p=a.getBaseAxis(),g=p.isHorizontal(),v=p.inverse,y=t.shape,b=v?g?y.x:y.y+y.height:g?y.x+y.width:y.y,x=(g?h:0)*(v?-1:1),_=(g?0:-h)*(v?-1:1),w=g?"x":"y",O=fe(u,b,w),S=O.range,k=S[1]-S[0],j=void 0;if(k>=1){if(k>1&&!f){var M=ce(u,S[0]);s.attr({x:M[0]+x,y:M[1]+_}),i&&(j=c.getRawValue(S[0]))}else{M=l.getPointOn(b,w);M&&s.attr({x:M[0]+x,y:M[1]+_});var C=c.getRawValue(S[0]),T=c.getRawValue(S[1]);i&&(j=L["i"](n,d,C,T,O.t))}r.lastFrameIndex=S[0]}else{var I=1===e||r.lastFrameIndex>0?S[0]:0;M=ce(u,I);i&&(j=c.getRawValue(I)),s.attr({x:M[0]+x,y:M[1]+_})}i&&Object(m["d"])(s).setLabelText(j)}},t.prototype._doUpdateAnimation=function(e,t,n,r,i,o,a){var s=this._polyline,l=this._polygon,u=e.hostModel,c=A(this._data,e,this._stackedOnPoints,t,this._coordSys,n,this._valueOrigin,o),d=c.current,h=c.stackedOnCurrent,p=c.next,g=c.stackedOnNext;if(i&&(d=re(c.current,n,i,a),h=re(c.stackedOnCurrent,n,i,a),p=re(c.next,n,i,a),g=re(c.stackedOnNext,n,i,a)),ee(d,p)>3e3||l&&ee(h,g)>3e3)return s.stopAnimation(),s.setShape({points:p}),void(l&&(l.stopAnimation(),l.setShape({points:p,stackedOnPoints:g})));s.shape.__points=c.current,s.shape.points=d;var m={shape:{points:p}};c.current!==d&&(m.shape.__points=c.next),s.stopAnimation(),f["h"](s,m,u),l&&(l.setShape({points:d,stackedOnPoints:h}),l.stopAnimation(),f["h"](l,{shape:{stackedOnPoints:g}},u),s.shape.points!==l.shape.points&&(l.shape.points=s.shape.points));for(var v=[],y=c.status,b=0;b0){if(e<=i)return a;if(e>=o)return s}else{if(e>=i)return a;if(e<=o)return s}else{if(e===i)return a;if(e===o)return s}return(e-i)/l*u+a}function l(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return r["y"](e)?a(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):null==e?NaN:+e}function u(e,t,n){return null==t&&(t=10),t=Math.min(Math.max(0,t),o),e=(+e).toFixed(t),n?e:+e}function c(e){return e.sort(function(e,t){return e-t}),e}function f(e){if(e=+e,isNaN(e))return 0;if(e>1e-14)for(var t=1,n=0;n<15;n++,t*=10)if(Math.round(e*t)/t===e)return n;return d(e)}function d(e){var t=e.toString().toLowerCase(),n=t.indexOf("e"),r=n>0?+t.slice(n+1):0,i=n>0?n:t.length,o=t.indexOf("."),a=o<0?0:i-1-o;return Math.max(0,a-r)}function h(e,t){var n=Math.log,r=Math.LN10,i=Math.floor(n(e[1]-e[0])/r),o=Math.round(n(Math.abs(t[1]-t[0]))/r),a=Math.min(Math.max(-i+o,0),20);return isFinite(a)?a:20}function p(e,t){var n=Math.max(f(e),f(t)),r=e+t;return n>o?r:u(r,n)}function g(e){var t=2*Math.PI;return(e%t+t)%t}function m(e){return e>-i&&e=10&&t++,t}function _(e,t){var n,r=x(e),i=Math.pow(10,r),o=e/i;return n=t?o<1.5?1:o<2.5?2:o<4?3:o<7?5:10:o<1?1:o<2?2:o<3?3:o<5?5:10,e=n*i,r>=-20?+e.toFixed(r<0?-r:0):e}function w(e){var t=parseFloat(e);return t==e&&(0!==t||!r["y"](e)||e.indexOf("x")<=0)?t:NaN}function O(e){return!isNaN(w(e))}function S(){return Math.round(9*Math.random())}function k(e,t){return 0===t?e:k(t,e%t)}function j(e,t){return null==e?t:null==t?e:e*t/k(e,t)}},OKJ2:function(e,t,n){"use strict";n.d(t,"a",function(){return s}),n.d(t,"b",function(){return l});var r=n("bYtY"),i=n("KxfA"),o=n("7aKB"),a=/\{@(.+?)\}/g,s=function(){function e(){}return e.prototype.getDataParams=function(e,t){var n=this.getData(t),r=this.getRawValue(e,t),i=n.getRawIndex(e),o=n.getName(e),a=n.getRawDataItem(e),s=n.getItemVisual(e,"style"),l=s&&s[n.getItemVisual(e,"drawType")||"fill"],u=s&&s.stroke,c=this.mainType,f="series"===c,d=n.userOutput&&n.userOutput.get();return{componentType:c,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:f?this.subType:null,seriesIndex:this.seriesIndex,seriesId:f?this.id:null,seriesName:f?this.name:null,name:o,dataIndex:i,data:a,dataType:t,value:r,color:l,borderColor:u,dimensionNames:d?d.fullDimensions:null,encode:d?d.encode:null,$vars:["seriesName","name","value"]}},e.prototype.getFormattedLabel=function(e,t,n,s,l,u){t=t||"normal";var c=this.getData(n),f=this.getDataParams(e,n);if(u&&(f.value=u.interpolatedValue),null!=s&&r["r"](f.value)&&(f.value=f.value[s]),!l){var d=c.getItemModel(e);l=d.get("normal"===t?["label","formatter"]:[t,"label","formatter"])}if(r["u"](l))return f.status=t,f.dimensionIndex=s,l(f);if(r["y"](l)){var h=Object(o["c"])(l,f);return h.replace(a,function(t,n){var o=n.length,a=n;"["===a.charAt(0)&&"]"===a.charAt(o-1)&&(a=+a.slice(1,o-1));var s=Object(i["e"])(c,e,a);if(u&&r["r"](u.interpolatedValue)){var l=c.getDimensionIndex(a);l>=0&&(s=u.interpolatedValue[l])}return null!=s?s+"":""})}},e.prototype.getRawValue=function(e,t){return Object(i["e"])(this.getData(t),e)},e.prototype.formatTooltip=function(e,t,n){},e}();function l(e){var t,n;return r["x"](e)?e.type&&(n=e):t=e,{text:t,frag:n}}},OQFs:function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return a});var r=n("KCsZ"),i=[["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","type"],["lineDashOffset","dashOffset"],["lineCap","cap"],["lineJoin","join"],["miterLimit"]],o=Object(r["a"])(i),a=function(){function e(){}return e.prototype.getLineStyle=function(e){return o(this,e)},e}()},Q1l4:function(e,t){function n(e,t){var n=-1,r=e.length;t||(t=Array(r));while(++nt)return e[r];return e[n-1]}function s(e,t,n,r,i,o,s){o=o||e;var l=t(o),u=l.paletteIdx||0,c=l.paletteNameMap=l.paletteNameMap||{};if(c.hasOwnProperty(i))return c[i];var f=null!=s&&r?a(r,s):n;if(f=f||n,f&&f.length){var d=f[u];return i&&(c[i]=d),l.paletteIdx=(u+1)%f.length,d}}function l(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}},QIyF:function(e,t,n){var r=n("Kz5y"),i=function(){return r.Date.now()};e.exports=i},QcOe:function(e,t,n){var r=n("GoyQ"),i=n("6sVZ"),o=n("7Ix3"),a=Object.prototype,s=a.hasOwnProperty;function l(e){if(!r(e))return o(e);var t=i(e),n=[];for(var a in e)("constructor"!=a||!t&&s.call(e,a))&&n.push(a);return n}e.exports=l},QjYF:function(e,t,n){"use strict";var r=n("AGgm").isSpace;e.exports=function(e,t){var n,i,o,a=e.pos;if(10!==e.src.charCodeAt(a))return!1;if(n=e.pending.length-1,i=e.posMax,!t)if(n>=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){o=n-1;while(o>=1&&32===e.pending.charCodeAt(o-1))o--;e.pending=e.pending.slice(0,o),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);a++;while(a3)&&!(e.sCount[l]<0)){for(r=!1,i=0,o=u.length;i40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),c=Math.abs(u*Math.cos(r)),f=Math.abs(u*Math.sin(r)),d=0,h=0;l<=o[1];l+=s){var p=0,g=0,m=L["d"](n({value:l}),t.font,"center","top");p=1.3*m.width,g=1.3*m.height,d=Math.max(d,p,7),h=Math.max(h,g,7)}var v=d/c,y=h/f;isNaN(v)&&(v=1/0),isNaN(y)&&(y=1/0);var b=Math.max(0,Math.floor(Math.min(v,y))),x=N(e.model),_=e.getExtent(),w=x.lastAutoInterval,O=x.lastTickCount;return null!=w&&null!=O&&Math.abs(w-b)<=1&&Math.abs(O-a)<=1&&w>b&&x.axisExtent0===_[0]&&x.axisExtent1===_[1]?b=w:(x.lastTickCount=a,x.lastAutoInterval=b,x.axisExtent0=_[0],x.axisExtent1=_[1]),b}function K(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function Z(e,t,n){var r=Object(S["h"])(e),i=e.scale,o=i.getExtent(),a=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=o[0],c=i.count();0!==u&&l>1&&c/l>2&&(u=Math.round(Math.ceil(u/l)*l));var f=Object(S["j"])(e),d=a.get("showMinLabel")||f,h=a.get("showMaxLabel")||f;d&&u!==o[0]&&g(o[0]);for(var p=u;p<=o[1];p+=l)g(p);function g(e){var t={value:e};s.push(n?e:{formattedLabel:r(t),rawLabel:i.getLabel(t),tickValue:e})}return h&&p-l!==o[1]&&g(o[1]),s}function X(e,t,n){var r=e.scale,i=Object(S["h"])(e),o=[];return u["j"](r.getTicks(),function(e){var a=r.getLabel(e),s=e.value;t(e.value,a)&&o.push(n?s:{formattedLabel:i(e),rawLabel:a,tickValue:s})}),o}var Q=[0,1],$=function(){function e(e,t,n){this.onBand=!1,this.inverse=!1,this.dim=e,this.scale=t,this._extent=n||[0,0]}return e.prototype.contain=function(e){var t=this._extent,n=Math.min(t[0],t[1]),r=Math.max(t[0],t[1]);return e>=n&&e<=r},e.prototype.containData=function(e){return this.scale.contain(e)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(e){return Object(P["d"])(e||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(e,t){var n=this._extent;n[0]=e,n[1]=t},e.prototype.dataToCoord=function(e,t){var n=this._extent,r=this.scale;return e=r.normalize(e),this.onBand&&"ordinal"===r.type&&(n=n.slice(),J(n,r.count())),Object(P["i"])(e,Q,n,t)},e.prototype.coordToData=function(e,t){var n=this._extent,r=this.scale;this.onBand&&"ordinal"===r.type&&(n=n.slice(),J(n,r.count()));var i=Object(P["i"])(e,n,Q,t);return this.scale.scale(i)},e.prototype.pointToData=function(e,t){},e.prototype.getTicksCoords=function(e){e=e||{};var t=e.tickModel||this.getTickModel(),n=z(this,t),r=n.ticks,i=Object(u["D"])(r,function(e){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(e):e),tickValue:e}},this),o=t.get("alignWithLabel");return ee(this,i,o,e.clamp),i},e.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var e=this.model.getModel("minorTick"),t=e.get("splitNumber");t>0&&t<100||(t=5);var n=this.scale.getMinorTicks(t),r=Object(u["D"])(n,function(e){return Object(u["D"])(e,function(e){return{coord:this.dataToCoord(e),tickValue:e}},this)},this);return r},e.prototype.getViewLabels=function(){return R(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var e=this._extent,t=this.scale.getExtent(),n=t[1]-t[0]+(this.onBand?1:0);0===n&&(n=1);var r=Math.abs(e[1]-e[0]);return Math.abs(r)/n},e.prototype.calculateCategoryInterval=function(){return q(this)},e}();function J(e,t){var n=e[1]-e[0],r=t,i=n/r/2;e[0]+=i,e[1]-=i}function ee(e,t,n,r){var i=t.length;if(e.onBand&&!n&&i){var o,a,s=e.getExtent();if(1===i)t[0].coord=s[0],o=t[1]={coord:s[0]};else{var l=t[i-1].tickValue-t[0].tickValue,c=(t[i-1].coord-t[0].coord)/l;Object(u["j"])(t,function(e){e.coord-=c/2});var f=e.scale.getExtent();a=1+f[1]-t[i-1].tickValue,o={coord:t[i-1].coord+c*a},t.push(o)}var d=s[0]>s[1];h(t[0].coord,s[0])&&(r?t[0].coord=s[0]:t.shift()),r&&h(s[0],t[0].coord)&&t.unshift({coord:s[0]}),h(s[1],o.coord)&&(r?o.coord=s[1]:t.pop()),r&&h(o.coord,s[1])&&t.push({coord:s[1]})}function h(e,t){return e=Object(P["q"])(e),t=Object(P["q"])(t),d?e>t:et[1]&&t.reverse(),t},t.prototype.pointToData=function(e,t){return this.coordToData(this.toLocalCoord(e["x"===this.dim?0:1]),t)},t.prototype.setCategorySortInfo=function(e){if("category"!==this.type)return!1;this.model.option.categorySortInfo=e,this.scale.setSortInfo(e)},t}(te),re=ne,ie=n("AVZG"),oe=n("lE7J"),ae=n("ieMj"),se=Math.log;function le(e,t,n){var r=ae["a"].prototype,i=r.getTicks.call(n),o=r.getTicks.call(n,!0),a=i.length-1,s=r.getInterval.call(n),l=Object(S["f"])(e,t),u=l.extent,c=l.fixMin,f=l.fixMax;if("log"===e.type){var d=se(e.base);u=[se(u[0])/d,se(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:a,fixMin:c,fixMax:f});var h=r.getExtent.call(e);c&&(u[0]=h[0]),f&&(u[1]=h[1]);var p=r.getInterval.call(e),g=u[0],m=u[1];if(c&&f)p=(m-g)/a;else if(c){m=u[0]+p*a;while(mu[0]&&isFinite(g)&&isFinite(u[0]))p=Object(oe["c"])(p),g=u[1]-p*a}else{var v=e.getTicks().length-1;v>a&&(p=Object(oe["c"])(p));var y=p*a;m=Math.ceil(u[1]/p)*p,g=Object(P["q"])(m-y),g<0&&u[0]>=0?(g=0,m=Object(P["q"])(y)):m>0&&u[1]<=0&&(m=0,g=-Object(P["q"])(y))}var b=(i[0].value-o[0].value)/s,x=(i[a].value-o[a].value)/s;r.setExtent.call(e,g+p*b,m+p*x),r.setInterval.call(e,p),(b||x)&&r.setNiceExtent.call(e,g+p,m-p)}var ue=function(){function e(e,t,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=I,this._initCartesian(e,t,n),this.model=e}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(e,t){var n=this._axesMap;function r(e){var t,n=Object(u["B"])(e),r=n.length;if(r){for(var i=[],o=r-1;o>=0;o--){var a=+n[o],s=e[a],l=s.model,c=s.scale;Object(oe["e"])(c)&&l.get("alignTicks")&&null==l.get("interval")?i.push(s):(Object(S["i"])(c,l),Object(oe["e"])(c)&&(t=s))}i.length&&(t||(t=i.pop(),Object(S["i"])(t.scale,t.model)),Object(u["j"])(i,function(e){le(e.scale,e.model,t.scale)}))}}this._updateScale(e,this.model),r(n.x),r(n.y);var i={};Object(u["j"])(n.x,function(e){fe(n,"y",e,i)}),Object(u["j"])(n.y,function(e){fe(n,"x",e,i)}),this.resize(this.model,t)},e.prototype.resize=function(e,t,n){var r=e.getBoxLayoutParams(),i=!n&&e.get("containLabel"),o=Object(b["d"])(r,{width:t.getWidth(),height:t.getHeight()});this._rect=o;var a=this._axesList;function s(){Object(u["j"])(a,function(e){var t=e.isHorizontal(),n=t?[0,o.width]:[0,o.height],r=e.inverse?1:0;e.setExtent(n[r],n[1-r]),he(e,t?o.x:o.y)})}s(),i&&(Object(u["j"])(a,function(e){if(!e.model.get(["axisLabel","inside"])){var t=Object(S["b"])(e);if(t){var n=e.isHorizontal()?"height":"width",r=e.model.get(["axisLabel","margin"]);o[n]-=t[n]+r,"top"===e.position?o.y+=t.height+r:"left"===e.position&&(o.x+=t.width+r)}}}),s()),Object(u["j"])(this._coordsList,function(e){e.calcAffineTransform()})},e.prototype.getAxis=function(e,t){var n=this._axesMap[e];if(null!=n)return n[t||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(e,t){if(null!=e&&null!=t){var n="x"+e+"y"+t;return this._coordsMap[n]}Object(u["x"])(e)&&(t=e.yAxisIndex,e=e.xAxisIndex);for(var r=0,i=this._coordsList;r=a)return-1;if(n=e.src.charCodeAt(o++),n<48||n>57)return-1;for(;;){if(o>=a)return-1;if(n=e.src.charCodeAt(o++),!(n>=48&&n<=57)){if(41===n||46===n)break;return-1}if(o-i>=10)return-1}return o=4)return!1;if(e.listIndent>=0&&e.sCount[t]-e.listIndent>=4&&e.sCount[t]=e.blkIndent&&(L=!0),(T=o(e,t))>=0){if(h=!0,D=e.bMarks[t]+e.tShift[t],b=Number(e.src.slice(D,T-1)),L&&1!==b)return!1}else{if(!((T=i(e,t))>=0))return!1;h=!1}if(L&&e.skipSpaces(T)>=e.eMarks[t])return!1;if(y=e.src.charCodeAt(T-1),r)return!0;v=e.tokens.length,h?(P=e.push("ordered_list_open","ol",1),1!==b&&(P.attrs=[["start",b]])):P=e.push("bullet_list_open","ul",1),P.map=m=[t,0],P.markup=String.fromCharCode(y),_=t,I=!1,E=e.md.block.ruler.getRules("list"),S=e.parentType,e.parentType="list";while(_=x?1:w-d,f>4&&(f=1),c=d+f,P=e.push("list_item_open","li",1),P.markup=String.fromCharCode(y),P.map=p=[t,0],h&&(P.info=e.src.slice(D,T-1)),M=e.tight,j=e.tShift[t],k=e.sCount[t],O=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=c,e.tight=!0,e.tShift[t]=l-e.bMarks[t],e.sCount[t]=w,l>=x&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,t,n,!0),e.tight&&!I||(N=!1),I=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=O,e.tShift[t]=j,e.sCount[t]=k,e.tight=M,P=e.push("list_item_close","li",-1),P.markup=String.fromCharCode(y),_=t=e.line,p[1]=_,l=e.bMarks[t],_>=n)break;if(e.sCount[_]=4)break;for(A=!1,u=0,g=E.length;u9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var e,t,n=this._sourceHost,r=this._getUpstreamSourceManagers(),o=!!r.length;if(x(n)){var a=n,s=void 0,l=void 0,u=void 0;if(o){var c=r[0];c.prepareSource(),u=c.getSource(),s=u.data,l=u.sourceFormat,t=[c._getVersionSign()]}else s=a.get("data",!0),l=Object(i["A"])(s)?p["g"]:p["f"],t=[];var f=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},g=Object(i["K"])(f.seriesLayoutBy,d.seriesLayoutBy)||null,m=Object(i["K"])(f.sourceHeader,d.sourceHeader),v=Object(i["K"])(f.dimensions,d.dimensions),y=g!==d.seriesLayoutBy||!!m!==!!d.sourceHeader||v;e=y?[Object(h["b"])(s,{seriesLayoutBy:g,sourceHeader:m,dimensions:v},l)]:[]}else{var b=n;if(o){var _=this._applyTransform(r);e=_.sourceList,t=_.upstreamSignList}else{var w=b.get("source",!0);e=[Object(h["b"])(w,this._getSourceMetaRawOption(),null)],t=[]}}this._setLocalSource(e,t)},e.prototype._applyTransform=function(e){var t,n=this._sourceHost,r=n.get("transform",!0),o=n.get("fromTransformResult",!0);if(null!=o){var a="";1!==e.length&&_(a)}var s=[],l=[];return Object(i["j"])(e,function(e){e.prepareSource();var t=e.getSource(o||0),n="";null==o||t||_(n),s.push(t),l.push(e._getVersionSign())}),r?t=Object(m["a"])(r,s,{datasetIndex:n.componentIndex}):null!=o&&(t=[Object(h["a"])(s[0])]),{sourceList:t,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var e=this._getUpstreamSourceManagers(),t=0;t1||p&&!d){var m=S(h,s,l,f,g);t=m.inlineValues,n=m.inlineValueTypes,r=m.blocks,o=m.inlineValues[0]}else if(d){var v=c.getDimensionInfo(f[0]);o=t=Object(y["e"])(c,l,f[0]),n=v.type}else o=t=p?h[0]:h;var b=Object(a["l"])(s),x=b&&s.name||"",_=c.getName(l),O=u?x:_;return Object(w["c"])("section",{header:x,noHeader:u||!b,sortParam:o,blocks:[Object(w["c"])("nameValue",{markerType:"item",markerColor:g,name:O,noName:!Object(i["O"])(O),value:t,valueType:n})].concat(r||[])})}function S(e,t,n,r,o){var a=t.getData(),s=Object(i["I"])(e,function(e,t,n){var r=a.getDimensionInfo(n);return e||r&&!1!==r.tooltip&&null!=r.displayName},!1),l=[],u=[],c=[];function f(e,t){var n=a.getDimensionInfo(t);n&&!1!==n.otherDims.tooltip&&(s?c.push(Object(w["c"])("nameValue",{markerType:"subItem",markerColor:o,name:n.displayName,value:e,valueType:n.type})):(l.push(e),u.push(n.type)))}return r.length?Object(i["j"])(r,function(e){f(Object(y["e"])(a,n,e),e)}):Object(i["j"])(e,f),{inlineValues:l,inlineValueTypes:u,blocks:c}}n.d(t,"a",function(){return M});var k=a["m"]();function j(e,t){return e.getName(t)||e.getId(t)}var M="__universalTransitionEnabled",C=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._selectedDataIndicesMap={},t}return Object(r["a"])(t,e),t.prototype.init=function(e,t,n){this.seriesIndex=this.componentIndex,this.dataTask=Object(f["a"])({count:D,reset:A}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(e,n);var r=k(this).sourceManager=new b(this);r.prepareSource();var i=this.getInitialData(e,n);P(i,this),this.dataTask.context.data=i,k(this).dataBeforeProcessed=i,T(this),this._initSelectedMapFromData(i)},t.prototype.mergeDefaultAndTheme=function(e,t){var n=Object(c["b"])(this),r=n?Object(c["c"])(e):{},o=this.subType;s["a"].hasClass(o)&&(o+="Series"),i["E"](e,t.getTheme().get(this.subType)),i["E"](e,this.getDefaultOption()),a["e"](e,"label",["show"]),this.fillDataTextStyle(e.data),n&&Object(c["e"])(e,r,n)},t.prototype.mergeOption=function(e,t){e=i["E"](this.option,e,!0),this.fillDataTextStyle(e.data);var n=Object(c["b"])(this);n&&Object(c["e"])(this.option,e,n);var r=k(this).sourceManager;r.dirty(),r.prepareSource();var o=this.getInitialData(e,t);P(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,k(this).dataBeforeProcessed=o,T(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(e){if(e&&!i["A"](e))for(var t=["show"],n=0;nthis.getShallow("animationThreshold")&&(t=!1),!!t},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(e,t,n){var r=this.ecModel,i=l["a"].prototype.getColorFromPalette.call(this,e,t,n);return i||(i=r.getColorFromPalette(e,t,n)),i},t.prototype.coordDimToDataDim=function(e){return this.getRawData().mapDimensionsAll(e)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(e,t){this._innerSelect(this.getData(t),e)},t.prototype.unselect=function(e,t){var n=this.option.selectedMap;if(n){var r=this.option.selectedMode,i=this.getData(t);if("series"===r||"all"===n)return this.option.selectedMap={},void(this._selectedDataIndicesMap={});for(var o=0;o=0&&n.push(o)}return n},t.prototype.isSelected=function(e,t){var n=this.option.selectedMap;if(!n)return!1;var r=this.getData(t);return("all"===n||n[j(r,e)])&&!r.getItemModel(e).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[M])return!0;var e=this.option.universalTransition;return!!e&&(!0===e||e&&e.enabled)},t.prototype._innerSelect=function(e,t){var n,r,o=this.option,a=o.selectedMode,s=t.length;if(a&&s)if("series"===a)o.selectedMap="all";else if("multiple"===a){i["x"](o.selectedMap)||(o.selectedMap={});for(var l=o.selectedMap,u=0;u0&&this._innerSelect(e,t)}},t.registerClass=function(e){return s["a"].registerClass(e)},t.protoInitialize=function(){var e=t.prototype;e.type="series.__base__",e.seriesIndex=0,e.ignoreStyleOnData=!1,e.hasSymbolVisual=!1,e.defaultSymbol="circle",e.visualStyleAccessPath="itemStyle",e.visualDrawType="fill"}(),t}(s["a"]);function T(e){var t=e.name;a["l"](e)||(e.name=I(e)||t)}function I(e){var t=e.getRawData(),n=t.mapDimensionsAll("seriesName"),r=[];return i["j"](n,function(e){var n=t.getDimensionInfo(e);n.displayName&&r.push(n.displayName)}),r.join(" ")}function D(e){return e.model.getRawData().count()}function A(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),E}function E(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function P(e,t){i["j"](i["e"](e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(n){e.wrapMethod(n,i["h"](L,t))})}function L(e,t){var n=N(e);return n&&n.setOutputEnd((t||this).count()),t}function N(e){var t=(e.ecModel||{}).scheduler,n=t&&t.getPipeline(e.uid);if(n){var r=n.currentTask;if(r){var i=r.agentStubMap;i&&(r=i.get(e.uid))}return r}}i["F"](C,u["a"]),i["F"](C,l["a"]),Object(d["e"])(C,s["a"]);t["b"]=C},TCYN:function(e,t,n){"use strict";var r=/\r\n?|\n/g,i=/\0/g;e.exports=function(e){var t;t=e.src.replace(r,"\n"),t=t.replace(i,"\ufffd"),e.src=t}},TLR5:function(e,t,n){"use strict";var r=n("SINd"),i=[["text",n("usqY")],["newline",n("QjYF")],["escape",n("bgCn")],["backticks",n("SpRm")],["strikethrough",n("kiyR").tokenize],["emphasis",n("yKnv").tokenize],["link",n("zQ/W")],["image",n("ky0j")],["autolink",n("KOyK")],["html_inline",n("wtjL")],["entity",n("W1Rp")]],o=[["balance_pairs",n("g40J")],["strikethrough",n("kiyR").postProcess],["emphasis",n("yKnv").postProcess],["text_collapse",n("IIUr")]];function a(){var e;for(this.ruler=new r,e=0;e=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},a.prototype.parse=function(e,t,n,r){var i,o,a,s=new this.State(e,t,n,r);for(this.tokenize(s),o=this.ruler2.getRules(""),a=o.length,i=0;ie&&(e=t),e},t.prototype.brushSelector=function(e,t,n){return n.rect(t.getItemLayout(e))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=Object(f["d"])(c.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(c),h=d,p=n("y+Vt"),g=n("LcXL"),m=n("IwbS"),v=n("3soF"),y=n("x6Kt"),b=n("SqI9"),x=n("hhxK"),_=n("fWwa"),w=n("eDfh"),O=n("iLNv"),S=n("sK/D"),k=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0}return e}(),j=function(e){function t(t){var n=e.call(this,t)||this;return n.type="sausage",n}return Object(a["a"])(t,e),t.prototype.getDefaultShape=function(){return new k},t.prototype.buildPath=function(e,t){var n=t.cx,r=t.cy,i=Math.max(t.r0||0,0),o=Math.max(t.r,0),a=.5*(o-i),s=i+a,l=t.startAngle,u=t.endAngle,c=t.clockwise,f=2*Math.PI,d=c?u-lMath.PI/2&&f<1.5*Math.PI&&(f-=Math.PI),e.setTextConfig({rotation:f})}}function P(e,t,n){return t*Math.sin(e)*(n?-1:1)}function L(e,t,n){return t*Math.cos(e)*(n?1:-1)}var N=Math.max,R=Math.min;function z(e,t){var n=e.getArea&&e.getArea();if(Object(T["a"])(e,"cartesian2d")){var r=e.getBaseAxis();if("category"!==r.type||!r.onBand){var i=t.getLayout("bandWidth");r.isHorizontal()?(n.x-=i,n.width+=2*i):(n.y-=i,n.height+=2*i)}}return n}var F=function(e){function t(){var n=e.call(this)||this;return n.type=t.type,n._isFirstFrame=!0,n}return Object(a["a"])(t,e),t.prototype.render=function(e,t,n,r){this._model=e,this._removeOnRenderedListener(n),this._updateDrawMode(e);var i=e.get("coordinateSystem");("cartesian2d"===i||"polar"===i)&&(this._progressiveEls=null,this._isLargeDraw?this._renderLarge(e,t,n):this._renderNormal(e,t,n,r))},t.prototype.incrementalPrepareRender=function(e){this._clear(),this._updateDrawMode(e),this._updateLargeClip(e)},t.prototype.incrementalRender=function(e,t){this._progressiveEls=[],this._incrementalRenderLarge(e,t)},t.prototype.eachRendered=function(e){Object(m["traverseElements"])(this._progressiveEls||this.group,e)},t.prototype._updateDrawMode=function(e){var t=e.pipelineContext.large;null!=this._isLargeDraw&&t===this._isLargeDraw||(this._isLargeDraw=t,this._clear())},t.prototype._renderNormal=function(e,t,n,r){var i,o=this.group,a=e.getData(),s=this._data,l=e.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?i=u.isHorizontal():"polar"===l.type&&(i="angle"===u.dim);var c=e.isAnimationEnabled()?e:null,f=V(e,l);f&&this._enableRealtimeSort(f,a,n);var d=e.get("clip",!0)||f,h=z(l,a);o.removeClipPath();var p=e.get("roundCap",!0),m=e.get("showBackground",!0),y=e.getModel("backgroundStyle"),b=y.get("borderRadius")||0,x=[],_=this._backgroundEls,O=r&&r.isInitSort,S=r&&"changeAxisOrder"===r.type;function k(e){var t=K[l.type](a,e),n=oe(l,i,t);return n.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&n.setShape("r",b),x[e]=n,n}a.diff(s).add(function(t){var n=a.getItemModel(t),r=K[l.type](a,t,n);if(m&&k(t),a.hasValue(t)&&q[l.type](r)){var s=!1;d&&(s=B[l.type](h,r));var g=Y[l.type](e,a,t,r,i,c,u.model,!1,p);f&&(g.forceLabelAnimation=!0),Q(g,a,t,n,r,e,i,"polar"===l.type),O?g.attr({shape:r}):f?G(f,c,g,r,t,i,!1,!1):Object(v["c"])(g,{shape:r},e,t),a.setItemGraphicEl(t,g),o.add(g),g.ignore=s}}).update(function(t,n){var r=a.getItemModel(t),g=K[l.type](a,t,r);if(m){var j=void 0;0===_.length?j=k(n):(j=_[n],j.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&j.setShape("r",b),x[t]=j);var M=K[l.type](a,t),C=ie(i,M,l);Object(v["h"])(j,{shape:C},c,t)}var T=s.getItemGraphicEl(n);if(a.hasValue(t)&&q[l.type](g)){var I=!1;if(d&&(I=B[l.type](h,g),I&&o.remove(T)),T?Object(v["g"])(T):T=Y[l.type](e,a,t,g,i,c,u.model,!!T,p),f&&(T.forceLabelAnimation=!0),S){var D=T.getTextContent();if(D){var A=Object(w["d"])(D);null!=A.prevValue&&(A.prevValue=A.value)}}else Q(T,a,t,r,g,e,i,"polar"===l.type);O?T.attr({shape:g}):f?G(f,c,T,g,t,i,!0,S):Object(v["h"])(T,{shape:g},e,t,null),a.setItemGraphicEl(t,T),T.ignore=I,o.add(T)}else o.remove(T)}).remove(function(t){var n=s.getItemGraphicEl(t);n&&Object(v["f"])(n,e,t)}).execute();var j=this._backgroundGroup||(this._backgroundGroup=new g["a"]);j.removeAll();for(var M=0;Mo)return!0;o=u}return!1},t.prototype._isOrderDifferentInView=function(e,t){for(var n=t.scale,r=n.getExtent(),i=Math.max(0,r[0]),o=Math.min(r[1],n.getOrdinalMeta().categories.length-1);i<=o;++i)if(e.ordinalNumbers[i]!==n.getRawOrdinalNumber(i))return!0},t.prototype._updateSortWithinSameData=function(e,t,n,r){if(this._isOrderChangedWithinSameData(e,t,n)){var i=this._dataSort(e,n,t);this._isOrderDifferentInView(i,n)&&(this._removeOnRenderedListener(r),r.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:i}))}},t.prototype._dispatchInitSort=function(e,t,n){var r=t.baseAxis,i=this._dataSort(e,r,function(n){return e.get(e.mapDimension(t.otherAxis.dim),n)});n.dispatchAction({type:"changeAxisOrder",componentType:r.dim+"Axis",isInitSort:!0,axisId:r.index,sortInfo:i})},t.prototype.remove=function(e,t){this._clear(this._model),this._removeOnRenderedListener(t)},t.prototype.dispose=function(e,t){this._removeOnRenderedListener(t)},t.prototype._removeOnRenderedListener=function(e){this._onRendered&&(e.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(e){var t=this.group,n=this._data;e&&e.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl(function(t){Object(v["f"])(t,e,Object(x["a"])(t).dataIndex)})):t.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(C["a"]),B={cartesian2d:function(e,t){var n=t.width<0?-1:1,r=t.height<0?-1:1;n<0&&(t.x+=t.width,t.width=-t.width),r<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,o=e.y+e.height,a=N(t.x,e.x),s=R(t.x+t.width,i),l=N(t.y,e.y),u=R(t.y+t.height,o),c=si?s:a,t.y=f&&l>o?u:l,t.width=c?0:s-a,t.height=f?0:u-l,n<0&&(t.x+=t.width,t.width=-t.width),r<0&&(t.y+=t.height,t.height=-t.height),c||f},polar:function(e,t){var n=t.r0<=t.r?1:-1;if(n<0){var r=t.r;t.r=t.r0,t.r0=r}var i=R(t.r,e.r),o=N(t.r0,e.r0);t.r=i,t.r0=o;var a=i-o<0;if(n<0){r=t.r;t.r=t.r0,t.r0=r}return a}},Y={cartesian2d:function(e,t,n,i,o,a,s,l,u){var c=new y["a"]({shape:Object(r["l"])({},i),z2:1});if(c.__dataIndex=n,c.name="item",a){var f=c.shape,d=o?"height":"width";f[d]=0}return c},polar:function(e,t,n,r,i,o,a,s,l){var u=!i&&l?M:b["a"],c=new u({shape:r,z2:1});c.name="item";var f=X(i);if(c.calculateTextPosition=A(f,{isRoundCap:u===M}),o){var d=c.shape,h=i?"r":"endAngle",p={};d[h]=i?0:r.startAngle,p[h]=r[h],(s?v["h"]:v["c"])(c,{shape:p},o)}return c}};function V(e,t){var n=e.get("realtimeSort",!0),r=t.getBaseAxis();if(n&&"category"===r.type&&"cartesian2d"===t.type)return{baseAxis:r,otherAxis:t.getOtherAxis(r)}}function G(e,t,n,r,i,o,a,s){var l,u;o?(u={x:r.x,width:r.width},l={y:r.y,height:r.height}):(u={y:r.y,height:r.height},l={x:r.x,width:r.width}),s||(a?v["h"]:v["c"])(n,{shape:l},t,i,null);var c=t?e.baseAxis.model:null;(a?v["h"]:v["c"])(n,{shape:u},c,i)}function W(e,t){for(var n=0;n0?1:-1,a=r.height>0?1:-1;return{x:r.x+o*i/2,y:r.y+a*i/2,width:r.width-o*i,height:r.height-a*i}},polar:function(e,t,n){var r=e.getItemLayout(t);return{cx:r.cx,cy:r.cy,r0:r.r0,r:r.r,startAngle:r.startAngle,endAngle:r.endAngle,clockwise:r.clockwise}}};function Z(e){return null!=e.startAngle&&null!=e.endAngle&&e.startAngle===e.endAngle}function X(e){return function(e){var t=e?"Arc":"Angle";return function(e){switch(e){case"start":case"insideStart":case"end":case"insideEnd":return e+t;default:return e}}}(e)}function Q(e,t,n,i,o,a,s,l){var u=t.getItemVisual(n,"style");l||e.setShape("r",i.get(["itemStyle","borderRadius"])||0),e.useStyle(u);var c=i.getShallow("cursor");c&&e.attr("cursor",c);var f=l?s?o.r>=o.r0?"endArc":"startArc":o.endAngle>=o.startAngle?"endAngle":"startAngle":s?o.height>=0?"bottom":"top":o.width>=0?"right":"left",d=Object(w["c"])(i);Object(w["e"])(e,d,{labelFetcher:a,labelDataIndex:n,defaultText:Object(I["b"])(a.getData(),n),inheritColor:u.fill,defaultOpacity:u.opacity,defaultOutsidePosition:f});var h=e.getTextContent();if(l&&h){var p=i.get(["label","position"]);e.textConfig.inside="middle"===p||null,E(e,"outside"===p?f:p,X(s),i.get(["label","rotate"]))}Object(w["f"])(h,d,a.getRawValue(n),function(e){return Object(I["a"])(t,e)});var g=i.getModel(["emphasis"]);Object(_["E"])(e,g.get("focus"),g.get("blurScope"),g.get("disabled")),Object(_["D"])(e,i),Z(o)&&(e.style.fill="none",e.style.stroke="none",Object(r["j"])(e.states,function(e){e.style&&(e.style.fill=e.style.stroke="none")}))}function $(e,t){var n=e.get(["itemStyle","borderColor"]);if(!n||"none"===n)return 0;var r=e.get(["itemStyle","borderWidth"])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),o=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(r,i,o)}var J=function(){function e(){}return e}(),ee=function(e){function t(t){var n=e.call(this,t)||this;return n.type="largeBar",n}return Object(a["a"])(t,e),t.prototype.getDefaultShape=function(){return new J},t.prototype.buildPath=function(e,t){for(var n=t.points,r=this.baseDimIdx,i=1-this.baseDimIdx,o=[],a=[],s=this.barWidth,l=0;l=0?n:null},30,!1);function re(e,t,n){for(var r=e.baseDimIdx,i=1-r,o=e.shape.points,a=e.largeDataIndices,s=[],l=[],u=e.barWidth,c=0,f=o.length/3;c=s[0]&&t<=s[0]+l[0]&&n>=s[1]&&n<=s[1]+l[1])return a[c]}return-1}function ie(e,t,n){if(Object(T["a"])(n,"cartesian2d")){var r=t,i=n.getArea();return{x:e?r.x:i.x,y:e?i.y:r.y,width:e?r.width:i.width,height:e?i.height:r.height}}i=n.getArea();var o=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:o.r0,r:e?i.r:o.r,startAngle:e?o.startAngle:0,endAngle:e?o.endAngle:2*Math.PI}}function oe(e,t,n){var r="polar"===e.type?b["a"]:y["a"];return new r({shape:ie(t,n,e),silent:!0,z2:0})}var ae=F;function se(e){e.registerChartView(ae),e.registerSeriesModel(h),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,r["h"](i["b"],"bar")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Object(i["a"])("bar")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,Object(o["a"])("bar")),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(e,t){var n=e.componentType||"series";t.eachComponent({mainType:n,query:e},function(t){e.sortInfo&&t.axis.setCategorySortInfo(e.sortInfo)})})}n.d(t,"a",function(){return se})},TO8r:function(e,t){var n=/\s/;function r(e){var t=e.length;while(t--&&n.test(e.charAt(t)));return t}e.exports=r},"U4/e":function(e,t,n){"use strict";n.d(t,"a",function(){return l});var r=n("bYtY"),i=n("6GrX"),o=function(){function e(e,t,n){this._prepareParams(e,t,n)}return e.prototype._prepareParams=function(e,t,n){n[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!c&&(l=0));var d=this._determinedMin,h=this._determinedMax;return null!=d&&(s=d,u=!0),null!=h&&(l=h,c=!0),{min:s,max:l,minFixed:u,maxFixed:c,isBlank:f}},e.prototype.modifyDataMinMax=function(e,t){this[s[e]]=t},e.prototype.setDeterminedMinMax=function(e,t){var n=a[e];this[n]=t},e.prototype.freeze=function(){this.frozen=!0},e}(),a={min:"_determinedMin",max:"_determinedMax"},s={min:"_dataMin",max:"_dataMax"};function l(e,t,n){var r=e.rawExtentInfo;return r||(r=new o(e,t,n),e.rawExtentInfo=r,r)}function u(e,t){return null==t?null:Object(r["k"])(t)?NaN:e.parse(t)}},"UNi/":function(e,t){function n(e,t){var n=-1,r=Array(e);while(++n`\\x00-\\x20]+",o="'[^']*'",a='"[^"]*"',s="(?:"+i+"|"+o+"|"+a+")",l="(?:\\s+"+r+"(?:\\s*=\\s*"+s+")?)",u="<[A-Za-z][A-Za-z0-9\\-]*"+l+"*\\s*\\/?>",c="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",f="\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e",d="<[?][\\s\\S]*?[?]>",h="]*>",p="",g=new RegExp("^(?:"+u+"|"+c+"|"+f+"|"+d+"|"+h+"|"+p+")"),m=new RegExp("^(?:"+u+"|"+c+")");e.exports.HTML_TAG_RE=g,e.exports.HTML_OPEN_CLOSE_TAG_RE=m},W1Rp:function(e,t,n){"use strict";var r=n("vWgF"),i=n("AGgm").has,o=n("AGgm").isValidEntityCode,a=n("AGgm").fromCodePoint,s=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,l=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,u,c,f=e.pos,d=e.posMax;if(38!==e.src.charCodeAt(f))return!1;if(f+1|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(i.source+"\\s*$"),/^$/,!1]];e.exports=function(e,t,n,r){var i,a,s,l,u=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(u))return!1;for(l=e.src.slice(u,c),i=0;i=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"\u51cc\u6668":r<900?"\u65e9\u4e0a":r<1130?"\u4e0a\u5348":r<1230?"\u4e2d\u5348":r<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:function(e){return e.week()!==this.week()?"[\u4e0b]dddLT":"[\u672c]dddLT"},lastDay:"[\u6628\u5929]LT",lastWeek:function(e){return this.week()!==e.week()?"[\u4e0a]dddLT":"[\u672c]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u5468";default:return e}},relativeTime:{future:"%s\u540e",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",w:"1 \u5468",ww:"%d \u5468",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}});return t})},Xi7e:function(e,t,n){var r=n("KMkd"),i=n("adU4"),o=n("tMB7"),a=n("+6XX"),s=n("Z8oC");function l(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t=0&&e=0&&e=e},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(o["a"]);o["a"].registerClass(l);var u=l,c=n("ieMj"),f=n("nVfU"),d=n("mFDi"),h=n("OELB"),p=n("+Hau"),g=function(e,t,n,r){while(n>>1;e[i][1]n&&(this._approxInterval=n);var o=v.length,a=Math.min(g(v,this._approxInterval,0,o),o-1);this._interval=v[a][1],this._minLevelUnit=v[Math.max(a-1,0)][0]},t.prototype.parse=function(e){return Object(r["w"])(e)?e:+h["l"](e)},t.prototype.contain=function(e){return s["a"](this.parse(e),this._extent)},t.prototype.normalize=function(e){return s["f"](this.parse(e),this._extent)},t.prototype.scale=function(e){return s["g"](e,this._extent)},t.type="time",t}(c["a"]),v=[["second",p["d"]],["minute",p["c"]],["hour",p["b"]],["quarter-day",6*p["b"]],["half-day",12*p["b"]],["day",1.2*p["a"]],["half-week",3.5*p["a"]],["week",7*p["a"]],["month",31*p["a"]],["quarter",95*p["a"]],["half-year",p["e"]/2],["year",p["e"]]];function y(e,t,n,r){var i=h["l"](t),o=h["l"](n),a=function(e){return Object(p["n"])(i,e,r)===Object(p["n"])(o,e,r)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},c=function(){return u()&&a("hour")},f=function(){return c()&&a("minute")},d=function(){return f()&&a("second")},g=function(){return d()&&a("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return c();case"minute":return f();case"second":return d();case"millisecond":return g()}}function b(e,t){return e/=p["a"],e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function x(e){var t=30*p["a"];return e/=t,e>6?6:e>3?3:e>2?2:1}function _(e){return e/=p["b"],e>12?12:e>6?6:e>3.5?4:e>2?2:1}function w(e,t){return e/=t?p["c"]:p["d"],e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function O(e){return h["j"](e,!0)}function S(e,t,n){var r=new Date(e);switch(Object(p["m"])(t)){case"year":case"month":r[Object(p["x"])(n)](0);case"day":r[Object(p["g"])(n)](1);case"hour":r[Object(p["p"])(n)](0);case"minute":r[Object(p["v"])(n)](0);case"second":r[Object(p["A"])(n)](0),r[Object(p["t"])(n)](0)}return r.getTime()}function k(e,t,n,i){var o=1e4,a=p["B"],s=0;function l(e,t,n,r,o,a,s){var l=new Date(t),u=t,c=l[r]();while(u1&&0===u&&o.unshift({value:o[0].value-d})}}for(u=0;u=i[0]&&M<=i[1]&&d++)}var C=(i[1]-i[0])/t;if(d>1.5*C&&h>C/1.5)break;if(c.push(k),d>C||e===a[g])break}f=[]}}}var T=Object(r["m"])(Object(r["D"])(c,function(e){return Object(r["m"])(e,function(e){return e.value>=i[0]&&e.value<=i[1]&&!e.notAdd})}),function(e){return e.length>0}),I=[],D=T.length-1;for(g=0;g0)r*=10;var o=[h["q"](D(t[0]/r)*r),h["q"](I(t[1]/r)*r)];this._interval=r,this._niceExtent=o}},t.prototype.calcNiceExtent=function(e){C.calcNiceExtent.call(this,e),this._fixMin=e.fixMin,this._fixMax=e.fixMax},t.prototype.parse=function(e){return e},t.prototype.contain=function(e){return e=E(e)/E(this.base),s["a"](e,this._extent)},t.prototype.normalize=function(e){return e=E(e)/E(this.base),s["f"](e,this._extent)},t.prototype.scale=function(e){return e=s["g"](e,this._extent),A(this.base,e)},t.type="log",t}(o["a"]),L=P.prototype;function N(e,t){return T(e,h["e"](t))}L.getMinorTicks=C.getMinorTicks,L.getLabel=C.getLabel,o["a"].registerClass(P);var R=P,z=n("7hqr"),F=n("U4/e");function B(e,t){var n=e.type,i=Object(F["a"])(e,t,e.getExtent()).calculate();e.setBlank(i.isBlank);var o=i.min,a=i.max,s=t.ecModel;if(s&&"time"===n){var l=Object(f["d"])("bar",s),u=!1;if(r["j"](l,function(e){u=u||e.getBaseAxis()===t.axis}),u){var c=Object(f["c"])(l),d=Y(o,a,t,c);o=d.min,a=d.max}}return{extent:[o,a],fixMin:i.minFixed,fixMax:i.maxFixed}}function Y(e,t,n,i){var o=n.axis.getExtent(),a=o[1]-o[0],s=Object(f["e"])(i,n.axis);if(void 0===s)return{min:e,max:t};var l=1/0;r["j"](s,function(e){l=Math.min(e.offset,l)});var u=-1/0;r["j"](s,function(e){u=Math.max(e.offset+e.width,u)}),l=Math.abs(l),u=Math.abs(u);var c=l+u,d=t-e,h=1-(l+u)/a,p=d/h-d;return t+=p*(u/c),e-=p*(l/c),{min:e,max:t}}function V(e,t){var n=t,r=B(e,n),i=r.extent,o=n.get("splitNumber");e instanceof R&&(e.base=n.get("logBase"));var a=e.type,s=n.get("interval"),l="interval"===a||"time"===a;e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:o,fixMin:r.fixMin,fixMax:r.fixMax,minInterval:l?n.get("minInterval"):null,maxInterval:l?n.get("maxInterval"):null}),null!=s&&e.setInterval&&e.setInterval(s)}function G(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new u({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new j({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(o["a"].getClass(t)||c["a"])}}function W(e){var t=e.scale.getExtent(),n=t[0],r=t[1];return!(n>0&&r>0||n<0&&r<0)}function U(e){var t=e.getLabelModel().get("formatter"),n="category"===e.type?e.scale.getExtent()[0]:null;return"time"===e.scale.type?function(t){return function(n,r){return e.scale.getFormattedLabel(n,r,t)}}(t):r["y"](t)?function(t){return function(n){var r=e.scale.getLabel(n),i=t.replace("{value}",null!=r?r:"");return i}}(t):r["u"](t)?function(t){return function(r,i){return null!=n&&(i=r.value-n),t(H(e,r),i,null!=r.level?{level:r.level}:null)}}(t):function(t){return e.scale.getLabel(t)}}function H(e,t){return"category"===e.type?e.scale.getLabel(t):t.value}function q(e){var t=e.model,n=e.scale;if(t.get(["axisLabel","show"])&&!n.isBlank()){var r,i,o=n.getExtent();n instanceof u?i=n.count():(r=n.getTicks(),i=r.length);var a,s=e.getLabelModel(),l=U(e),c=1;i>40&&(c=Math.ceil(i/40));for(var f=0;fe[1]&&(e[1]=r[1])})}n.d(t,"f",function(){return B}),n.d(t,"i",function(){return V}),n.d(t,"a",function(){return G}),n.d(t,"g",function(){return W}),n.d(t,"h",function(){return U}),n.d(t,"c",function(){return H}),n.d(t,"b",function(){return q}),n.d(t,"e",function(){return Z}),n.d(t,"j",function(){return X}),n.d(t,"d",function(){return Q}),n.d(t,"k",function(){return $})},adU4:function(e,t,n){var r=n("y1pI"),i=Array.prototype,o=i.splice;function a(e){var t=this.__data__,n=r(t,e);if(n<0)return!1;var i=t.length-1;return n==i?t.pop():o.call(t,n,1),--this.size,!0}e.exports=a},b80T:function(e,t,n){var r=n("UNi/"),i=n("03A+"),o=n("Z0cm"),a=n("DSRE"),s=n("wJg7"),l=n("c6wG"),u=Object.prototype,c=u.hasOwnProperty;function f(e,t){var n=o(e),u=!n&&i(e),f=!n&&!u&&a(e),d=!n&&!u&&!f&&l(e),h=n||u||f||d,p=h?r(e.length,String):[],g=p.length;for(var m in e)!t&&!c.call(e,m)||h&&("length"==m||f&&("offset"==m||"parent"==m)||d&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,g))||p.push(m);return p}e.exports=f},bLfw:function(e,t,n){"use strict";var r=n("mrSG"),i=n("bYtY"),o=n("Qxkt"),a=n("iRjW"),s=n("Yl7c"),l=n("4NO4"),u=n("+TT/"),c=Object(l["m"])(),f=function(e){function t(t,n,r){var i=e.call(this,t,n,r)||this;return i.uid=a["c"]("ec_cpt_model"),i}return Object(r["a"])(t,e),t.prototype.init=function(e,t,n){this.mergeDefaultAndTheme(e,n)},t.prototype.mergeDefaultAndTheme=function(e,t){var n=u["b"](this),r=n?u["c"](e):{},o=t.getTheme();i["E"](e,o.get(this.mainType)),i["E"](e,this.getDefaultOption()),n&&u["e"](e,r,n)},t.prototype.mergeOption=function(e,t){i["E"](this.option,e,!0);var n=u["b"](this);n&&u["e"](this.option,e,n)},t.prototype.optionUpdated=function(e,t){},t.prototype.getDefaultOption=function(){var e=this.constructor;if(!Object(s["d"])(e))return e.defaultOption;var t=c(this);if(!t.defaultOption){var n=[],r=e;while(r){var o=r.prototype.defaultOption;o&&n.push(o),r=r.superClass}for(var a={},l=n.length-1;l>=0;l--)a=i["E"](a,n[l],!0);t.defaultOption=a}return t.defaultOption},t.prototype.getReferringComponents=function(e,t){var n=e+"Index",r=e+"Id";return Object(l["t"])(this.ecModel,e,{index:this.get(n,!0),id:this.get(r,!0)},t)},t.prototype.getBoxLayoutParams=function(){var e=this;return{left:e.get("left"),top:e.get("top"),right:e.get("right"),bottom:e.get("bottom"),width:e.get("width"),height:e.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(e){this.option.zlevel=e},t.protoInitialize=function(){var e=t.prototype;e.type="component",e.id="",e.name="",e.mainType="",e.subType="",e.componentIndex=0}(),t}(o["a"]);function d(e){var t=[];return i["j"](f.getClassesByMainType(e),function(e){t=t.concat(e.dependencies||e.prototype.dependencies||[])}),t=i["D"](t,function(e){return Object(s["f"])(e).main}),"dataset"!==e&&i["p"](t,"dataset")<=0&&t.unshift("dataset"),t}Object(s["e"])(f,o["a"]),Object(s["c"])(f),a["a"](f),a["b"](f,d),t["a"]=f},bgCn:function(e,t,n){"use strict";for(var r=n("AGgm").isSpace,i=[],o=0;o<256;o++)i.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(e){i[e.charCodeAt(0)]=1}),e.exports=function(e,t){var n,o=e.pos,a=e.posMax;if(92!==e.src.charCodeAt(o))return!1;if(o++,o=n)break;if(e.sCount[s]=u){e.line=n;break}for(i=0;i0&&this.handleMarkers(O);var M=this.editor.$options;l.editorOptions.forEach(function(t){M.hasOwnProperty(t)?e.editor.setOption(t,e.props[t]):e.props[t]&&console.warn("ReactAce: editor option "+t+" was activated but not found. Did you need to import a related tool or did you possibly mispell the option?")}),this.handleOptions(this.props),Array.isArray(_)&&_.forEach(function(t){"string"===typeof t.exec?e.editor.commands.bindKey(t.bindKey,t.exec):e.editor.commands.addCommand(t)}),b&&this.editor.setKeyboardHandler("ace/keyboard/"+b),n&&(this.refEditor.className+=" "+n),x&&x(this.editor),this.editor.resize(),a&&this.editor.focus()},t.prototype.componentDidUpdate=function(e){for(var t=e,n=this.props,r=0;r"+o(e[t].content)+""},a.code_block=function(e,t,n,r,i){var a=e[t];return""+o(e[t].content)+"\n"},a.fence=function(e,t,n,r,a){var s,l,u,c,f,d=e[t],h=d.info?i(d.info).trim():"",p="",g="";return h&&(u=h.split(/(\s+)/g),p=u[0],g=u.slice(2).join("")),s=n.highlight&&n.highlight(d.content,p,g)||o(d.content),0===s.indexOf(""+s+"\n"):"
"+s+"
\n"},a.image=function(e,t,n,r,i){var o=e[t];return o.attrs[o.attrIndex("alt")][1]=i.renderInlineAsText(o.children,n,r),i.renderToken(e,t,n)},a.hardbreak=function(e,t,n){return n.xhtmlOut?"
\n":"
\n"},a.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"
\n":"
\n":"\n"},a.text=function(e,t){return o(e[t].content)},a.html_block=function(e,t){return e[t].content},a.html_inline=function(e,t){return e[t].content},s.prototype.renderAttrs=function(e){var t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t\n":">",i)},s.prototype.renderInline=function(e,t,n){for(var r,i="",o=this.rules,a=0,s=e.length;a=0,a=!1;if(e instanceof l["b"]){var s=f(e),u=o&&s.selectFill||s.normalFill,c=o&&s.selectStroke||s.normalStroke;if(k(u)||k(c)){r=r||{};var d=r.style||{};"inherit"===d.fill?(a=!0,r=Object(i["l"])({},r),d=Object(i["l"])({},d),d.fill=u):!k(d.fill)&&k(u)?(a=!0,r=Object(i["l"])({},r),d=Object(i["l"])({},d),d.fill=M(u)):!k(d.stroke)&&k(c)&&(a||(r=Object(i["l"])({},r),d=Object(i["l"])({},d)),d.stroke=M(c)),r.style=d}}if(r&&null==r.z2){a||(r=Object(i["l"])({},r));var h=e.z2EmphasisLift;r.z2=e.z2+(null!=h?h:y)}return r}function B(e,t,n){if(n&&null==n.z2){n=Object(i["l"])({},n);var r=e.z2SelectLift;n.z2=e.z2+(null!=r?r:b)}return n}function Y(e,t,n){var r=Object(i["p"])(e.currentStates,t)>=0,o=e.style.opacity,a=r?null:z(e,["opacity"],t,{opacity:1});n=n||{};var s=n.style||{};return null==s.opacity&&(n=Object(i["l"])({},n),s=Object(i["l"])({opacity:r?o:.1*a.opacity},s),n.style=s),n}function V(e,t){var n=this.states[e];if(this.style){if("emphasis"===e)return F(this,e,t,n);if("blur"===e)return Y(this,e,n);if("select"===e)return B(this,e,n)}return n}function G(e){e.stateProxy=V;var t=e.getTextContent(),n=e.getTextGuideLine();t&&(t.stateProxy=V),n&&(n.stateProxy=V)}function W(e,t){!$(e,t)&&!e.__highByOuter&&N(e,T)}function U(e,t){!$(e,t)&&!e.__highByOuter&&N(e,I)}function H(e,t){e.__highByOuter|=1<<(t||0),N(e,T)}function q(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&N(e,I)}function K(e){N(e,D)}function Z(e){N(e,A)}function X(e){N(e,E)}function Q(e){N(e,P)}function $(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function J(e){var t=e.getModel(),n=[],r=[];t.eachComponent(function(t,i){var o=d(i),a="series"===t,s=a?e.getViewOfSeriesModel(i):e.getViewOfComponentModel(i);!a&&r.push(s),o.isBlured&&(s.group.traverse(function(e){A(e)}),a&&n.push(i)),o.isBlured=!1}),Object(i["j"])(r,function(e){e&&e.toggleBlurSeries&&e.toggleBlurSeries(n,!1,t)})}function ee(e,t,n,r){var o=r.getModel();function a(e,t){for(var n=0;n0){var o={dataIndex:i,seriesIndex:e.seriesIndex};null!=r&&(o.dataType=r),t.push(o)}})}),t}function ue(e,t,n){me(e,!0),N(e,G),de(e,t,n)}function ce(e){me(e,!1)}function fe(e,t,n,r){r?ce(e):ue(e,t,n)}function de(e,t,n){var r=Object(o["a"])(e);null!=t?(r.focus=t,r.blurScope=n):r.focus&&(r.focus=null)}var he=["emphasis","blur","select"],pe={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function ge(e,t,n,r){n=n||"itemStyle";for(var i=0;i=n)return l;if(o=e.charCodeAt(t),34!==o&&39!==o&&40!==o)return l;t++,40===o&&(o=41);while(t0&&this.level++,this.tokens.push(i),i},o.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},o.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;et)if(!i(this.src.charCodeAt(--e)))return e+1;return e},o.prototype.skipChars=function(e,t){for(var n=this.src.length;en)if(t!==this.src.charCodeAt(--e))return e+1;return e},o.prototype.getLines=function(e,t,n,r){var o,a,s,l,u,c,f,d=e;if(e>=t)return"";for(c=new Array(t-e),o=0;dn?new Array(a-n+1).join(" ")+this.src.slice(l,u):this.src.slice(l,u)}return c.join("")},o.prototype.Token=r,e.exports=o},g40J:function(e,t,n){"use strict";function r(e,t){var n,r,i,o,a,s,l,u,c={},f=t.length;if(f){var d=0,h=-2,p=[];for(n=0;na;r-=p[r]+1)if(o=t[r],o.marker===i.marker&&o.open&&o.end<0&&(l=!1,(o.close||i.open)&&(o.length+i.length)%3===0&&(o.length%3===0&&i.length%3===0||(l=!0)),!l)){u=r>0&&!t[r-1].open?p[r-1]+1:0,p[n]=n-r+u,p[r]=u,i.open=!1,o.end=n,o.close=!1,s=-1,h=-2;break}-1!==s&&(c[i.marker][(i.open?3:0)+(i.length||0)%3]=s)}}}e.exports=function(e){var t,n=e.tokens_meta,i=e.tokens_meta.length;for(r(e,e.delimiters),t=0;t30}},gNPE:function(e,t,n){"use strict";var r=n("AGgm").isSpace;function i(e,t){var n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.substr(n,r-n)}function o(e){var t,n=[],r=0,i=e.length,o=!1,a=0,s="";t=e.charCodeAt(r);while(rn)return!1;if(d=t+1,e.sCount[d]=4)return!1;if(u=e.bMarks[d]+e.tShift[d],u>=e.eMarks[d])return!1;if(O=e.src.charCodeAt(u++),124!==O&&45!==O&&58!==O)return!1;if(u>=e.eMarks[d])return!1;if(S=e.src.charCodeAt(u++),124!==S&&45!==S&&58!==S&&!r(S))return!1;if(45===O&&r(S))return!1;while(u=4)return!1;if(h=o(l),h.length&&""===h[0]&&h.shift(),h.length&&""===h[h.length-1]&&h.pop(),p=h.length,0===p||p!==m.length)return!1;if(a)return!0;for(x=e.parentType,e.parentType="table",w=e.md.block.ruler.getRules("blockquote"),g=e.push("table_open","table",1),g.map=y=[t,0],g=e.push("thead_open","thead",1),g.map=[t,t+1],g=e.push("tr_open","tr",1),g.map=[t,t+1],c=0;c=4)break;for(h=o(l),h.length&&""===h[0]&&h.shift(),h.length&&""===h[h.length-1]&&h.pop(),d===t+2&&(g=e.push("tbody_open","tbody",1),g.map=b=[t+2,0]),g=e.push("tr_open","tr",1),g.map=[d,d+1],c=0;c1){var c=l.shift();1===l.length&&(n[s]=l[0]),this._update&&this._update(c,a)}else 1===u?(n[s]=null,this._update&&this._update(l,a)):this._remove&&this._remove(a)}this._performRestAdd(o,n)},e.prototype._executeMultiple=function(){var e=this._old,t=this._new,n={},i={},o=[],a=[];this._initIndexMap(e,n,o,"_oldKeyGetter"),this._initIndexMap(t,i,a,"_newKeyGetter");for(var s=0;s1&&1===d)this._updateManyToOne&&this._updateManyToOne(c,u),i[l]=null;else if(1===f&&d>1)this._updateOneToMany&&this._updateOneToMany(c,u),i[l]=null;else if(1===f&&1===d)this._update&&this._update(c,u),i[l]=null;else if(f>1&&d>1)this._updateManyToMany&&this._updateManyToMany(c,u),i[l]=null;else if(f>1)for(var h=0;h1)for(var s=0;s=0?f():c=setTimeout(f,-i),l=r};return d.clear=function(){c&&(clearTimeout(c),c=null)},d.debounceNextCall=function(e){s=e},d}function s(e,t,n,s){var l=e[t];if(l){var u=l[r]||l,c=l[o],f=l[i];if(f!==n||c!==s){if(null==n||!s)return e[t]=u;l=e[t]=a(u,n,"debounce"===s),l[r]=u,l[o]=s,l[i]=n}return l}}function l(e,t){var n=e[t];n&&n[r]&&(n.clear&&n.clear(),e[t]=n[r])}},iRjW:function(e,t,n){"use strict";n.d(t,"c",function(){return a}),n.d(t,"a",function(){return s}),n.d(t,"b",function(){return l}),n.d(t,"d",function(){return u});var r=n("bYtY"),i=n("Yl7c"),o=Math.round(10*Math.random());function a(e){return[e||"",o++].join("_")}function s(e){var t={};e.registerSubTypeDefaulter=function(e,n){var r=Object(i["f"])(e);t[r.main]=n},e.determineSubType=function(n,r){var o=r.type;if(!o){var a=Object(i["f"])(n).main;e.hasSubTypes(n)&&t[a]&&(o=t[a](r))}return o}}function l(e,t){function n(e){var n={},a=[];return r["j"](e,function(s){var l=i(n,s),u=l.originalDeps=t(s),c=o(u,e);l.entryCount=c.length,0===l.entryCount&&a.push(s),r["j"](c,function(e){r["p"](l.predecessor,e)<0&&l.predecessor.push(e);var t=i(n,e);r["p"](t.successor,e)<0&&t.successor.push(s)})}),{graph:n,noEntryList:a}}function i(e,t){return e[t]||(e[t]={predecessor:[],successor:[]}),e[t]}function o(e,t){var n=[];return r["j"](e,function(e){r["p"](t,e)>=0&&n.push(e)}),n}e.topologicalTravel=function(e,t,i,o){if(e.length){var a=n(t),s=a.graph,l=a.noEntryList,u={};r["j"](e,function(e){u[e]=!0});while(l.length){var c=l.pop(),f=s[c],d=!!u[c];d&&(i.call(o,c,f.originalDeps.slice()),delete u[c]),r["j"](f.successor,d?p:h)}r["j"](u,function(){var e="";throw new Error(e)})}function h(e){s[e].entryCount--,0===s[e].entryCount&&l.push(e)}function p(e){u[e]=!0,h(e)}}}function u(e,t){return r["E"](r["E"]({},e,!0),t,!0)}},ieMj:function(e,t,n){"use strict";var r=n("mrSG"),i=n("OELB"),o=n("7aKB"),a=n("4NgU"),s=n("lE7J"),l=i["q"],u=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type="interval",t._interval=0,t._intervalPrecision=2,t}return Object(r["a"])(t,e),t.prototype.parse=function(e){return e},t.prototype.contain=function(e){return s["a"](e,this._extent)},t.prototype.normalize=function(e){return s["f"](e,this._extent)},t.prototype.scale=function(e){return s["g"](e,this._extent)},t.prototype.setExtent=function(e,t){var n=this._extent;isNaN(e)||(n[0]=parseFloat(e)),isNaN(t)||(n[1]=parseFloat(t))},t.prototype.unionExtent=function(e){var t=this._extent;e[0]t[1]&&(t[1]=e[1]),this.setExtent(t[0],t[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(e){this._interval=e,this._niceExtent=this._extent.slice(),this._intervalPrecision=s["b"](e)},t.prototype.getTicks=function(e){var t=this._interval,n=this._extent,r=this._niceExtent,i=this._intervalPrecision,o=[];if(!t)return o;var a=1e4;n[0]a)return[]}var u=o.length?o[o.length-1].value:r[1];return n[1]>u&&(e?o.push({value:l(u+t,i)}):o.push({value:n[1]})),o},t.prototype.getMinorTicks=function(e){for(var t=this.getTicks(!0),n=[],r=this.getExtent(),i=1;ir[0]&&d=b)return!1;for(m=c,d=e.md.helpers.parseLinkDestination(e.src,c,e.posMax),d.ok&&(v=e.md.normalizeLink(d.str),e.md.validateLink(v)?c=d.pos:v=""),m=c;c=b||41!==e.src.charCodeAt(c))return e.pos=y,!1;c++}else{if("undefined"===typeof e.env.references)return!1;if(c=0?s=e.src.slice(m,c++):c=l+1):c=l+1,s||(s=e.src.slice(u,l)),f=e.env.references[r(s)],!f)return e.pos=y,!1;v=f.href,h=f.title}return t||(a=e.src.slice(u,l),e.md.inline.parse(a,e.md,e.env,g=[]),p=e.push("image","img",0),p.attrs=n=[["src",v],["alt",""]],p.children=g,p.content=a,h&&n.push(["title",h])),e.pos=c,e.posMax=b,!0}},l6yY:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("3CBa");function i(e){e.registerPainter("svg",r["a"])}},lE7J:function(e,t,n){"use strict";n.d(t,"e",function(){return i}),n.d(t,"d",function(){return o}),n.d(t,"c",function(){return a}),n.d(t,"b",function(){return s}),n.d(t,"a",function(){return c}),n.d(t,"f",function(){return f}),n.d(t,"g",function(){return d});var r=n("OELB");function i(e){return"interval"===e.type||"log"===e.type}function o(e,t,n,i){var o={},a=e[1]-e[0],l=o.interval=Object(r["j"])(a/t,!0);null!=n&&li&&(l=o.interval=i);var c=o.intervalPrecision=s(l),f=o.niceTickExtent=[Object(r["q"])(Math.ceil(e[0]/l)*l,c),Object(r["q"])(Math.floor(e[1]/l)*l,c)];return u(f,e),o}function a(e){var t=Math.pow(10,Object(r["o"])(e)),n=e/t;return n?2===n?n=3:3===n?n=5:n*=2:n=1,Object(r["q"])(n*t)}function s(e){return Object(r["e"])(e)+2}function l(e,t,n){e[t]=Math.max(Math.min(e[t],n[1]),n[0])}function u(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),l(e,0,t),l(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function c(e,t){return e>=t[0]&&e<=t[1]}function f(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function d(e,t){return e*(t[1]-t[0])+t[0]}},lSCD:function(e,t,n){var r=n("NykK"),i=n("GoyQ"),o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",l="[object Proxy]";function u(e){if(!i(e))return!1;var t=r(e);return t==a||t==s||t==o||t==l}e.exports=u},lc5D:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("eF/C"),i=n("Uf63");t.diff=i.default;var o=n("N5VM");t.split=o.default,t.default=r.default},ljhN:function(e,t){function n(e,t){return e===t||e!==e&&t!==t}e.exports=n},mSF0:function(e,t,n){"use strict";var r=n("AGgm").arrayReplaceAt;function i(e){return/^\s]/i.test(e)}function o(e){return/^<\/a\s*>/i.test(e)}e.exports=function(e){var t,n,a,s,l,u,c,f,d,h,p,g,m,v,y,b,x,_=e.tokens;if(e.md.options.linkify)for(n=0,a=_.length;n=0;t--)if(u=s[t],"link_close"!==u.type){if("html_inline"===u.type&&(i(u.content)&&m>0&&m--,o(u.content)&&m++),!(m>0)&&"text"===u.type&&e.md.linkify.test(u.content)){for(d=u.content,x=e.md.linkify.match(d),c=[],g=u.level,p=0,f=0;fp&&(l=new e.Token("text","",0),l.content=d.slice(p,h),l.level=g,c.push(l)),l=new e.Token("link_open","a",1),l.attrs=[["href",y]],l.level=g++,l.markup="linkify",l.info="auto",c.push(l),l=new e.Token("text","",0),l.content=b,l.level=g,c.push(l),l=new e.Token("link_close","a",-1),l.level=--g,l.markup="linkify",l.info="auto",c.push(l),p=x[f].lastIndex);p=1)&&(e=1),e}s===u&&l===c||(t="reset"),(this._dirty||"reset"===t)&&(this._dirty=!1,a=this._doReset(i)),this._modBy=u,this._modDataCount=c;var d=e&&e.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,p=Math.min(null!=d?this._dueIndex+d:1/0,this._dueEnd);if(!i&&(a||h1&&r>0?s:a}};return o;function a(){return t=e?null:o=4))break;r++,i=r}return e.line=i,o=e.push("code_block","code",0),o.content=e.getLines(t,i,4+e.blkIndent,!1)+"\n",o.map=[t,e.line],!0}},nVfU:function(e,t,n){"use strict";n.d(t,"d",function(){return f}),n.d(t,"c",function(){return h}),n.d(t,"e",function(){return g}),n.d(t,"b",function(){return m}),n.d(t,"a",function(){return v});var r=n("bYtY"),i=n("OELB"),o=n("7hqr"),a=n("zM3Q"),s=n("9lhp"),l="__ec_stack_";function u(e){return e.get("stack")||l+e.seriesIndex}function c(e){return e.dim+e.index}function f(e,t){var n=[];return t.eachSeriesByType(e,function(e){y(e)&&n.push(e)}),n}function d(e){var t={};Object(r["j"])(e,function(e){var n=e.coordinateSystem,r=n.getBaseAxis();if("time"===r.type||"value"===r.type)for(var i=e.getData(),o=r.dim+"_"+r.index,a=i.getDimensionIndex(i.mapDimension(r.dim)),s=i.getStore(),l=0,u=s.count();l0&&(a=null===a?l:Math.min(a,l))}n[i]=a}}return n}function h(e){var t=d(e),n=[];return Object(r["j"])(e,function(e){var r,o=e.coordinateSystem,a=o.getBaseAxis(),s=a.getExtent();if("category"===a.type)r=a.getBandWidth();else if("value"===a.type||"time"===a.type){var l=a.dim+"_"+a.index,f=t[l],d=Math.abs(s[1]-s[0]),h=a.scale.getExtent(),p=Math.abs(h[1]-h[0]);r=f?d/p*f:d}else{var g=e.getData();r=Math.abs(s[1]-s[0])/g.count()}var m=Object(i["m"])(e.get("barWidth"),r),v=Object(i["m"])(e.get("barMaxWidth"),r),y=Object(i["m"])(e.get("barMinWidth")||(b(e)?.5:1),r),x=e.get("barGap"),_=e.get("barCategoryGap");n.push({bandWidth:r,barWidth:m,barMaxWidth:v,barMinWidth:y,barGap:x,barCategoryGap:_,axisKey:c(a),stackId:u(e)})}),p(n)}function p(e){var t={};Object(r["j"])(e,function(e,n){var r=e.axisKey,i=e.bandWidth,o=t[r]||{bandWidth:i,remainedWidth:i,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;t[r]=o;var s=e.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=e.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=e.barMaxWidth;u&&(a[s].maxWidth=u);var c=e.barMinWidth;c&&(a[s].minWidth=c);var f=e.barGap;null!=f&&(o.gap=f);var d=e.barCategoryGap;null!=d&&(o.categoryGap=d)});var n={};return Object(r["j"])(t,function(e,t){n[t]={};var o=e.stacks,a=e.bandWidth,s=e.categoryGap;if(null==s){var l=Object(r["B"])(o).length;s=Math.max(35-4*l,15)+"%"}var u=Object(i["m"])(s,a),c=Object(i["m"])(e.gap,1),f=e.remainedWidth,d=e.autoWidthCount,h=(f-u)/(d+(d-1)*c);h=Math.max(h,0),Object(r["j"])(o,function(e){var t=e.maxWidth,n=e.minWidth;if(e.width){r=e.width;t&&(r=Math.min(r,t)),n&&(r=Math.max(r,n)),e.width=r,f-=r+c*r,d--}else{var r=h;t&&tr&&(r=n),r!==h&&(e.width=r,f-=r+c*r,d--)}}),h=(f-u)/(d+(d-1)*c),h=Math.max(h,0);var p,g=0;Object(r["j"])(o,function(e,t){e.width||(e.width=h),p=e,g+=e.width*(1+c)}),p&&(g-=p.width*c);var m=-g/2;Object(r["j"])(o,function(e,r){n[t][r]=n[t][r]||{bandWidth:a,offset:m,width:e.width},m+=e.width*(1+c)})}),n}function g(e,t,n){if(e&&t){var r=e[c(t)];return null!=r&&null!=n?r[u(n)]:r}}function m(e,t){var n=f(e,t),i=h(n);Object(r["j"])(n,function(e){var t=e.getData(),n=e.coordinateSystem,r=n.getBaseAxis(),o=u(e),a=i[c(r)][o],s=a.offset,l=a.width;t.setLayout({bandWidth:a.bandWidth,offset:s,size:l})})}function v(e){return{seriesType:e,plan:Object(a["a"])(),reset:function(e){if(y(e)){var t=e.getData(),n=e.coordinateSystem,r=n.getBaseAxis(),i=n.getOtherAxis(r),a=t.getDimensionIndex(t.mapDimension(i.dim)),l=t.getDimensionIndex(t.mapDimension(r.dim)),u=e.get("showBackground",!0),c=t.mapDimension(i.dim),f=t.getCalculationInfo("stackResultDimension"),d=Object(o["c"])(t,c)&&!!t.getCalculationInfo("stackedOnSeries"),h=i.isHorizontal(),p=x(r,i),g=b(e),m=e.get("barMinHeight")||0,v=f&&t.getDimensionIndex(f),_=t.getLayout("size"),w=t.getLayout("offset");return{progress:function(e,t){var r,i=e.count,o=g&&Object(s["a"])(3*i),c=g&&u&&Object(s["a"])(3*i),f=g&&Object(s["a"])(i),y=n.master.getRect(),b=h?y.width:y.height,x=t.getStore(),O=0;while(null!=(r=e.next())){var S=x.get(d?v:a,r),k=x.get(l,r),j=p,M=void 0;d&&(M=+S-x.get(a,r));var C=void 0,T=void 0,I=void 0,D=void 0;if(h){var A=n.dataToPoint([S,k]);if(d){var E=n.dataToPoint([M,k]);j=E[0]}C=j,T=A[1]+w,I=A[0]-j,D=_,Math.abs(I)a)return!0;if(o){var s=c["c"](e).seriesDataCount,l=r.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},e.prototype.makeElOption=function(e,t,n,r,i){},e.prototype.createPointerEl=function(e,t,n,r){var i=t.pointer;if(i){var o=p(e).pointerEl=new s[i.type](g(t.pointer));e.add(o)}},e.prototype.createLabelEl=function(e,t,n,r){if(t.label){var i=p(e).labelEl=new l["a"](g(t.label));e.add(i),x(i,r)}},e.prototype.updatePointerEl=function(e,t,n){var r=p(e).pointerEl;r&&t.pointer&&(r.setStyle(t.pointer.style),n(r,{shape:t.pointer.shape}))},e.prototype.updateLabelEl=function(e,t,n,r){var i=p(e).labelEl;i&&(i.setStyle(t.label.style),n(i,{x:t.label.x,y:t.label.y}),x(i,r))},e.prototype._renderHandle=function(e){if(!this._dragging&&this.updateHandleTransform){var t,n=this._axisPointerModel,r=this._api.getZr(),i=this._handle,a=n.getModel("handle"),l=n.get("status");if(!a.get("show")||!l||"hide"===l)return i&&r.remove(i),void(this._handle=null);this._handle||(t=!0,i=this._handle=s["createIcon"](a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(e){f["f"](e.event)},onmousedown:m(this._onHandleDragMove,this,0,0),drift:m(this._onHandleDragMove,this),ondragend:m(this._onHandleDragEnd,this)}),r.add(i)),w(i,n,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var u=a.get("size");o["r"](u)||(u=[u,u]),i.scaleX=u[0]/2,i.scaleY=u[1]/2,d["b"](this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(e,t)}},e.prototype._moveHandleToValue=function(e,t){y(this._axisPointerModel,!t&&this._moveAnimation,this._handle,_(this.getHandleTransform(e,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(e,t){var n=this._handle;if(n){this._dragging=!0;var r=this.updateHandleTransform(_(n),[e,t],this._axisModel,this._axisPointerModel);this._payloadInfo=r,n.stopAnimation(),n.attr(_(r)),p(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var e=this._handle;if(e){var t=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var e=this._handle;if(e){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(e){this._lastValue=null,this._lastStatus=null;var t=e.getZr(),n=this._group,r=this._handle;t&&n&&(this._lastGraphicKey=null,n&&t.remove(n),r&&t.remove(r),this._group=null,this._handle=null,this._payloadInfo=null),d["a"](this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(e,t,n){return n=n||0,{x:e[n],y:e[1-n],width:t[n],height:t[1-n]}},e}();function y(e,t,n,r){b(p(n).lastProp,r)||(p(n).lastProp=r,t?u["h"](n,r,e):(n.stopAnimation(),n.attr(r)))}function b(e,t){if(o["x"](e)&&o["x"](t)){var n=!0;return o["j"](t,function(t,r){n=n&&b(e[r],t)}),!!n}return e===t}function x(e,t){e[t.get(["label","show"])?"show":"hide"]()}function _(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function w(e,t,n){var r=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(e){"group"!==e.type&&(null!=r&&(e.z=r),null!=i&&(e.zlevel=i),e.silent=n)})}var O=v,S=n("/y7N"),k=n("AVZG"),j=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(i["a"])(t,e),t.prototype.makeElOption=function(e,t,n,r,i){var o=n.axis,a=o.grid,s=r.get("type"),l=M(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(t,!0));if(s&&"none"!==s){var c=S["b"](r),f=C[s](o,u,l);f.style=c,e.graphicKey=f.type,e.pointer=f}var d=k["c"](a.model,n);S["a"](t,e,d,n,r,i)},t.prototype.getHandleTransform=function(e,t,n){var r=k["c"](t.axis.grid.model,t,{labelInside:!1});r.labelMargin=n.get(["handle","margin"]);var i=S["c"](t.axis,e,r);return{x:i[0],y:i[1],rotation:r.rotation+(r.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(e,t,n,r){var i=n.axis,o=i.grid,a=i.getGlobalExtent(!0),s=M(o,i).getOtherAxis(i).getGlobalExtent(),l="x"===i.dim?0:1,u=[e.x,e.y];u[l]+=t[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var c=(s[1]+s[0])/2,f=[c,c];f[l]=u[l];var d=[{verticalAlign:"middle"},{align:"center"}];return{x:u[0],y:u[1],rotation:e.rotation,cursorPoint:f,tooltipOption:d[l]}},t}(O);function M(e,t){var n={};return n[t.dim+"AxisIndex"]=t.index,e.getCartesian(n)}var C={line:function(e,t,n){var r=S["e"]([t,n[0]],[t,n[1]],T(e));return{type:"Line",subPixelOptimize:!0,shape:r}},shadow:function(e,t,n){var r=Math.max(1,e.getBandWidth()),i=n[1]-n[0];return{type:"Rect",shape:S["f"]([t-r/2,n[0]],[r,i],T(e))}}};function T(e){return"x"===e.dim?0:1}var I=j,D=n("bLfw"),A=function(e){function t(){var n=null!==e&&e.apply(this,arguments)||this;return n.type=t.type,n}return Object(i["a"])(t,e),t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(D["a"]),E=A,P=n("F9bG"),L=n("sS/r"),N=function(e){function t(){var n=null!==e&&e.apply(this,arguments)||this;return n.type=t.type,n}return Object(i["a"])(t,e),t.prototype.render=function(e,t,n){var r=t.getComponent("tooltip"),i=e.get("triggerOn")||r&&r.get("triggerOn")||"mousemove|click";P["a"]("axisPointer",n,function(e,t,n){"none"!==i&&("leave"===e||i.indexOf(e)>=0)&&n({type:"updateAxisPointer",currTrigger:e,x:t&&t.offsetX,y:t&&t.offsetY})})},t.prototype.remove=function(e,t){P["b"]("axisPointer",t)},t.prototype.dispose=function(e,t){P["b"]("axisPointer",t)},t.type="axisPointer",t}(L["a"]),R=N,z=n("Ez2D"),F=Object(h["m"])();function B(e,t,n){var r=e.currTrigger,i=[e.x,e.y],a=e,s=e.dispatchAction||Object(o["c"])(n.dispatchAction,n),l=t.getComponent("axisPointer").coordSysAxesInfo;if(l){X(i)&&(i=Object(z["a"])({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var u=X(i),c=a.axesInfo,f=l.axesInfo,d="leave"===r||X(i),h={},p={},g={list:[],map:{}},m={showPointer:Object(o["h"])(G,p),showTooltip:Object(o["h"])(W,g)};Object(o["j"])(l.coordSysMap,function(e,t){var n=u||e.containPoint(i);Object(o["j"])(l.coordSysAxesInfo[t],function(e,t){var r=e.axis,o=K(c,e);if(!d&&n&&(!c||o)){var a=o&&o.value;null!=a||u||(a=r.pointToData(i)),null!=a&&Y(e,a,m,!1,h)}})});var v={};return Object(o["j"])(f,function(e,t){var n=e.linkGroup;n&&!p[t]&&Object(o["j"])(n.axesInfo,function(t,r){var i=p[r];if(t!==e&&i){var o=i.value;n.mapper&&(o=e.axis.scale.parse(n.mapper(o,Z(t),Z(e)))),v[e.key]=o}})}),Object(o["j"])(v,function(e,t){Y(f[t],e,m,!0,h)}),U(p,f,h),H(g,i,e,s),q(f,s,n),h}}function Y(e,t,n,r,i){var a=e.axis;if(!a.scale.isBlank()&&a.containData(t))if(e.involveSeries){var s=V(t,e),l=s.payloadBatch,u=s.snapToValue;l[0]&&null==i.seriesIndex&&Object(o["l"])(i,l[0]),!r&&e.snap&&a.containData(u)&&null!=u&&(t=u),n.showPointer(e,t,l),n.showTooltip(e,s,u)}else n.showPointer(e,t)}function V(e,t){var n=t.axis,r=n.dim,i=e,a=[],s=Number.MAX_VALUE,l=-1;return Object(o["j"])(t.seriesModels,function(t,u){var c,f,d=t.getData().mapDimensionsAll(r);if(t.getAxisTooltipData){var h=t.getAxisTooltipData(d,e,n);f=h.dataIndices,c=h.nestestValue}else{if(f=t.getData().indicesOfNearest(d[0],e,"category"===n.type?.5:null),!f.length)return;c=t.getData().get(d[0],f[0])}if(null!=c&&isFinite(c)){var p=e-c,g=Math.abs(p);g<=s&&((g=0&&l<0)&&(s=g,l=p,i=c,a.length=0),Object(o["j"])(f,function(e){a.push({seriesIndex:t.seriesIndex,dataIndexInside:e,dataIndex:t.getData().getRawIndex(e)})}))}}),{payloadBatch:a,snapToValue:i}}function G(e,t,n,r){e[t.key]={value:n,payloadBatch:r}}function W(e,t,n,r){var i=n.payloadBatch,o=t.axis,a=o.model,s=t.axisPointerModel;if(t.triggerTooltip&&i.length){var l=t.coordSys.model,u=c["e"](l),f=e.map[u];f||(f=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(f)),f.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:r,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function U(e,t,n){var r=n.axesInfo=[];Object(o["j"])(t,function(t,n){var i=t.axisPointerModel.option,o=e[n];o?(!t.useHandle&&(i.status="show"),i.value=o.value,i.seriesDataIndices=(o.payloadBatch||[]).slice()):!t.useHandle&&(i.status="hide"),"show"===i.status&&r.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:i.value})})}function H(e,t,n,r){if(!X(t)&&e.list.length){var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};r({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}else r({type:"hideTip"})}function q(e,t,n){var r=n.getZr(),i="axisPointerLastHighlights",a=F(r)[i]||{},s=F(r)[i]={};Object(o["j"])(e,function(e,t){var n=e.axisPointerModel.option;"show"===n.status&&Object(o["j"])(n.seriesDataIndices,function(e){var t=e.seriesIndex+" | "+e.dataIndex;s[t]=e})});var l=[],u=[];Object(o["j"])(a,function(e,t){!s[t]&&u.push(e)}),Object(o["j"])(s,function(e,t){!a[t]&&l.push(e)}),u.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:u}),l.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:l})}function K(e,t){for(var n=0;n<(e||[]).length;n++){var r=e[n];if(t.axis.dim===r.axisDim&&t.axis.model.componentIndex===r.axisIndex)return r}}function Z(e){var t=e.axis.model,n={},r=n.axisDim=e.axis.dim;return n.axisIndex=n[r+"AxisIndex"]=t.componentIndex,n.axisName=n[r+"AxisName"]=t.name,n.axisId=n[r+"AxisId"]=t.id,n}function X(e){return!e||null==e[0]||isNaN(e[0])||null==e[1]||isNaN(e[1])}function Q(e){r["a"].registerAxisPointerClass("CartesianAxisPointer",I),e.registerComponentModel(E),e.registerComponentView(R),e.registerPreprocessor(function(e){if(e){(!e.axisPointer||0===e.axisPointer.length)&&(e.axisPointer={});var t=e.axisPointer.link;t&&!Object(o["r"])(t)&&(e.axisPointer.link=[t])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(e,t){e.getComponent("axisPointer").coordSysAxesInfo=Object(c["a"])(e,t)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},B)}n.d(t,"a",function(){return Q})},"rgI+":function(e,t,n){var r=n("e+LU"),i=n("4Vez"),o=n("3m0e"),a="[object Null]",s="[object Undefined]",l=r?r.toStringTag:void 0;function u(e){return null==e?void 0===e?s:a:l&&l in Object(e)?i(e):o(e)}e.exports=u},rzDG:function(e,t,n){"use strict";var r=n("AGgm").isWhiteSpace,i=n("AGgm").isPunctChar,o=n("AGgm").isMdAsciiPunct,a=/['"]/,s=/['"]/g,l="\u2019";function u(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}function c(e,t){var n,a,c,f,d,h,p,g,m,v,y,b,x,_,w,O,S,k,j,M,C;for(j=[],n=0;n=0;S--)if(j[S].level<=p)break;if(j.length=S+1,"text"===a.type){c=a.content,d=0,h=c.length;e:while(d=0)m=c.charCodeAt(f.index-1);else for(S=n-1;S>=0;S--){if("softbreak"===e[S].type||"hardbreak"===e[S].type)break;if(e[S].content){m=e[S].content.charCodeAt(e[S].content.length-1);break}}if(v=32,d=48&&m<=57&&(O=w=!1),w&&O&&(w=y,O=b),w||O){if(O)for(S=j.length-1;S>=0;S--){if(g=j[S],j[S].level=0;t--)"inline"===e.tokens[t].type&&a.test(e.tokens[t].content)&&c(e.tokens[t].children,e)}},s8Fb:function(e,t,n){"use strict";n.d(t,"a",function(){return h});var r=n("R1X6"),i=n("1RvN"),o=n("bYtY"),a=n("OELB"),s=n("oVpE"),l=n("UhB0"),u=n("cm6r"),c=new r["a"],f=new i["a"](100),d=["symbol","symbolSize","symbolKeepAspect","color","backgroundColor","dashArrayX","dashArrayY","maxTileWidth","maxTileHeight"];function h(e,t){if("none"===e)return null;var n=t.getDevicePixelRatio(),r=t.getZr(),i="svg"===r.painter.type;e.dirty&&c["delete"](e);var h=c.get(e);if(h)return h;var b=Object(o["i"])(e,{symbol:"rect",symbolSize:1,symbolKeepAspect:!0,color:"rgba(0, 0, 0, 0.2)",backgroundColor:null,dashArrayX:5,dashArrayY:5,rotation:0,maxTileWidth:512,maxTileHeight:512});"none"===b.backgroundColor&&(b.backgroundColor=null);var x={repeat:"repeat"};return _(x),x.rotation=b.rotation,x.scaleX=x.scaleY=i?1:1/n,c.set(e,x),e.dirty=!1,x;function _(e){for(var t,c=[n],h=!0,x=0;x=t||n<0||v&&r>=f}function O(){var e=i();if(w(e))return S(e);h=setTimeout(O,_(e))}function S(e){return h=void 0,y&&u?b(e):(u=c=void 0,d)}function k(){void 0!==h&&clearTimeout(h),g=0,u=p=c=h=void 0}function j(){return void 0===h?d:S(i())}function M(){var e=i(),n=w(e);if(u=arguments,c=this,p=e,n){if(void 0===h)return x(p);if(v)return clearTimeout(h),h=setTimeout(O,t),b(p)}return void 0===h&&(h=setTimeout(O,t)),d}return t=o(t)||0,r(n)&&(m=!!n.leading,v="maxWait"in n,f=v?s(o(n.maxWait)||0,t):f,y="trailing"in n?!!n.trailing:y),M.cancel=k,M.flush=j,M}e.exports=u},"sK/D":function(e,t,n){"use strict";n.d(t,"b",function(){return l}),n.d(t,"c",function(){return u}),n.d(t,"a",function(){return c});var r=n("x6Kt"),i=n("3soF"),o=n("SqI9"),a=n("OELB"),s=n("bYtY");function l(e,t,n,o,a){var l=e.getArea(),u=l.x,c=l.y,f=l.width,d=l.height,h=n.get(["lineStyle","width"])||2;u-=h/2,c-=h/2,f+=h,d+=h,u=Math.floor(u),f=Math.round(f);var p=new r["a"]({shape:{x:u,y:c,width:f,height:d}});if(t){var g=e.getBaseAxis(),m=g.isHorizontal(),v=g.inverse;m?(v&&(p.shape.x+=f),p.shape.width=0):(v||(p.shape.y+=d),p.shape.height=0);var y=Object(s["u"])(a)?function(e){a(e,p)}:null;i["c"](p,{shape:{width:f,height:d,x:u,y:c}},n,null,o,y)}return p}function u(e,t,n){var r=e.getArea(),s=Object(a["q"])(r.r0,1),l=Object(a["q"])(r.r,1),u=new o["a"]({shape:{cx:Object(a["q"])(e.cx,1),cy:Object(a["q"])(e.cy,1),r0:s,r:l,startAngle:r.startAngle,endAngle:r.endAngle,clockwise:r.clockwise}});if(t){var c="angle"===e.getBaseAxis().dim;c?u.shape.endAngle=r.startAngle:u.shape.r=s,i["c"](u,{shape:{endAngle:r.endAngle,r:l}},n)}return u}function c(e,t,n,r,i){return e?"polar"===e.type?u(e,t,n):"cartesian2d"===e.type?l(e,t,n,r,i):null:null}},"sS/r":function(e,t,n){"use strict";var r=n("LcXL"),i=n("iRjW"),o=n("Yl7c"),a=function(){function e(){this.group=new r["a"],this.uid=i["c"]("viewComponent")}return e.prototype.init=function(e,t){},e.prototype.render=function(e,t,n,r){},e.prototype.dispose=function(e,t){},e.prototype.updateView=function(e,t,n,r){},e.prototype.updateLayout=function(e,t,n,r){},e.prototype.updateVisual=function(e,t,n,r){},e.prototype.toggleBlurSeries=function(e,t,n){},e.prototype.eachRendered=function(e){var t=this.group;t&&t.traverse(e)},e}();o["b"](a),o["c"](a),t["a"]=a},shjB:function(e,t){var n=9007199254740991;function r(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}e.exports=r},t2Dn:function(e,t,n){var r=n("hypo"),i=n("ljhN");function o(e,t,n){(void 0===n||i(e[t],n))&&(void 0!==n||t in e)||r(e,t,n)}e.exports=o},t9mh:function(e,t,n){"use strict";n.d(t,"b",function(){return a}),n.d(t,"a",function(){return l});var r=n("OELB"),i=n("bYtY"),o=n("7a4p");function a(e,t){var n=t&&t.type;return"ordinal"===n?e:("time"!==n||Object(i["w"])(e)||null==e||"-"===e||(e=+Object(r["l"])(e)),null==e||""===e?NaN:+e)}Object(i["f"])({number:function(e){return parseFloat(e)},time:function(e){return+Object(r["l"])(e)},trim:function(e){return Object(i["y"])(e)?Object(i["O"])(e):e}});var s={lt:function(e,t){return et},gte:function(e,t){return e>=t}},l=(function(){function e(e,t){if(!Object(i["w"])(t)){var n="";0,Object(o["c"])(n)}this._opFn=s[e],this._rvalFloat=Object(r["k"])(t)}e.prototype.evaluate=function(e){return Object(i["w"])(e)?this._opFn(e,this._rvalFloat):this._opFn(Object(r["k"])(e),this._rvalFloat)}}(),function(){function e(e,t){var n="desc"===e;this._resultLT=n?1:-1,null==t&&(t=n?"min":"max"),this._incomparable="min"===t?-1/0:1/0}return e.prototype.evaluate=function(e,t){var n=Object(i["w"])(e)?e:Object(r["k"])(e),o=Object(i["w"])(t)?t:Object(r["k"])(t),a=isNaN(n),s=isNaN(o);if(a&&(n=this._incomparable),s&&(o=this._incomparable),a&&s){var l=Object(i["y"])(e),u=Object(i["y"])(t);l&&(n=u?e:0),u&&(o=l?t:0)}return no?-this._resultLT:0},e}());(function(){function e(e,t){this._rval=t,this._isEQ=e,this._rvalTypeof=typeof t,this._rvalFloat=Object(r["k"])(t)}e.prototype.evaluate=function(e){var t=e===this._rval;if(!t){var n=typeof e;n===this._rvalTypeof||"number"!==n&&"number"!==this._rvalTypeof||(t=Object(r["k"])(e)===this._rvalFloat)}return this._isEQ?t:!t}})()},tGEx:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=["minLines","maxLines","readOnly","highlightActiveLine","tabSize","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets"];t.editorOptions=r;var i=["onChange","onFocus","onInput","onBlur","onCopy","onPaste","onSelectionChange","onCursorChange","onScroll","handleOptions","updateRef"];t.editorEvents=i;var o=function(){var e;return window.ace?(e=window.ace,e.acequire=window.ace.require||window.ace.acequire):e=n("bU/s"),e};t.getAceInstance=o;var a=function(e,t){var n=null;return function(){var r=this,i=arguments;clearTimeout(n),n=setTimeout(function(){e.apply(r,i)},t)}};t.debounce=a},tLB3:function(e,t,n){var r=n("jXQH"),i=n("GoyQ"),o=n("/9aa"),a=NaN,s=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function f(e){if("number"==typeof e)return e;if(o(e))return a;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=l.test(e);return n||u.test(e)?c(e.slice(2),n?2:8):s.test(e)?a:+e}e.exports=f},tMB7:function(e,t,n){var r=n("y1pI");function i(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}e.exports=i},u0qK:function(e,t,n){"use strict";var r=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,i=/\((c|tm|r|p)\)/i,o=/\((c|tm|r|p)\)/gi,a={c:"\xa9",r:"\xae",p:"\xa7",tm:"\u2122"};function s(e,t){return a[t.toLowerCase()]}function l(e){var t,n,r=0;for(t=e.length-1;t>=0;t--)n=e[t],"text"!==n.type||r||(n.content=n.content.replace(o,s)),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}function u(e){var t,n,i=0;for(t=e.length-1;t>=0;t--)n=e[t],"text"!==n.type||i||r.test(n.content)&&(n.content=n.content.replace(/\+-/g,"\xb1").replace(/\.{2,}/g,"\u2026").replace(/([?!])\u2026/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1\u2014").replace(/(^|\s)--(?=\s|$)/gm,"$1\u2013").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1\u2013")),"link_open"===n.type&&"auto"===n.info&&i--,"link_close"===n.type&&"auto"===n.info&&i++}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&(i.test(e.tokens[t].content)&&l(e.tokens[t].children),r.test(e.tokens[t].content)&&u(e.tokens[t].children))}},u8Dt:function(e,t,n){var r=n("YESw"),i="__lodash_hash_undefined__",o=Object.prototype,a=o.hasOwnProperty;function s(e){var t=this.__data__;if(r){var n=t[e];return n===i?void 0:n}return a.call(t,e)?t[e]:void 0}e.exports=s},ugOi:function(e,t,n){var r=n("kewz"),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();e.exports=o},usqY:function(e,t,n){"use strict";function r(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}e.exports=function(e,t){var n=e.pos;while(nA.length&&A.push(e)}function L(e,t,n,r){var i=typeof e;"undefined"!==i&&"boolean"!==i||(e=null);var s=!1;if(null===e)s=!0;else switch(i){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case a:s=!0}}if(s)return n(r,e,""===t?"."+R(e,0):t),1;if(s=0,t=""===t?".":t+":",Array.isArray(e))for(var l=0;l=4)return!1;if(d+3>h)return!1;if(i=e.src.charCodeAt(d),126!==i&&96!==i)return!1;if(l=d,d=e.skipChars(d,i),o=d-l,o<3)return!1;if(c=e.src.slice(l,d),a=e.src.slice(d,h),96===i&&a.indexOf(String.fromCharCode(i))>=0)return!1;if(r)return!0;for(s=t;;){if(s++,s>=n)break;if(d=l=e.bMarks[s]+e.tShift[s],h=e.eMarks[s],d=4)&&(d=e.skipChars(d,i),!(d-l-1&&e%1==0&&e>>0;for(t=0;t0)for(n=0;n=0;return(o?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+r}var R=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,z=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,F={},B={};function Y(e,t,n,r){var i=r;"string"===typeof r&&(i=function(){return this[r]()}),e&&(B[e]=i),t&&(B[t[0]]=function(){return N(i.apply(this,arguments),t[1],t[2])}),n&&(B[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function V(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function G(e){var t,n,r=e.match(R);for(t=0,n=r.length;t=0&&z.test(e))e=e.replace(z,r),z.lastIndex=0,n-=1;return e}var H={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function q(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(R).map(function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e}).join(""),this._longDateFormat[e])}var K="Invalid date";function Z(){return this._invalidDate}var X="%d",Q=/\d{1,2}/;function $(e){return this._ordinal.replace("%d",e)}var J={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function ee(e,t,n,r){var i=this._relativeTime[n];return I(i)?i(e,t,n,r):i.replace(/%d/i,e)}function te(e,t){var n=this._relativeTime[e>0?"future":"past"];return I(n)?n(t):n.replace(/%s/i,t)}var ne={};function re(e,t){var n=e.toLowerCase();ne[n]=ne[n+"s"]=ne[t]=e}function ie(e){return"string"===typeof e?ne[e]||ne[e.toLowerCase()]:void 0}function oe(e){var t,n,r={};for(n in e)l(e,n)&&(t=ie(n),t&&(r[t]=e[n]));return r}var ae={};function se(e,t){ae[e]=t}function le(e){var t,n=[];for(t in e)l(e,t)&&n.push({unit:t,priority:ae[t]});return n.sort(function(e,t){return e.priority-t.priority}),n}function ue(e){return e%4===0&&e%100!==0||e%400===0}function ce(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function fe(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=ce(t)),n}function de(e,t){return function(n){return null!=n?(pe(this,e,n),i.updateOffset(this,t),this):he(this,e)}}function he(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function pe(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ue(e.year())&&1===e.month()&&29===e.date()?(n=fe(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),et(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function ge(e){return e=ie(e),I(this[e])?this[e]():this}function me(e,t){if("object"===typeof e){e=oe(e);var n,r=le(e),i=r.length;for(n=0;n68?1900:2e3)};var vt=de("FullYear",!0);function yt(){return ue(this.year())}function bt(e,t,n,r,i,o,a){var s;return e<100&&e>=0?(s=new Date(e+400,t,n,r,i,o,a),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,r,i,o,a),s}function xt(e){var t,n;return e<100&&e>=0?(n=Array.prototype.slice.call(arguments),n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function _t(e,t,n){var r=7+t-n,i=(7+xt(e,0,r).getUTCDay()-t)%7;return-i+r-1}function wt(e,t,n,r,i){var o,a,s=(7+n-r)%7,l=_t(e,r,i),u=1+7*(t-1)+s+l;return u<=0?(o=e-1,a=mt(o)+u):u>mt(e)?(o=e+1,a=u-mt(e)):(o=e,a=u),{year:o,dayOfYear:a}}function Ot(e,t,n){var r,i,o=_t(e.year(),t,n),a=Math.floor((e.dayOfYear()-o-1)/7)+1;return a<1?(i=e.year()-1,r=a+St(i,t,n)):a>St(e.year(),t,n)?(r=a-St(e.year(),t,n),i=e.year()+1):(i=e.year(),r=a),{week:r,year:i}}function St(e,t,n){var r=_t(e,t,n),i=_t(e+1,t,n);return(mt(e)-r+i)/7}function kt(e){return Ot(e,this._week.dow,this._week.doy).week}Y("w",["ww",2],"wo","week"),Y("W",["WW",2],"Wo","isoWeek"),re("week","w"),re("isoWeek","W"),se("week",5),se("isoWeek",5),Le("w",Oe),Le("ww",Oe,be),Le("W",Oe),Le("WW",Oe,be),Ye(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=fe(e)});var jt={dow:0,doy:6};function Mt(){return this._week.dow}function Ct(){return this._week.doy}function Tt(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function It(e){var t=Ot(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Dt(e,t){return"string"!==typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"===typeof e?e:null):parseInt(e,10)}function At(e,t){return"string"===typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Et(e,t){return e.slice(t,7).concat(e.slice(0,t))}Y("d",0,"do","day"),Y("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),Y("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),Y("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),Y("e",0,0,"weekday"),Y("E",0,0,"isoWeekday"),re("day","d"),re("weekday","e"),re("isoWeekday","E"),se("day",11),se("weekday",11),se("isoWeekday",11),Le("d",Oe),Le("e",Oe),Le("E",Oe),Le("dd",function(e,t){return t.weekdaysMinRegex(e)}),Le("ddd",function(e,t){return t.weekdaysShortRegex(e)}),Le("dddd",function(e,t){return t.weekdaysRegex(e)}),Ye(["dd","ddd","dddd"],function(e,t,n,r){var i=n._locale.weekdaysParse(e,r,n._strict);null!=i?t.d=i:v(n).invalidWeekday=e}),Ye(["d","e","E"],function(e,t,n,r){t[r]=fe(e)});var Pt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Lt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Nt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Rt=Pe,zt=Pe,Ft=Pe;function Bt(e,t){var n=a(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Et(n,this._week.dow):e?n[e.day()]:n}function Yt(e){return!0===e?Et(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Vt(e){return!0===e?Et(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Gt(e,t,n){var r,i,o,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)o=g([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?(i=Ge.call(this._weekdaysParse,a),-1!==i?i:null):"ddd"===t?(i=Ge.call(this._shortWeekdaysParse,a),-1!==i?i:null):(i=Ge.call(this._minWeekdaysParse,a),-1!==i?i:null):"dddd"===t?(i=Ge.call(this._weekdaysParse,a),-1!==i?i:(i=Ge.call(this._shortWeekdaysParse,a),-1!==i?i:(i=Ge.call(this._minWeekdaysParse,a),-1!==i?i:null))):"ddd"===t?(i=Ge.call(this._shortWeekdaysParse,a),-1!==i?i:(i=Ge.call(this._weekdaysParse,a),-1!==i?i:(i=Ge.call(this._minWeekdaysParse,a),-1!==i?i:null))):(i=Ge.call(this._minWeekdaysParse,a),-1!==i?i:(i=Ge.call(this._weekdaysParse,a),-1!==i?i:(i=Ge.call(this._shortWeekdaysParse,a),-1!==i?i:null)))}function Wt(e,t,n){var r,i,o;if(this._weekdaysParseExact)return Gt.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(i=g([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[r]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function Ut(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Dt(e,this.localeData()),this.add(e-t,"d")):t}function Ht(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function qt(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=At(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Kt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Qt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Rt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Zt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Qt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=zt),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Xt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Qt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ft),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qt(){function e(e,t){return t.length-e.length}var t,n,r,i,o,a=[],s=[],l=[],u=[];for(t=0;t<7;t++)n=g([2e3,1]).day(t),r=ze(this.weekdaysMin(n,"")),i=ze(this.weekdaysShort(n,"")),o=ze(this.weekdays(n,"")),a.push(r),s.push(i),l.push(o),u.push(r),u.push(i),u.push(o);a.sort(e),s.sort(e),l.sort(e),u.sort(e),this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function $t(){return this.hours()%12||12}function Jt(){return this.hours()||24}function en(e,t){Y(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function tn(e,t){return t._meridiemParse}function nn(e){return"p"===(e+"").toLowerCase().charAt(0)}Y("H",["HH",2],0,"hour"),Y("h",["hh",2],0,$t),Y("k",["kk",2],0,Jt),Y("hmm",0,0,function(){return""+$t.apply(this)+N(this.minutes(),2)}),Y("hmmss",0,0,function(){return""+$t.apply(this)+N(this.minutes(),2)+N(this.seconds(),2)}),Y("Hmm",0,0,function(){return""+this.hours()+N(this.minutes(),2)}),Y("Hmmss",0,0,function(){return""+this.hours()+N(this.minutes(),2)+N(this.seconds(),2)}),en("a",!0),en("A",!1),re("hour","h"),se("hour",13),Le("a",tn),Le("A",tn),Le("H",Oe),Le("h",Oe),Le("k",Oe),Le("HH",Oe,be),Le("hh",Oe,be),Le("kk",Oe,be),Le("hmm",Se),Le("hmmss",ke),Le("Hmm",Se),Le("Hmmss",ke),Be(["H","HH"],qe),Be(["k","kk"],function(e,t,n){var r=fe(e);t[qe]=24===r?0:r}),Be(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),Be(["h","hh"],function(e,t,n){t[qe]=fe(e),v(n).bigHour=!0}),Be("hmm",function(e,t,n){var r=e.length-2;t[qe]=fe(e.substr(0,r)),t[Ke]=fe(e.substr(r)),v(n).bigHour=!0}),Be("hmmss",function(e,t,n){var r=e.length-4,i=e.length-2;t[qe]=fe(e.substr(0,r)),t[Ke]=fe(e.substr(r,2)),t[Ze]=fe(e.substr(i)),v(n).bigHour=!0}),Be("Hmm",function(e,t,n){var r=e.length-2;t[qe]=fe(e.substr(0,r)),t[Ke]=fe(e.substr(r))}),Be("Hmmss",function(e,t,n){var r=e.length-4,i=e.length-2;t[qe]=fe(e.substr(0,r)),t[Ke]=fe(e.substr(r,2)),t[Ze]=fe(e.substr(i))});var rn=/[ap]\.?m?\.?/i,on=de("Hours",!0);function an(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var sn,ln={calendar:P,longDateFormat:H,invalidDate:K,ordinal:X,dayOfMonthOrdinalParse:Q,relativeTime:J,months:tt,monthsShort:nt,week:jt,weekdays:Pt,weekdaysMin:Nt,weekdaysShort:Lt,meridiemParse:rn},un={},cn={};function fn(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0){if(r=gn(i.slice(0,t).join("-")),r)return r;if(n&&n.length>=t&&fn(i,n)>=t-1)break;t--}o++}return sn}function pn(e){return null!=e.match("^[^/\\\\]*$")}function gn(n){var r=null;if(void 0===un[n]&&"undefined"!==typeof e&&e&&e.exports&&pn(n))try{r=sn._abbr,t,function(){var e=new Error("Cannot find module 'undefined'");throw e.code="MODULE_NOT_FOUND",e}(),mn(r)}catch(e){un[n]=null}return un[n]}function mn(e,t){var n;return e&&(n=c(t)?bn(e):vn(e,t),n?sn=n:"undefined"!==typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),sn._abbr}function vn(e,t){if(null!==t){var n,r=ln;if(t.abbr=e,null!=un[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=un[e]._config;else if(null!=t.parentLocale)if(null!=un[t.parentLocale])r=un[t.parentLocale]._config;else{if(n=gn(t.parentLocale),null==n)return cn[t.parentLocale]||(cn[t.parentLocale]=[]),cn[t.parentLocale].push({name:e,config:t}),null;r=n._config}return un[e]=new E(A(r,t)),cn[e]&&cn[e].forEach(function(e){vn(e.name,e.config)}),mn(e),un[e]}return delete un[e],null}function yn(e,t){if(null!=t){var n,r,i=ln;null!=un[e]&&null!=un[e].parentLocale?un[e].set(A(un[e]._config,t)):(r=gn(e),null!=r&&(i=r._config),t=A(i,t),null==r&&(t.abbr=e),n=new E(t),n.parentLocale=un[e],un[e]=n),mn(e)}else null!=un[e]&&(null!=un[e].parentLocale?(un[e]=un[e].parentLocale,e===mn()&&mn(e)):null!=un[e]&&delete un[e]);return un[e]}function bn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return sn;if(!a(e)){if(t=gn(e),t)return t;e=[e]}return hn(e)}function xn(){return M(un)}function _n(e){var t,n=e._a;return n&&-2===v(e).overflow&&(t=n[Ue]<0||n[Ue]>11?Ue:n[He]<1||n[He]>et(n[We],n[Ue])?He:n[qe]<0||n[qe]>24||24===n[qe]&&(0!==n[Ke]||0!==n[Ze]||0!==n[Xe])?qe:n[Ke]<0||n[Ke]>59?Ke:n[Ze]<0||n[Ze]>59?Ze:n[Xe]<0||n[Xe]>999?Xe:-1,v(e)._overflowDayOfYear&&(tHe)&&(t=He),v(e)._overflowWeeks&&-1===t&&(t=Qe),v(e)._overflowWeekday&&-1===t&&(t=$e),v(e).overflow=t),e}var wn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,On=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Sn=/Z|[+-]\d\d(?::?\d\d)?/,kn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],jn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Mn=/^\/?Date\((-?\d+)/i,Cn=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Tn={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function In(e){var t,n,r,i,o,a,s=e._i,l=wn.exec(s)||On.exec(s),u=kn.length,c=jn.length;if(l){for(v(e).iso=!0,t=0,n=u;tmt(o)||0===e._dayOfYear)&&(v(e)._overflowDayOfYear=!0),n=xt(o,0,e._dayOfYear),e._a[Ue]=n.getUTCMonth(),e._a[He]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=r[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[qe]&&0===e._a[Ke]&&0===e._a[Ze]&&0===e._a[Xe]&&(e._nextDay=!0,e._a[qe]=0),e._d=(e._useUTC?xt:bt).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[qe]=24),e._w&&"undefined"!==typeof e._w.d&&e._w.d!==i&&(v(e).weekdayMismatch=!0)}}function Yn(e){var t,n,r,i,o,a,s,l,u;t=e._w,null!=t.GG||null!=t.W||null!=t.E?(o=1,a=4,n=zn(t.GG,e._a[We],Ot(Xn(),1,4).year),r=zn(t.W,1),i=zn(t.E,1),(i<1||i>7)&&(l=!0)):(o=e._locale._week.dow,a=e._locale._week.doy,u=Ot(Xn(),o,a),n=zn(t.gg,e._a[We],u.year),r=zn(t.w,u.week),null!=t.d?(i=t.d,(i<0||i>6)&&(l=!0)):null!=t.e?(i=t.e+o,(t.e<0||t.e>6)&&(l=!0)):i=o),r<1||r>St(n,o,a)?v(e)._overflowWeeks=!0:null!=l?v(e)._overflowWeekday=!0:(s=wt(n,r,i,o,a),e._a[We]=s.year,e._dayOfYear=s.dayOfYear)}function Vn(e){if(e._f!==i.ISO_8601)if(e._f!==i.RFC_2822){e._a=[],v(e).empty=!0;var t,n,r,o,a,s,l,u=""+e._i,c=u.length,f=0;for(r=U(e._f,e._locale).match(R)||[],l=r.length,t=0;t0&&v(e).unusedInput.push(a),u=u.slice(u.indexOf(n)+n.length),f+=n.length),B[o]?(n?v(e).empty=!1:v(e).unusedTokens.push(o),Ve(o,n,e)):e._strict&&!n&&v(e).unusedTokens.push(o);v(e).charsLeftOver=c-f,u.length>0&&v(e).unusedInput.push(u),e._a[qe]<=12&&!0===v(e).bigHour&&e._a[qe]>0&&(v(e).bigHour=void 0),v(e).parsedDateParts=e._a.slice(0),v(e).meridiem=e._meridiem,e._a[qe]=Gn(e._locale,e._a[qe],e._meridiem),s=v(e).era,null!==s&&(e._a[We]=e._locale.erasConvertYear(s,e._a[We])),Bn(e),_n(e)}else Nn(e);else In(e)}function Gn(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(r=e.isPM(n),r&&t<12&&(t+=12),r||12!==t||(t=0),t):t}function Wn(e){var t,n,r,i,o,a,s=!1,l=e._f.length;if(0===l)return v(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;ithis?this:e:b()});function Jn(e,t){var n,r;if(1===t.length&&a(t[0])&&(t=t[0]),!t.length)return Xn();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Or(){if(!c(this._isDSTShifted))return this._isDSTShifted;var e,t={};return w(t,this),t=qn(t),t._a?(e=t._isUTC?g(t._a):Xn(t._a),this._isDSTShifted=this.isValid()&&cr(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function Sr(){return!!this.isValid()&&!this._isUTC}function kr(){return!!this.isValid()&&this._isUTC}function jr(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}i.updateOffset=function(){};var Mr=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Cr=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Tr(e,t){var n,r,i,o=e,a=null;return lr(e)?o={ms:e._milliseconds,d:e._days,M:e._months}:f(e)||!isNaN(+e)?(o={},t?o[t]=+e:o.milliseconds=+e):(a=Mr.exec(e))?(n="-"===a[1]?-1:1,o={y:0,d:fe(a[He])*n,h:fe(a[qe])*n,m:fe(a[Ke])*n,s:fe(a[Ze])*n,ms:fe(ur(1e3*a[Xe]))*n}):(a=Cr.exec(e))?(n="-"===a[1]?-1:1,o={y:Ir(a[2],n),M:Ir(a[3],n),w:Ir(a[4],n),d:Ir(a[5],n),h:Ir(a[6],n),m:Ir(a[7],n),s:Ir(a[8],n)}):null==o?o={}:"object"===typeof o&&("from"in o||"to"in o)&&(i=Ar(Xn(o.from),Xn(o.to)),o={},o.ms=i.milliseconds,o.M=i.months),r=new sr(o),lr(e)&&l(e,"_locale")&&(r._locale=e._locale),lr(e)&&l(e,"_isValid")&&(r._isValid=e._isValid),r}function Ir(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Dr(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Ar(e,t){var n;return e.isValid()&&t.isValid()?(t=pr(t,e),e.isBefore(t)?n=Dr(e,t):(n=Dr(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Er(e,t){return function(n,r){var i,o;return null===r||isNaN(+r)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=n,n=r,r=o),i=Tr(n,r),Pr(this,i,e),this}}function Pr(e,t,n,r){var o=t._milliseconds,a=ur(t._days),s=ur(t._months);e.isValid()&&(r=null==r||r,s&&ct(e,he(e,"Month")+s*n),a&&pe(e,"Date",he(e,"Date")+a*n),o&&e._d.setTime(e._d.valueOf()+o*n),r&&i.updateOffset(e,a||s))}Tr.fn=sr.prototype,Tr.invalid=ar;var Lr=Er(1,"add"),Nr=Er(-1,"subtract");function Rr(e){return"string"===typeof e||e instanceof String}function zr(e){return S(e)||d(e)||Rr(e)||f(e)||Br(e)||Fr(e)||null===e||void 0===e}function Fr(e){var t,n,r=s(e)&&!u(e),i=!1,o=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],a=o.length;for(t=0;tn.valueOf():n.valueOf()9999?W(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):I(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",W(n,"Z")):W(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function ti(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r,i="moment",o="";return this.isLocal()||(i=0===this.utcOffset()?"moment.utc":"moment.parseZone",o="Z"),e="["+i+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",r=o+'[")]',this.format(e+t+n+r)}function ni(e){e||(e=this.isUtc()?i.defaultFormatUtc:i.defaultFormat);var t=W(this,e);return this.localeData().postformat(t)}function ri(e,t){return this.isValid()&&(S(e)&&e.isValid()||Xn(e).isValid())?Tr({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ii(e){return this.from(Xn(),e)}function oi(e,t){return this.isValid()&&(S(e)&&e.isValid()||Xn(e).isValid())?Tr({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ai(e){return this.to(Xn(),e)}function si(e){var t;return void 0===e?this._locale._abbr:(t=bn(e),null!=t&&(this._locale=t),this)}i.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",i.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var li=j("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function ui(){return this._locale}var ci=1e3,fi=60*ci,di=60*fi,hi=3506328*di;function pi(e,t){return(e%t+t)%t}function gi(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-hi:new Date(e,t,n).valueOf()}function mi(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-hi:Date.UTC(e,t,n)}function vi(e){var t,n;if(e=ie(e),void 0===e||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?mi:gi,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=pi(t+(this._isUTC?0:this.utcOffset()*fi),di);break;case"minute":t=this._d.valueOf(),t-=pi(t,fi);break;case"second":t=this._d.valueOf(),t-=pi(t,ci);break}return this._d.setTime(t),i.updateOffset(this,!0),this}function yi(e){var t,n;if(e=ie(e),void 0===e||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?mi:gi,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=di-pi(t+(this._isUTC?0:this.utcOffset()*fi),di)-1;break;case"minute":t=this._d.valueOf(),t+=fi-pi(t,fi)-1;break;case"second":t=this._d.valueOf(),t+=ci-pi(t,ci)-1;break}return this._d.setTime(t),i.updateOffset(this,!0),this}function bi(){return this._d.valueOf()-6e4*(this._offset||0)}function xi(){return Math.floor(this.valueOf()/1e3)}function _i(){return new Date(this.valueOf())}function wi(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Oi(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Si(){return this.isValid()?this.toISOString():null}function ki(){return y(this)}function ji(){return p({},v(this))}function Mi(){return v(this).overflow}function Ci(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ti(e,t){var n,r,o,a=this._eras||bn("en")._eras;for(n=0,r=a.length;n=0)return l[r]}function Di(e,t){var n=e.since<=e.until?1:-1;return void 0===t?i(e.since).year():i(e.since).year()+(t-e.offset)*n}function Ai(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;eo&&(t=o),$i.call(this,e,t,n,r,i))}function $i(e,t,n,r,i){var o=wt(e,t,n,r,i),a=xt(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function Ji(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}Y("N",0,0,"eraAbbr"),Y("NN",0,0,"eraAbbr"),Y("NNN",0,0,"eraAbbr"),Y("NNNN",0,0,"eraName"),Y("NNNNN",0,0,"eraNarrow"),Y("y",["y",1],"yo","eraYear"),Y("y",["yy",2],0,"eraYear"),Y("y",["yyy",3],0,"eraYear"),Y("y",["yyyy",4],0,"eraYear"),Le("N",Fi),Le("NN",Fi),Le("NNN",Fi),Le("NNNN",Bi),Le("NNNNN",Yi),Be(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,r){var i=n._locale.erasParse(e,r,n._strict);i?v(n).era=i:v(n).invalidEra=e}),Le("y",Te),Le("yy",Te),Le("yyy",Te),Le("yyyy",Te),Le("yo",Vi),Be(["y","yy","yyy","yyyy"],We),Be(["yo"],function(e,t,n,r){var i;n._locale._eraYearOrdinalRegex&&(i=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[We]=n._locale.eraYearOrdinalParse(e,i):t[We]=parseInt(e,10)}),Y(0,["gg",2],0,function(){return this.weekYear()%100}),Y(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Wi("gggg","weekYear"),Wi("ggggg","weekYear"),Wi("GGGG","isoWeekYear"),Wi("GGGGG","isoWeekYear"),re("weekYear","gg"),re("isoWeekYear","GG"),se("weekYear",1),se("isoWeekYear",1),Le("G",Ie),Le("g",Ie),Le("GG",Oe,be),Le("gg",Oe,be),Le("GGGG",Me,_e),Le("gggg",Me,_e),Le("GGGGG",Ce,we),Le("ggggg",Ce,we),Ye(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,r){t[r.substr(0,2)]=fe(e)}),Ye(["gg","GG"],function(e,t,n,r){t[r]=i.parseTwoDigitYear(e)}),Y("Q",0,"Qo","quarter"),re("quarter","Q"),se("quarter",7),Le("Q",ye),Be("Q",function(e,t){t[Ue]=3*(fe(e)-1)}),Y("D",["DD",2],"Do","date"),re("date","D"),se("date",9),Le("D",Oe),Le("DD",Oe,be),Le("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),Be(["D","DD"],He),Be("Do",function(e,t){t[He]=fe(e.match(Oe)[0])});var eo=de("Date",!0);function to(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}Y("DDD",["DDDD",3],"DDDo","dayOfYear"),re("dayOfYear","DDD"),se("dayOfYear",4),Le("DDD",je),Le("DDDD",xe),Be(["DDD","DDDD"],function(e,t,n){n._dayOfYear=fe(e)}),Y("m",["mm",2],0,"minute"),re("minute","m"),se("minute",14),Le("m",Oe),Le("mm",Oe,be),Be(["m","mm"],Ke);var no=de("Minutes",!1);Y("s",["ss",2],0,"second"),re("second","s"),se("second",15),Le("s",Oe),Le("ss",Oe,be),Be(["s","ss"],Ze);var ro,io,oo=de("Seconds",!1);for(Y("S",0,0,function(){return~~(this.millisecond()/100)}),Y(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),Y(0,["SSS",3],0,"millisecond"),Y(0,["SSSS",4],0,function(){return 10*this.millisecond()}),Y(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),Y(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),Y(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),Y(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),Y(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),re("millisecond","ms"),se("millisecond",16),Le("S",je,ye),Le("SS",je,be),Le("SSS",je,xe),ro="SSSS";ro.length<=9;ro+="S")Le(ro,Te);function ao(e,t){t[Xe]=fe(1e3*("0."+e))}for(ro="S";ro.length<=9;ro+="S")Be(ro,ao);function so(){return this._isUTC?"UTC":""}function lo(){return this._isUTC?"Coordinated Universal Time":""}io=de("Milliseconds",!1),Y("z",0,0,"zoneAbbr"),Y("zz",0,0,"zoneName");var uo=O.prototype;function co(e){return Xn(1e3*e)}function fo(){return Xn.apply(null,arguments).parseZone()}function ho(e){return e}uo.add=Lr,uo.calendar=Gr,uo.clone=Wr,uo.diff=Qr,uo.endOf=yi,uo.format=ni,uo.from=ri,uo.fromNow=ii,uo.to=oi,uo.toNow=ai,uo.get=ge,uo.invalidAt=Mi,uo.isAfter=Ur,uo.isBefore=Hr,uo.isBetween=qr,uo.isSame=Kr,uo.isSameOrAfter=Zr,uo.isSameOrBefore=Xr,uo.isValid=ki,uo.lang=li,uo.locale=si,uo.localeData=ui,uo.max=$n,uo.min=Qn,uo.parsingFlags=ji,uo.set=me,uo.startOf=vi,uo.subtract=Nr,uo.toArray=wi,uo.toObject=Oi,uo.toDate=_i,uo.toISOString=ei,uo.inspect=ti,"undefined"!==typeof Symbol&&null!=Symbol.for&&(uo[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),uo.toJSON=Si,uo.toString=Jr,uo.unix=xi,uo.valueOf=bi,uo.creationData=Ci,uo.eraName=Ai,uo.eraNarrow=Ei,uo.eraAbbr=Pi,uo.eraYear=Li,uo.year=vt,uo.isLeapYear=yt,uo.weekYear=Ui,uo.isoWeekYear=Hi,uo.quarter=uo.quarters=Ji,uo.month=ft,uo.daysInMonth=dt,uo.week=uo.weeks=Tt,uo.isoWeek=uo.isoWeeks=It,uo.weeksInYear=Zi,uo.weeksInWeekYear=Xi,uo.isoWeeksInYear=qi,uo.isoWeeksInISOWeekYear=Ki,uo.date=eo,uo.day=uo.days=Ut,uo.weekday=Ht,uo.isoWeekday=qt,uo.dayOfYear=to,uo.hour=uo.hours=on,uo.minute=uo.minutes=no,uo.second=uo.seconds=oo,uo.millisecond=uo.milliseconds=io,uo.utcOffset=mr,uo.utc=yr,uo.local=br,uo.parseZone=xr,uo.hasAlignedHourOffset=_r,uo.isDST=wr,uo.isLocal=Sr,uo.isUtcOffset=kr,uo.isUtc=jr,uo.isUTC=jr,uo.zoneAbbr=so,uo.zoneName=lo,uo.dates=j("dates accessor is deprecated. Use date instead.",eo),uo.months=j("months accessor is deprecated. Use month instead",ft),uo.years=j("years accessor is deprecated. Use year instead",vt),uo.zone=j("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",vr),uo.isDSTShifted=j("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Or);var po=E.prototype;function go(e,t,n,r){var i=bn(),o=g().set(r,t);return i[n](o,e)}function mo(e,t,n){if(f(e)&&(t=e,e=void 0),e=e||"",null!=t)return go(e,t,n,"month");var r,i=[];for(r=0;r<12;r++)i[r]=go(e,r,n,"month");return i}function vo(e,t,n,r){"boolean"===typeof e?(f(t)&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,f(t)&&(n=t,t=void 0),t=t||"");var i,o=bn(),a=e?o._week.dow:0,s=[];if(null!=n)return go(t,(n+a)%7,r,"day");for(i=0;i<7;i++)s[i]=go(t,(i+a)%7,r,"day");return s}function yo(e,t){return mo(e,t,"months")}function bo(e,t){return mo(e,t,"monthsShort")}function xo(e,t,n){return vo(e,t,n,"weekdays")}function _o(e,t,n){return vo(e,t,n,"weekdaysShort")}function wo(e,t,n){return vo(e,t,n,"weekdaysMin")}po.calendar=L,po.longDateFormat=q,po.invalidDate=Z,po.ordinal=$,po.preparse=ho,po.postformat=ho,po.relativeTime=ee,po.pastFuture=te,po.set=D,po.eras=Ti,po.erasParse=Ii,po.erasConvertYear=Di,po.erasAbbrRegex=Ri,po.erasNameRegex=Ni,po.erasNarrowRegex=zi,po.months=at,po.monthsShort=st,po.monthsParse=ut,po.monthsRegex=pt,po.monthsShortRegex=ht,po.week=kt,po.firstDayOfYear=Ct,po.firstDayOfWeek=Mt,po.weekdays=Bt,po.weekdaysMin=Vt,po.weekdaysShort=Yt,po.weekdaysParse=Wt,po.weekdaysRegex=Kt,po.weekdaysShortRegex=Zt,po.weekdaysMinRegex=Xt,po.isPM=nn,po.meridiem=an,mn("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===fe(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),i.lang=j("moment.lang is deprecated. Use moment.locale instead.",mn),i.langData=j("moment.langData is deprecated. Use moment.localeData instead.",bn);var Oo=Math.abs;function So(){var e=this._data;return this._milliseconds=Oo(this._milliseconds),this._days=Oo(this._days),this._months=Oo(this._months),e.milliseconds=Oo(e.milliseconds),e.seconds=Oo(e.seconds),e.minutes=Oo(e.minutes),e.hours=Oo(e.hours),e.months=Oo(e.months),e.years=Oo(e.years),this}function ko(e,t,n,r){var i=Tr(t,n);return e._milliseconds+=r*i._milliseconds,e._days+=r*i._days,e._months+=r*i._months,e._bubble()}function jo(e,t){return ko(this,e,t,1)}function Mo(e,t){return ko(this,e,t,-1)}function Co(e){return e<0?Math.floor(e):Math.ceil(e)}function To(){var e,t,n,r,i,o=this._milliseconds,a=this._days,s=this._months,l=this._data;return o>=0&&a>=0&&s>=0||o<=0&&a<=0&&s<=0||(o+=864e5*Co(Do(s)+a),a=0,s=0),l.milliseconds=o%1e3,e=ce(o/1e3),l.seconds=e%60,t=ce(e/60),l.minutes=t%60,n=ce(t/60),l.hours=n%24,a+=ce(n/24),i=ce(Io(a)),s+=i,a-=Co(Do(i)),r=ce(s/12),s%=12,l.days=a,l.months=s,l.years=r,this}function Io(e){return 4800*e/146097}function Do(e){return 146097*e/4800}function Ao(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if(e=ie(e),"month"===e||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+Io(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Do(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}}function Eo(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*fe(this._months/12):NaN}function Po(e){return function(){return this.as(e)}}var Lo=Po("ms"),No=Po("s"),Ro=Po("m"),zo=Po("h"),Fo=Po("d"),Bo=Po("w"),Yo=Po("M"),Vo=Po("Q"),Go=Po("y");function Wo(){return Tr(this)}function Uo(e){return e=ie(e),this.isValid()?this[e+"s"]():NaN}function Ho(e){return function(){return this.isValid()?this._data[e]:NaN}}var qo=Ho("milliseconds"),Ko=Ho("seconds"),Zo=Ho("minutes"),Xo=Ho("hours"),Qo=Ho("days"),$o=Ho("months"),Jo=Ho("years");function ea(){return ce(this.days()/7)}var ta=Math.round,na={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function ra(e,t,n,r,i){return i.relativeTime(t||1,!!n,e,r)}function ia(e,t,n,r){var i=Tr(e).abs(),o=ta(i.as("s")),a=ta(i.as("m")),s=ta(i.as("h")),l=ta(i.as("d")),u=ta(i.as("M")),c=ta(i.as("w")),f=ta(i.as("y")),d=o<=n.ss&&["s",o]||o0,d[4]=r,ra.apply(null,d)}function oa(e){return void 0===e?ta:"function"===typeof e&&(ta=e,!0)}function aa(e,t){return void 0!==na[e]&&(void 0===t?na[e]:(na[e]=t,"s"===e&&(na.ss=t-1),!0))}function sa(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,i=!1,o=na;return"object"===typeof e&&(t=e,e=!1),"boolean"===typeof e&&(i=e),"object"===typeof t&&(o=Object.assign({},na,t),null!=t.s&&null==t.ss&&(o.ss=t.s-1)),n=this.localeData(),r=ia(this,!i,o,n),i&&(r=n.pastFuture(+this,r)),n.postformat(r)}var la=Math.abs;function ua(e){return(e>0)-(e<0)||+e}function ca(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,i,o,a,s,l=la(this._milliseconds)/1e3,u=la(this._days),c=la(this._months),f=this.asSeconds();return f?(e=ce(l/60),t=ce(e/60),l%=60,e%=60,n=ce(c/12),c%=12,r=l?l.toFixed(3).replace(/\.?0+$/,""):"",i=f<0?"-":"",o=ua(this._months)!==ua(f)?"-":"",a=ua(this._days)!==ua(f)?"-":"",s=ua(this._milliseconds)!==ua(f)?"-":"",i+"P"+(n?o+n+"Y":"")+(c?o+c+"M":"")+(u?a+u+"D":"")+(t||e||l?"T":"")+(t?s+t+"H":"")+(e?s+e+"M":"")+(l?s+r+"S":"")):"P0D"}var fa=sr.prototype;return fa.isValid=or,fa.abs=So,fa.add=jo,fa.subtract=Mo,fa.as=Ao,fa.asMilliseconds=Lo,fa.asSeconds=No,fa.asMinutes=Ro,fa.asHours=zo,fa.asDays=Fo,fa.asWeeks=Bo,fa.asMonths=Yo,fa.asQuarters=Vo,fa.asYears=Go,fa.valueOf=Eo,fa._bubble=To,fa.clone=Wo,fa.get=Uo,fa.milliseconds=qo,fa.seconds=Ko,fa.minutes=Zo,fa.hours=Xo,fa.days=Qo,fa.weeks=ea,fa.months=$o,fa.years=Jo,fa.humanize=sa,fa.toISOString=ca,fa.toString=ca,fa.toJSON=ca,fa.locale=si,fa.localeData=ui,fa.toIsoString=j("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ca),fa.lang=li,Y("X",0,0,"unix"),Y("x",0,0,"valueOf"),Le("x",Ie),Le("X",Ee),Be("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e))}),Be("x",function(e,t,n){n._d=new Date(fe(e))}),i.version="2.29.4",o(Xn),i.fn=uo,i.min=er,i.max=tr,i.now=nr,i.utc=g,i.unix=co,i.months=yo,i.isDate=d,i.locale=mn,i.invalid=b,i.duration=Tr,i.isMoment=S,i.weekdays=xo,i.parseZone=fo,i.localeData=bn,i.isDuration=lr,i.monthsShort=bo,i.weekdaysMin=wo,i.defineLocale=vn,i.updateLocale=yn,i.locales=xn,i.weekdaysShort=_o,i.normalizeUnits=ie,i.relativeTimeRounding=oa,i.relativeTimeThreshold=aa,i.calendarFormat=Vr,i.prototype=uo,i.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},i})}).call(this,n("YuTi")(e))},wtjL:function(e,t,n){"use strict";var r=n("Vwaf").HTML_TAG_RE;function i(e){var t=32|e;return t>=97&&t<=122}e.exports=function(e,t){var n,o,a,s,l=e.pos;return!!e.md.options.html&&(a=e.posMax,!(60!==e.src.charCodeAt(l)||l+2>=a)&&(n=e.src.charCodeAt(l+1),!(33!==n&&63!==n&&47!==n&&!i(n))&&(o=e.src.slice(l).match(r),!!o&&(t||(s=e.push("html_inline","",0),s.content=e.src.slice(l,l+o[0].length)),e.pos+=o[0].length,!0))))}},x3X8:function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"a",function(){return a});var r=n("KxfA"),i=n("bYtY");function o(e,t){var n=e.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var o=Object(r["e"])(e,t,n[0]);return null!=o?o+"":null}if(i){for(var a=[],s=0;s=0&&r.push(t[a])}return r.join(" ")}},xVpn:function(e,t,n){"use strict";var r=n("T4UG"),i=n("bYtY"),o=n("DlA6"),a=n("y+Vt"),s=n("3soF"),l=n("NC18");function u(e){return Object(i["r"])(e[0])}function c(e,t){for(var n=[],r=e.length,i=0;i=0;i--)if(!n[i].many.length){var l=n[s].many;if(l.length<=1){if(!s)return n;s=0}o=l.length;var u=Math.ceil(o/2);n[i].many=l.slice(u,o),n[s].many=l.slice(0,u),s++}return n}var f={clone:function(e){for(var t=[],n=1-Math.pow(1-e.path.style.opacity,1/e.count),r=0;r0){var h,p,g=r.getModel("universalTransition").get("delay"),m=Object.assign({setToFinal:!0},d);u(e)&&(h=e,p=t),u(t)&&(h=t,p=e);for(var v=h?h===e:e.length>t.length,y=h?c(p,h):c(v?t:e,[v?e:t]),b=0,x=0;xv))for(var r=n.getIndices(),i=b(n),o=0;o0&&i.group.traverse(function(e){e instanceof a["b"]&&!e.animators.length&&e.animateFrom({style:{opacity:0}},o)})})}function M(e){var t=e.getModel("universalTransition").get("seriesKey");return t||e.id}function C(e){return Object(i["r"])(e)?e.sort().join(","):e}function T(e){if(e.hostModel)return e.hostModel.getModel("universalTransition").get("divideShape")}function I(e,t){var n=Object(i["f"])(),r=Object(i["f"])(),o=Object(i["f"])();return Object(i["j"])(e.oldSeries,function(t,n){var a=e.oldData[n],s=M(t),l=C(s);r.set(l,a),Object(i["r"])(s)&&Object(i["j"])(s,function(e){o.set(e,{data:a,key:l})})}),Object(i["j"])(t.updatedSeries,function(e){if(e.isUniversalTransitionEnabled()&&e.isAnimationEnabled()){var t=e.getData(),a=M(e),s=C(a),l=r.get(s);if(l)n.set(s,{oldSeries:[{divide:T(l),data:l}],newSeries:[{divide:T(t),data:t}]});else if(Object(i["r"])(a)){0;var u=[];Object(i["j"])(a,function(e){var t=r.get(e);t&&u.push({divide:T(t),data:t})}),u.length&&n.set(s,{oldSeries:u,newSeries:[{data:t,divide:T(t)}]})}else{var c=o.get(a);if(c){var f=n.get(c.key);f||(f={oldSeries:[{data:c.data,divide:T(c.data)}],newSeries:[]},n.set(c.key,f)),f.newSeries.push({data:t,divide:T(t)})}}}}),n}function D(e,t){for(var n=0;n=0&&o.push({data:t.oldData[n],divide:T(t.oldData[n]),dim:e.dimension})}),Object(i["j"])(Object(g["p"])(e.to),function(e){var t=D(n.updatedSeries,e);if(t>=0){var r=n.updatedSeries[t].getData();a.push({data:r,divide:T(r),dim:e.dimension})}}),o.length>0&&a.length>0&&j(o,a,r)}function E(e){e.registerUpdateLifecycle("series:beforeupdate",function(e,t,n){Object(i["j"])(Object(g["p"])(n.seriesTransition),function(e){Object(i["j"])(Object(g["p"])(e.to),function(e){for(var t=n.updatedSeries,i=0;i=0;n--)r=t[n],95!==r.marker&&42!==r.marker||-1!==r.end&&(i=t[r.end],s=n>0&&t[n-1].end===r.end+1&&t[n-1].marker===r.marker&&t[n-1].token===r.token-1&&t[r.end+1].token===i.token+1,a=String.fromCharCode(r.marker),o=e.tokens[r.token],o.type=s?"strong_open":"em_open",o.tag=s?"strong":"em",o.nesting=1,o.markup=s?a+a:a,o.content="",o=e.tokens[i.token],o.type=s?"strong_close":"em_close",o.tag=s?"strong":"em",o.nesting=-1,o.markup=s?a+a:a,o.content="",s&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--))}e.exports.tokenize=function(e,t){var n,r,i,o=e.pos,a=e.src.charCodeAt(o);if(t)return!1;if(95!==a&&42!==a)return!1;for(r=e.scanDelims(e.pos,42===a),n=0;nt}return!1}function X(e,t,n,r,i,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o}var Q={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Q[e]=new X(e,0,!1,e,null,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Q[t]=new X(t,1,!1,e[1],null,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){Q[e]=new X(e,2,!1,e.toLowerCase(),null,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Q[e]=new X(e,2,!1,e,null,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Q[e]=new X(e,3,!1,e.toLowerCase(),null,!1)}),["checked","multiple","muted","selected"].forEach(function(e){Q[e]=new X(e,3,!0,e,null,!1)}),["capture","download"].forEach(function(e){Q[e]=new X(e,4,!1,e,null,!1)}),["cols","rows","size","span"].forEach(function(e){Q[e]=new X(e,6,!1,e,null,!1)}),["rowSpan","start"].forEach(function(e){Q[e]=new X(e,5,!1,e.toLowerCase(),null,!1)});var $=/[\-:]([a-z])/g;function J(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace($,J);Q[t]=new X(t,1,!1,e,null,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace($,J);Q[t]=new X(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace($,J);Q[t]=new X(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)}),["tabIndex","crossOrigin"].forEach(function(e){Q[e]=new X(e,1,!1,e.toLowerCase(),null,!1)}),Q.xlinkHref=new X("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach(function(e){Q[e]=new X(e,1,!1,e.toLowerCase(),null,!0)});var ee=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function te(e,t,n,r){var i=Q.hasOwnProperty(t)?Q[t]:null,o=null!==i?0===i.type:!r&&(2=n.length))throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Oe(n)}}function Fe(e,t){var n=Oe(t.value),r=Oe(t.defaultValue);null!=n&&(n=""+n,n!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function Be(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var Ye={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Ve(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Ge(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?Ve(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var We,Ue=function(e){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,i){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,i)})}:e}(function(e,t){if(e.namespaceURI!==Ye.svg||"innerHTML"in e)e.innerHTML=t;else{for(We=We||document.createElement("div"),We.innerHTML=""+t.valueOf().toString()+"",t=We.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function He(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function qe(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ke={animationend:qe("Animation","AnimationEnd"),animationiteration:qe("Animation","AnimationIteration"),animationstart:qe("Animation","AnimationStart"),transitionend:qe("Transition","TransitionEnd")},Ze={},Xe={};function Qe(e){if(Ze[e])return Ze[e];if(!Ke[e])return e;var t,n=Ke[e];for(t in n)if(n.hasOwnProperty(t)&&t in Xe)return Ze[e]=n[t];return e}C&&(Xe=document.createElement("div").style,"AnimationEvent"in window||(delete Ke.animationend.animation,delete Ke.animationiteration.animation,delete Ke.animationstart.animation),"TransitionEvent"in window||delete Ke.transitionend.transition);var $e=Qe("animationend"),Je=Qe("animationiteration"),et=Qe("animationstart"),tt=Qe("transitionend"),nt="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),rt=new("function"===typeof WeakMap?WeakMap:Map);function it(e){var t=rt.get(e);return void 0===t&&(t=new Map,rt.set(e,t)),t}function ot(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{t=e,0!==(1026&t.effectTag)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function at(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(e=e.alternate,null!==e&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function st(e){if(ot(e)!==e)throw Error(a(188))}function lt(e){var t=e.alternate;if(!t){if(t=ot(e),null===t)throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var i=n.return;if(null===i)break;var o=i.alternate;if(null===o){if(r=i.return,null!==r){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return st(i),e;if(o===r)return st(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var s=!1,l=i.child;l;){if(l===n){s=!0,n=i,r=o;break}if(l===r){s=!0,r=i,n=o;break}l=l.sibling}if(!s){for(l=o.child;l;){if(l===n){s=!0,n=o,r=i;break}if(l===r){s=!0,r=o,n=i;break}l=l.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}function ut(e){if(e=lt(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function ct(e,t){if(null==t)throw Error(a(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function ft(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var dt=null;function ht(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;rvt.length&&vt.push(e)}function bt(e,t,n,r){if(vt.length){var i=vt.pop();return i.topLevelType=e,i.eventSystemFlags=r,i.nativeEvent=t,i.targetInst=n,i}return{topLevelType:e,eventSystemFlags:r,nativeEvent:t,targetInst:n,ancestors:[]}}function xt(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r=n;if(3===r.tag)r=r.stateNode.containerInfo;else{for(;r.return;)r=r.return;r=3!==r.tag?null:r.stateNode.containerInfo}if(!r)break;t=n.tag,5!==t&&6!==t||e.ancestors.push(n),n=Yn(r)}while(n);for(n=0;n=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=xn(r)}}function wn(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?wn(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function On(){for(var e=window,t=bn();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;e=t.contentWindow,t=bn(e.document)}return t}function Sn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var kn="$",jn="/$",Mn="$?",Cn="$!",Tn=null,In=null;function Dn(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function An(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var En="function"===typeof setTimeout?setTimeout:void 0,Pn="function"===typeof clearTimeout?clearTimeout:void 0;function Ln(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Nn(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if(n===kn||n===Cn||n===Mn){if(0===t)return e;t--}else n===jn&&t++}e=e.previousSibling}return null}var Rn=Math.random().toString(36).slice(2),zn="__reactInternalInstance$"+Rn,Fn="__reactEventHandlers$"+Rn,Bn="__reactContainere$"+Rn;function Yn(e){var t=e[zn];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Bn]||n[zn]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Nn(e);null!==e;){if(n=e[zn])return n;e=Nn(e)}return t}e=n,n=e.parentNode}return null}function Vn(e){return e=e[zn]||e[Bn],!e||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function Gn(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function Wn(e){return e[Fn]||null}function Un(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function Hn(e,t){var n=e.stateNode;if(!n)return null;var r=g(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!("button"===e||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!==typeof n)throw Error(a(231,t,typeof n));return n}function qn(e,t,n){(t=Hn(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=ct(n._dispatchListeners,t),n._dispatchInstances=ct(n._dispatchInstances,e))}function Kn(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=Un(t);for(t=n.length;0this.eventPool.length&&this.eventPool.push(e)}function sr(e){e.eventPool=[],e.getPooled=or,e.release=ar}i(ir.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nr)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nr)},persist:function(){this.isPersistent=nr},isPersistent:rr,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=rr,this._dispatchInstances=this._dispatchListeners=null}}),ir.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},ir.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var o=new t;return i(o,n.prototype),n.prototype=o,n.prototype.constructor=n,n.Interface=i({},r.Interface,e),n.extend=r.extend,sr(n),n},sr(ir);var lr=ir.extend({data:null}),ur=ir.extend({data:null}),cr=[9,13,27,32],fr=C&&"CompositionEvent"in window,dr=null;C&&"documentMode"in document&&(dr=document.documentMode);var hr=C&&"TextEvent"in window&&!dr,pr=C&&(!fr||dr&&8=dr),gr=String.fromCharCode(32),mr={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},vr=!1;function yr(e,t){switch(e){case"keyup":return-1!==cr.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function br(e){return e=e.detail,"object"===typeof e&&"data"in e?e.data:null}var xr=!1;function _r(e,t){switch(e){case"compositionend":return br(t);case"keypress":return 32!==t.which?null:(vr=!0,gr);case"textInput":return e=t.data,e===gr&&vr?null:e;default:return null}}function wr(e,t){if(xr)return"compositionend"===e||!fr&&yr(e,t)?(e=tr(),er=Jn=$n=null,xr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=document.documentMode,ii={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},oi=null,ai=null,si=null,li=!1;function ui(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return li||null==oi||oi!==bn(n)?null:(n=oi,"selectionStart"in n&&Sn(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),si&&ni(si,n)?null:(si=n,e=ir.getPooled(ii.select,ai,e,t),e.type="select",e.target=oi,Qn(e),e))}var ci={eventTypes:ii,extractEvents:function(e,t,n,r,i,o){if(i=o||(r.window===r?r.document:9===r.nodeType?r:r.ownerDocument),!(o=!i)){e:{i=it(i),o=j.onSelect;for(var a=0;aki||(e.current=Si[ki],Si[ki]=null,ki--)}function Mi(e,t){ki++,Si[ki]=e.current,e.current=t}var Ci={},Ti={current:Ci},Ii={current:!1},Di=Ci;function Ai(e,t){var n=e.type.contextTypes;if(!n)return Ci;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Ei(e){return e=e.childContextTypes,null!==e&&void 0!==e}function Pi(){ji(Ii),ji(Ti)}function Li(e,t,n){if(Ti.current!==Ci)throw Error(a(168));Mi(Ti,t),Mi(Ii,n)}function Ni(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!==typeof r.getChildContext)return n;for(var o in r=r.getChildContext(),r)if(!(o in e))throw Error(a(108,_e(t)||"Unknown",o));return i({},n,{},r)}function Ri(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ci,Di=Ti.current,Mi(Ti,e),Mi(Ii,Ii.current),!0}function zi(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Ni(e,t,Di),r.__reactInternalMemoizedMergedChildContext=e,ji(Ii),ji(Ti),Mi(Ti,e)):ji(Ii),Mi(Ii,n)}var Fi=o.unstable_runWithPriority,Bi=o.unstable_scheduleCallback,Yi=o.unstable_cancelCallback,Vi=o.unstable_requestPaint,Gi=o.unstable_now,Wi=o.unstable_getCurrentPriorityLevel,Ui=o.unstable_ImmediatePriority,Hi=o.unstable_UserBlockingPriority,qi=o.unstable_NormalPriority,Ki=o.unstable_LowPriority,Zi=o.unstable_IdlePriority,Xi={},Qi=o.unstable_shouldYield,$i=void 0!==Vi?Vi:function(){},Ji=null,eo=null,to=!1,no=Gi(),ro=1e4>no?Gi:function(){return Gi()-no};function io(){switch(Wi()){case Ui:return 99;case Hi:return 98;case qi:return 97;case Ki:return 96;case Zi:return 95;default:throw Error(a(332))}}function oo(e){switch(e){case 99:return Ui;case 98:return Hi;case 97:return qi;case 96:return Ki;case 95:return Zi;default:throw Error(a(332))}}function ao(e,t){return e=oo(e),Fi(e,t)}function so(e,t,n){return e=oo(e),Bi(e,t,n)}function lo(e){return null===Ji?(Ji=[e],eo=Bi(Ui,co)):Ji.push(e),Xi}function uo(){if(null!==eo){var e=eo;eo=null,Yi(e)}co()}function co(){if(!to&&null!==Ji){to=!0;var e=0;try{var t=Ji;ao(99,function(){for(;e=t&&(Ka=!0),e.firstContext=null)}function wo(e,t){if(vo!==e&&!1!==t&&0!==t)if("number"===typeof t&&1073741823!==t||(vo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===mo){if(null===go)throw Error(a(308));mo=t,go.dependencies={expirationTime:0,firstContext:t,responders:null}}else mo=mo.next=t;return e._currentValue}var Oo=!1;function So(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function ko(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function jo(e,t){return e={expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null},e.next=e}function Mo(e,t){if(e=e.updateQueue,null!==e){e=e.shared;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function Co(e,t){var n=e.alternate;null!==n&&ko(n,e),e=e.updateQueue,n=e.baseQueue,null===n?(e.baseQueue=t.next=t,t.next=t):(t.next=n.next,n.next=t)}function To(e,t,n,r){var o=e.updateQueue;Oo=!1;var a=o.baseQueue,s=o.shared.pending;if(null!==s){if(null!==a){var l=a.next;a.next=s.next,s.next=l}a=s,o.shared.pending=null,l=e.alternate,null!==l&&(l=l.updateQueue,null!==l&&(l.baseQueue=s))}if(null!==a){l=a.next;var u=o.baseState,c=0,f=null,d=null,h=null;if(null!==l){var p=l;do{if(s=p.expirationTime,sc&&(c=s)}else{null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:p.suspenseConfig,tag:p.tag,payload:p.payload,callback:p.callback,next:null}),Nl(s,p.suspenseConfig);e:{var m=e,v=p;switch(s=t,g=n,v.tag){case 1:if(m=v.payload,"function"===typeof m){u=m.call(g,u,s);break e}u=m;break e;case 3:m.effectTag=-4097&m.effectTag|64;case 0:if(m=v.payload,s="function"===typeof m?m.call(g,u,s):m,null===s||void 0===s)break e;u=i({},u,s);break e;case 2:Oo=!0}}null!==p.callback&&(e.effectTag|=32,s=o.effects,null===s?o.effects=[p]:s.push(p))}if(p=p.next,null===p||p===l){if(s=o.shared.pending,null===s)break;p=a.next=s.next,s.next=l,o.baseQueue=a=s,o.shared.pending=null}}while(1)}null===h?f=u:h.next=d,o.baseState=f,o.baseQueue=h,Rl(c),e.expirationTime=c,e.memoizedState=u}}function Io(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;tg?(m=f,f=null):m=f.sibling;var v=h(i,f,s[g],l);if(null===v){null===f&&(f=m);break}e&&f&&null===v.alternate&&t(i,f),a=o(v,a,g),null===c?u=v:c.sibling=v,c=v,f=m}if(g===s.length)return n(i,f),u;if(null===f){for(;gm?(v=g,g=null):v=g.sibling;var b=h(i,g,y.value,u);if(null===b){null===g&&(g=v);break}e&&g&&null===b.alternate&&t(i,g),s=o(b,s,m),null===f?c=b:f.sibling=b,f=b,g=v}if(y.done)return n(i,g),c;if(null===g){for(;!y.done;m++,y=l.next())y=d(i,y.value,u),null!==y&&(s=o(y,s,m),null===f?c=y:f.sibling=y,f=y);return c}for(g=r(i,g);!y.done;m++,y=l.next())y=p(g,i,m,y.value,u),null!==y&&(e&&null!==y.alternate&&g.delete(null===y.key?m:y.key),s=o(y,s,m),null===f?c=y:f.sibling=y,f=y);return e&&g.forEach(function(e){return t(i,e)}),c}return function(e,r,o,l){var u="object"===typeof o&&null!==o&&o.type===ae&&null===o.key;u&&(o=o.props.children);var c="object"===typeof o&&null!==o;if(c)switch(o.$$typeof){case ie:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){switch(u.tag){case 7:if(o.type===ae){n(e,u.sibling),r=i(u,o.props.children),r.return=e,e=r;break e}break;default:if(u.elementType===o.type){n(e,u.sibling),r=i(u,o.props),r.ref=Bo(e,u,o),r.return=e,e=r;break e}}n(e,u);break}t(e,u),u=u.sibling}o.type===ae?(r=su(o.props.children,e.mode,l,o.key),r.return=e,e=r):(l=au(o.type,o.key,o.props,null,e.mode,l),l.ref=Bo(e,r,o),l.return=e,e=l)}return s(e);case oe:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),r=i(r,o.children||[]),r.return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}r=uu(o,e.mode,l),r.return=e,e=r}return s(e)}if("string"===typeof o||"number"===typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),r=i(r,o),r.return=e,e=r):(n(e,r),r=lu(o,e.mode,l),r.return=e,e=r),s(e);if(Fo(o))return g(e,r,o,l);if(be(o))return m(e,r,o,l);if(c&&Yo(e,o),"undefined"===typeof o&&!u)switch(e.tag){case 1:case 0:throw e=e.type,Error(a(152,e.displayName||e.name||"Component"))}return n(e,r)}}var Go=Vo(!0),Wo=Vo(!1),Uo={},Ho={current:Uo},qo={current:Uo},Ko={current:Uo};function Zo(e){if(e===Uo)throw Error(a(174));return e}function Xo(e,t){switch(Mi(Ko,t),Mi(qo,e),Mi(Ho,Uo),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Ge(null,"");break;default:e=8===e?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Ge(t,e)}ji(Ho),Mi(Ho,t)}function Qo(){ji(Ho),ji(qo),ji(Ko)}function $o(e){Zo(Ko.current);var t=Zo(Ho.current),n=Ge(t,e.type);t!==n&&(Mi(qo,e),Mi(Ho,n))}function Jo(e){qo.current===e&&(ji(Ho),ji(qo))}var ea={current:0};function ta(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(n=n.dehydrated,null===n||n.data===Mn||n.data===Cn))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function na(e,t){return{responder:e,props:t}}var ra=ee.ReactCurrentDispatcher,ia=ee.ReactCurrentBatchConfig,oa=0,aa=null,sa=null,la=null,ua=!1;function ca(){throw Error(a(321))}function fa(e,t){if(null===t)return!1;for(var n=0;no))throw Error(a(301));o+=1,la=sa=null,t.updateQueue=null,ra.current=Ra,e=n(r,i)}while(t.expirationTime===oa)}if(ra.current=Pa,t=null!==sa&&null!==sa.next,oa=0,la=sa=aa=null,ua=!1,t)throw Error(a(300));return e}function ha(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===la?aa.memoizedState=la=e:la=la.next=e,la}function pa(){if(null===sa){var e=aa.alternate;e=null!==e?e.memoizedState:null}else e=sa.next;var t=null===la?aa.memoizedState:la.next;if(null!==t)la=t,sa=e;else{if(null===e)throw Error(a(310));sa=e,e={memoizedState:sa.memoizedState,baseState:sa.baseState,baseQueue:sa.baseQueue,queue:sa.queue,next:null},null===la?aa.memoizedState=la=e:la=la.next=e}return la}function ga(e,t){return"function"===typeof t?t(e):t}function ma(e){var t=pa(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=sa,i=r.baseQueue,o=n.pending;if(null!==o){if(null!==i){var s=i.next;i.next=o.next,o.next=s}r.baseQueue=i=o,n.pending=null}if(null!==i){i=i.next,r=r.baseState;var l=s=o=null,u=i;do{var c=u.expirationTime;if(caa.expirationTime&&(aa.expirationTime=c,Rl(c))}else null!==l&&(l=l.next={expirationTime:1073741823,suspenseConfig:u.suspenseConfig,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),Nl(c,u.suspenseConfig),r=u.eagerReducer===e?u.eagerState:e(r,u.action);u=u.next}while(null!==u&&u!==i);null===l?o=r:l.next=s,ei(r,t.memoizedState)||(Ka=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=l,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function va(e){var t=pa(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,o=t.memoizedState;if(null!==i){n.pending=null;var s=i=i.next;do{o=e(o,s.action),s=s.next}while(s!==i);ei(o,t.memoizedState)||(Ka=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function ya(e){var t=ha();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ga,lastRenderedState:e},e=e.dispatch=Ea.bind(null,aa,e),[t.memoizedState,e]}function ba(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=aa.updateQueue,null===t?(t={lastEffect:null},aa.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,null===n?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function xa(){return pa().memoizedState}function _a(e,t,n,r){var i=ha();aa.effectTag|=e,i.memoizedState=ba(1|t,n,void 0,void 0===r?null:r)}function wa(e,t,n,r){var i=pa();r=void 0===r?null:r;var o=void 0;if(null!==sa){var a=sa.memoizedState;if(o=a.destroy,null!==r&&fa(r,a.deps))return void ba(t,n,o,r)}aa.effectTag|=e,i.memoizedState=ba(1|t,n,o,r)}function Oa(e,t){return _a(516,4,e,t)}function Sa(e,t){return wa(516,4,e,t)}function ka(e,t){return wa(4,2,e,t)}function ja(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ma(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,wa(4,2,ja.bind(null,t,e),n)}function Ca(){}function Ta(e,t){return ha().memoizedState=[e,void 0===t?null:t],e}function Ia(e,t){var n=pa();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&fa(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Da(e,t){var n=pa();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&fa(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Aa(e,t,n){var r=io();ao(98>r?98:r,function(){e(!0)}),ao(97<\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=l.createElement(o,{is:r.is}):(e=l.createElement(o),"select"===o&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,o),e[zn]=t,e[Fn]=r,is(e,t,!1,!1),t.stateNode=e,l=gn(o,r),o){case"iframe":case"object":case"embed":nn("load",e),u=r;break;case"video":case"audio":for(u=0;ur.tailExpiration&&1t)&&yl.set(e,t)))}}function kl(e,t){e.expirationTimee?n:e,2>=e&&t!==e?0:e}function Ml(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=lo(Tl.bind(null,e));else{var t=jl(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=wl();if(1073741823===t?r=99:1===t||2===t?r=95:(r=10*(1073741821-t)-10*(1073741821-r),r=0>=r?99:250>=r?98:5250>=r?97:95),null!==n){var i=e.callbackPriority;if(e.callbackExpirationTime===t&&i>=r)return;n!==Xi&&Yi(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?lo(Tl.bind(null,e)):so(r,Cl.bind(null,e),{timeout:10*(1073741821-t)-ro()}),e.callbackNode=t}}}function Cl(e,t){if(_l=0,t)return t=wl(),pu(e,t),Ml(e),null;var n=jl(e);if(0!==n){if(t=e.callbackNode,($s&(Ws|Us))!==Vs)throw Error(a(327));if(Hl(),e===Js&&n===tl||El(e,n),null!==el){var r=$s;$s|=Ws;var i=Ll();do{try{Fl();break}catch(t){Pl(e,t)}}while(1);if(yo(),$s=r,Bs.current=i,nl===qs)throw t=rl,El(e,n),du(e,n),Ml(e),t;if(null===el)switch(i=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,r=nl,Js=null,r){case Hs:case qs:throw Error(a(345));case Ks:pu(e,2=n){e.lastPingedTime=n,El(e,n);break}}if(o=jl(e),0!==o&&o!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}e.timeoutHandle=En(Gl.bind(null,e),i);break}Gl(e);break;case Xs:if(du(e,n),r=e.lastSuspendedTime,n===r&&(e.nextKnownPendingLevel=Vl(i)),ll&&(i=e.lastPingedTime,0===i||i>=n)){e.lastPingedTime=n,El(e,n);break}if(i=jl(e),0!==i&&i!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}if(1073741823!==ol?r=10*(1073741821-ol)-ro():1073741823===il?r=0:(r=10*(1073741821-il)-5e3,i=ro(),n=10*(1073741821-n)-i,r=i-r,0>r&&(r=0),r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Fs(r/1960))-r,n=r?r=0:(i=0|s.busyDelayMs,o=ro()-(10*(1073741821-o)-(0|s.timeoutMs||5e3)),r=o<=i?0:i+r-o),10 component higher in the tree to provide a loading indicator or placeholder to display."+we(a))}nl!==Qs&&(nl=Ks),s=vs(s,a),f=o;do{switch(f.tag){case 3:l=s,f.effectTag|=4096,f.expirationTime=t;var x=Ns(f,l,t);Co(f,x);break e;case 1:l=s;var _=f.type,w=f.stateNode;if(0===(64&f.effectTag)&&("function"===typeof _.getDerivedStateFromError||null!==w&&"function"===typeof w.componentDidCatch&&(null===pl||!pl.has(w)))){f.effectTag|=4096,f.expirationTime=t;var O=Rs(f,l,t);Co(f,O);break e}}f=f.return}while(null!==f)}el=Yl(el)}catch(e){t=e;continue}break}while(1)}function Ll(){var e=Bs.current;return Bs.current=Pa,null===e?Pa:e}function Nl(e,t){esl&&(sl=e)}function zl(){for(;null!==el;)el=Bl(el)}function Fl(){for(;null!==el&&!Qi();)el=Bl(el)}function Bl(e){var t=zs(e.alternate,e,tl);return e.memoizedProps=e.pendingProps,null===t&&(t=Yl(e)),Ys.current=null,t}function Yl(e){el=e;do{var t=el.alternate;if(e=el.return,0===(2048&el.effectTag)){if(t=gs(t,el,tl),1===tl||1!==el.childExpirationTime){for(var n=0,r=el.child;null!==r;){var i=r.expirationTime,o=r.childExpirationTime;i>n&&(n=i),o>n&&(n=o),r=r.sibling}el.childExpirationTime=n}if(null!==t)return t;null!==e&&0===(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=el.firstEffect),null!==el.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=el.firstEffect),e.lastEffect=el.lastEffect),1e?t:e}function Gl(e){var t=io();return ao(99,Wl.bind(null,e,t)),null}function Wl(e,t){do{Hl()}while(null!==ml);if(($s&(Ws|Us))!==Vs)throw Error(a(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var i=Vl(n);if(e.firstPendingTime=i,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Js&&(el=Js=null,tl=0),1l&&(c=l,l=s,s=c),c=_n(x,s),f=_n(x,l),c&&f&&(1!==w.rangeCount||w.anchorNode!==c.node||w.anchorOffset!==c.offset||w.focusNode!==f.node||w.focusOffset!==f.offset)&&(_=_.createRange(),_.setStart(c.node,c.offset),w.removeAllRanges(),s>l?(w.addRange(_),w.extend(f.node,f.offset)):(_.setEnd(f.node,f.offset),w.addRange(_)))))),_=[];for(w=x;w=w.parentNode;)1===w.nodeType&&_.push({element:w,left:w.scrollLeft,top:w.scrollTop});for("function"===typeof x.focus&&x.focus(),x=0;x<_.length;x++)w=_[x],w.element.scrollLeft=w.left,w.element.scrollTop=w.top}tn=!!Tn,In=Tn=null,e.current=n,fl=i;do{try{for(x=e;null!==fl;){var O=fl.effectTag;if(36&O&&ks(x,fl.alternate,fl),128&O){_=void 0;var S=fl.ref;if(null!==S){var k=fl.stateNode;switch(fl.tag){case 5:_=k;break;default:_=k}"function"===typeof S?S(_):S.current=_}}fl=fl.nextEffect}}catch(e){if(null===fl)throw Error(a(330));Zl(fl,e),fl=fl.nextEffect}}while(null!==fl);fl=null,$i(),$s=o}else e.current=n;if(gl)gl=!1,ml=e,vl=t;else for(fl=i;null!==fl;)t=fl.nextEffect,fl.nextEffect=null,fl=t;if(t=e.firstPendingTime,0===t&&(pl=null),1073741823===t?e===xl?bl++:(bl=0,xl=e):bl=0,"function"===typeof $l&&$l(n.stateNode,r),Ml(e),dl)throw dl=!1,e=hl,hl=null,e;return($s&Gs)!==Vs?null:(uo(),null)}function Ul(){for(;null!==fl;){var e=fl.effectTag;0!==(256&e)&&ws(fl.alternate,fl),0===(512&e)||gl||(gl=!0,so(97,function(){return Hl(),null})),fl=fl.nextEffect}}function Hl(){if(90!==vl){var e=97=n?us(e,t,n):(Mi(ea,1&ea.current),t=hs(e,t,n),null!==t?t.sibling:null);Mi(ea,1&ea.current);break;case 19:if(r=t.childExpirationTime>=n,0!==(64&e.effectTag)){if(r)return ds(e,t,n);t.effectTag|=64}if(i=t.memoizedState,null!==i&&(i.rendering=null,i.tail=null),Mi(ea,ea.current),!r)return null}return hs(e,t,n)}Ka=!1}}else Ka=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=Ai(t,Ti.current),_o(t,n),i=da(null,t,r,e,i,n),t.effectTag|=1,"object"===typeof i&&null!==i&&"function"===typeof i.render&&void 0===i.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ei(r)){var o=!0;Ri(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,So(t);var s=r.getDerivedStateFromProps;"function"===typeof s&&Eo(t,r,s,e),i.updater=Po,t.stateNode=i,i._reactInternalFiber=t,zo(t,r,e,n),t=ns(null,t,r,!0,o,n)}else t.tag=0,Za(null,t,i,n),t=t.child;return t;case 16:e:{if(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,xe(i),1!==i._status)throw i._result;switch(i=i._result,t.type=i,o=t.tag=iu(i),e=ho(i,e),o){case 0:t=es(null,t,i,e,n);break e;case 1:t=ts(null,t,i,e,n);break e;case 11:t=Xa(null,t,i,e,n);break e;case 14:t=Qa(null,t,i,ho(i.type,e),r,n);break e}throw Error(a(306,i,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:ho(r,i),es(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:ho(r,i),ts(e,t,r,i,n);case 3:if(rs(t),r=t.updateQueue,null===e||null===r)throw Error(a(282));if(r=t.pendingProps,i=t.memoizedState,i=null!==i?i.element:null,ko(e,t),To(t,r,null,n),r=t.memoizedState.element,r===i)Ha(),t=hs(e,t,n);else{if((i=t.stateNode.hydrate)&&(Fa=Ln(t.stateNode.containerInfo.firstChild),za=t,i=Ba=!0),i)for(n=Wo(t,null,r,n),t.child=n;n;)n.effectTag=-3&n.effectTag|1024,n=n.sibling;else Za(e,t,r,n),Ha();t=t.child}return t;case 5:return $o(t),null===e&&Ga(t),r=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,s=i.children,An(r,i)?s=null:null!==o&&An(r,o)&&(t.effectTag|=16),Ja(e,t),4&t.mode&&1!==n&&i.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(Za(e,t,s,n),t=t.child),t;case 6:return null===e&&Ga(t),null;case 13:return us(e,t,n);case 4:return Xo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Go(t,null,r,n):Za(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:ho(r,i),Xa(e,t,r,i,n);case 7:return Za(e,t,t.pendingProps,n),t.child;case 8:return Za(e,t,t.pendingProps.children,n),t.child;case 12:return Za(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value;var l=t.type._context;if(Mi(po,l._currentValue),l._currentValue=o,null!==s)if(l=s.value,o=ei(l,o)?0:0|("function"===typeof r._calculateChangedBits?r._calculateChangedBits(l,o):1073741823),0===o){if(s.children===i.children&&!Ii.current){t=hs(e,t,n);break e}}else for(l=t.child,null!==l&&(l.return=t);null!==l;){var u=l.dependencies;if(null!==u){s=l.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!==(c.observedBits&o)){1===l.tag&&(c=jo(n,null),c.tag=2,Mo(l,c)),l.expirationTime=t&&e<=t}function du(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;nt||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function hu(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function pu(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function gu(e,t,n,r){var i=t.current,o=wl(),s=Do.suspense;o=Ol(o,i,s);e:if(n){n=n._reactInternalFiber;t:{if(ot(n)!==n||1!==n.tag)throw Error(a(170));var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(Ei(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw Error(a(171))}if(1===n.tag){var u=n.type;if(Ei(u)){n=Ni(n,u,l);break e}}n=l}else n=Ci;return null===t.context?t.context=n:t.pendingContext=n,t=jo(o,s),t.payload={element:e},r=void 0===r?null:r,null!==r&&(t.callback=r),Mo(i,t),Sl(i,o),o}function mu(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function vu(e,t){e=e.memoizedState,null!==e&&null!==e.dehydrated&&e.retryTime=m)return!1;if(v=u,c=e.md.helpers.parseLinkDestination(e.src,u,e.posMax),c.ok){for(h=e.md.normalizeLink(c.str),e.md.validateLink(h)?u=c.pos:h="",v=u;u=m||41!==e.src.charCodeAt(u))&&(y=!0),u++}if(y){if("undefined"===typeof e.env.references)return!1;if(u=0?a=e.src.slice(v,u++):u=s+1):u=s+1,a||(a=e.src.slice(l,s)),f=e.env.references[r(a)],!f)return e.pos=g,!1;h=f.href,p=f.title}return t||(e.pos=l,e.posMax=s,d=e.push("link_open","a",1),d.attrs=n=[["href",h]],p&&n.push(["title",p]),e.md.inline.tokenize(e),d=e.push("link_close","a",-1)),e.pos=u,e.posMax=m,!0}},zTMp:function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return f}),n.d(t,"c",function(){return d}),n.d(t,"d",function(){return h}),n.d(t,"e",function(){return g});var r=n("Qxkt"),i=n("bYtY");function o(e,t){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return a(n,e,t),n.seriesInvolved&&l(n,e),n}function a(e,t,n){var r=t.getComponent("tooltip"),o=t.getComponent("axisPointer"),a=o.get("link",!0)||[],l=[];Object(i["j"])(n.getCoordinateSystems(),function(n){if(n.axisPointerEnabled){var c=g(n.model),f=e.coordSysAxesInfo[c]={};e.coordSysMap[c]=n;var d=n.model,h=d.getModel("tooltip",r);if(Object(i["j"])(n.getAxes(),Object(i["h"])(b,!1,null)),n.getTooltipAxes&&r&&h.get("show")){var m="axis"===h.get("trigger"),v="cross"===h.get(["axisPointer","type"]),y=n.getTooltipAxes(h.get(["axisPointer","axis"]));(m||v)&&Object(i["j"])(y.baseAxes,Object(i["h"])(b,!v||"cross",m)),v&&Object(i["j"])(y.otherAxes,Object(i["h"])(b,"cross",!1))}}function b(r,i,c){var d=c.model.getModel("axisPointer",o),m=d.get("show");if(m&&("auto"!==m||r||p(d))){null==i&&(i=d.get("triggerTooltip")),d=r?s(c,h,o,t,r,i):d;var v=d.get("snap"),y=g(c.model),b=i||v||"category"===c.type,x=e.axesInfo[y]={key:y,axis:c,coordSys:n,axisPointerModel:d,triggerTooltip:i,involveSeries:b,snap:v,useHandle:p(d),seriesModels:[],linkGroup:null};f[y]=x,e.seriesInvolved=e.seriesInvolved||b;var _=u(a,c);if(null!=_){var w=l[_]||(l[_]={axesInfo:{}});w.axesInfo[y]=x,w.mapper=a[_].mapper,x.linkGroup=w}}}})}function s(e,t,n,o,a,s){var l=t.getModel("axisPointer"),u=["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],c={};Object(i["j"])(u,function(e){c[e]=Object(i["d"])(l.get(e))}),c.snap="category"!==e.type&&!!s,"cross"===l.get("type")&&(c.type="line");var f=c.label||(c.label={});if(null==f.show&&(f.show=!1),"cross"===a){var d=l.get(["label","show"]);if(f.show=null==d||d,!s){var h=c.lineStyle=l.get("crossStyle");h&&Object(i["i"])(f,h.textStyle)}}return e.model.getModel("axisPointer",new r["a"](c,n,o))}function l(e,t){t.eachSeries(function(t){var n=t.coordinateSystem,r=t.get(["tooltip","trigger"],!0),o=t.get(["tooltip","show"],!0);n&&"none"!==r&&!1!==r&&"item"!==r&&!1!==o&&!1!==t.get(["axisPointer","show"],!0)&&Object(i["j"])(e.coordSysAxesInfo[g(n.model)],function(e){var r=e.axis;n.getAxis(r.dim)===r&&(e.seriesModels.push(t),null==e.seriesDataCount&&(e.seriesDataCount=0),e.seriesDataCount+=t.getData().count())})})}function u(e,t){for(var n=t.model,r=t.dim,i=0;i=0||e===t}function f(e){var t=d(e);if(t){var n=t.axisPointerModel,r=t.axis.scale,i=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=r.parse(a));var s=p(n);null==o&&(i.status=s?"show":"hide");var l=r.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/theme/v2board/assets/static/Simple-Line-Icons.f33df365.eot b/public/theme/v2board/assets/static/Simple-Line-Icons.f33df365.eot deleted file mode 100644 index f0ca6e8..0000000 Binary files a/public/theme/v2board/assets/static/Simple-Line-Icons.f33df365.eot and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-brands-400.14c590d1.eot b/public/theme/v2board/assets/static/fa-brands-400.14c590d1.eot deleted file mode 100644 index 85d81eb..0000000 Binary files a/public/theme/v2board/assets/static/fa-brands-400.14c590d1.eot and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-brands-400.3e1b2a65.woff2 b/public/theme/v2board/assets/static/fa-brands-400.3e1b2a65.woff2 deleted file mode 100644 index 1727af3..0000000 Binary files a/public/theme/v2board/assets/static/fa-brands-400.3e1b2a65.woff2 and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-brands-400.5e8aa9ea.ttf b/public/theme/v2board/assets/static/fa-brands-400.5e8aa9ea.ttf deleted file mode 100644 index aa1687d..0000000 Binary files a/public/theme/v2board/assets/static/fa-brands-400.5e8aa9ea.ttf and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-brands-400.91fd86e5.svg b/public/theme/v2board/assets/static/fa-brands-400.91fd86e5.svg deleted file mode 100644 index c2fcfa1..0000000 --- a/public/theme/v2board/assets/static/fa-brands-400.91fd86e5.svg +++ /dev/null @@ -1,3450 +0,0 @@ - - - - - - Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 - By Robert Madole - Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/theme/v2board/assets/static/fa-brands-400.df02c782.woff b/public/theme/v2board/assets/static/fa-brands-400.df02c782.woff deleted file mode 100644 index 6d1c614..0000000 Binary files a/public/theme/v2board/assets/static/fa-brands-400.df02c782.woff and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-regular-400.285a9d2a.ttf b/public/theme/v2board/assets/static/fa-regular-400.285a9d2a.ttf deleted file mode 100644 index 34629a6..0000000 Binary files a/public/theme/v2board/assets/static/fa-regular-400.285a9d2a.ttf and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-regular-400.5623624d.woff b/public/theme/v2board/assets/static/fa-regular-400.5623624d.woff deleted file mode 100644 index e115b8b..0000000 Binary files a/public/theme/v2board/assets/static/fa-regular-400.5623624d.woff and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-regular-400.6b5ed912.svg b/public/theme/v2board/assets/static/fa-regular-400.6b5ed912.svg deleted file mode 100644 index 2971574..0000000 --- a/public/theme/v2board/assets/static/fa-regular-400.6b5ed912.svg +++ /dev/null @@ -1,804 +0,0 @@ - - - - - - Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 - By Robert Madole - Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/theme/v2board/assets/static/fa-regular-400.aa66d0e0.eot b/public/theme/v2board/assets/static/fa-regular-400.aa66d0e0.eot deleted file mode 100644 index ea607ca..0000000 Binary files a/public/theme/v2board/assets/static/fa-regular-400.aa66d0e0.eot and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-regular-400.ac21cac3.woff2 b/public/theme/v2board/assets/static/fa-regular-400.ac21cac3.woff2 deleted file mode 100644 index cb441b7..0000000 Binary files a/public/theme/v2board/assets/static/fa-regular-400.ac21cac3.woff2 and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-solid-900.3ded831d.woff b/public/theme/v2board/assets/static/fa-solid-900.3ded831d.woff deleted file mode 100644 index 7adb9d5..0000000 Binary files a/public/theme/v2board/assets/static/fa-solid-900.3ded831d.woff and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-solid-900.42e1fbd2.eot b/public/theme/v2board/assets/static/fa-solid-900.42e1fbd2.eot deleted file mode 100644 index 4101e31..0000000 Binary files a/public/theme/v2board/assets/static/fa-solid-900.42e1fbd2.eot and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-solid-900.649208f1.svg b/public/theme/v2board/assets/static/fa-solid-900.649208f1.svg deleted file mode 100644 index acb1ae7..0000000 --- a/public/theme/v2board/assets/static/fa-solid-900.649208f1.svg +++ /dev/null @@ -1,4650 +0,0 @@ - - - - - - Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 - By Robert Madole - Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/theme/v2board/assets/static/fa-solid-900.896e20e2.ttf b/public/theme/v2board/assets/static/fa-solid-900.896e20e2.ttf deleted file mode 100644 index 704a2a9..0000000 Binary files a/public/theme/v2board/assets/static/fa-solid-900.896e20e2.ttf and /dev/null differ diff --git a/public/theme/v2board/assets/static/fa-solid-900.d6d8d5da.woff2 b/public/theme/v2board/assets/static/fa-solid-900.d6d8d5da.woff2 deleted file mode 100644 index ac6a6e3..0000000 Binary files a/public/theme/v2board/assets/static/fa-solid-900.d6d8d5da.woff2 and /dev/null differ diff --git a/public/theme/v2board/assets/theme/green.css b/public/theme/v2board/assets/theme/green.css deleted file mode 100644 index 64557ba..0000000 --- a/public/theme/v2board/assets/theme/green.css +++ /dev/null @@ -1,4 +0,0 @@ -/* antd */ -.ant-affix{z-index:10}.ant-alert{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-radius:4px}.ant-alert-icon{top:11.5px}.ant-alert-description{font-size:14px}.ant-alert-success{background-color:#f6ffed;border:1px solid #b7eb8f}.ant-alert-success .ant-alert-icon{color:#52c41a}.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}.ant-alert-info .ant-alert-icon{color:#1890ff}.ant-alert-warning{background-color:#fffbe6;border:1px solid #ffe58f}.ant-alert-warning .ant-alert-icon{color:#faad14}.ant-alert-error{background-color:#fff1f0;border:1px solid #ffa39e}.ant-alert-error .ant-alert-icon{color:#f5222d}.ant-alert-close-icon{font-size:12px;border:0}.ant-alert-close-icon .anticon-close{color:rgba(0,0,0,0.45)}.ant-alert-close-icon .anticon-close:hover{color:rgba(0,0,0,0.75)}.ant-alert-close-text{color:rgba(0,0,0,0.45)}.ant-alert-close-text:hover{color:rgba(0,0,0,0.75)}.ant-alert-with-description{color:rgba(0,0,0,0.65);line-height:1.5;border-radius:4px}.ant-alert-with-description .ant-alert-close-icon{font-size:14px}.ant-alert-with-description .ant-alert-message{color:rgba(0,0,0,0.85);font-size:16px}.ant-alert-message{color:rgba(0,0,0,0.85)}.ant-alert.ant-alert-closing{transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-alert-slide-up-leave{animation:antAlertSlideUpOut .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-alert-banner{border:0;border-radius:0}.ant-anchor{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-anchor-wrapper{background-color:#fff}.ant-anchor-ink::before{width:2px;background-color:#e8e8e8}.ant-anchor-ink-ball{background-color:#fff;border:2px solid #319795;border-radius:8px}.ant-anchor-link-title{color:rgba(0,0,0,0.65)}.ant-anchor-link-active>.ant-anchor-link-title{color:#319795}.ant-select-auto-complete{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-auto-complete.ant-select .ant-select-selection{border:0}.ant-select-auto-complete.ant-select .ant-select-selection__rendered{line-height:32px}.ant-select-auto-complete.ant-select .ant-input{height:32px;line-height:1.5;border-width:1px}.ant-select-auto-complete.ant-select .ant-input:focus,.ant-select-auto-complete.ant-select .ant-input:hover{border-color:#4ea39f;border-right-width:1px !important}.ant-select-auto-complete.ant-select .ant-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-select-auto-complete.ant-select .ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-select-auto-complete.ant-select-lg .ant-select-selection__rendered{line-height:40px}.ant-select-auto-complete.ant-select-lg .ant-input{height:40px}.ant-select-auto-complete.ant-select-sm .ant-select-selection__rendered{line-height:24px}.ant-select-auto-complete.ant-select-sm .ant-input{height:24px}.ant-avatar{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#fff;background:#ccc;width:32px;height:32px;line-height:32px;border-radius:50%}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar-lg{width:40px;height:40px;line-height:40px;border-radius:50%}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-sm{width:24px;height:24px;line-height:24px;border-radius:50%}.ant-avatar-sm.ant-avatar-icon{font-size:14px}.ant-avatar-square{border-radius:4px}.ant-back-top{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:10}.ant-back-top-content{color:#fff;background-color:rgba(0,0,0,0.45);border-radius:20px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-back-top-content:hover{background-color:rgba(0,0,0,0.65);transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-badge{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-badge-count{min-width:20px;height:20px;color:#fff;font-weight:normal;font-size:12px;line-height:20px;background:#f5222d;border-radius:10px;box-shadow:0 0 0 1px #fff}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-dot{width:6px;height:6px;background:#f5222d;border-radius:100%;box-shadow:0 0 0 1px #fff}.ant-badge-count,.ant-badge-dot,.ant-badge .ant-scroll-number-custom-component{z-index:1}.ant-badge-status-dot{width:6px;height:6px;border-radius:50%}.ant-badge-status-success{background-color:#52c41a}.ant-badge-status-processing{background-color:#1890ff}.ant-badge-status-processing::after{border:1px solid #1890ff;border-radius:50%}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#f5222d}.ant-badge-status-warning{background-color:#faad14}.ant-badge-status-pink{background:#eb2f96}.ant-badge-status-magenta{background:#eb2f96}.ant-badge-status-red{background:#f5222d}.ant-badge-status-volcano{background:#fa541c}.ant-badge-status-orange{background:#fa8c16}.ant-badge-status-yellow{background:#fadb14}.ant-badge-status-gold{background:#faad14}.ant-badge-status-cyan{background:#13c2c2}.ant-badge-status-lime{background:#a0d911}.ant-badge-status-green{background:#52c41a}.ant-badge-status-blue{background:#1890ff}.ant-badge-status-geekblue{background:#2f54eb}.ant-badge-status-purple{background:#722ed1}.ant-badge-status-text{color:rgba(0,0,0,0.65);font-size:14px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{animation:antZoomBadgeIn .3s cubic-bezier(0.12,0.4,0.29,1.46)}.ant-badge-zoom-leave{animation:antZoomBadgeOut .3s cubic-bezier(0.71,-0.46,0.88,0.6)}.ant-scroll-number-only{height:20px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-scroll-number-only>p.ant-scroll-number-only-unit{height:20px}.ant-breadcrumb{box-sizing:border-box;color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:rgba(0,0,0,0.45);font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:rgba(0,0,0,0.45)}.ant-breadcrumb a:hover{color:#4ea39f}.ant-breadcrumb>span:last-child{color:rgba(0,0,0,0.65)}.ant-breadcrumb>span:last-child a{color:rgba(0,0,0,0.65)}.ant-breadcrumb-separator{color:rgba(0,0,0,0.45)}.ant-btn{line-height:1.499;font-weight:400;border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,0.015);transition:all .3s cubic-bezier(0.645,0.045,0.355,1);height:32px;font-size:14px;border-radius:4px;color:rgba(0,0,0,0.65);background-color:#fff;border-color:#d9d9d9}.ant-btn-lg{height:40px;font-size:16px;border-radius:4px}.ant-btn-sm{height:24px;font-size:14px;border-radius:4px}.ant-btn:hover,.ant-btn:focus{color:#4ea39f;background-color:#fff;border-color:#4ea39f}.ant-btn:active,.ant-btn.active{color:#1e6f70;background-color:#fff;border-color:#1e6f70}.ant-btn-disabled,.ant-btn.disabled,.ant-btn[disabled],.ant-btn-disabled:hover,.ant-btn.disabled:hover,.ant-btn[disabled]:hover,.ant-btn-disabled:focus,.ant-btn.disabled:focus,.ant-btn[disabled]:focus,.ant-btn-disabled:active,.ant-btn.disabled:active,.ant-btn[disabled]:active,.ant-btn-disabled.active,.ant-btn.disabled.active,.ant-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn:hover,.ant-btn:focus,.ant-btn:active,.ant-btn.active{background:#fff}.ant-btn-primary{color:#fff;background-color:#319795;border-color:#319795;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045)}.ant-btn-primary:hover,.ant-btn-primary:focus{color:#fff;background-color:#4ea39f;border-color:#4ea39f}.ant-btn-primary:active,.ant-btn-primary.active{color:#fff;background-color:#1e6f70;border-color:#1e6f70}.ant-btn-primary-disabled,.ant-btn-primary.disabled,.ant-btn-primary[disabled],.ant-btn-primary-disabled:hover,.ant-btn-primary.disabled:hover,.ant-btn-primary[disabled]:hover,.ant-btn-primary-disabled:focus,.ant-btn-primary.disabled:focus,.ant-btn-primary[disabled]:focus,.ant-btn-primary-disabled:active,.ant-btn-primary.disabled:active,.ant-btn-primary[disabled]:active,.ant-btn-primary-disabled.active,.ant-btn-primary.disabled.active,.ant-btn-primary[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#4ea39f;border-left-color:#4ea39f}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#4ea39f}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary:last-child:not(:first-child),.ant-btn-group .ant-btn-primary+.ant-btn-primary{border-left-color:#4ea39f}.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:rgba(0,0,0,0.65);background-color:transparent;border-color:#d9d9d9}.ant-btn-ghost:hover,.ant-btn-ghost:focus{color:#4ea39f;background-color:transparent;border-color:#4ea39f}.ant-btn-ghost:active,.ant-btn-ghost.active{color:#1e6f70;background-color:transparent;border-color:#1e6f70}.ant-btn-ghost-disabled,.ant-btn-ghost.disabled,.ant-btn-ghost[disabled],.ant-btn-ghost-disabled:hover,.ant-btn-ghost.disabled:hover,.ant-btn-ghost[disabled]:hover,.ant-btn-ghost-disabled:focus,.ant-btn-ghost.disabled:focus,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost-disabled:active,.ant-btn-ghost.disabled:active,.ant-btn-ghost[disabled]:active,.ant-btn-ghost-disabled.active,.ant-btn-ghost.disabled.active,.ant-btn-ghost[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-dashed{color:rgba(0,0,0,0.65);background-color:#fff;border-color:#d9d9d9;border-style:dashed}.ant-btn-dashed:hover,.ant-btn-dashed:focus{color:#4ea39f;background-color:#fff;border-color:#4ea39f}.ant-btn-dashed:active,.ant-btn-dashed.active{color:#1e6f70;background-color:#fff;border-color:#1e6f70}.ant-btn-dashed-disabled,.ant-btn-dashed.disabled,.ant-btn-dashed[disabled],.ant-btn-dashed-disabled:hover,.ant-btn-dashed.disabled:hover,.ant-btn-dashed[disabled]:hover,.ant-btn-dashed-disabled:focus,.ant-btn-dashed.disabled:focus,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed-disabled:active,.ant-btn-dashed.disabled:active,.ant-btn-dashed[disabled]:active,.ant-btn-dashed-disabled.active,.ant-btn-dashed.disabled.active,.ant-btn-dashed[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-danger{color:#fff;background-color:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045)}.ant-btn-danger:hover,.ant-btn-danger:focus{color:#fff;background-color:#ff7875;border-color:#ff7875}.ant-btn-danger:active,.ant-btn-danger.active{color:#fff;background-color:#d9363e;border-color:#d9363e}.ant-btn-danger-disabled,.ant-btn-danger.disabled,.ant-btn-danger[disabled],.ant-btn-danger-disabled:hover,.ant-btn-danger.disabled:hover,.ant-btn-danger[disabled]:hover,.ant-btn-danger-disabled:focus,.ant-btn-danger.disabled:focus,.ant-btn-danger[disabled]:focus,.ant-btn-danger-disabled:active,.ant-btn-danger.disabled:active,.ant-btn-danger[disabled]:active,.ant-btn-danger-disabled.active,.ant-btn-danger.disabled.active,.ant-btn-danger[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link{color:#319795;background-color:transparent;border-color:transparent}.ant-btn-link:hover,.ant-btn-link:focus{color:#4ea39f;background-color:transparent;border-color:#4ea39f}.ant-btn-link:active,.ant-btn-link.active{color:#1e6f70;background-color:transparent;border-color:#1e6f70}.ant-btn-link-disabled,.ant-btn-link.disabled,.ant-btn-link[disabled],.ant-btn-link-disabled:hover,.ant-btn-link.disabled:hover,.ant-btn-link[disabled]:hover,.ant-btn-link-disabled:focus,.ant-btn-link.disabled:focus,.ant-btn-link[disabled]:focus,.ant-btn-link-disabled:active,.ant-btn-link.disabled:active,.ant-btn-link[disabled]:active,.ant-btn-link-disabled.active,.ant-btn-link.disabled.active,.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:hover,.ant-btn-link:focus,.ant-btn-link:active{border-color:transparent}.ant-btn-link-disabled,.ant-btn-link.disabled,.ant-btn-link[disabled],.ant-btn-link-disabled:hover,.ant-btn-link.disabled:hover,.ant-btn-link[disabled]:hover,.ant-btn-link-disabled:focus,.ant-btn-link.disabled:focus,.ant-btn-link[disabled]:focus,.ant-btn-link-disabled:active,.ant-btn-link.disabled:active,.ant-btn-link[disabled]:active,.ant-btn-link-disabled.active,.ant-btn-link.disabled.active,.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:transparent;border-color:transparent}.ant-btn-icon-only{width:32px;height:32px;font-size:16px;border-radius:4px}.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px;font-size:18px;border-radius:4px}.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px;font-size:14px;border-radius:4px}.ant-btn-round{height:32px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-lg{height:40px;font-size:16px;border-radius:40px}.ant-btn-round.ant-btn-sm{height:24px;font-size:14px;border-radius:24px}.ant-btn-circle,.ant-btn-circle-outline{min-width:32px;border-radius:50%}.ant-btn-circle.ant-btn-lg,.ant-btn-circle-outline.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle.ant-btn-sm,.ant-btn-circle-outline.ant-btn-sm{min-width:24px;border-radius:50%}.ant-btn::before{background:#fff;border-radius:inherit}.ant-btn-group>.ant-btn-icon-only{font-size:14px}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{height:40px;font-size:16px;border-radius:0;line-height:38px}.ant-btn-group-lg>.ant-btn.ant-btn-icon-only{width:40px;height:40px}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{height:24px;font-size:14px;border-radius:0;line-height:22px}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group-sm>.ant-btn.ant-btn-icon-only{width:24px;height:24px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:only-child{border-radius:4px}.ant-btn-group>span:only-child>.ant-btn{border-radius:4px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-btn-group-sm>.ant-btn:only-child{border-radius:4px}.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:4px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.ant-btn-background-ghost{color:#fff;border-color:#fff}.ant-btn-background-ghost.ant-btn-primary{color:#319795;background-color:transparent;border-color:#319795}.ant-btn-background-ghost.ant-btn-primary:hover,.ant-btn-background-ghost.ant-btn-primary:focus{color:#4ea39f;background-color:transparent;border-color:#4ea39f}.ant-btn-background-ghost.ant-btn-primary:active,.ant-btn-background-ghost.ant-btn-primary.active{color:#1e6f70;background-color:transparent;border-color:#1e6f70}.ant-btn-background-ghost.ant-btn-primary-disabled,.ant-btn-background-ghost.ant-btn-primary.disabled,.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary-disabled:hover,.ant-btn-background-ghost.ant-btn-primary.disabled:hover,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover,.ant-btn-background-ghost.ant-btn-primary-disabled:focus,.ant-btn-background-ghost.ant-btn-primary.disabled:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary-disabled:active,.ant-btn-background-ghost.ant-btn-primary.disabled:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary-disabled.active,.ant-btn-background-ghost.ant-btn-primary.disabled.active,.ant-btn-background-ghost.ant-btn-primary[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;background-color:transparent;border-color:#ff4d4f}.ant-btn-background-ghost.ant-btn-danger:hover,.ant-btn-background-ghost.ant-btn-danger:focus{color:#ff7875;background-color:transparent;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:active,.ant-btn-background-ghost.ant-btn-danger.active{color:#d9363e;background-color:transparent;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-danger-disabled,.ant-btn-background-ghost.ant-btn-danger.disabled,.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger-disabled:hover,.ant-btn-background-ghost.ant-btn-danger.disabled:hover,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover,.ant-btn-background-ghost.ant-btn-danger-disabled:focus,.ant-btn-background-ghost.ant-btn-danger.disabled:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger-disabled:active,.ant-btn-background-ghost.ant-btn-danger.disabled:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger-disabled.active,.ant-btn-background-ghost.ant-btn-danger.disabled.active,.ant-btn-background-ghost.ant-btn-danger[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-background-ghost.ant-btn-link{color:#319795;background-color:transparent;border-color:transparent;color:#fff}.ant-btn-background-ghost.ant-btn-link:hover,.ant-btn-background-ghost.ant-btn-link:focus{color:#4ea39f;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link:active,.ant-btn-background-ghost.ant-btn-link.active{color:#1e6f70;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link-disabled,.ant-btn-background-ghost.ant-btn-link.disabled,.ant-btn-background-ghost.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-link-disabled:hover,.ant-btn-background-ghost.ant-btn-link.disabled:hover,.ant-btn-background-ghost.ant-btn-link[disabled]:hover,.ant-btn-background-ghost.ant-btn-link-disabled:focus,.ant-btn-background-ghost.ant-btn-link.disabled:focus,.ant-btn-background-ghost.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-link-disabled:active,.ant-btn-background-ghost.ant-btn-link.disabled:active,.ant-btn-background-ghost.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-link-disabled.active,.ant-btn-background-ghost.ant-btn-link.disabled.active,.ant-btn-background-ghost.ant-btn-link[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}a.ant-btn{line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-fullcalendar{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-top:1px solid #d9d9d9}.ant-fullcalendar table{border-collapse:collapse}.ant-fullcalendar table,.ant-fullcalendar th,.ant-fullcalendar td{border:0}.ant-fullcalendar-calendar-table{border-spacing:0}.ant-fullcalendar-value{color:rgba(0,0,0,0.65);border-radius:2px}.ant-fullcalendar-value:hover{background:#c9d6d4}.ant-fullcalendar-value:active{color:#fff;background:#319795}.ant-fullcalendar-today .ant-fullcalendar-value,.ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-value{box-shadow:0 0 0 1px #319795 inset}.ant-fullcalendar-selected-day .ant-fullcalendar-value,.ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value{color:#fff;background:#319795}.ant-fullcalendar-disabled-cell-first-of-row .ant-fullcalendar-value{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-fullcalendar-disabled-cell-last-of-row .ant-fullcalendar-value{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-fullcalendar-last-month-cell .ant-fullcalendar-value,.ant-fullcalendar-next-month-btn-day .ant-fullcalendar-value{color:rgba(0,0,0,0.25)}.ant-fullcalendar-month-panel-table{border-collapse:separate}.ant-fullcalendar-fullscreen{border-top:0}.ant-fullcalendar-fullscreen .ant-fullcalendar-header label.ant-radio-button{height:32px;line-height:30px}.ant-fullcalendar-fullscreen .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-date{color:rgba(0,0,0,0.65);border-top:2px solid #e8e8e8}.ant-fullcalendar-fullscreen .ant-fullcalendar-month:hover,.ant-fullcalendar-fullscreen .ant-fullcalendar-date:hover{background:#c9d6d4}.ant-fullcalendar-fullscreen .ant-fullcalendar-month:active,.ant-fullcalendar-fullscreen .ant-fullcalendar-date:active{background:#bdc9c8}.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-value{color:rgba(0,0,0,0.65)}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-date{border-top-color:#319795}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-month,.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-date{background:#c9d6d4}.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value,.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-value{color:#319795}.ant-fullcalendar-fullscreen .ant-fullcalendar-last-month-cell .ant-fullcalendar-date,.ant-fullcalendar-fullscreen .ant-fullcalendar-next-month-btn-day .ant-fullcalendar-date{color:rgba(0,0,0,0.25)}.ant-fullcalendar-disabled-cell .ant-fullcalendar-value{color:rgba(0,0,0,0.25);border-radius:0}.ant-card{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background:#fff;border-radius:2px}.ant-card-hoverable:hover{border-color:rgba(0,0,0,0.09);box-shadow:0 2px 8px rgba(0,0,0,0.09)}.ant-card-bordered{border:1px solid #e8e8e8}.ant-card-head{min-height:48px;color:rgba(0,0,0,0.85);font-size:16px;background:transparent;border-bottom:1px solid #e8e8e8;border-radius:2px 2px 0 0}.ant-card-head .ant-tabs{color:rgba(0,0,0,0.65);font-size:14px}.ant-card-head .ant-tabs-bar{border-bottom:1px solid #e8e8e8}.ant-card-extra{color:rgba(0,0,0,0.65);font-size:14px}.ant-card-grid{border:0;border-radius:0;box-shadow:1px 0 0 0 #e8e8e8,0 1px 0 0 #e8e8e8,1px 1px 0 0 #e8e8e8,1px 0 0 0 #e8e8e8 inset,0 1px 0 0 #e8e8e8 inset}.ant-card-grid-hoverable:hover{box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{background:#fafafa;border-top:1px solid #e8e8e8}.ant-card-actions>li{color:rgba(0,0,0,0.45)}.ant-card-actions>li>span{font-size:14px}.ant-card-actions>li>span:hover{color:#319795}.ant-card-actions>li>span a:not(.ant-btn),.ant-card-actions>li>span>.anticon{color:rgba(0,0,0,0.45)}.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#319795}.ant-card-actions>li>span>.anticon{font-size:16px}.ant-card-actions>li:not(:last-child){border-right:1px solid #e8e8e8}.ant-card-type-inner .ant-card-head{background:#fafafa}.ant-card-type-inner .ant-card-head-title{font-size:14px}.ant-card-meta-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-card-meta-description{color:rgba(0,0,0,0.45)}.ant-card-loading-block{background:linear-gradient(90deg,rgba(207,216,220,0.2),rgba(207,216,220,0.4),rgba(207,216,220,0.2));border-radius:2px}.ant-carousel{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-carousel .slick-slider{box-sizing:border-box}.ant-carousel .slick-vertical .slick-slide{border:1px solid transparent}.ant-carousel .slick-prev,.ant-carousel .slick-next{border:0}.ant-carousel .slick-dots{height:3px}.ant-carousel .slick-dots li button{width:16px;height:3px;background:#fff;border:0;border-radius:1px}.ant-carousel .slick-dots li.slick-active button{width:24px;background:#fff}.ant-carousel-vertical .slick-dots{width:3px}.ant-carousel-vertical .slick-dots li button{width:3px;height:16px}.ant-carousel-vertical .slick-dots li.slick-active button{width:3px;height:24px}.ant-cascader{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-cascader-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background-color:#fff;border-radius:4px}.ant-cascader-picker-disabled{color:rgba(0,0,0,0.25);background:#f5f5f5}.ant-cascader-picker:focus .ant-cascader-input{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-cascader-picker-show-search.ant-cascader-picker-focused{color:rgba(0,0,0,0.25)}.ant-cascader-picker-clear{color:rgba(0,0,0,0.25);font-size:12px;background:#fff}.ant-cascader-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-cascader-picker-arrow{color:rgba(0,0,0,0.25)}.ant-cascader-picker-label:hover+.ant-cascader-input{border-color:#4ea39f;border-right-width:1px !important}.ant-cascader-menus{z-index:1050;font-size:14px;background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-cascader-menu{border-right:1px solid #e8e8e8}.ant-cascader-menu:first-child{border-radius:4px 0 0 4px}.ant-cascader-menu:last-child{border-right-color:transparent;border-radius:0 4px 4px 0}.ant-cascader-menu:only-child{border-radius:4px}.ant-cascader-menu-item{line-height:22px}.ant-cascader-menu-item:hover{background:#c9d6d4}.ant-cascader-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover{font-weight:600;background-color:#fafafa}.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-loading-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45)}:root .ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,:root .ant-cascader-menu-item-loading-icon{font-size:12px}.ant-cascader-menu-item .ant-cascader-menu-item-keyword{color:#f5222d}.ant-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner,.ant-checkbox-input:focus+.ant-checkbox-inner{border-color:#319795}.ant-checkbox-checked::after{border:1px solid #319795;border-radius:2px}.ant-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-checkbox-checked .ant-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-checkbox-checked .ant-checkbox-inner{background-color:#319795;border-color:#319795}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-checkbox-disabled .ant-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner::after{width:8px;height:8px;background-color:#319795;border:0}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-collapse{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:4px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 4px 4px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{color:rgba(0,0,0,0.85)}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{color:inherit;font-size:12px}.ant-collapse-anim-active{transition:height .2s cubic-bezier(0.215,0.61,0.355,1)}.ant-collapse-content{color:rgba(0,0,0,0.65);background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 4px 4px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{border-top:0}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:rgba(0,0,0,0.25)}.ant-comment-avatar img{border-radius:50%}.ant-comment-content{font-size:14px}.ant-comment-content-author{font-size:14px}.ant-comment-content-author>a,.ant-comment-content-author>span{font-size:12px}.ant-comment-content-author-name{color:rgba(0,0,0,0.45);font-size:14px}.ant-comment-content-author-name>*{color:rgba(0,0,0,0.45)}.ant-comment-content-author-name>*:hover{color:rgba(0,0,0,0.45)}.ant-comment-content-author-time{color:#ccc}.ant-comment-actions>li{color:rgba(0,0,0,0.45)}.ant-comment-actions>li>span{color:rgba(0,0,0,0.45);font-size:12px}.ant-comment-actions>li>span:hover{color:#595959}.ant-descriptions-title{color:rgba(0,0,0,0.85);font-size:16px;line-height:1.5}.ant-descriptions-view{border-radius:4px}.ant-descriptions-row:last-child{border-bottom:0}.ant-descriptions-item-label{color:rgba(0,0,0,0.85);font-size:14px;line-height:1.5}.ant-descriptions-item-content{color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-item-label,.ant-descriptions-bordered .ant-descriptions-item-content{border-right:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-item-label:last-child,.ant-descriptions-bordered .ant-descriptions-item-content:last-child{border-right:0}.ant-descriptions-bordered .ant-descriptions-item-label{background-color:#fafafa}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #e8e8e8}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:0}.ant-divider{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background:#e8e8e8}.ant-divider-horizontal.ant-divider-with-text-center,.ant-divider-horizontal.ant-divider-with-text-left,.ant-divider-horizontal.ant-divider-with-text-right{color:rgba(0,0,0,0.85);font-size:16px}.ant-divider-horizontal.ant-divider-with-text-center::before,.ant-divider-horizontal.ant-divider-with-text-left::before,.ant-divider-horizontal.ant-divider-with-text-right::before,.ant-divider-horizontal.ant-divider-with-text-center::after,.ant-divider-horizontal.ant-divider-with-text-left::after,.ant-divider-horizontal.ant-divider-with-text-right::after{border-top:1px solid #e8e8e8}.ant-divider-dashed{border-color:#e8e8e8;border-style:dashed;border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed{border-top:0}.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed::before,.ant-divider-horizontal.ant-divider-with-text-center.ant-divider-dashed::after,.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed::after,.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed::after{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px}.ant-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-wrap .ant-btn>.anticon-down{font-size:12px}.ant-dropdown-menu{background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-dropdown-menu-item-group-title{color:rgba(0,0,0,0.45)}.ant-dropdown-menu-submenu-popup{z-index:1050}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{color:rgba(0,0,0,0.65);font-size:14px;line-height:22px}.ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-menu-submenu-title>span>.anticon:first-child{font-size:12px}.ant-dropdown-menu-item>a,.ant-dropdown-menu-submenu-title>a{color:rgba(0,0,0,0.65)}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected>a{color:#319795;background-color:#c9d6d4}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#c9d6d4}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,0.25)}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{background-color:#e8e8e8}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,0.45);font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,:root .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{font-size:12px}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,0.25);background-color:#fff}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#319795}.ant-dropdown-trigger>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-trigger>.anticon.anticon-down,:root .ant-dropdown-link>.anticon.anticon-down{font-size:12px}.ant-dropdown-button .anticon.anticon-down{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-dropdown-button .anticon.anticon-down{font-size:12px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a{color:rgba(255,255,255,0.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow::after{color:rgba(255,255,255,0.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover{color:#fff}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{color:#fff;background:#319795}.ant-empty{font-size:14px}.ant-empty-normal{color:rgba(0,0,0,0.25)}.ant-empty-small{color:rgba(0,0,0,0.25)}.ant-form{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-form legend{color:rgba(0,0,0,0.45);font-size:16px;border:0;border-bottom:1px solid #d9d9d9}.ant-form label{font-size:14px}.ant-form input[type="search"]{box-sizing:border-box}.ant-form output{color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5}.ant-form-item-required::before{color:#f5222d;font-size:14px}.ant-form-item-label>label{color:rgba(0,0,0,0.85)}.ant-form-item{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-form-item label>.anticon{font-size:14px}.ant-form-item-control{line-height:40px}.ant-form-item-label{line-height:39.9999px}.ant-form-explain,.ant-form-extra{min-height:22px;color:rgba(0,0,0,0.45);font-size:14px;line-height:1.5;transition:color .3s cubic-bezier(0.215,0.61,0.355,1)}form .has-feedback>.ant-select .ant-select-arrow,form .has-feedback>.ant-select .ant-select-selection__clear,form .has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,form .has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection__clear{right:28px}form .has-feedback .ant-cascader-picker-clear{right:28px}form .has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{right:28px}form .has-feedback .ant-calendar-picker-icon,form .has-feedback .ant-time-picker-icon,form .has-feedback .ant-calendar-picker-clear,form .has-feedback .ant-time-picker-clear{right:28px}.ant-form-vertical .ant-form-item-label,.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label{line-height:1.5}.ant-form-vertical .ant-form-item-control{line-height:1.5}@media(max-width:575px){.ant-form-item-label{line-height:1.5}.ant-col-xs-24.ant-form-item-label{line-height:1.5}}@media(max-width:767px){.ant-col-sm-24.ant-form-item-label{line-height:1.5}}@media(max-width:991px){.ant-col-md-24.ant-form-item-label{line-height:1.5}}@media(max-width:1199px){.ant-col-lg-24.ant-form-item-label{line-height:1.5}}@media(max-width:1599px){.ant-col-xl-24.ant-form-item-label{line-height:1.5}}.has-success.has-feedback .ant-form-item-children-icon,.has-warning.has-feedback .ant-form-item-children-icon,.has-error.has-feedback .ant-form-item-children-icon,.is-validating.has-feedback .ant-form-item-children-icon{width:32px;font-size:14px;animation:zoomIn .3s cubic-bezier(0.12,0.4,0.29,1.46)}.has-success.has-feedback .ant-form-item-children-icon{color:#52c41a}.has-warning .ant-form-explain,.has-warning .ant-form-split{color:#faad14}.has-warning .ant-input,.has-warning .ant-input:hover{background-color:#fff;border-color:#faad14}.has-warning .ant-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input:not([disabled]):hover{border-color:#faad14}.has-warning .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-affix-wrapper .ant-input,.has-warning .ant-input-affix-wrapper .ant-input:hover{background-color:#fff;border-color:#faad14}.has-warning .ant-input-affix-wrapper .ant-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#faad14}.has-warning .ant-input-prefix{color:#faad14}.has-warning .ant-input-group-addon{color:#faad14;background-color:#fff;border-color:#faad14}.has-warning .has-feedback{color:#faad14}.has-warning.has-feedback .ant-form-item-children-icon{color:#faad14}.has-warning .ant-select-selection{border-color:#faad14}.has-warning .ant-select-selection:hover{border-color:#faad14}.has-warning .ant-select-open .ant-select-selection,.has-warning .ant-select-focused .ant-select-selection{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-calendar-picker-icon::after,.has-warning .ant-time-picker-icon::after,.has-warning .ant-picker-icon::after,.has-warning .ant-select-arrow,.has-warning .ant-cascader-picker-arrow{color:#faad14}.has-warning .ant-input-number,.has-warning .ant-time-picker-input{border-color:#faad14}.has-warning .ant-input-number-focused,.has-warning .ant-time-picker-input-focused,.has-warning .ant-input-number:focus,.has-warning .ant-time-picker-input:focus{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-input-number:not([disabled]):hover,.has-warning .ant-time-picker-input:not([disabled]):hover{border-color:#faad14}.has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:#ffc53d;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(250,173,20,0.2)}.has-warning .ant-cascader-picker:hover .ant-cascader-input{border-color:#faad14}.has-error .ant-form-explain,.has-error .ant-form-split{color:#f5222d}.has-error .ant-input,.has-error .ant-input:hover{background-color:#fff;border-color:#f5222d}.has-error .ant-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input:not([disabled]):hover{border-color:#f5222d}.has-error .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-affix-wrapper .ant-input,.has-error .ant-input-affix-wrapper .ant-input:hover{background-color:#fff;border-color:#f5222d}.has-error .ant-input-affix-wrapper .ant-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#f5222d}.has-error .ant-input-prefix{color:#f5222d}.has-error .ant-input-group-addon{color:#f5222d;background-color:#fff;border-color:#f5222d}.has-error .has-feedback{color:#f5222d}.has-error.has-feedback .ant-form-item-children-icon{color:#f5222d}.has-error .ant-select-selection{border-color:#f5222d}.has-error .ant-select-selection:hover{border-color:#f5222d}.has-error .ant-select-open .ant-select-selection,.has-error .ant-select-focused .ant-select-selection{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:#f5222d}.has-error .ant-input-group-addon .ant-select-selection{border-color:transparent}.has-error .ant-calendar-picker-icon::after,.has-error .ant-time-picker-icon::after,.has-error .ant-picker-icon::after,.has-error .ant-select-arrow,.has-error .ant-cascader-picker-arrow{color:#f5222d}.has-error .ant-input-number,.has-error .ant-time-picker-input{border-color:#f5222d}.has-error .ant-input-number-focused,.has-error .ant-time-picker-input-focused,.has-error .ant-input-number:focus,.has-error .ant-time-picker-input:focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-input-number:not([disabled]):hover,.has-error .ant-time-picker-input:not([disabled]):hover{border-color:#f5222d}.has-error .ant-mention-wrapper .ant-mention-editor,.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover{border-color:#f5222d}.has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-cascader-picker:focus .ant-cascader-input{border-color:#ff4d4f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(245,34,45,0.2)}.has-error .ant-cascader-picker:hover .ant-cascader-input{border-color:#f5222d}.has-error .ant-transfer-list{border-color:#f5222d}.has-error .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#4ea39f;border-right-width:1px !important}.has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.is-validating.has-feedback .ant-form-item-children-icon{color:#319795}.show-help-enter,.show-help-appear{animation-duration:.3s}.show-help-leave{animation-duration:.3s}.show-help-enter.show-help-enter-active,.show-help-appear.show-help-appear-active{animation-name:antShowHelpIn}.show-help-leave.show-help-leave-active{animation-name:antShowHelpOut}.show-help-enter,.show-help-appear{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.show-help-leave{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-row{box-sizing:border-box}.ant-col-24{box-sizing:border-box;width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-order-24{order:24}.ant-col-23{box-sizing:border-box;width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-order-23{order:23}.ant-col-22{box-sizing:border-box;width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-order-22{order:22}.ant-col-21{box-sizing:border-box;width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-order-21{order:21}.ant-col-20{box-sizing:border-box;width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-order-20{order:20}.ant-col-19{box-sizing:border-box;width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-order-19{order:19}.ant-col-18{box-sizing:border-box;width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-order-18{order:18}.ant-col-17{box-sizing:border-box;width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-order-17{order:17}.ant-col-16{box-sizing:border-box;width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-order-16{order:16}.ant-col-15{box-sizing:border-box;width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-order-15{order:15}.ant-col-14{box-sizing:border-box;width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-order-14{order:14}.ant-col-13{box-sizing:border-box;width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-order-13{order:13}.ant-col-12{box-sizing:border-box;width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-order-12{order:12}.ant-col-11{box-sizing:border-box;width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-order-11{order:11}.ant-col-10{box-sizing:border-box;width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-order-10{order:10}.ant-col-9{box-sizing:border-box;width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-order-9{order:9}.ant-col-8{box-sizing:border-box;width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-order-8{order:8}.ant-col-7{box-sizing:border-box;width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-order-7{order:7}.ant-col-6{box-sizing:border-box;width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-order-6{order:6}.ant-col-5{box-sizing:border-box;width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-order-5{order:5}.ant-col-4{box-sizing:border-box;width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-order-4{order:4}.ant-col-3{box-sizing:border-box;width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-order-3{order:3}.ant-col-2{box-sizing:border-box;width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-order-2{order:2}.ant-col-1{box-sizing:border-box;width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-order-1{order:1}.ant-col-xs-24{box-sizing:border-box;width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-order-24{order:24}.ant-col-xs-23{box-sizing:border-box;width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-order-23{order:23}.ant-col-xs-22{box-sizing:border-box;width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-order-22{order:22}.ant-col-xs-21{box-sizing:border-box;width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-order-21{order:21}.ant-col-xs-20{box-sizing:border-box;width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-order-20{order:20}.ant-col-xs-19{box-sizing:border-box;width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-order-19{order:19}.ant-col-xs-18{box-sizing:border-box;width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-order-18{order:18}.ant-col-xs-17{box-sizing:border-box;width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-order-17{order:17}.ant-col-xs-16{box-sizing:border-box;width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-order-16{order:16}.ant-col-xs-15{box-sizing:border-box;width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-order-15{order:15}.ant-col-xs-14{box-sizing:border-box;width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-order-14{order:14}.ant-col-xs-13{box-sizing:border-box;width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-order-13{order:13}.ant-col-xs-12{box-sizing:border-box;width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-order-12{order:12}.ant-col-xs-11{box-sizing:border-box;width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-order-11{order:11}.ant-col-xs-10{box-sizing:border-box;width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-order-10{order:10}.ant-col-xs-9{box-sizing:border-box;width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-order-9{order:9}.ant-col-xs-8{box-sizing:border-box;width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-order-8{order:8}.ant-col-xs-7{box-sizing:border-box;width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-order-7{order:7}.ant-col-xs-6{box-sizing:border-box;width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-order-6{order:6}.ant-col-xs-5{box-sizing:border-box;width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-order-5{order:5}.ant-col-xs-4{box-sizing:border-box;width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-order-4{order:4}.ant-col-xs-3{box-sizing:border-box;width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-order-3{order:3}.ant-col-xs-2{box-sizing:border-box;width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-order-2{order:2}.ant-col-xs-1{box-sizing:border-box;width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-order-1{order:1}@media(min-width:576px){.ant-col-sm-24{box-sizing:border-box;width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-order-24{order:24}.ant-col-sm-23{box-sizing:border-box;width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-order-23{order:23}.ant-col-sm-22{box-sizing:border-box;width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-order-22{order:22}.ant-col-sm-21{box-sizing:border-box;width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-order-21{order:21}.ant-col-sm-20{box-sizing:border-box;width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-order-20{order:20}.ant-col-sm-19{box-sizing:border-box;width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-order-19{order:19}.ant-col-sm-18{box-sizing:border-box;width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-order-18{order:18}.ant-col-sm-17{box-sizing:border-box;width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-order-17{order:17}.ant-col-sm-16{box-sizing:border-box;width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-order-16{order:16}.ant-col-sm-15{box-sizing:border-box;width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-order-15{order:15}.ant-col-sm-14{box-sizing:border-box;width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-order-14{order:14}.ant-col-sm-13{box-sizing:border-box;width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-order-13{order:13}.ant-col-sm-12{box-sizing:border-box;width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-order-12{order:12}.ant-col-sm-11{box-sizing:border-box;width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-order-11{order:11}.ant-col-sm-10{box-sizing:border-box;width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-order-10{order:10}.ant-col-sm-9{box-sizing:border-box;width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-order-9{order:9}.ant-col-sm-8{box-sizing:border-box;width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-order-8{order:8}.ant-col-sm-7{box-sizing:border-box;width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-order-7{order:7}.ant-col-sm-6{box-sizing:border-box;width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-order-6{order:6}.ant-col-sm-5{box-sizing:border-box;width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-order-5{order:5}.ant-col-sm-4{box-sizing:border-box;width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-order-4{order:4}.ant-col-sm-3{box-sizing:border-box;width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-order-3{order:3}.ant-col-sm-2{box-sizing:border-box;width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-order-2{order:2}.ant-col-sm-1{box-sizing:border-box;width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-order-1{order:1}}@media(min-width:768px){.ant-col-md-24{box-sizing:border-box;width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-order-24{order:24}.ant-col-md-23{box-sizing:border-box;width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-order-23{order:23}.ant-col-md-22{box-sizing:border-box;width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-order-22{order:22}.ant-col-md-21{box-sizing:border-box;width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-order-21{order:21}.ant-col-md-20{box-sizing:border-box;width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-order-20{order:20}.ant-col-md-19{box-sizing:border-box;width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-order-19{order:19}.ant-col-md-18{box-sizing:border-box;width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-order-18{order:18}.ant-col-md-17{box-sizing:border-box;width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-order-17{order:17}.ant-col-md-16{box-sizing:border-box;width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-order-16{order:16}.ant-col-md-15{box-sizing:border-box;width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-order-15{order:15}.ant-col-md-14{box-sizing:border-box;width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-order-14{order:14}.ant-col-md-13{box-sizing:border-box;width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-order-13{order:13}.ant-col-md-12{box-sizing:border-box;width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-order-12{order:12}.ant-col-md-11{box-sizing:border-box;width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-order-11{order:11}.ant-col-md-10{box-sizing:border-box;width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-order-10{order:10}.ant-col-md-9{box-sizing:border-box;width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-order-9{order:9}.ant-col-md-8{box-sizing:border-box;width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-order-8{order:8}.ant-col-md-7{box-sizing:border-box;width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-order-7{order:7}.ant-col-md-6{box-sizing:border-box;width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-order-6{order:6}.ant-col-md-5{box-sizing:border-box;width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-order-5{order:5}.ant-col-md-4{box-sizing:border-box;width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-order-4{order:4}.ant-col-md-3{box-sizing:border-box;width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-order-3{order:3}.ant-col-md-2{box-sizing:border-box;width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-order-2{order:2}.ant-col-md-1{box-sizing:border-box;width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-order-1{order:1}}@media(min-width:992px){.ant-col-lg-24{box-sizing:border-box;width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-order-24{order:24}.ant-col-lg-23{box-sizing:border-box;width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-order-23{order:23}.ant-col-lg-22{box-sizing:border-box;width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-order-22{order:22}.ant-col-lg-21{box-sizing:border-box;width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-order-21{order:21}.ant-col-lg-20{box-sizing:border-box;width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-order-20{order:20}.ant-col-lg-19{box-sizing:border-box;width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-order-19{order:19}.ant-col-lg-18{box-sizing:border-box;width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-order-18{order:18}.ant-col-lg-17{box-sizing:border-box;width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-order-17{order:17}.ant-col-lg-16{box-sizing:border-box;width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-order-16{order:16}.ant-col-lg-15{box-sizing:border-box;width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-order-15{order:15}.ant-col-lg-14{box-sizing:border-box;width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-order-14{order:14}.ant-col-lg-13{box-sizing:border-box;width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-order-13{order:13}.ant-col-lg-12{box-sizing:border-box;width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-order-12{order:12}.ant-col-lg-11{box-sizing:border-box;width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-order-11{order:11}.ant-col-lg-10{box-sizing:border-box;width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-order-10{order:10}.ant-col-lg-9{box-sizing:border-box;width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-order-9{order:9}.ant-col-lg-8{box-sizing:border-box;width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-order-8{order:8}.ant-col-lg-7{box-sizing:border-box;width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-order-7{order:7}.ant-col-lg-6{box-sizing:border-box;width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-order-6{order:6}.ant-col-lg-5{box-sizing:border-box;width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-order-5{order:5}.ant-col-lg-4{box-sizing:border-box;width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-order-4{order:4}.ant-col-lg-3{box-sizing:border-box;width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-order-3{order:3}.ant-col-lg-2{box-sizing:border-box;width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-order-2{order:2}.ant-col-lg-1{box-sizing:border-box;width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-order-1{order:1}}@media(min-width:1200px){.ant-col-xl-24{box-sizing:border-box;width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-order-24{order:24}.ant-col-xl-23{box-sizing:border-box;width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-order-23{order:23}.ant-col-xl-22{box-sizing:border-box;width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-order-22{order:22}.ant-col-xl-21{box-sizing:border-box;width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-order-21{order:21}.ant-col-xl-20{box-sizing:border-box;width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-order-20{order:20}.ant-col-xl-19{box-sizing:border-box;width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-order-19{order:19}.ant-col-xl-18{box-sizing:border-box;width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-order-18{order:18}.ant-col-xl-17{box-sizing:border-box;width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-order-17{order:17}.ant-col-xl-16{box-sizing:border-box;width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-order-16{order:16}.ant-col-xl-15{box-sizing:border-box;width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-order-15{order:15}.ant-col-xl-14{box-sizing:border-box;width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-order-14{order:14}.ant-col-xl-13{box-sizing:border-box;width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-order-13{order:13}.ant-col-xl-12{box-sizing:border-box;width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-order-12{order:12}.ant-col-xl-11{box-sizing:border-box;width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-order-11{order:11}.ant-col-xl-10{box-sizing:border-box;width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-order-10{order:10}.ant-col-xl-9{box-sizing:border-box;width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-order-9{order:9}.ant-col-xl-8{box-sizing:border-box;width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-order-8{order:8}.ant-col-xl-7{box-sizing:border-box;width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-order-7{order:7}.ant-col-xl-6{box-sizing:border-box;width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-order-6{order:6}.ant-col-xl-5{box-sizing:border-box;width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-order-5{order:5}.ant-col-xl-4{box-sizing:border-box;width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-order-4{order:4}.ant-col-xl-3{box-sizing:border-box;width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-order-3{order:3}.ant-col-xl-2{box-sizing:border-box;width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-order-2{order:2}.ant-col-xl-1{box-sizing:border-box;width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-order-1{order:1}}@media(min-width:1600px){.ant-col-xxl-24{box-sizing:border-box;width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-order-24{order:24}.ant-col-xxl-23{box-sizing:border-box;width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-order-23{order:23}.ant-col-xxl-22{box-sizing:border-box;width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-order-22{order:22}.ant-col-xxl-21{box-sizing:border-box;width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-order-21{order:21}.ant-col-xxl-20{box-sizing:border-box;width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-order-20{order:20}.ant-col-xxl-19{box-sizing:border-box;width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-order-19{order:19}.ant-col-xxl-18{box-sizing:border-box;width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-order-18{order:18}.ant-col-xxl-17{box-sizing:border-box;width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-order-17{order:17}.ant-col-xxl-16{box-sizing:border-box;width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-order-16{order:16}.ant-col-xxl-15{box-sizing:border-box;width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-order-15{order:15}.ant-col-xxl-14{box-sizing:border-box;width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-order-14{order:14}.ant-col-xxl-13{box-sizing:border-box;width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-order-13{order:13}.ant-col-xxl-12{box-sizing:border-box;width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-order-12{order:12}.ant-col-xxl-11{box-sizing:border-box;width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-order-11{order:11}.ant-col-xxl-10{box-sizing:border-box;width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-order-10{order:10}.ant-col-xxl-9{box-sizing:border-box;width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-order-9{order:9}.ant-col-xxl-8{box-sizing:border-box;width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-order-8{order:8}.ant-col-xxl-7{box-sizing:border-box;width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-order-7{order:7}.ant-col-xxl-6{box-sizing:border-box;width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-order-6{order:6}.ant-col-xxl-5{box-sizing:border-box;width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-order-5{order:5}.ant-col-xxl-4{box-sizing:border-box;width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-order-4{order:4}.ant-col-xxl-3{box-sizing:border-box;width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-order-3{order:3}.ant-col-xxl-2{box-sizing:border-box;width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-order-2{order:2}.ant-col-xxl-1{box-sizing:border-box;width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-order-1{order:1}}.ant-input-number{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-input-number::-moz-placeholder{color:#bfbfbf}.ant-input-number:-ms-input-placeholder{color:#bfbfbf}.ant-input-number::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number:hover{border-color:#4ea39f;border-right-width:1px !important}.ant-input-number:focus{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-input-number-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input-number[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-input-number{min-height:32px;line-height:1.5}.ant-input-number-lg{height:40px;font-size:16px}.ant-input-number-sm{height:24px}.ant-input-number-handler{color:rgba(0,0,0,0.45)}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-up-inner,.ant-input-number-handler:hover .ant-input-number-handler-down-inner{color:#4ea39f}.ant-input-number-handler-up-inner,.ant-input-number-handler-down-inner{color:inherit;color:rgba(0,0,0,0.45)}.ant-input-number:hover{border-color:#4ea39f;border-right-width:1px !important}.ant-input-number-focused{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-input-number-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input-number-input{height:30px;border:0;border-radius:4px}.ant-input-number-input::-moz-placeholder{color:#bfbfbf}.ant-input-number-input:-ms-input-placeholder{color:#bfbfbf}.ant-input-number-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number-lg{font-size:16px}.ant-input-number-lg input{height:38px}.ant-input-number-sm input{height:22px}.ant-input-number-handler-wrap{background:#fff;border-left:1px solid #d9d9d9;border-radius:0 4px 4px 0}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner{font-size:7px \9;transform:scale(0.58333333) rotate(0)}:root .ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,:root .ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner{font-size:12px}.ant-input-number-handler-up{border-top-right-radius:4px}.ant-input-number-handler-down{border-top:1px solid #d9d9d9;border-bottom-right-radius:4px}.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner,.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner{color:rgba(0,0,0,0.25)}.ant-input{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-input::-moz-placeholder{color:#bfbfbf}.ant-input:-ms-input-placeholder{color:#bfbfbf}.ant-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input:hover{border-color:#4ea39f;border-right-width:1px !important}.ant-input:focus{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-input{min-height:32px;line-height:1.5}.ant-input-lg{height:40px;font-size:16px}.ant-input-sm{height:24px}.ant-input-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";border-collapse:separate;border-spacing:0}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group .ant-input:focus{border-right-width:1px}.ant-input-group .ant-input:hover{border-right-width:1px}.ant-input-group-addon{color:rgba(0,0,0,0.65);font-size:14px;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:4px}.ant-input-group-addon .ant-select .ant-select-selection{border:1px solid transparent}.ant-input-group-addon .ant-select-open .ant-select-selection,.ant-input-group-addon .ant-select-focused .ant-select-selection{color:#319795}.ant-input-group>.ant-input:first-child,.ant-input-group-addon:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input:first-child .ant-select .ant-select-selection,.ant-input-group-addon:first-child .ant-select .ant-select-selection{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group>.ant-input:last-child,.ant-input-group-addon:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input:last-child .ant-select .ant-select-selection,.ant-input-group-addon:last-child .ant-select .ant-select-selection{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{height:40px;font-size:16px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{height:24px}.ant-input-group-lg .ant-select-selection--single{height:40px}.ant-input-group-sm .ant-select-selection--single{height:24px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact>*{border-radius:0}.ant-input-group.ant-input-group-compact>*:not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>*:first-child,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:first-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker:first-child .ant-time-picker-input{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-input-group.ant-input-group-compact>*:last-child,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selection,.ant-input-group.ant-input-group-compact>.ant-calendar-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:last-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-time-picker:last-child .ant-time-picker-input{border-right-width:1px;border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-input-affix-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled){border-color:#4ea39f;border-right-width:1px !important}.ant-input-affix-wrapper .ant-input-prefix,.ant-input-affix-wrapper .ant-input-suffix{color:rgba(0,0,0,0.65)}.ant-input-affix-wrapper .ant-input-prefix :not(.anticon),.ant-input-affix-wrapper .ant-input-suffix :not(.anticon){line-height:1.5}.ant-input-affix-wrapper .ant-input-disabled ~ .ant-input-suffix .anticon{color:rgba(0,0,0,0.25)}.ant-input-password-icon{color:rgba(0,0,0,0.45)}.ant-input-clear-icon{color:rgba(0,0,0,0.25);font-size:12px}.ant-input-clear-icon:hover{color:rgba(0,0,0,0.45)}.ant-input-clear-icon:active{color:rgba(0,0,0,0.65)}.ant-input-textarea-clear-icon{color:rgba(0,0,0,0.25);font-size:12px}.ant-input-textarea-clear-icon:hover{color:rgba(0,0,0,0.45)}.ant-input-textarea-clear-icon:active{color:rgba(0,0,0,0.65)}.ant-layout{background:#f0f2f5}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout-header{height:64px;line-height:64px;background:#001529}.ant-layout-footer{color:rgba(0,0,0,0.65);font-size:14px;background:#f0f2f5}.ant-layout-sider{background:#001529}.ant-layout-sider-trigger{height:48px;color:#fff;line-height:48px;background:#002140}.ant-layout-sider-zero-width-trigger{top:64px;right:-36px;width:36px;height:42px;color:#fff;font-size:18px;line-height:42px;background:#001529;border-radius:0 4px 4px 0}.ant-layout-sider-zero-width-trigger:hover{background:#192c3e}.ant-layout-sider-zero-width-trigger-right{left:-36px;border-radius:4px 0 0 4px}.ant-list{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-list-empty-text{color:rgba(0,0,0,0.25);font-size:14px}.ant-list-item-content{color:rgba(0,0,0,0.65)}.ant-list-item-meta-title{color:rgba(0,0,0,0.65);font-size:14px}.ant-list-item-meta-title>a{color:rgba(0,0,0,0.65)}.ant-list-item-meta-title>a:hover{color:#319795}.ant-list-item-meta-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-list-item-action>li{color:rgba(0,0,0,0.45);font-size:14px}.ant-list-item-action-split{background-color:#e8e8e8}.ant-list-header{background:transparent}.ant-list-footer{background:transparent}.ant-list-empty{color:rgba(0,0,0,0.45)}.ant-list-split .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-list-split .ant-list-item:last-child{border-bottom:0}.ant-list-split .ant-list-header{border-bottom:1px solid #e8e8e8}.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #e8e8e8}.ant-list-vertical .ant-list-item-meta-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-list-grid .ant-col>.ant-list-item{border-bottom:0}.ant-mentions-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-mentions-wrapper .ant-mentions-editor{height:32px;color:rgba(0,0,0,0.65);font-size:14px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;min-height:32px;line-height:1.5}.ant-mentions-wrapper .ant-mentions-editor::-moz-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor:-ms-input-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions-wrapper .ant-mentions-editor:hover{border-color:#4ea39f;border-right-width:1px !important}.ant-mentions-wrapper .ant-mentions-editor:focus{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-mentions-wrapper .ant-mentions-editor-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper .ant-mentions-editor-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-wrapper .ant-mentions-editor[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper .ant-mentions-editor[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-mentions-wrapper .ant-mentions-editor{min-height:32px;line-height:1.5}.ant-mentions-wrapper .ant-mentions-editor-lg{height:40px;font-size:16px}.ant-mentions-wrapper .ant-mentions-editor-sm{height:24px}.ant-mentions-wrapper.ant-mentions-active:not(.disabled) .ant-mentions-editor{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-mentions-wrapper.disabled .ant-mentions-editor{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-wrapper.disabled .ant-mentions-editor:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-wrapper .public-DraftEditorPlaceholder-root .public-DraftEditorPlaceholder-inner{color:#bfbfbf}.ant-mentions-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-mentions-dropdown-notfound.ant-mentions-dropdown-item{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-notfound.ant-mentions-dropdown-item .anticon-loading{color:#319795}.ant-mentions-dropdown-item{color:rgba(0,0,0,0.65)}.ant-mentions-dropdown-item:hover{background-color:#c9d6d4}.ant-mentions-dropdown-item.focus,.ant-mentions-dropdown-item-active{background-color:#c9d6d4}.ant-mentions-dropdown-item-disabled{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-item-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-mentions-dropdown-item-selected,.ant-mentions-dropdown-item-selected:hover{color:rgba(0,0,0,0.65);background-color:#f5f5f5}.ant-mentions-dropdown-item-divider{background-color:#e8e8e8}.ant-mentions{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:"tnum";height:32px;color:rgba(0,0,0,0.65);font-size:14px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;line-height:1.5}.ant-mentions::-moz-placeholder{color:#bfbfbf}.ant-mentions:-ms-input-placeholder{color:#bfbfbf}.ant-mentions::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions:hover{border-color:#4ea39f;border-right-width:1px !important}.ant-mentions:focus{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-mentions-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-mentions{min-height:32px;line-height:1.5}.ant-mentions-lg{height:40px;font-size:16px}.ant-mentions-sm{height:24px}.ant-mentions-disabled>textarea{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-mentions-disabled>textarea:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-mentions-focused{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-mentions>textarea,.ant-mentions-measure{min-height:30px}.ant-mentions>textarea{border:0}.ant-mentions>textarea::-moz-placeholder{color:#bfbfbf}.ant-mentions>textarea:-ms-input-placeholder{color:#bfbfbf}.ant-mentions>textarea::-webkit-input-placeholder{color:#bfbfbf}.ant-mentions-dropdown{color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;box-sizing:border-box;font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-mentions-dropdown-menu-item{color:rgba(0,0,0,0.65)}.ant-mentions-dropdown-menu-item:hover{background-color:#c9d6d4}.ant-mentions-dropdown-menu-item:first-child{border-radius:4px 4px 0 0}.ant-mentions-dropdown-menu-item:last-child{border-radius:0 0 4px 4px}.ant-mentions-dropdown-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-mentions-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,0.25);background-color:#fff}.ant-mentions-dropdown-menu-item-selected{color:rgba(0,0,0,0.65);font-weight:600;background-color:#fafafa}.ant-mentions-dropdown-menu-item-active{background-color:#c9d6d4}.ant-menu{box-sizing:border-box;font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:rgba(0,0,0,0.65);background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-menu-item-group-title{color:rgba(0,0,0,0.45);font-size:14px;line-height:1.5}.ant-menu-submenu-selected{color:#319795}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#c9d6d4}.ant-menu-item>a{color:rgba(0,0,0,0.65)}.ant-menu-item>a:hover{color:#319795}.ant-menu-item>.ant-badge>a{color:rgba(0,0,0,0.65)}.ant-menu-item>.ant-badge>a:hover{color:#319795}.ant-menu-item-divider{background-color:#e8e8e8}.ant-menu-item:hover,.ant-menu-item-active,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,.ant-menu-submenu-active,.ant-menu-submenu-title:hover{color:#319795}.ant-menu-item-selected{color:#319795}.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#319795}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#c9d6d4}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #e8e8e8}.ant-menu-vertical-right{border-left:1px solid #e8e8e8}.ant-menu-vertical.ant-menu-sub,.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub{border-right:0}.ant-menu-vertical.ant-menu-sub .ant-menu-item,.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item{border-right:0}.ant-menu-vertical.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after{border-right:0}.ant-menu-item .anticon,.ant-menu-submenu-title .anticon{font-size:14px}.ant-menu-item .anticon+span,.ant-menu-submenu-title .anticon+span{transition:opacity .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu>.ant-menu-item-divider{background-color:#e8e8e8}.ant-menu-submenu-popup{z-index:1050;background:#fff;border-radius:4px}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:4px}.ant-menu-submenu>.ant-menu-submenu-title::after{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow::after{background:#fff;background:rgba(0,0,0,0.65) \9;background-image:linear-gradient(to right,rgba(0,0,0,0.65),rgba(0,0,0,0.65));border-radius:2px;transition:background .3s cubic-bezier(0.645,0.045,0.355,1),transform .3s cubic-bezier(0.645,0.045,0.355,1),top .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before{background:linear-gradient(to right,#319795,#319795)}.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected{color:#319795}.ant-menu-vertical .ant-menu-submenu-selected>a,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected>a{color:#319795}.ant-menu-horizontal{border:0;border-bottom:1px solid #e8e8e8}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{border-bottom:2px solid transparent}.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu:hover,.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-submenu-selected{color:#319795;border-bottom:2px solid #319795}.ant-menu-horizontal>.ant-menu-item>a{color:rgba(0,0,0,0.65)}.ant-menu-horizontal>.ant-menu-item>a:hover{color:#319795}.ant-menu-horizontal>.ant-menu-item-selected>a{color:#319795}.ant-menu-vertical .ant-menu-item::after,.ant-menu-vertical-left .ant-menu-item::after,.ant-menu-vertical-right .ant-menu-item::after,.ant-menu-inline .ant-menu-item::after{border-right:3px solid #319795;transition:transform .15s cubic-bezier(0.215,0.61,0.355,1),opacity .15s cubic-bezier(0.215,0.61,0.355,1)}.ant-menu-vertical .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item,.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title{height:40px;font-size:14px;line-height:40px}.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-inline>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-inline .ant-menu-selected::after,.ant-menu-inline .ant-menu-item-selected::after{transition:transform .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1)}.ant-menu-inline-collapsed{width:80px}.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{font-size:16px;line-height:40px}.ant-menu-inline-collapsed-tooltip a{color:rgba(255,255,255,0.85)}.ant-menu-sub.ant-menu-inline{border:0;border-radius:0}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{color:rgba(0,0,0,0.25) !important;border-color:transparent !important}.ant-menu-item-disabled>a,.ant-menu-submenu-disabled>a{color:rgba(0,0,0,0.25) !important}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,0.25) !important}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{background:rgba(0,0,0,0.25) !important}.ant-message{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1010}.ant-message-notice-content{background:#fff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-message-success .anticon{color:#52c41a}.ant-message-error .anticon{color:#f5222d}.ant-message-warning .anticon{color:#faad14}.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}.ant-message .anticon{font-size:16px}.ant-notification{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1010;width:384px}.ant-notification-close-icon{font-size:14px}.ant-notification-notice{background:#fff;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-notification-notice-message{color:rgba(0,0,0,0.85);font-size:16px}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-with-icon .ant-notification-notice-message{font-size:16px}.ant-notification-notice-with-icon .ant-notification-notice-description{font-size:14px}.anticon.ant-notification-notice-icon-success{color:#52c41a}.anticon.ant-notification-notice-icon-info{color:#1890ff}.anticon.ant-notification-notice-icon-warning{color:#faad14}.anticon.ant-notification-notice-icon-error{color:#f5222d}.ant-notification-notice-close{color:rgba(0,0,0,0.45)}.ant-notification-notice-close:hover{color:rgba(0,0,0,0.67)}.ant-notification .notification-fade-effect{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-notification-fade-enter,.ant-notification-fade-appear{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}.ant-notification-fade-leave{animation-timing-function:cubic-bezier(0.645,0.045,0.355,1)}@keyframes NotificationFadeIn{0%{left:384px}}@keyframes NotificationLeftFadeIn{0%{right:384px}}.ant-page-header{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";background-color:#fff}.ant-page-header-back-button{color:#319795;color:#000}.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#4ea39f}.ant-page-header-back-button:active{color:#1e6f70}.ant-page-header-heading-title{color:rgba(0,0,0,0.85);font-size:20px}.ant-page-header-heading-sub-title{color:rgba(0,0,0,0.45)}.ant-page-header-footer .ant-tabs-bar{border-bottom:0}.ant-pagination{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-pagination-total-text{height:32px;line-height:30px}.ant-pagination-item{min-width:32px;height:32px;font-family:Arial;line-height:30px;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-item a{color:rgba(0,0,0,0.65)}.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#319795}.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#319795}.ant-pagination-item-active{font-weight:500;background:#fff;border-color:#319795}.ant-pagination-item-active a{color:#319795}.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#4ea39f}.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#4ea39f}.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon{font-size:12px \9;transform:scale(1) rotate(0);color:#319795}:root .ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,:root .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon{font-size:12px}.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis{color:rgba(0,0,0,0.25)}.ant-pagination-prev,.ant-pagination-next,.ant-pagination-jump-prev,.ant-pagination-jump-next{min-width:32px;height:32px;color:rgba(0,0,0,0.65);font-family:Arial;line-height:32px;border-radius:4px}.ant-pagination-prev a,.ant-pagination-next a{color:rgba(0,0,0,0.65)}.ant-pagination-prev:hover a,.ant-pagination-next:hover a{border-color:#4ea39f}.ant-pagination-prev .ant-pagination-item-link,.ant-pagination-next .ant-pagination-item-link{background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link{color:#319795;border-color:#319795}.ant-pagination-disabled a,.ant-pagination-disabled:hover a,.ant-pagination-disabled:focus a,.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link,.ant-pagination-disabled:focus .ant-pagination-item-link{color:rgba(0,0,0,0.25);border-color:#d9d9d9}.ant-pagination-options-quick-jumper{height:32px;line-height:32px}.ant-pagination-options-quick-jumper input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-pagination-options-quick-jumper input::-moz-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input::-webkit-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:hover{border-color:#4ea39f;border-right-width:1px !important}.ant-pagination-options-quick-jumper input:focus{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-pagination-options-quick-jumper input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-pagination-options-quick-jumper input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-pagination-options-quick-jumper input{min-height:32px;line-height:1.5}.ant-pagination-options-quick-jumper input-lg{height:40px;font-size:16px}.ant-pagination-options-quick-jumper input-sm{height:24px}.ant-pagination-simple .ant-pagination-prev,.ant-pagination-simple .ant-pagination-next{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link{height:24px;border:0}.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link::after,.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link::after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{height:24px}.ant-pagination-simple .ant-pagination-simple-pager input{box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#319795}.ant-pagination.mini .ant-pagination-total-text,.ant-pagination.mini .ant-pagination-simple-pager{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{min-width:24px;height:24px;line-height:22px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){border-color:transparent}.ant-pagination.mini .ant-pagination-prev,.ant-pagination.mini .ant-pagination-next{min-width:24px;height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link{border-color:transparent}.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link::after,.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link::after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-prev,.ant-pagination.mini .ant-pagination-jump-next{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{height:24px}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{color:rgba(0,0,0,0.25);border:0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#dbdbdb;border-color:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:hover,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:focus{color:rgba(0,0,0,0.45);background:#f5f5f5;border-color:#d9d9d9}.ant-popover{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1030}.ant-popover::after{background:rgba(255,255,255,0.01)}.ant-popover-inner{background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15);box-shadow:0 0 8px rgba(0,0,0,0.15) \9}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-popover-inner{box-shadow:0 2px 8px rgba(0,0,0,0.15)}}.ant-popover-title{min-width:177px;color:rgba(0,0,0,0.85);border-bottom:1px solid #e8e8e8}.ant-popover-inner-content{color:rgba(0,0,0,0.65)}.ant-popover-message{color:rgba(0,0,0,0.65);font-size:14px}.ant-popover-message>.anticon{color:#faad14;font-size:14px}.ant-popover-arrow{width:8.48528137px;height:8.48528137px;border-style:solid;border-width:4.24264069px}.ant-popover-placement-top>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topRight>.ant-popover-content>.ant-popover-arrow{bottom:6.2px;border-top-color:transparent;border-right-color:#fff;border-bottom-color:#fff;border-left-color:transparent;box-shadow:3px 3px 7px rgba(0,0,0,0.07)}.ant-popover-placement-right>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightTop>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightBottom>.ant-popover-content>.ant-popover-arrow{left:6px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#fff;border-left-color:#fff;box-shadow:-3px 3px 7px rgba(0,0,0,0.07)}.ant-popover-placement-bottom>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomRight>.ant-popover-content>.ant-popover-arrow{top:6px;border-top-color:#fff;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#fff;box-shadow:-2px -2px 5px rgba(0,0,0,0.06)}.ant-popover-placement-left>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftTop>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftBottom>.ant-popover-content>.ant-popover-arrow{right:6px;border-top-color:#fff;border-right-color:#fff;border-bottom-color:transparent;border-left-color:transparent;box-shadow:3px -3px 7px rgba(0,0,0,0.07)}.ant-progress{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-progress-line{font-size:14px}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-inner{background-color:#f5f5f5;border-radius:100px}.ant-progress-circle-trail{stroke:#f5f5f5}.ant-progress-circle-path{animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}.ant-progress-success-bg,.ant-progress-bg{background-color:#1890ff;border-radius:100px;transition:all .4s cubic-bezier(0.08,0.82,0.17,1) 0s}.ant-progress-success-bg{background-color:#52c41a}.ant-progress-text{color:rgba(0,0,0,0.45)}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg::before{background:#fff;border-radius:10px;animation:ant-progress-active 2.4s cubic-bezier(0.23,1,0.32,1) infinite}.ant-progress-status-exception .ant-progress-bg{background-color:#f5222d}.ant-progress-status-exception .ant-progress-text{color:#f5222d}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#f5222d}.ant-progress-status-success .ant-progress-bg{background-color:#52c41a}.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#52c41a}.ant-progress-circle .ant-progress-text{color:rgba(0,0,0,0.65)}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:#f5222d}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-radio-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner,.ant-radio-input:focus+.ant-radio-inner{border-color:#319795}.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px rgba(49,151,149,0.08)}.ant-radio-checked::after{border:1px solid #319795;border-radius:50%}.ant-radio-inner{width:16px;height:16px;background-color:#fff;border-color:#d9d9d9;border-style:solid;border-width:1px;border-radius:100px;transition:all .3s}.ant-radio-inner::after{top:3px;left:3px;width:8px;height:8px;background-color:#319795;border-top:0;border-left:0;border-radius:8px;transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-radio-checked .ant-radio-inner{border-color:#319795}.ant-radio-checked .ant-radio-inner::after{transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-radio-disabled .ant-radio-inner::after{background-color:rgba(0,0,0,0.2)}.ant-radio-disabled+span{color:rgba(0,0,0,0.25)}.ant-radio-button-wrapper{height:32px;color:rgba(0,0,0,0.65);line-height:30px;background:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-left:0;transition:color .3s,background .3s,border-color .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,0.65)}.ant-radio-group-large .ant-radio-button-wrapper{height:40px;font-size:16px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;line-height:22px}.ant-radio-button-wrapper:not(:first-child)::before{background-color:#d9d9d9}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:4px 0 0 4px}.ant-radio-button-wrapper:last-child{border-radius:0 4px 4px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:4px}.ant-radio-button-wrapper:hover{color:#319795}.ant-radio-button-wrapper:focus-within{outline:3px solid rgba(49,151,149,0.06)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#319795;background:#fff;border-color:#319795;box-shadow:-1px 0 0 0 #319795}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before{background-color:#319795 !important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#319795}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#4ea39f;border-color:#4ea39f;box-shadow:-1px 0 0 0 #4ea39f}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#1e6f70;border-color:#1e6f70;box-shadow:-1px 0 0 0 #1e6f70}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(49,151,149,0.06)}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff;background:#319795;border-color:#319795}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#fff;background:#4ea39f;border-color:#4ea39f}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#fff;background:#1e6f70;border-color:#1e6f70}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{outline:3px solid rgba(49,151,149,0.06)}.ant-radio-button-wrapper-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:#fff;background-color:#e6e6e6;border-color:#d9d9d9}.ant-rate{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#fadb14}.ant-rate-star-first,.ant-rate-star-second{color:#e8e8e8}.ant-rate-text{font-size:14px}.ant-result-success .ant-result-icon>.anticon{color:#52c41a}.ant-result-error .ant-result-icon>.anticon{color:#f5222d}.ant-result-info .ant-result-icon>.anticon{color:#1890ff}.ant-result-warning .ant-result-icon>.anticon{color:#faad14}.ant-result-title{color:rgba(0,0,0,0.85)}.ant-result-subtitle{color:rgba(0,0,0,0.45)}.ant-result-content{background-color:#fafafa}.ant-select{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select>ul>li>a{background-color:#fff}.ant-select-arrow{color:inherit;color:rgba(0,0,0,0.25);font-size:12px}.ant-select-selection{box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-radius:4px;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-select-selection:hover{border-color:#4ea39f;border-right-width:1px !important}.ant-select-focused .ant-select-selection,.ant-select-selection:focus,.ant-select-selection:active{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-select-selection__clear{color:rgba(0,0,0,0.25);font-size:12px;background:#fff}.ant-select-selection__clear:hover{color:rgba(0,0,0,0.45)}.ant-select-disabled{color:rgba(0,0,0,0.25)}.ant-select-disabled .ant-select-selection{background:#f5f5f5}.ant-select-disabled .ant-select-selection:hover,.ant-select-disabled .ant-select-selection:focus,.ant-select-disabled .ant-select-selection:active{border-color:#d9d9d9}.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice{color:rgba(0,0,0,0.33);background:#f5f5f5}.ant-select-selection--single{height:32px}.ant-select-selection__rendered{line-height:30px}.ant-select-lg{font-size:16px}.ant-select-lg .ant-select-selection--single{height:40px}.ant-select-lg .ant-select-selection__rendered{line-height:38px}.ant-select-lg .ant-select-selection--multiple{min-height:40px}.ant-select-lg .ant-select-selection--multiple .ant-select-selection__rendered li{height:32px;line-height:32px}.ant-select-lg .ant-select-selection--multiple .ant-select-selection__clear,.ant-select-lg .ant-select-selection--multiple .ant-select-arrow{top:20px}.ant-select-sm .ant-select-selection--single{height:24px}.ant-select-sm .ant-select-selection__rendered{line-height:22px}.ant-select-sm .ant-select-selection--multiple{min-height:24px}.ant-select-sm .ant-select-selection--multiple .ant-select-selection__rendered li{height:16px;line-height:14px}.ant-select-sm .ant-select-selection--multiple .ant-select-selection__clear,.ant-select-sm .ant-select-selection--multiple .ant-select-arrow{top:12px}.ant-select-disabled .ant-select-selection__choice__remove{color:rgba(0,0,0,0.25)}.ant-select-disabled .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,0.25)}.ant-select-selection__placeholder,.ant-select-search__field__placeholder{color:#bfbfbf}.ant-select-search--inline .ant-select-search__field{border-width:0;border-radius:4px}.ant-select-selection--multiple{min-height:32px}.ant-select-selection--multiple>ul>li,.ant-select-selection--multiple .ant-select-selection__rendered>ul>li{height:24px;line-height:22px}.ant-select-selection--multiple .ant-select-selection__choice{color:rgba(0,0,0,0.65);background-color:#fafafa;border:1px solid #e8e8e8;border-radius:2px}.ant-select-selection--multiple .ant-select-selection__choice__remove{color:inherit;color:rgba(0,0,0,0.45);font-size:12px;font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-selection--multiple .ant-select-selection__choice__remove{font-size:12px}.ant-select-selection--multiple .ant-select-selection__choice__remove:hover{color:rgba(0,0,0,0.75)}.ant-select-selection--multiple .ant-select-selection__clear,.ant-select-selection--multiple .ant-select-arrow{top:16px}.ant-select-open .ant-select-selection{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-select-combobox .ant-select-search__field{transition:all .3s cubic-bezier(0.645,0.045,0.355,1),height 0s}.ant-select-dropdown{color:rgba(0,0,0,0.65);font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;box-sizing:border-box;font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-select-dropdown-menu-item-group-title{color:rgba(0,0,0,0.45);font-size:12px}.ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:first-child:not(:last-child),.ant-select-dropdown-menu-item-group:not(:last-child) .ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:last-child{border-radius:0}.ant-select-dropdown-menu-item{color:rgba(0,0,0,0.65);font-size:14px;line-height:22px}.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled){background-color:#c9d6d4}.ant-select-dropdown-menu-item-selected{color:rgba(0,0,0,0.65);font-weight:600;background-color:#fafafa}.ant-select-dropdown-menu-item-disabled{color:rgba(0,0,0,0.25)}.ant-select-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,0.25)}.ant-select-dropdown-menu-item-active:not(.ant-select-dropdown-menu-item-disabled){background-color:#c9d6d4}.ant-select-dropdown-menu-item-divider{background-color:#e8e8e8}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item:hover .ant-select-selected-icon{color:rgba(0,0,0,0.87)}.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon,.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon{color:#319795}.ant-skeleton-header .ant-skeleton-avatar{background:#f2f2f2;width:32px;height:32px;line-height:32px}.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-content .ant-skeleton-title{background:#f2f2f2}.ant-skeleton-content .ant-skeleton-paragraph>li{background:#f2f2f2}.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);animation:ant-skeleton-loading 1.4s ease infinite}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);animation:ant-skeleton-loading 1.4s ease infinite}.ant-slider{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-slider-rail{background-color:#f5f5f5;border-radius:2px}.ant-slider-track{background-color:#97bdb8;border-radius:4px}.ant-slider-handle{background-color:#fff;border:solid 2px #97bdb8;border-radius:50%;box-shadow:0 0;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(0.18,0.89,0.32,1.28)}.ant-slider-handle:focus{border-color:#5aacaa;box-shadow:0 0 0 5px rgba(49,151,149,0.2)}.ant-slider-handle.ant-tooltip-open{border-color:#319795}.ant-slider:hover .ant-slider-rail{background-color:#e1e1e1}.ant-slider:hover .ant-slider-track{background-color:#71b0ab}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#71b0ab}.ant-slider-mark{font-size:14px}.ant-slider-mark-text{color:rgba(0,0,0,0.45)}.ant-slider-mark-text-active{color:rgba(0,0,0,0.65)}.ant-slider-dot{background-color:#fff;border:2px solid #e8e8e8;border-radius:50%}.ant-slider-dot-active{border-color:#98cbca}.ant-slider-disabled .ant-slider-track{background-color:rgba(0,0,0,0.25) !important}.ant-slider-disabled .ant-slider-handle,.ant-slider-disabled .ant-slider-dot{background-color:#fff;border-color:rgba(0,0,0,0.25) !important}.ant-spin{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";color:#319795;transition:transform .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{text-shadow:0 1px 2px #fff}.ant-spin-container::after{background:#fff}.ant-spin-tip{color:rgba(0,0,0,0.45)}.ant-spin-dot{font-size:20px;width:1em;height:1em}.ant-spin-dot-item{background-color:#319795;border-radius:100%}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-lg .ant-spin-dot{font-size:32px}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.ant-spin-blur{background:#fff}}.ant-statistic{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-statistic-title{color:rgba(0,0,0,0.45);font-size:14px}.ant-statistic-content{color:rgba(0,0,0,0.85);font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-statistic-content-value-decimal{font-size:16px}.ant-statistic-content-suffix{font-size:16px}.ant-steps{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-steps-item-icon{width:32px;height:32px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";line-height:32px;border:1px solid rgba(0,0,0,0.25);border-radius:32px;transition:background-color .3s,border-color .3s}.ant-steps-item-icon>.ant-steps-icon{color:#319795}.ant-steps-item-tail::after{background:#e8e8e8;border-radius:1px}.ant-steps-item-title{color:rgba(0,0,0,0.65);font-size:16px;line-height:32px}.ant-steps-item-title::after{top:16px;background:#e8e8e8}.ant-steps-item-subtitle{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-item-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff;border-color:rgba(0,0,0,0.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:rgba(0,0,0,0.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:rgba(0,0,0,0.25)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item-process .ant-steps-item-icon{background-color:#fff;border-color:#319795}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#319795}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#319795}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.65)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item-process .ant-steps-item-icon{background:#319795}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#fff}.ant-steps-item-finish .ant-steps-item-icon{background-color:#fff;border-color:#319795}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#319795}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#319795}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,0.65)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#319795}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,0.45)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#319795}.ant-steps-item-error .ant-steps-item-icon{background-color:#fff;border-color:#f5222d}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon{color:#f5222d}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after{background-color:#e8e8e8}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#f5222d}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#e8e8e8}.ant-steps-item.ant-steps-next-error .ant-steps-item-title::after{background:#f5222d}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-title,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-description{color:#319795}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-icon{border-color:#319795}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role="button"]:hover .ant-steps-item-icon .ant-steps-icon{color:#319795}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description{max-width:140px}.ant-switch{color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";box-sizing:border-box;height:22px;line-height:20px;background-color:rgba(0,0,0,0.25);border:1px solid transparent;border-radius:100px;transition:all .36s}.ant-switch-inner{color:#fff;font-size:12px}.ant-switch-loading-icon,.ant-switch::after{width:18px;height:18px;background-color:#fff;border-radius:18px;transition:all .36s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-switch::after{box-shadow:0 2px 4px 0 rgba(0,35,11,0.2)}.ant-switch-loading .ant-switch-loading-icon{color:rgba(0,0,0,0.65)}.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#319795}.ant-switch:focus{box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-switch-small{height:16px;line-height:14px}.ant-switch-small .ant-switch-inner{font-size:12px}.ant-switch-small::after{width:12px;height:12px}.ant-switch-small .ant-switch-loading-icon{width:12px;height:12px}.ant-switch-checked{background-color:#319795}.ant-switch-loading,.ant-switch-disabled{opacity:.4}.ant-table{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-table table{border-radius:4px 4px 0 0;border-collapse:separate;border-spacing:0}.ant-table-thead>tr>th{color:rgba(0,0,0,0.85);background:#fafafa;border-bottom:1px solid #e8e8e8}.ant-table-thead>tr>th .anticon-filter,.ant-table-thead>tr>th .ant-table-filter-icon{color:#bfbfbf;font-size:12px}.ant-table-thead>tr>th .ant-table-filter-selected.anticon{color:#319795}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner{color:#bfbfbf}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down{font-size:11px \9;transform:scale(0.91666667) rotate(0)}:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up,:root .ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down{font-size:12px}.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on,.ant-table-thead>tr>th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on{color:#319795}.ant-table-thead>tr>th.ant-table-column-has-actions{-webkit-background-clip:border-box}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .anticon-filter.ant-table-filter-open,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters .ant-table-filter-icon.ant-table-filter-open{color:rgba(0,0,0,0.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:hover,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:hover{color:rgba(0,0,0,0.45);background:#e5e5e5}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .anticon-filter:active,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-filters:hover .ant-table-filter-icon:active{color:rgba(0,0,0,0.65)}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .anticon-filter,.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:hover .ant-table-filter-icon{background:#f2f2f2}.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-up:not(.on),.ant-table-thead>tr>th.ant-table-column-has-actions.ant-table-column-has-sorters:active .ant-table-column-sorter-down:not(.on){color:rgba(0,0,0,0.45)}.ant-table-thead>tr:first-child>th:first-child{border-top-left-radius:4px}.ant-table-thead>tr:first-child>th:last-child{border-top-right-radius:4px}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #e8e8e8;transition:all .3s,border 0s}.ant-table-thead>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-thead>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:#c9d6d4}.ant-table-thead>tr.ant-table-row-selected>td.ant-table-column-sort,.ant-table-tbody>tr.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-thead>tr:hover.ant-table-row-selected>td,.ant-table-tbody>tr:hover.ant-table-row-selected>td{background:#fafafa}.ant-table-thead>tr:hover.ant-table-row-selected>td.ant-table-column-sort,.ant-table-tbody>tr:hover.ant-table-row-selected>td.ant-table-column-sort{background:#fafafa}.ant-table-footer{color:rgba(0,0,0,0.85);background:#fafafa;border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-table-footer::before{background:#fafafa}.ant-table.ant-table-bordered .ant-table-footer{border:1px solid #e8e8e8}.ant-table-title{border-radius:4px 4px 0 0}.ant-table.ant-table-bordered .ant-table-title{border:1px solid #e8e8e8}.ant-table-title+.ant-table-content{border-radius:4px 4px 0 0}.ant-table-bordered .ant-table-title+.ant-table-content,.ant-table-bordered .ant-table-title+.ant-table-content table,.ant-table-bordered .ant-table-title+.ant-table-content .ant-table-thead>tr:first-child>th{border-radius:0}.ant-table-without-column-header .ant-table-title+.ant-table-content,.ant-table-without-column-header table{border-radius:0}.ant-table-without-column-header.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-top:1px solid #e8e8e8;border-radius:4px}.ant-table-tbody>tr.ant-table-row-selected td{color:inherit;background:#fafafa}.ant-table-thead>tr>th.ant-table-column-sort{background:#f5f5f5}.ant-table-tbody>tr>td.ant-table-column-sort{background:rgba(0,0,0,0.01)}.ant-table-header{background:#fafafa}.ant-table-header table{border-radius:4px 4px 0 0}.ant-table-loading .ant-table-body{background:#fff}.ant-table-bordered .ant-table-header>table,.ant-table-bordered .ant-table-body>table,.ant-table-bordered .ant-table-fixed-left table,.ant-table-bordered .ant-table-fixed-right table{border:1px solid #e8e8e8;border-right:0;border-bottom:0}.ant-table-bordered.ant-table-empty .ant-table-placeholder{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-table-bordered.ant-table-fixed-header .ant-table-header>table{border-bottom:0}.ant-table-bordered.ant-table-fixed-header .ant-table-body>table{border-top-left-radius:0;border-top-right-radius:0}.ant-table-bordered.ant-table-fixed-header .ant-table-header+.ant-table-body>table,.ant-table-bordered.ant-table-fixed-header .ant-table-body-inner>table{border-top:0}.ant-table-bordered .ant-table-thead>tr:not(:last-child)>th{border-bottom:1px solid #e8e8e8}.ant-table-bordered .ant-table-thead>tr>th,.ant-table-bordered .ant-table-tbody>tr>td{border-right:1px solid #e8e8e8}.ant-table-placeholder{color:rgba(0,0,0,0.25);font-size:14px;background:#fff;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-table-filter-dropdown{background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-filter-dropdown .ant-dropdown-menu{border:0;border-radius:4px 4px 0 0}.ant-table-filter-dropdown .ant-dropdown-menu-sub{border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title::after{color:#319795;text-shadow:0 0 2px #bdc9c8}.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-item:last-child,.ant-table-filter-dropdown>.ant-dropdown-menu>.ant-dropdown-menu-submenu:last-child .ant-dropdown-menu-submenu-title{border-radius:0}.ant-table-filter-dropdown-btns{border-top:1px solid #e8e8e8}.ant-table-filter-dropdown-link{color:#319795}.ant-table-filter-dropdown-link:hover{color:#4ea39f}.ant-table-filter-dropdown-link:active{color:#1e6f70}.ant-table-selection .anticon-down{color:#bfbfbf}.ant-table-selection-menu{background:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-table-selection-menu .ant-action-down{color:#bfbfbf}.ant-table-selection-down:hover .anticon-down{color:rgba(0,0,0,0.6)}.ant-table-row-expand-icon{color:#319795;background:#fff;border:1px solid #e8e8e8;border-radius:2px}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#4ea39f}.ant-table-row-expand-icon:active{color:#1e6f70}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover,.ant-table-row-expand-icon:active{border-color:currentColor}tr.ant-table-expanded-row,tr.ant-table-expanded-row:hover{background:#fbfbfb}.ant-table-fixed-header>.ant-table-content>.ant-table-scroll>.ant-table-body{background:#fff}.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-width:0 0 1px 0}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header::-webkit-scrollbar{border:1px solid #e8e8e8;border-width:1px 1px 1px 0}.ant-table-bordered.ant-table-fixed-header .ant-table-scroll .ant-table-header.ant-table-hide-scrollbar .ant-table-thead>tr:only-child>th:last-child{border-right-color:transparent}.ant-table-fixed-left,.ant-table-fixed-right{z-index:1;border-radius:0}.ant-table-fixed-left table,.ant-table-fixed-right table{background:#fff}.ant-table-fixed-header .ant-table-fixed-left .ant-table-body-outer .ant-table-fixed,.ant-table-fixed-header .ant-table-fixed-right .ant-table-body-outer .ant-table-fixed{border-radius:0}.ant-table-fixed-left{box-shadow:6px 0 6px -4px rgba(0,0,0,0.15)}.ant-table-fixed-left,.ant-table-fixed-left table{border-radius:4px 0 0 0}.ant-table-fixed-left .ant-table-thead>tr>th:last-child{border-top-right-radius:0}.ant-table-fixed-right{box-shadow:-6px 0 6px -4px rgba(0,0,0,0.15)}.ant-table-fixed-right,.ant-table-fixed-right table{border-radius:0 4px 0 0}.ant-table-fixed-right .ant-table-thead>tr>th:first-child{border-top-left-radius:0}.ant-table colgroup>col.ant-table-selection-col{width:60px}.ant-tabs{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tabs-ink-bar{box-sizing:border-box;background-color:#319795}.ant-tabs-bar{border-bottom:1px solid #e8e8e8}.ant-tabs-nav-container{box-sizing:border-box;font-size:14px;line-height:1.5}.ant-tabs-bottom .ant-tabs-bottom-bar{border-top:1px solid #e8e8e8;border-bottom:0}.ant-tabs-tab-prev,.ant-tabs-tab-next{color:rgba(0,0,0,0.45);border:0;transition:width .3s cubic-bezier(0.645,0.045,0.355,1),opacity .3s cubic-bezier(0.645,0.045,0.355,1),color .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-tab-prev.ant-tabs-tab-arrow-show,.ant-tabs-tab-next.ant-tabs-tab-arrow-show{width:32px}.ant-tabs-tab-prev:hover,.ant-tabs-tab-next:hover{color:rgba(0,0,0,0.65)}.ant-tabs-tab-prev-icon-target,.ant-tabs-tab-next-icon-target{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tabs-tab-prev-icon-target,:root .ant-tabs-tab-next-icon-target{font-size:12px}.ant-tabs-tab-btn-disabled,.ant-tabs-tab-btn-disabled:hover{color:rgba(0,0,0,0.25)}.ant-tabs-nav{box-sizing:border-box;transition:transform .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-nav .ant-tabs-tab{box-sizing:border-box;transition:color .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-nav .ant-tabs-tab::before{border-top:2px solid transparent;border-radius:4px 4px 0 0}.ant-tabs-nav .ant-tabs-tab:hover{color:#4ea39f}.ant-tabs-nav .ant-tabs-tab:active{color:#1e6f70}.ant-tabs-nav .ant-tabs-tab-active{color:#319795}.ant-tabs-nav .ant-tabs-tab-disabled,.ant-tabs-nav .ant-tabs-tab-disabled:hover{color:rgba(0,0,0,0.25)}.ant-tabs .ant-tabs-large-bar .ant-tabs-nav-container{font-size:16px}.ant-tabs .ant-tabs-small-bar .ant-tabs-nav-container{font-size:14px}.ant-tabs .ant-tabs-left-bar,.ant-tabs .ant-tabs-right-bar{border-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show{height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-next,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-next{height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-prev,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-prev{height:32px}.ant-tabs .ant-tabs-left-bar{border-right:1px solid #e8e8e8}.ant-tabs .ant-tabs-left-content{border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-bar{border-left:1px solid #e8e8e8}.ant-tabs .ant-tabs-right-content{border-right:1px solid #e8e8e8}.ant-tabs-top .ant-tabs-ink-bar-animated,.ant-tabs-bottom .ant-tabs-ink-bar-animated{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1),width .2s cubic-bezier(0.645,0.045,0.355,1),left .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs-left .ant-tabs-ink-bar-animated,.ant-tabs-right .ant-tabs-ink-bar-animated{transition:transform .3s cubic-bezier(0.645,0.045,0.355,1),height .2s cubic-bezier(0.645,0.045,0.355,1),top .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tag{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";font-size:12px;background:#fafafa;border:1px solid #d9d9d9;border-radius:4px;transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,0.65)}.ant-tag .anticon-close{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45);transition:all .3s cubic-bezier(0.78,0.14,0.15,0.86)}:root .ant-tag .anticon-close{font-size:12px}.ant-tag .anticon-close:hover{color:rgba(0,0,0,0.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color a,.ant-tag-has-color a:hover,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover{color:#fff}.ant-tag-checkable{border-color:transparent}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#319795}.ant-tag-checkable:active,.ant-tag-checkable-checked{color:#fff}.ant-tag-checkable-checked{background-color:#319795}.ant-tag-checkable:active{background-color:#1e6f70}.ant-tag-pink{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-magenta{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-red{color:#f5222d;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{color:#fff;background:#f5222d;border-color:#f5222d}.ant-tag-volcano{color:#fa541c;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{color:#fff;background:#fa541c;border-color:#fa541c}.ant-tag-orange{color:#fa8c16;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{color:#fff;background:#fa8c16;border-color:#fa8c16}.ant-tag-yellow{color:#fadb14;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{color:#fff;background:#fadb14;border-color:#fadb14}.ant-tag-gold{color:#faad14;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{color:#fff;background:#faad14;border-color:#faad14}.ant-tag-cyan{color:#13c2c2;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{color:#fff;background:#13c2c2;border-color:#13c2c2}.ant-tag-lime{color:#a0d911;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{color:#fff;background:#a0d911;border-color:#a0d911}.ant-tag-green{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{color:#fff;background:#52c41a;border-color:#52c41a}.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{color:#fff;background:#1890ff;border-color:#1890ff}.ant-tag-geekblue{color:#2f54eb;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-tag-purple{color:#722ed1;background:#f9f0ff;border-color:#d3adf7}.ant-tag-purple-inverse{color:#fff;background:#722ed1;border-color:#722ed1}.ant-time-picker-panel{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-time-picker-panel-inner{font-size:14px;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-time-picker-panel-input{border:0}.ant-time-picker-panel-input::-moz-placeholder{color:#bfbfbf}.ant-time-picker-panel-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-panel-input-wrap{border-bottom:1px solid #e8e8e8}.ant-time-picker-panel-input-invalid{border-color:#f5222d}.ant-time-picker-panel-narrow .ant-time-picker-panel-input-wrap{max-width:112px}.ant-time-picker-panel-select{width:56px;max-height:192px;font-size:14px;border-left:1px solid #e8e8e8}.ant-time-picker-panel-select:first-child{border-left:0}.ant-time-picker-panel-select:last-child{border-right:0}.ant-time-picker-panel-select ul{width:56px}.ant-time-picker-panel-select li{height:32px;line-height:32px}.ant-time-picker-panel-select li:focus{color:#319795}.ant-time-picker-panel-select li:hover{background:#c9d6d4}li.ant-time-picker-panel-select-option-selected{background:#f5f5f5}li.ant-time-picker-panel-select-option-selected:hover{background:#f5f5f5}li.ant-time-picker-panel-select-option-disabled{color:rgba(0,0,0,0.25)}li.ant-time-picker-panel-select-option-disabled:focus{color:rgba(0,0,0,0.25)}.ant-time-picker-panel-addon{border-top:1px solid #e8e8e8}.ant-time-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-time-picker-input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px}.ant-time-picker-input::-moz-placeholder{color:#bfbfbf}.ant-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-time-picker-input:hover{border-color:#4ea39f;border-right-width:1px !important}.ant-time-picker-input:focus{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-time-picker-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-time-picker-input{min-height:32px;line-height:1.5}.ant-time-picker-input-lg{height:40px;font-size:16px}.ant-time-picker-input-sm{height:24px}.ant-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-time-picker-icon,.ant-time-picker-clear{color:rgba(0,0,0,0.25);transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-time-picker-icon .ant-time-picker-clock-icon,.ant-time-picker-clear .ant-time-picker-clock-icon{color:rgba(0,0,0,0.25)}.ant-time-picker-clear{background:#fff}.ant-time-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-time-picker-large .ant-time-picker-input{height:40px;font-size:16px}.ant-time-picker-small .ant-time-picker-input{height:24px}@media not all and (min-resolution:.001dpcm){@supports(-webkit-appearance:none) and (stroke-color:transparent){.ant-input{line-height:1.5}}}.ant-timeline{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-timeline-item{font-size:14px}.ant-timeline-item-tail{border-left:2px solid #e8e8e8}.ant-timeline-item-pending .ant-timeline-item-head{font-size:12px}.ant-timeline-item-head{background-color:#fff;border:2px solid transparent;border-radius:100px}.ant-timeline-item-head-blue{color:#319795;border-color:#319795}.ant-timeline-item-head-red{color:#f5222d;border-color:#f5222d}.ant-timeline-item-head-green{color:#52c41a;border-color:#52c41a}.ant-timeline-item-head-gray{color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-timeline-item-head-custom{border:0;border-radius:0}.ant-timeline-item-content{top:-6px}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom{left:calc(100% - 4px - 2px)}.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail{border-left:2px dotted #e8e8e8}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-left:2px dotted #e8e8e8}.ant-tooltip{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1060;max-width:250px}.ant-tooltip-inner{color:#fff;background-color:rgba(0,0,0,0.75);border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-tooltip-arrow{width:13.07106781px;height:13.07106781px}.ant-tooltip-arrow::before{width:5px;height:5px;background-color:rgba(0,0,0,0.75)}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow::before,.ant-tooltip-placement-topLeft .ant-tooltip-arrow::before,.ant-tooltip-placement-topRight .ant-tooltip-arrow::before{box-shadow:3px 3px 7px rgba(0,0,0,0.07);transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow::before,.ant-tooltip-placement-rightTop .ant-tooltip-arrow::before,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow::before{box-shadow:-3px 3px 7px rgba(0,0,0,0.07);transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow::before,.ant-tooltip-placement-leftTop .ant-tooltip-arrow::before,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow::before{box-shadow:3px -3px 7px rgba(0,0,0,0.07);transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow::before,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow::before,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow::before{box-shadow:-3px -3px 7px rgba(0,0,0,0.07);transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-transfer{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-transfer-disabled .ant-transfer-list{background:#f5f5f5}.ant-transfer-list{height:200px;border:1px solid #d9d9d9;border-radius:4px}.ant-transfer-list-search-action{color:rgba(0,0,0,0.25);line-height:32px}.ant-transfer-list-search-action .anticon{color:rgba(0,0,0,0.25)}.ant-transfer-list-search-action .anticon:hover{color:rgba(0,0,0,0.45)}.ant-transfer-list-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-transfer-list-body{font-size:14px}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#c9d6d4}.ant-transfer-list-content-item-disabled{color:rgba(0,0,0,0.25)}.ant-transfer-list-body-not-found{color:rgba(0,0,0,0.25)}.ant-transfer-list-footer{border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}@keyframes transferHighlightIn{0%{background:#bdc9c8}}.ant-select-tree-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner{border-color:#319795}.ant-select-tree-checkbox-checked::after{border:1px solid #319795;border-radius:2px}.ant-select-tree-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-select-tree-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#319795;border-color:#319795}.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-select-tree-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-select-tree-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after{width:8px;height:8px;background-color:#319795;border:0}.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-select-tree{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree li .ant-select-tree-node-content-wrapper{color:rgba(0,0,0,0.65);border-radius:2px}.ant-select-tree li .ant-select-tree-node-content-wrapper:hover{background-color:#c9d6d4}.ant-select-tree li .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:#bdc9c8}.ant-select-tree li span.ant-select-tree-switcher,.ant-select-tree li span.ant-select-tree-iconEle{border:0 none}.ant-select-tree li span.ant-select-icon_loading .ant-select-switcher-loading-icon{color:#319795}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-tree-switcher-icon,:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-icon{font-size:12px}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-tree-switcher-icon,:root .ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-icon{font-size:12px}.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-loading-icon,.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-loading-icon{color:#319795}li.ant-select-tree-treenode-disabled>span:not(.ant-select-tree-switcher),li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper,li.ant-select-tree-treenode-disabled>.ant-select-tree-node-content-wrapper span{color:rgba(0,0,0,0.25)}.ant-select-tree-dropdown{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-select-tree-dropdown .ant-select-dropdown-search{background:#fff}.ant-select-tree-dropdown .ant-select-dropdown-search .ant-select-search__field{box-sizing:border-box;border:1px solid #d9d9d9;border-radius:4px}.ant-select-tree-dropdown .ant-select-not-found{color:rgba(0,0,0,0.25)}.ant-tree-checkbox{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner,.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner{border-color:#319795}.ant-tree-checkbox-checked::after{border:1px solid #319795;border-radius:2px}.ant-tree-checkbox-inner{width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate}.ant-tree-checkbox-inner::after{width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transition:all .1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border:2px solid #fff;border-top:0;border-left:0;transition:all .2s cubic-bezier(0.12,0.4,0.29,1.46) .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#319795;border-color:#319795}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border-color:rgba(0,0,0,0.25)}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9 !important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after{border-color:#f5f5f5;border-collapse:separate}.ant-tree-checkbox-disabled+span{color:rgba(0,0,0,0.25)}.ant-tree-checkbox-wrapper{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-group{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner::after{width:8px;height:8px;background-color:#319795;border:0}.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after{background-color:rgba(0,0,0,0.25);border-color:rgba(0,0,0,0.25)}.ant-tree{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-tree li span[draggable],.ant-tree li span[draggable="true"]{line-height:20px;border-top:2px transparent solid;border-bottom:2px transparent solid}.ant-tree li.drag-over>span[draggable]{background-color:#319795}.ant-tree li.drag-over-gap-top>span[draggable]{border-top-color:#319795}.ant-tree li.drag-over-gap-bottom>span[draggable]{border-bottom-color:#319795}.ant-tree li.filter-node>span{color:#f5222d !important}.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-loading-icon,.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-loading-icon{height:24px;color:#319795}.ant-tree li .ant-tree-node-content-wrapper{height:24px;color:rgba(0,0,0,0.65);line-height:24px;border-radius:2px}.ant-tree li .ant-tree-node-content-wrapper:hover{background-color:#c9d6d4}.ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:#bdc9c8}.ant-tree li span.ant-tree-checkbox{height:24px}.ant-tree li span.ant-tree-switcher,.ant-tree li span.ant-tree-iconEle{height:24px;line-height:24px;border:0 none}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-icon,:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_open .ant-select-switcher-icon{font-size:12px}.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon,.ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon{font-size:10px \9;transform:scale(0.83333333) rotate(0)}:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-icon,:root .ant-tree li span.ant-tree-switcher.ant-tree-switcher_close .ant-select-switcher-icon{font-size:12px}li.ant-tree-treenode-disabled>span:not(.ant-tree-switcher),li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper,li.ant-tree-treenode-disabled>.ant-tree-node-content-wrapper span{color:rgba(0,0,0,0.25)}.ant-tree.ant-tree-show-line li span.ant-tree-switcher{color:rgba(0,0,0,0.45);background:#fff}.ant-tree.ant-tree-show-line li:not(:last-child)::before{border-left:1px solid #d9d9d9}.ant-typography{color:rgba(0,0,0,0.65)}.ant-typography.ant-typography-secondary{color:rgba(0,0,0,0.45)}.ant-typography.ant-typography-warning{color:#faad14}.ant-typography.ant-typography-danger{color:#f5222d}.ant-typography.ant-typography-disabled{color:rgba(0,0,0,0.25)}h1.ant-typography,.ant-typography h1{color:rgba(0,0,0,0.85);font-weight:600;font-size:38px;line-height:1.23}h2.ant-typography,.ant-typography h2{color:rgba(0,0,0,0.85);font-weight:600;font-size:30px;line-height:1.35}h3.ant-typography,.ant-typography h3{color:rgba(0,0,0,0.85);font-weight:600;font-size:24px;line-height:1.35}h4.ant-typography,.ant-typography h4{color:rgba(0,0,0,0.85);font-weight:600;font-size:20px;line-height:1.4}.ant-typography a{color:#319795}.ant-typography a:focus,.ant-typography a:hover{color:#4ea39f}.ant-typography a:active{color:#1e6f70}.ant-typography a:active,.ant-typography a:hover{text-decoration:none}.ant-typography a[disabled]{color:rgba(0,0,0,0.25)}.ant-typography code{border:1px solid rgba(0,0,0,0.06);border-radius:3px}.ant-typography mark{background-color:#ffe58f}.ant-typography-expand,.ant-typography-edit,.ant-typography-copy{color:#319795}.ant-typography-expand:focus,.ant-typography-edit:focus,.ant-typography-copy:focus,.ant-typography-expand:hover,.ant-typography-edit:hover,.ant-typography-copy:hover{color:#4ea39f}.ant-typography-expand:active,.ant-typography-edit:active,.ant-typography-copy:active{color:#1e6f70}.ant-typography-copy-success,.ant-typography-copy-success:hover,.ant-typography-copy-success:focus{color:#52c41a}.ant-typography-edit-content-confirm{color:rgba(0,0,0,0.45)}.ant-upload{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-upload.ant-upload-select-picture-card{width:104px;height:104px;background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:4px;transition:border-color .3s ease}.ant-upload.ant-upload-select-picture-card:hover{border-color:#319795}.ant-upload.ant-upload-drag{background:#fafafa;border:1px dashed #d9d9d9;border-radius:4px;transition:border-color .3s}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#1e6f70}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#4ea39f}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#4ea39f}.ant-upload.ant-upload-drag p.ant-upload-text{color:rgba(0,0,0,0.85);font-size:16px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,0.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,0.25)}.ant-upload.ant-upload-drag .anticon-plus:hover{color:rgba(0,0,0,0.45)}.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,0.45)}.ant-upload-list{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-upload-list-item{font-size:14px}.ant-upload-list-item-info .anticon-loading,.ant-upload-list-item-info .anticon-paper-clip{top:5px;color:rgba(0,0,0,0.45);font-size:14px}.ant-upload-list-item .anticon-close{font-size:10px \9;transform:scale(0.83333333) rotate(0);color:rgba(0,0,0,0.45)}:root .ant-upload-list-item .anticon-close{font-size:12px}.ant-upload-list-item .anticon-close:hover{color:rgba(0,0,0,0.65)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#c9d6d4}.ant-upload-list-item-error,.ant-upload-list-item-error .anticon-paper-clip,.ant-upload-list-item-error .ant-upload-list-item-name{color:#f5222d}.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{color:#f5222d}.ant-upload-list-item-progress{font-size:14px}.ant-upload-list-picture .ant-upload-list-item,.ant-upload-list-picture-card .ant-upload-list-item{border:1px solid #d9d9d9;border-radius:4px}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:#f5222d}.ant-upload-list-picture .ant-upload-list-item-uploading,.ant-upload-list-picture-card .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-name{box-sizing:border-box}.ant-upload-list-picture-card-container{width:104px;height:104px}.ant-upload-list-picture-card .ant-upload-list-item{width:104px;height:104px}.ant-upload-list-picture-card .ant-upload-list-item-info::before{background-color:rgba(0,0,0,0.5)}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete{color:rgba(255,255,255,0.85)}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-name{line-height:1.5}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading-text{color:rgba(0,0,0,0.45)}.ant-upload-list .ant-upload-success-icon{color:#52c41a}.ant-upload-list .ant-upload-animate-enter,.ant-upload-list .ant-upload-animate-leave,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-fill-mode:cubic-bezier(0.78,0.14,0.15,0.86)}.ant-card-small>.ant-card-head{min-height:36px;font-size:14px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{font-size:14px}.ant-calendar{font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #fff;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-calendar-input-wrap{border-bottom:1px solid #e8e8e8}.ant-calendar-input{color:rgba(0,0,0,0.65);background:#fff;border:0}.ant-calendar-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-header{border-bottom:1px solid #e8e8e8}.ant-calendar-header a:hover{color:#4ea39f}.ant-calendar-header .ant-calendar-century-select,.ant-calendar-header .ant-calendar-decade-select,.ant-calendar-header .ant-calendar-year-select,.ant-calendar-header .ant-calendar-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-header .ant-calendar-prev-century-btn,.ant-calendar-header .ant-calendar-next-century-btn,.ant-calendar-header .ant-calendar-prev-decade-btn,.ant-calendar-header .ant-calendar-next-decade-btn,.ant-calendar-header .ant-calendar-prev-month-btn,.ant-calendar-header .ant-calendar-next-month-btn,.ant-calendar-header .ant-calendar-prev-year-btn,.ant-calendar-header .ant-calendar-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-header .ant-calendar-prev-century-btn::before,.ant-calendar-header .ant-calendar-prev-decade-btn::before,.ant-calendar-header .ant-calendar-prev-year-btn::before,.ant-calendar-header .ant-calendar-prev-century-btn::after,.ant-calendar-header .ant-calendar-prev-decade-btn::after,.ant-calendar-header .ant-calendar-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-prev-century-btn:hover::before,.ant-calendar-header .ant-calendar-prev-decade-btn:hover::before,.ant-calendar-header .ant-calendar-prev-year-btn:hover::before,.ant-calendar-header .ant-calendar-prev-century-btn:hover::after,.ant-calendar-header .ant-calendar-prev-decade-btn:hover::after,.ant-calendar-header .ant-calendar-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-next-century-btn::before,.ant-calendar-header .ant-calendar-next-decade-btn::before,.ant-calendar-header .ant-calendar-next-year-btn::before,.ant-calendar-header .ant-calendar-next-century-btn::after,.ant-calendar-header .ant-calendar-next-decade-btn::after,.ant-calendar-header .ant-calendar-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-next-century-btn:hover::before,.ant-calendar-header .ant-calendar-next-decade-btn:hover::before,.ant-calendar-header .ant-calendar-next-year-btn:hover::before,.ant-calendar-header .ant-calendar-next-century-btn:hover::after,.ant-calendar-header .ant-calendar-next-decade-btn:hover::after,.ant-calendar-header .ant-calendar-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-prev-month-btn::before,.ant-calendar-header .ant-calendar-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-prev-month-btn:hover::before,.ant-calendar-header .ant-calendar-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-header .ant-calendar-next-month-btn::before,.ant-calendar-header .ant-calendar-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-header .ant-calendar-next-month-btn:hover::before,.ant-calendar-header .ant-calendar-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar table{border-collapse:collapse}.ant-calendar table,.ant-calendar th,.ant-calendar td{border:0}.ant-calendar-calendar-table{border-spacing:0}.ant-calendar-date{color:rgba(0,0,0,0.65);border:1px solid transparent;border-radius:2px}.ant-calendar-date:hover{background:#c9d6d4}.ant-calendar-date:active{color:#fff;background:#4ea39f}.ant-calendar-today .ant-calendar-date{color:#319795;border-color:#319795}.ant-calendar-selected-day .ant-calendar-date{background:#bdc9c8}.ant-calendar-last-month-cell .ant-calendar-date,.ant-calendar-next-month-btn-day .ant-calendar-date,.ant-calendar-last-month-cell .ant-calendar-date:hover,.ant-calendar-next-month-btn-day .ant-calendar-date:hover{color:rgba(0,0,0,0.25);border-color:transparent}.ant-calendar-disabled-cell .ant-calendar-date{color:rgba(0,0,0,0.25);background:#f5f5f5;border:1px solid transparent;border-radius:0}.ant-calendar-disabled-cell .ant-calendar-date:hover{background:#f5f5f5}.ant-calendar-disabled-cell.ant-calendar-selected-day .ant-calendar-date::before{border-radius:2px}.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date::before{border:1px solid rgba(0,0,0,0.25);border-radius:2px}.ant-calendar-disabled-cell-first-of-row .ant-calendar-date{border-top-left-radius:4px;border-bottom-left-radius:4px}.ant-calendar-disabled-cell-last-of-row .ant-calendar-date{border-top-right-radius:4px;border-bottom-right-radius:4px}.ant-calendar-footer{border-top:1px solid #e8e8e8}.ant-calendar-footer:empty{border-top:0}.ant-calendar .ant-calendar-today-btn-disabled,.ant-calendar .ant-calendar-clear-btn-disabled{color:rgba(0,0,0,0.25)}.ant-calendar .ant-calendar-clear-btn::after{color:rgba(0,0,0,0.25);font-size:14px}.ant-calendar .ant-calendar-clear-btn:hover::after{color:rgba(0,0,0,0.45)}.ant-calendar .ant-calendar-ok-btn{font-weight:400;border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,0.015);transition:all .3s cubic-bezier(0.645,0.045,0.355,1);height:32px;color:#fff;background-color:#319795;border-color:#319795;text-shadow:0 -1px 0 rgba(0,0,0,0.12);box-shadow:0 2px 0 rgba(0,0,0,0.045);height:24px;font-size:14px;border-radius:4px;line-height:22px}.ant-calendar .ant-calendar-ok-btn-lg{height:40px;font-size:16px;border-radius:4px}.ant-calendar .ant-calendar-ok-btn-sm{height:24px;font-size:14px;border-radius:4px}.ant-calendar .ant-calendar-ok-btn:hover,.ant-calendar .ant-calendar-ok-btn:focus{color:#fff;background-color:#4ea39f;border-color:#4ea39f}.ant-calendar .ant-calendar-ok-btn:active,.ant-calendar .ant-calendar-ok-btn.active{color:#fff;background-color:#1e6f70;border-color:#1e6f70}.ant-calendar .ant-calendar-ok-btn-disabled,.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn[disabled],.ant-calendar .ant-calendar-ok-btn-disabled:hover,.ant-calendar .ant-calendar-ok-btn.disabled:hover,.ant-calendar .ant-calendar-ok-btn[disabled]:hover,.ant-calendar .ant-calendar-ok-btn-disabled:focus,.ant-calendar .ant-calendar-ok-btn.disabled:focus,.ant-calendar .ant-calendar-ok-btn[disabled]:focus,.ant-calendar .ant-calendar-ok-btn-disabled:active,.ant-calendar .ant-calendar-ok-btn.disabled:active,.ant-calendar .ant-calendar-ok-btn[disabled]:active,.ant-calendar .ant-calendar-ok-btn-disabled.active,.ant-calendar .ant-calendar-ok-btn.disabled.active,.ant-calendar .ant-calendar-ok-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-calendar .ant-calendar-ok-btn-disabled,.ant-calendar .ant-calendar-ok-btn.disabled,.ant-calendar .ant-calendar-ok-btn[disabled],.ant-calendar .ant-calendar-ok-btn-disabled:hover,.ant-calendar .ant-calendar-ok-btn.disabled:hover,.ant-calendar .ant-calendar-ok-btn[disabled]:hover,.ant-calendar .ant-calendar-ok-btn-disabled:focus,.ant-calendar .ant-calendar-ok-btn.disabled:focus,.ant-calendar .ant-calendar-ok-btn[disabled]:focus,.ant-calendar .ant-calendar-ok-btn-disabled:active,.ant-calendar .ant-calendar-ok-btn.disabled:active,.ant-calendar .ant-calendar-ok-btn[disabled]:active,.ant-calendar .ant-calendar-ok-btn-disabled.active,.ant-calendar .ant-calendar-ok-btn.disabled.active,.ant-calendar .ant-calendar-ok-btn[disabled].active{color:rgba(0,0,0,0.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-calendar-decade-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-decade-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-decade-panel-header a:hover{color:#4ea39f}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:hover::after,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover::before,.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-decade-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-decade-panel-table{border-collapse:separate}.ant-calendar-decade-panel-decade{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-decade-panel-decade:hover{background:#c9d6d4}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade{color:#fff;background:#319795}.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover{color:#fff;background:#319795}.ant-calendar-decade-panel-last-century-cell .ant-calendar-decade-panel-decade,.ant-calendar-decade-panel-next-century-cell .ant-calendar-decade-panel-decade{color:rgba(0,0,0,0.25)}.ant-calendar-month-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-month-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-month-panel-header a:hover{color:#4ea39f}.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select,.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:hover::after,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover::before,.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-month-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-month-panel-table{border-collapse:separate}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month{color:#fff;background:#319795}.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover{color:#fff;background:#319795}.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month,.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month:hover{color:rgba(0,0,0,0.25);background:#f5f5f5}.ant-calendar-month-panel-month{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-month-panel-month:hover{background:#c9d6d4}.ant-calendar-picker-container{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum";z-index:1050;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.ant-calendar-picker{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-calendar-picker-input.ant-input{line-height:1.5}.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#4ea39f}.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled){border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-calendar-picker-clear,.ant-calendar-picker-icon{font-size:12px}.ant-calendar-picker-clear{color:rgba(0,0,0,0.25);font-size:14px;background:#fff}.ant-calendar-picker-clear:hover{color:rgba(0,0,0,0.45)}.ant-calendar-picker-icon{color:rgba(0,0,0,0.25);font-size:14px}.ant-calendar-range-picker-input{border:0}.ant-calendar-range-picker-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range-picker-separator{color:rgba(0,0,0,0.45)}.ant-calendar-range-left .ant-calendar-time-picker-inner{border-right:1px solid #e8e8e8}.ant-calendar-range-right .ant-calendar-time-picker-inner{border-left:1px solid #e8e8e8}.ant-calendar-range-middle{height:34px;color:rgba(0,0,0,0.45);line-height:34px}.ant-calendar-range .ant-calendar-today :not(.ant-calendar-disabled-cell) :not(.ant-calendar-last-month-cell) :not(.ant-calendar-next-month-btn-day) .ant-calendar-date{color:#319795;background:#bdc9c8;border-color:#319795}.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date,.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date{color:#fff;background:#319795;border:1px solid transparent}.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover,.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover{background:#319795}.ant-calendar-range .ant-calendar-input-wrap{height:34px}.ant-calendar-range .ant-calendar-input,.ant-calendar-range .ant-calendar-time-picker-input{height:32px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5;background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;height:24px;line-height:24px;border:0}.ant-calendar-range .ant-calendar-input::-moz-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-moz-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input:-ms-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input:-ms-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input::-webkit-input-placeholder,.ant-calendar-range .ant-calendar-time-picker-input::-webkit-input-placeholder{color:#bfbfbf}.ant-calendar-range .ant-calendar-input:hover,.ant-calendar-range .ant-calendar-time-picker-input:hover{border-color:#4ea39f;border-right-width:1px !important}.ant-calendar-range .ant-calendar-input:focus,.ant-calendar-range .ant-calendar-time-picker-input:focus{border-color:#4ea39f;border-right-width:1px !important;box-shadow:0 0 0 2px rgba(49,151,149,0.2)}.ant-calendar-range .ant-calendar-input-disabled,.ant-calendar-range .ant-calendar-time-picker-input-disabled{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-calendar-range .ant-calendar-input-disabled:hover,.ant-calendar-range .ant-calendar-time-picker-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px !important}.ant-calendar-range .ant-calendar-input[disabled],.ant-calendar-range .ant-calendar-time-picker-input[disabled]{color:rgba(0,0,0,0.25);background-color:#f5f5f5}.ant-calendar-range .ant-calendar-input[disabled]:hover,.ant-calendar-range .ant-calendar-time-picker-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px !important}textarea.ant-calendar-range .ant-calendar-input,textarea.ant-calendar-range .ant-calendar-time-picker-input{min-height:32px;line-height:1.5}.ant-calendar-range .ant-calendar-input-lg,.ant-calendar-range .ant-calendar-time-picker-input-lg{height:40px;font-size:16px}.ant-calendar-range .ant-calendar-input-sm,.ant-calendar-range .ant-calendar-time-picker-input-sm{height:24px}.ant-calendar-range .ant-calendar-year-panel,.ant-calendar-range .ant-calendar-month-panel,.ant-calendar-range .ant-calendar-decade-panel{top:34px}.ant-calendar-range .ant-calendar-in-range-cell{border-radius:0}.ant-calendar-range .ant-calendar-in-range-cell::before{background:#c9d6d4;border:0;border-radius:0}.ant-calendar-range .ant-calendar-header,.ant-calendar-range .ant-calendar-month-panel-header,.ant-calendar-range .ant-calendar-year-panel-header,.ant-calendar-range .ant-calendar-decade-panel-header{border-bottom:0}.ant-calendar-range .ant-calendar-body,.ant-calendar-range .ant-calendar-month-panel-body,.ant-calendar-range .ant-calendar-year-panel-body,.ant-calendar-range .ant-calendar-decade-panel-body{border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-combobox{background-color:#fff;border-top:1px solid #e8e8e8}.ant-calendar-range.ant-calendar-show-time-picker .ant-calendar-body{border-top-color:transparent}.ant-calendar-time-picker{background-color:#fff}.ant-calendar-time-picker-panel{z-index:1050}.ant-calendar-time-picker-inner{font-size:14px;background-color:#fff}.ant-calendar-time-picker-select{font-size:14px;border-right:1px solid #e8e8e8}.ant-calendar-time-picker-select:first-child{border-left:0}.ant-calendar-time-picker-select:last-child{border-right:0}.ant-calendar-time-picker-select li:hover{background:#c9d6d4}.ant-calendar-time-picker-select li:focus{color:#319795}li.ant-calendar-time-picker-select-option-selected{background:#f5f5f5}li.ant-calendar-time-picker-select-option-disabled{color:rgba(0,0,0,0.25)}.ant-calendar-time .ant-calendar-day-select{color:rgba(0,0,0,0.85)}.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn-disabled{color:rgba(0,0,0,0.25)}.ant-calendar-week-number .ant-calendar-body tr:hover{background:#c9d6d4}.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week{background:#bdc9c8}.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day .ant-calendar-date,.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day:hover .ant-calendar-date{color:rgba(0,0,0,0.65)}.ant-calendar-year-panel{z-index:10;background:#fff;border-radius:4px}.ant-calendar-year-panel-header{border-bottom:1px solid #e8e8e8}.ant-calendar-year-panel-header a:hover{color:#4ea39f}.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select,.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select{color:rgba(0,0,0,0.85)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn{color:rgba(0,0,0,0.45)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:hover::after,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn::after{border:0 solid #aaa;border-width:1.5px 0 0 1.5px;border-radius:1px}.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover::before,.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:hover::after{border-color:rgba(0,0,0,0.65)}.ant-calendar-year-panel-footer{border-top:1px solid #e8e8e8}.ant-calendar-year-panel-table{border-collapse:separate}.ant-calendar-year-panel-year{color:rgba(0,0,0,0.65);border-radius:2px}.ant-calendar-year-panel-year:hover{background:#c9d6d4}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year{color:#fff;background:#319795}.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover{color:#fff;background:#319795}.ant-calendar-year-panel-last-decade-cell .ant-calendar-year-panel-year,.ant-calendar-year-panel-next-decade-cell .ant-calendar-year-panel-year{color:rgba(0,0,0,0.25)}.ant-drawer{z-index:1000;transition:transform .3s cubic-bezier(0.7,0.3,0.1,1),height 0s ease .3s,width 0s ease .3s}.ant-drawer>*{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1),box-shadow .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:2px 0 8px rgba(0,0,0,0.15)}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:-2px 0 8px rgba(0,0,0,0.15)}.ant-drawer-top.ant-drawer-open,.ant-drawer-bottom.ant-drawer-open{transition:transform .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 -2px 8px rgba(0,0,0,0.15)}.ant-drawer.ant-drawer-open .ant-drawer-mask{animation:antdDrawerFadeIn .3s cubic-bezier(0.7,0.3,0.1,1)}.ant-drawer-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-drawer-content{background-color:#fff;border:0}.ant-drawer-close{z-index:10;color:rgba(0,0,0,0.45);font-size:16px;border:0;transition:color .3s}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,0.75)}.ant-drawer-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-drawer-header-no-title{color:rgba(0,0,0,0.65);background:#fff}.ant-drawer-body{font-size:14px;line-height:1.5}.ant-drawer-mask{background-color:rgba(0,0,0,0.45);transition:opacity .3s linear,height 0s ease .3s}.ant-drawer-open-content{box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-input-search-icon{color:rgba(0,0,0,0.45)}.ant-input-search-icon:hover{color:rgba(0,0,0,0.8)}.ant-input-search-enter-button input{border-right:0}.ant-input-search-enter-button+.ant-input-group-addon,.ant-input-search-enter-button input+.ant-input-group-addon{border:0}.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button,.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button{border-top-left-radius:0;border-bottom-left-radius:0}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger{color:rgba(0,0,0,0.65);background:#fff}.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{color:rgba(0,0,0,0.65);background:#fff}.ant-list-bordered{border:1px solid #d9d9d9;border-radius:4px}.ant-list-bordered .ant-list-item{border-bottom:1px solid #e8e8e8}.ant-menu-dark,.ant-menu-dark .ant-menu-sub{color:rgba(255,255,255,0.65);background:#001529}.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before{background:#fff}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17;box-shadow:0 2px 8px rgba(0,0,0,0.45) inset}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{border-color:#001529;border-bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a{color:rgba(255,255,255,0.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item::after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item::after{border-right:0}.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff}.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-title:hover>a{color:#fff}.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow::before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:transparent}.ant-menu-dark .ant-menu-item-selected{color:#fff;border-right:0}.ant-menu-dark .ant-menu-item-selected::after{border-right:0}.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover{color:#fff}.ant-menu-dark .ant-menu-item-selected .anticon{color:#fff}.ant-menu-dark .ant-menu-item-selected .anticon+span{color:#fff}.ant-menu.ant-menu-dark .ant-menu-item-selected,.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected{background-color:#319795}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>a{color:rgba(255,255,255,0.35) !important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(255,255,255,0.35) !important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{background:rgba(255,255,255,0.35) !important}.ant-modal-confirm-body .ant-modal-confirm-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-modal-confirm-body .ant-modal-confirm-content{color:rgba(0,0,0,0.65);font-size:14px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#f5222d}.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon,.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-modal{box-sizing:border-box;color:rgba(0,0,0,0.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;font-feature-settings:"tnum"}.ant-modal-wrap{z-index:1000}.ant-modal-title{color:rgba(0,0,0,0.85);font-size:16px}.ant-modal-content{background-color:#fff;border:0;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}.ant-modal-close{z-index:10;color:rgba(0,0,0,0.45);border:0}.ant-modal-close-x{font-size:16px}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,0.75)}.ant-modal-header{color:rgba(0,0,0,0.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.ant-modal-body{font-size:14px;line-height:1.5}.ant-modal-footer{background:transparent;border-top:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-modal.zoom-enter,.ant-modal.zoom-appear{animation-duration:.3s}.ant-modal-mask{z-index:1000;background-color:rgba(0,0,0,0.45)}.ant-steps-flex-not-supported.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item{background:#fff}.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot::before,.ant-steps-flex-not-supported.ant-steps-dot .ant-steps-item .ant-steps-icon-dot::after{background:#fff}.ant-steps-item-custom .ant-steps-item-icon{border:0}.ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{width:32px;height:32px;line-height:32px}.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#319795}.ant-steps-label-vertical .ant-steps-item-content{width:116px}.ant-steps-label-vertical .ant-steps-item-subtitle{line-height:1.5}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content{max-width:auto}.ant-steps-navigation .ant-steps-item::after{border:1px solid rgba(0,0,0,0.25);border-bottom:0;border-left:0}.ant-steps-navigation .ant-steps-item::before{background-color:#319795}.ant-steps-dot .ant-steps-item-title,.ant-steps-dot.ant-steps-small .ant-steps-item-title{line-height:1.5}.ant-steps-dot .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-icon{width:8px;height:8px;line-height:8px;border:0}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{border-radius:100px}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot::after,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot::after{background:rgba(0,0,0,0.001)}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon{width:10px;height:10px;line-height:10px}.ant-steps-small .ant-steps-item-icon{width:24px;height:24px;font-size:12px;line-height:24px;border-radius:24px}.ant-steps-small .ant-steps-item-title{font-size:14px;line-height:24px}.ant-steps-small .ant-steps-item-title::after{top:12px}.ant-steps-small .ant-steps-item-description{color:rgba(0,0,0,0.45);font-size:14px}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon{border:0;border-radius:0}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:24px;line-height:24px}.ant-steps-vertical .ant-steps-item-title{line-height:32px}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}@media(max-width:480px){.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-title{line-height:32px}.ant-steps-horizontal.ant-steps-label-horizontal.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}}html,body{width:100%;height:100%}*,*::before,*::after{box-sizing:border-box}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{color:rgba(0,0,0,0.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-variant:tabular-nums;line-height:1.5;background-color:#fff;font-feature-settings:"tnum"}h1,h2,h3,h4,h5,h6{color:rgba(0,0,0,0.85)}abbr[title],abbr[data-original-title]{border-bottom:0}a{color:#319795;text-decoration:none}a:hover{color:#4ea39f}a:active{color:#1e6f70}a:active,a:hover{text-decoration:none}a[disabled]{color:rgba(0,0,0,0.25)}pre,code,kbd,samp{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}img{border-style:none}table{border-collapse:collapse}caption{color:rgba(0,0,0,0.45)}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box}fieldset{border:0}mark{background-color:#feffe6}::selection{color:#fff;background:#319795}.anticon{color:inherit}.ant-motion-collapse-legacy-active{transition:height .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1) !important}.ant-motion-collapse{transition:height .15s cubic-bezier(0.645,0.045,0.355,1),opacity .15s cubic-bezier(0.645,0.045,0.355,1) !important}.fade-enter,.fade-appear{animation-duration:.2s}.fade-leave{animation-duration:.2s}.fade-enter.fade-enter-active,.fade-appear.fade-appear-active{animation-name:antFadeIn}.fade-leave.fade-leave-active{animation-name:antFadeOut}.move-up-enter,.move-up-appear{animation-duration:.2s}.move-up-leave{animation-duration:.2s}.move-up-enter.move-up-enter-active,.move-up-appear.move-up-appear-active{animation-name:antMoveUpIn}.move-up-leave.move-up-leave-active{animation-name:antMoveUpOut}.move-up-enter,.move-up-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-up-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-down-enter,.move-down-appear{animation-duration:.2s}.move-down-leave{animation-duration:.2s}.move-down-enter.move-down-enter-active,.move-down-appear.move-down-appear-active{animation-name:antMoveDownIn}.move-down-leave.move-down-leave-active{animation-name:antMoveDownOut}.move-down-enter,.move-down-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-down-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-left-enter,.move-left-appear{animation-duration:.2s}.move-left-leave{animation-duration:.2s}.move-left-enter.move-left-enter-active,.move-left-appear.move-left-appear-active{animation-name:antMoveLeftIn}.move-left-leave.move-left-leave-active{animation-name:antMoveLeftOut}.move-left-enter,.move-left-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-left-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}.move-right-enter,.move-right-appear{animation-duration:.2s}.move-right-leave{animation-duration:.2s}.move-right-enter.move-right-enter-active,.move-right-appear.move-right-appear-active{animation-name:antMoveRightIn}.move-right-leave.move-right-leave-active{animation-name:antMoveRightOut}.move-right-enter,.move-right-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.move-right-leave{animation-timing-function:cubic-bezier(0.6,0.04,0.98,0.34)}html{--antd-wave-shadow-color:#319795}[ant-click-animating-without-extra-node="true"]::after,.ant-click-animating-node{border-radius:inherit;box-shadow:0 0 0 0 #319795;animation:fadeEffect 2s cubic-bezier(0.08,0.82,0.17,1),waveEffect .4s cubic-bezier(0.08,0.82,0.17,1)}@keyframes waveEffect{100%{box-shadow:0 0 0 #319795;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}.slide-up-enter,.slide-up-appear{animation-duration:.2s}.slide-up-leave{animation-duration:.2s}.slide-up-enter.slide-up-enter-active,.slide-up-appear.slide-up-appear-active{animation-name:antSlideUpIn}.slide-up-leave.slide-up-leave-active{animation-name:antSlideUpOut}.slide-up-enter,.slide-up-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-up-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-down-enter,.slide-down-appear{animation-duration:.2s}.slide-down-leave{animation-duration:.2s}.slide-down-enter.slide-down-enter-active,.slide-down-appear.slide-down-appear-active{animation-name:antSlideDownIn}.slide-down-leave.slide-down-leave-active{animation-name:antSlideDownOut}.slide-down-enter,.slide-down-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-down-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-left-enter,.slide-left-appear{animation-duration:.2s}.slide-left-leave{animation-duration:.2s}.slide-left-enter.slide-left-enter-active,.slide-left-appear.slide-left-appear-active{animation-name:antSlideLeftIn}.slide-left-leave.slide-left-leave-active{animation-name:antSlideLeftOut}.slide-left-enter,.slide-left-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-left-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.slide-right-enter,.slide-right-appear{animation-duration:.2s}.slide-right-leave{animation-duration:.2s}.slide-right-enter.slide-right-enter-active,.slide-right-appear.slide-right-appear-active{animation-name:antSlideRightIn}.slide-right-leave.slide-right-leave-active{animation-name:antSlideRightOut}.slide-right-enter,.slide-right-appear{animation-timing-function:cubic-bezier(0.23,1,0.32,1)}.slide-right-leave{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06)}.swing-enter,.swing-appear{animation-duration:.2s}.swing-enter.swing-enter-active,.swing-appear.swing-appear-active{animation-name:antSwingIn}.zoom-enter,.zoom-appear{animation-duration:.2s}.zoom-leave{animation-duration:.2s}.zoom-enter.zoom-enter-active,.zoom-appear.zoom-appear-active{animation-name:antZoomIn}.zoom-leave.zoom-leave-active{animation-name:antZoomOut}.zoom-enter,.zoom-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-big-enter,.zoom-big-appear{animation-duration:.2s}.zoom-big-leave{animation-duration:.2s}.zoom-big-enter.zoom-big-enter-active,.zoom-big-appear.zoom-big-appear-active{animation-name:antZoomBigIn}.zoom-big-leave.zoom-big-leave-active{animation-name:antZoomBigOut}.zoom-big-enter,.zoom-big-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-big-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-big-fast-enter,.zoom-big-fast-appear{animation-duration:.1s}.zoom-big-fast-leave{animation-duration:.1s}.zoom-big-fast-enter.zoom-big-fast-enter-active,.zoom-big-fast-appear.zoom-big-fast-appear-active{animation-name:antZoomBigIn}.zoom-big-fast-leave.zoom-big-fast-leave-active{animation-name:antZoomBigOut}.zoom-big-fast-enter,.zoom-big-fast-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-big-fast-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-up-enter,.zoom-up-appear{animation-duration:.2s}.zoom-up-leave{animation-duration:.2s}.zoom-up-enter.zoom-up-enter-active,.zoom-up-appear.zoom-up-appear-active{animation-name:antZoomUpIn}.zoom-up-leave.zoom-up-leave-active{animation-name:antZoomUpOut}.zoom-up-enter,.zoom-up-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-up-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-down-enter,.zoom-down-appear{animation-duration:.2s}.zoom-down-leave{animation-duration:.2s}.zoom-down-enter.zoom-down-enter-active,.zoom-down-appear.zoom-down-appear-active{animation-name:antZoomDownIn}.zoom-down-leave.zoom-down-leave-active{animation-name:antZoomDownOut}.zoom-down-enter,.zoom-down-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-down-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-left-enter,.zoom-left-appear{animation-duration:.2s}.zoom-left-leave{animation-duration:.2s}.zoom-left-enter.zoom-left-enter-active,.zoom-left-appear.zoom-left-appear-active{animation-name:antZoomLeftIn}.zoom-left-leave.zoom-left-leave-active{animation-name:antZoomLeftOut}.zoom-left-enter,.zoom-left-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-left-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.zoom-right-enter,.zoom-right-appear{animation-duration:.2s}.zoom-right-leave{animation-duration:.2s}.zoom-right-enter.zoom-right-enter-active,.zoom-right-appear.zoom-right-appear-active{animation-name:antZoomRightIn}.zoom-right-leave.zoom-right-leave-active{animation-name:antZoomRightOut}.zoom-right-enter,.zoom-right-appear{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1)}.zoom-right-leave{animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86)}.ant-table-small{border:1px solid #e8e8e8;border-radius:4px}.ant-table-small>.ant-table-title{border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-footer{border-top:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table{border:0}.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th{background-color:transparent}.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr{border-bottom:1px solid #e8e8e8}.ant-table-small>.ant-table-content>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-scroll>.ant-table-body>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-header>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-left>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort,.ant-table-small>.ant-table-content>.ant-table-fixed-right>.ant-table-body-outer>.ant-table-body-inner>table>.ant-table-thead>tr>th.ant-table-column-sort{background-color:rgba(0,0,0,0.01)}.ant-table-small>.ant-table-content .ant-table-header{background-color:transparent;border-radius:4px 4px 0 0}.ant-table-small>.ant-table-content .ant-table-placeholder,.ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:0}.ant-table-small.ant-table-bordered{border-right:0}.ant-table-small.ant-table-bordered .ant-table-title{border:0;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-content{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-footer{border:0;border-top:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-placeholder{border-right:0;border-bottom:0;border-left:0}.ant-table-small.ant-table-bordered .ant-table-thead>tr>th.ant-table-row-cell-last,.ant-table-small.ant-table-bordered .ant-table-tbody>tr>td:last-child{border-right:0}.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-thead>tr>th:last-child,.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-tbody>tr>td:last-child{border-right:1px solid #e8e8e8}.ant-table-small.ant-table-bordered .ant-table-fixed-right{border-right:1px solid #e8e8e8;border-left:1px solid #e8e8e8}.ant-table-small.ant-table-fixed-header>.ant-table-content>.ant-table-scroll>.ant-table-body{border-radius:0 0 4px 4px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-container{height:40px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab{height:40px;line-height:38px;background:#fafafa;border:1px solid #e8e8e8;border-radius:4px 4px 0 0;transition:all .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{height:40px;color:#319795;background:#fff;border-color:#e8e8e8;border-bottom:1px solid #fff}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active::before{border-top:2px solid transparent}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:#319795;color:rgba(0,0,0,0.25)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x{height:14px;color:rgba(0,0,0,0.45);font-size:12px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x:hover{color:rgba(0,0,0,0.85)}.ant-tabs-extra-content .ant-tabs-new-tab{color:rgba(0,0,0,0.65);border:1px solid #e8e8e8;border-radius:2px}.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#319795;border-color:#319795}.ant-tabs.ant-tabs-card .ant-tabs-extra-content{line-height:40px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{border-bottom:1px solid #e8e8e8}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab{border-right:0;border-radius:4px 0 0 4px}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{border-left:0;border-radius:0 4px 4px 0}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab{border-top:0;border-bottom:1px solid #e8e8e8;border-radius:0 0 4px 4px}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#319795}.ant-transfer-customize-list .ant-transfer-list{min-height:200px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small{border:0;border-radius:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th{background:#fafafa}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #e8e8e8}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper{border-radius:0}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper:hover::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper:hover::before{background:#c9d6d4}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper.ant-tree-node-selected,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper.ant-tree-node-selected{color:#fff}.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper::before{height:24px}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-switcher,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-switcher{color:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox .ant-tree-checkbox-inner,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox .ant-tree-checkbox-inner{border-color:#319795}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked::after,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked::after{border-color:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background:#fff}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border-color:#319795}.ant-tree.ant-tree-directory>li.ant-tree-treenode-selected>span.ant-tree-node-content-wrapper::before,.ant-tree.ant-tree-directory .ant-tree-child-tree>li.ant-tree-treenode-selected>span.ant-tree-node-content-wrapper::before{background:#319795}.ant-pro-global-footer-links a{color:rgba(0,0,0,0.45)}.ant-pro-global-footer-links a:hover{color:rgba(0,0,0,0.65)}.ant-pro-global-footer-copyright{color:rgba(0,0,0,0.45);font-size:14px}.ant-pro-global-header{height:64px;background:#fff;box-shadow:0 1px 4px rgba(0,21,41,0.08)}.ant-pro-global-header-logo{height:64px;line-height:64px}.ant-pro-global-header-trigger{height:64px}.ant-pro-global-header-trigger:hover{background:#fff}.ant-pro-global-header .dark{height:64px}.ant-pro-global-header .dark .action:hover,.ant-pro-global-header .dark .action.opened{background:#319795}.ant-pro-page-header-wrap-page-header-warp{background-color:#fff}.ant-pro-setting-drawer-content{background:#fff}.ant-pro-setting-drawer-block-checbox{background:#fff}.ant-pro-setting-drawer-block-checbox-item{border-radius:4px}.ant-pro-setting-drawer-block-checbox-selectIcon{color:#319795}.ant-pro-setting-drawer-block-checbox-selectIcon .action{color:#319795}.ant-pro-setting-drawer-color_block{border-radius:4px}.ant-pro-setting-drawer-title{color:rgba(0,0,0,0.85)}.ant-pro-setting-drawer-handle{background:#319795;border-radius:4px 0 0 4px}.ant-pro-sider-menu-sider.fix-sider-bar>.ant-menu-root :not(.ant-pro-sider-menu-link-menu){height:calc(100vh - 64px)}.ant-pro-sider-menu-sider.fix-sider-bar .ant-menu-inline{border-right:0}.ant-pro-sider-menu-sider.light .ant-pro-sider-menu-logo h1{color:#319795}.ant-pro-sider-menu-sider.light .ant-menu-light{border-right-color:transparent}.ant-pro-sider-menu .top-nav-menu li.ant-menu-item{height:64px;line-height:64px}.ant-pro-sider-menu .drawer .drawer-content{background:#001529}.ant-pro-sider-menu .ant-menu-item .sider-menu-item-img+span,.ant-pro-sider-menu .ant-menu-submenu-title .sider-menu-item-img+span{transition:opacity .3s cubic-bezier(0.645,0.045,0.355,1),width .3s cubic-bezier(0.645,0.045,0.355,1)}.ant-pro-top-nav-header{height:64px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.ant-pro-top-nav-header .ant-menu-submenu.ant-menu-submenu-horizontal{line-height:64px}.ant-pro-top-nav-header.light{background-color:#fff}.ant-pro-top-nav-header-main{height:64px}.ant-pro-top-nav-header-logo{height:64px;line-height:64px}.ant-pro-top-nav-header-logo h1{color:#fff}.ant-pro-top-nav-header-menu .ant-menu.ant-menu-horizontal{height:64px;line-height:64px;border:0}.ant-pro-basicLayout:not(".ant-pro-basicLayout-mobile") ::-webkit-scrollbar-track{border-radius:3px}.ant-pro-basicLayout:not(".ant-pro-basicLayout-mobile") ::-webkit-scrollbar-thumb{border-radius:3px}.ant-pro-basicLayout .ant-layout-header:not(.ant-pro-top-menu){background:#fff}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children{min-height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children.ant-pro-basicLayout-fix-siderbar{height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .tech-page-container{height:calc(100vh - 64px)}.ant-pro-basicLayout .ant-pro-basicLayout-has-header .ant-pro-basicLayout-is-children.ant-pro-basicLayout-has-header .tech-page-container{height:calc(100vh - 64px - 64px)}.ant-pro-setting-drawer-content .theme-color .theme-color-block{border-radius:2px}.antd-pro-components-table-index-table .antd-pro-components-table-index-item{border-top:1px solid #e5e5e5}@media(max-width:989px){.antd-pro-components-table-index-table .antd-pro-components-table-index-item .antd-pro-components-table-index-cell{border:none !important}} -/* theme */ -body{color:#495057;background-color:#f5f5f5}a{color:#319795}a.link-fx::before{background-color:#319795}a:hover{color:#184a49}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#212529}.content-heading{border-bottom-color:#ebebeb}hr{border-top-color:#ebebeb}.text-primary{color:#319795!important}a.text-primary.link-fx::before{background-color:#319795}a.text-primary:focus,a.text-primary:hover{color:#184a49!important}.text-primary-dark{color:#287a79!important}a.text-primary-dark.link-fx::before{background-color:#287a79}a.text-primary-dark:focus,a.text-primary-dark:hover{color:#0f2d2d!important}.text-primary-darker{color:#1e5d5c!important}a.text-primary-darker.link-fx::before{background-color:#1e5d5c}a.text-primary-darker:focus,a.text-primary-darker:hover{color:#051010!important}.text-primary-light{color:#4fc6c3!important}a.text-primary-light.link-fx::before{background-color:#4fc6c3}a.text-primary-light:focus,a.text-primary-light:hover{color:#2b8482!important}.text-primary-lighter{color:#a3e1e0!important}a.text-primary-lighter.link-fx::before{background-color:#a3e1e0}a.text-primary-lighter:focus,a.text-primary-lighter:hover{color:#56c8c6!important}.text-body-bg{color:#f5f5f5!important}a.text-body-bg.link-fx::before{background-color:#f5f5f5}a.text-body-bg:focus,a.text-body-bg:hover{color:#c2c2c2!important}.text-body-bg-light{color:#fafafa!important}a.text-body-bg-light.link-fx::before{background-color:#fafafa}a.text-body-bg-light:focus,a.text-body-bg-light:hover{color:#c7c7c7!important}.text-body-bg-dark{color:#ebebeb!important}a.text-body-bg-dark.link-fx::before{background-color:#ebebeb}a.text-body-bg-dark:focus,a.text-body-bg-dark:hover{color:#b8b8b8!important}.text-body-color{color:#495057!important}a.text-body-color.link-fx::before{background-color:#495057}a.text-body-color:focus,a.text-body-color:hover{color:#1a1d20!important}.text-body-color-dark{color:#212529!important}a.text-body-color-dark.link-fx::before{background-color:#212529}a.text-body-color-dark:focus,a.text-body-color-dark:hover{color:#000!important}.text-body-color-light{color:#ebebeb!important}a.text-body-color-light.link-fx::before{background-color:#ebebeb}a.text-body-color-light:focus,a.text-body-color-light:hover{color:#b8b8b8!important}.text-dual{color:#287a79!important}a.text-dual.link-fx::before{background-color:#287a79}a.text-dual:focus,a.text-dual:hover{color:#0f2d2d!important}.page-header-dark #page-header .text-dual,.sidebar-dark #sidebar .text-dual{color:#ebebeb!important}.page-header-dark #page-header a.text-dual.link-fx::before,.sidebar-dark #sidebar a.text-dual.link-fx::before{background-color:#ebebeb}.page-header-dark #page-header a.text-dual:focus,.page-header-dark #page-header a.text-dual:hover,.sidebar-dark #sidebar a.text-dual:focus,.sidebar-dark #sidebar a.text-dual:hover{color:#b8b8b8!important}.bg-primary{background-color:#319795!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#25706f!important}.bg-primary-op{background-color:rgba(49,151,149,.75)!important}a.bg-primary-op:focus,a.bg-primary-op:hover,button.bg-primary-op:focus,button.bg-primary-op:hover{background-color:rgba(37,112,111,.75)!important}.bg-primary-dark{background-color:#287a79!important}a.bg-primary-dark:focus,a.bg-primary-dark:hover,button.bg-primary-dark:focus,button.bg-primary-dark:hover{background-color:#1b5453!important}.bg-primary-dark-op{background-color:rgba(40,122,121,.8)!important}a.bg-primary-dark-op:focus,a.bg-primary-dark-op:hover,button.bg-primary-dark-op:focus,button.bg-primary-dark-op:hover{background-color:rgba(27,84,83,.8)!important}.bg-primary-darker{background-color:#1e5d5c!important}a.bg-primary-darker:focus,a.bg-primary-darker:hover,button.bg-primary-darker:focus,button.bg-primary-darker:hover{background-color:#123736!important}.bg-primary-light{background-color:#4fc6c3!important}a.bg-primary-light:focus,a.bg-primary-light:hover,button.bg-primary-light:focus,button.bg-primary-light:hover{background-color:#37aaa8!important}.bg-primary-lighter{background-color:#a3e1e0!important}a.bg-primary-lighter:focus,a.bg-primary-lighter:hover,button.bg-primary-lighter:focus,button.bg-primary-lighter:hover{background-color:#7dd5d3!important}.bg-body{background-color:#f5f5f5!important}a.bg-body:focus,a.bg-body:hover,button.bg-body:focus,button.bg-body:hover{background-color:#dcdcdc!important}.bg-body-light{background-color:#fafafa!important}a.bg-body-light:focus,a.bg-body-light:hover,button.bg-body-light:focus,button.bg-body-light:hover{background-color:#e1e1e1!important}.bg-body-dark{background-color:#ebebeb!important}a.bg-body-dark:focus,a.bg-body-dark:hover,button.bg-body-dark:focus,button.bg-body-dark:hover{background-color:#d1d1d1!important}.bg-header-light{background-color:#fff!important}a.bg-header-light:focus,a.bg-header-light:hover,button.bg-header-light:focus,button.bg-header-light:hover{background-color:#e6e6e6!important}.bg-header-dark{background-color:#319795!important}a.bg-header-dark:focus,a.bg-header-dark:hover,button.bg-header-dark:focus,button.bg-header-dark:hover{background-color:#25706f!important}.bg-sidebar-light{background-color:#fff!important}a.bg-sidebar-light:focus,a.bg-sidebar-light:hover,button.bg-sidebar-light:focus,button.bg-sidebar-light:hover{background-color:#e6e6e6!important}.bg-sidebar-dark{background-color:#35393e!important}a.bg-sidebar-dark:focus,a.bg-sidebar-dark:hover,button.bg-sidebar-dark:focus,button.bg-sidebar-dark:hover{background-color:#1d2023!important}.bg-gd-primary{background:#319795 linear-gradient(135deg,#319795 0,#4fc6c3 100%)!important}.btn-link{color:#319795}.btn-link:hover{color:#184a49}.btn-primary{color:#fff;background-color:#319795;border-color:#319795}.btn-primary:hover{color:#fff;background-color:#287a79;border-color:#25706f}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#287a79;border-color:#25706f;box-shadow:0 0 0 .2rem rgba(80,167,165,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#319795;border-color:#319795}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#25706f;border-color:#216766}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(80,167,165,.5)}.btn-outline-primary{color:#319795;border-color:#319795}.btn-outline-primary:hover{color:#fff;background-color:#319795;border-color:#319795}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(49,151,149,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#319795;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#319795;border-color:#319795}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(49,151,149,.5)}.btn-alt-primary{color:#287a79;background-color:#caeeed;border-color:#caeeed}.btn-alt-primary:hover{color:#287a79;background-color:#ade4e3;border-color:#ade4e3}.btn-alt-primary.focus,.btn-alt-primary:focus{color:#287a79;background-color:#ade4e3;border-color:#ade4e3;box-shadow:0 0 0 .2rem rgba(156,223,221,.25)}.btn-alt-primary.disabled,.btn-alt-primary:disabled{color:#212529;background-color:#caeeed;border-color:#caeeed}.btn-alt-primary:not(:disabled):not(.disabled).active,.btn-alt-primary:not(:disabled):not(.disabled):active,.show>.btn-alt-primary.dropdown-toggle{color:#154040;background-color:#9cdfdd;border-color:#9cdfdd}.btn-alt-primary:not(:disabled):not(.disabled).active:focus,.btn-alt-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(156,223,221,.25)}.btn-alt-secondary{color:#495057;background-color:#f5f5f5;border-color:#f5f5f5}.btn-alt-secondary:hover{color:#495057;background-color:#e2e2e2;border-color:#e2e2e2}.btn-alt-secondary.focus,.btn-alt-secondary:focus{color:#495057;background-color:#e2e2e2;border-color:#e2e2e2;box-shadow:0 0 0 .2rem rgba(214,214,214,.25)}.btn-alt-secondary.disabled,.btn-alt-secondary:disabled{color:#212529;background-color:#f5f5f5;border-color:#f5f5f5}.btn-alt-secondary:not(:disabled):not(.disabled).active,.btn-alt-secondary:not(:disabled):not(.disabled):active,.show>.btn-alt-secondary.dropdown-toggle{color:#262a2d;background-color:#d6d6d6;border-color:#d6d6d6}.btn-alt-secondary:not(:disabled):not(.disabled).active:focus,.btn-alt-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-alt-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(214,214,214,.25)}.btn-hero-primary{color:#fff;text-transform:uppercase;letter-spacing:.0625rem;font-weight:700;padding:.625rem 1.5rem;font-size:.875rem;line-height:1.5;border-radius:.25rem;background-color:#319795;border:none;box-shadow:0 .125rem .75rem rgba(30,93,92,.25);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .12s ease-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,transform .12s ease-out,-webkit-transform .12s ease-out}.btn-hero-primary:hover{color:#fff;background-color:#3dbebb;box-shadow:0 .375rem .75rem rgba(30,93,92,.4);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.btn-hero-primary.focus,.btn-hero-primary:focus{color:#fff;background-color:#3dbebb;box-shadow:0 .125rem .75rem rgba(30,93,92,.25)}.btn-hero-primary.disabled,.btn-hero-primary:disabled{color:#fff;background-color:#319795;box-shadow:0 .125rem .75rem rgba(30,93,92,.25);-webkit-transform:translateY(0);transform:translateY(0)}.btn-hero-primary:not(:disabled):not(.disabled).active,.btn-hero-primary:not(:disabled):not(.disabled):active,.show>.btn-hero-primary.dropdown-toggle{color:#fff;background-color:#1e5d5c;box-shadow:0 .125rem .75rem rgba(30,93,92,.25);-webkit-transform:translateY(0);transform:translateY(0)}.btn-hero-primary:not(:disabled):not(.disabled).active:focus,.btn-hero-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-hero-primary.dropdown-toggle:focus{box-shadow:0 .125rem .75rem rgba(30,93,92,.25)}.btn-hero-lg{padding:.875rem 2.25rem;font-size:.875rem;line-height:1.5;border-radius:.25rem}.btn-hero-sm{padding:.375rem 1.25rem;font-size:.875rem;line-height:1.5;border-radius:.25rem}.btn-dual{color:#16181a;background-color:#fafafa;border-color:#fafafa}.btn-dual.focus,.btn-dual:focus,.btn-dual:hover{color:#16181a;background-color:#dcdcdc;border-color:#dcdcdc;box-shadow:none}.btn-dual.disabled,.btn-dual:disabled{background-color:transparent;border-color:transparent}.btn-dual.active,.btn-dual:active{color:#16181a;background-color:#fafafa;border-color:#fafafa}.btn-dual:not(:disabled):not(.disabled).active,.btn-dual:not(:disabled):not(.disabled):active,.show>.btn-dual.dropdown-toggle{color:#16181a;background-color:#dcdcdc;border-color:#dcdcdc}.page-header-dark #page-header .btn-dual,.sidebar-dark #sidebar .btn-dual{color:#fff;background-color:#37a8a6;border-color:#37a8a6}.page-header-dark #page-header .btn-dual.focus,.page-header-dark #page-header .btn-dual:focus,.page-header-dark #page-header .btn-dual:hover,.sidebar-dark #sidebar .btn-dual.focus,.sidebar-dark #sidebar .btn-dual:focus,.sidebar-dark #sidebar .btn-dual:hover{color:#fff;background-color:#2a807e;border-color:#2a807e;box-shadow:none}.page-header-dark #page-header .btn-dual.disabled,.page-header-dark #page-header .btn-dual:disabled,.sidebar-dark #sidebar .btn-dual.disabled,.sidebar-dark #sidebar .btn-dual:disabled{background-color:transparent;border-color:transparent}.page-header-dark #page-header .btn-dual.active,.page-header-dark #page-header .btn-dual:active,.sidebar-dark #sidebar .btn-dual.active,.sidebar-dark #sidebar .btn-dual:active{color:#fff;background-color:#37a8a6;border-color:#37a8a6}.page-header-dark #page-header .btn-dual:not(:disabled):not(.disabled).active,.page-header-dark #page-header .btn-dual:not(:disabled):not(.disabled):active,.show>.page-header-dark #page-header .btn-dual.dropdown-toggle,.show>.sidebar-dark #sidebar .btn-dual.dropdown-toggle,.sidebar-dark #sidebar .btn-dual:not(:disabled):not(.disabled).active,.sidebar-dark #sidebar .btn-dual:not(:disabled):not(.disabled):active{color:#fff;background-color:#2a807e;border-color:#2a807e}.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual{color:#fff;background-color:transparent;border-color:transparent}.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual.focus,.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:focus,.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:hover{color:#fff;background-color:#2a807e;border-color:#2a807e;box-shadow:none}.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual.disabled,.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:disabled{background-color:transparent;border-color:transparent}.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual.active,.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:active{color:#fff;background-color:transparent;border-color:transparent}.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:not(:disabled):not(.disabled).active,.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual:not(:disabled):not(.disabled):active,.show>.page-header-dark.page-header-glass:not(.page-header-scroll) #page-header .btn-dual.dropdown-toggle{color:#fff;background-color:#2a807e;border-color:#2a807e}.alert-primary{color:#287a79;background-color:#a3e1e0;border-color:#a3e1e0}.alert-primary hr{border-top-color:#90dbda}.alert-primary .alert-link{color:#1b5453}.badge-primary{color:#fff;background-color:#319795}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#25706f}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(49,151,149,.5)}.progress-bar{background-color:#319795}.nav-link{color:#495057}.nav-link:focus,.nav-link:hover{color:#319795}.nav-pills .nav-link:focus,.nav-pills .nav-link:hover{background-color:#f5f5f5}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:#319795}.nav-tabs{border-bottom-color:#ebebeb}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#ebebeb #ebebeb #ebebeb}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{border-color:#ebebeb #ebebeb #fff}.nav-tabs-block{background-color:#fafafa}.nav-tabs-block .nav-link{border-color:transparent}.nav-tabs-block .nav-link:focus,.nav-tabs-block .nav-link:hover{color:#319795;background-color:#f5f5f5;border-color:transparent}.nav-tabs-block .nav-item.show .nav-link,.nav-tabs-block .nav-link.active{color:#495057;background-color:#fff;border-color:transparent}.nav-tabs-alt{border-bottom-color:#ebebeb}.nav-tabs-alt .nav-link{background-color:transparent;border-color:transparent}.nav-tabs-alt .nav-link:focus,.nav-tabs-alt .nav-link:hover{color:#319795;background-color:transparent;border-color:transparent;box-shadow:inset 0 -3px #319795}.nav-tabs-alt .nav-item.show .nav-link,.nav-tabs-alt .nav-link.active{color:#495057;background-color:transparent;border-color:transparent;box-shadow:inset 0 -3px #319795}.nav-items a{border-bottom-color:#f5f5f5}.nav-items a:hover{background-color:#fafafa}.nav-items a:active{background-color:#f5f5f5}.nav-items>li:last-child>a{border-bottom:none}.page-item.active .page-link{background-color:#319795;border-color:#319795}.page-link{color:#495057;background-color:#f5f5f5;border-color:#f5f5f5}.page-link:hover{color:#495057;background-color:#d1d1d1;border-color:#d1d1d1}.page-link:focus{background-color:#ebebeb;border-color:#ebebeb}.list-group-item-action{color:#495057}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;background-color:#fafafa}.list-group-item-action:active{color:#495057;background-color:#ebebeb}.list-group-item{border-color:#ebebeb}.list-group-item.active{color:#fff;background-color:#319795;border-color:#319795}.popover{border-color:#ebebeb}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{border-top-color:#ebebeb}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{border-top-color:#fff}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{border-right-color:#ebebeb}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{border-right-color:#fff}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{border-bottom-color:#ebebeb}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{border-bottom-color:#fff}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{border-left-color:#ebebeb}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{border-left-color:#fff}.modal-header{border-bottom-color:#ebebeb}.modal-footer{border-top-color:#ebebeb}.dropdown-menu{border-color:#ebebeb}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #f5f5f5}.dropdown-item{color:#495057}.dropdown-item:focus,.dropdown-item:hover{color:#212529;background-color:#f5f5f5}.dropdown-item.active,.dropdown-item:active{color:#fff;background-color:#319795}.dropdown-header{color:#212529}.table td,.table th{border-top-color:#ebebeb}.table thead th{border-bottom-color:#ebebeb}.table tbody+tbody{border-top-color:#ebebeb}.table-bordered,.table-bordered td,.table-bordered th{border-color:#ebebeb}.table-striped tbody tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover tbody tr:hover{background-color:#f1f1f1}.table-active,.table-active>td,.table-active>th{background-color:#f1f1f1}.table-hover .table-active:hover{background-color:#e4e4e4}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#e4e4e4}.table-primary,.table-primary>td,.table-primary>th{background-color:#a3e1e0}.table-hover .table-primary:hover{background-color:#90dbda}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#90dbda}.table .thead-dark th{background-color:#287a79;border-color:#287a79}.table .thead-light th{background-color:#ebebeb;border-color:#ebebeb}.form-control{color:#495057;background-color:#fff;border-color:#e1e1e1}.form-control:focus{color:#212529;background-color:#fff;border-color:#3dbebb;box-shadow:0 0 0 .2rem rgba(49,151,149,.25)}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.custom-control-primary .custom-control-input:checked~.custom-control-label::before{background-color:#319795}.custom-control-primary .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(49,151,149,.25)}.custom-control-primary .custom-control-input:not(:disabled):active~.custom-control-label::before{background-color:#62ccca}.custom-control-primary .custom-control-label::before{background-color:#ebebeb}.custom-control-primary.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#319795}.custom-control-primary.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#319795}.custom-control-primary.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#319795}.custom-control-primary.custom-block .custom-block-indicator{background-color:#319795}.custom-control-primary.custom-block .custom-control-input:checked~.custom-control-label{border-color:#319795}.custom-control-primary.custom-block .custom-control-input:focus~.custom-control-label{box-shadow:0 0 .75rem rgba(49,151,149,.25)}.custom-control-input:checked~.custom-control-label::before{background-color:#319795;border-color:#319795}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(49,151,149,.25)}.custom-control-input:not(:disabled):active~.custom-control-label::before{background-color:#a3e1e0}.custom-select{border-color:#e1e1e1}.custom-select:focus{border-color:#3dbebb;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .2rem rgba(61,190,187,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-file-input:focus~.custom-file-label{border-color:#3dbebb;box-shadow:0 0 0 .2rem rgba(49,151,149,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#3dbebb}.custom-file-label{color:#495057;background-color:#fff;border-color:#e1e1e1}.custom-file-label::after{color:#495057;background-color:#ebebeb;border-left-color:#e1e1e1}.valid-feedback{display:none;width:100%;margin-top:.5rem;font-size:.875rem;color:#82b54b}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .75rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(130,181,75,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#82b54b}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#82b54b}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#82b54b}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#82b54b}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#82b54b}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#9bc46f;background-color:#9bc46f}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#82b54b}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#82b54b}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#82b54b;box-shadow:0 0 0 .2rem rgba(130,181,75,.25)}.invalid-feedback{display:none;width:100%;margin-top:.5rem;font-size:.875rem;color:#e04f1a}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .75rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(224,79,26,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#e04f1a}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#e04f1a}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#e04f1a}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#e04f1a}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#e04f1a}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e97044;background-color:#e97044}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#e04f1a}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#e04f1a}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#e04f1a;box-shadow:0 0 0 .2rem rgba(224,79,26,.25)}.form-control.form-control-alt{border-color:#f5f5f5;background-color:#f5f5f5}.form-control.form-control-alt:focus{border-color:#ebebeb;background-color:#ebebeb;box-shadow:none}.form-control.form-control-alt.is-valid{border-color:#e4efd8;background-color:#e4efd8}.form-control.form-control-alt.is-valid:focus{border-color:#d7e8c6;background-color:#d7e8c6}.form-control.form-control-alt.is-invalid{border-color:#fdf1ed;background-color:#fdf1ed}.form-control.form-control-alt.is-invalid:focus{border-color:#fbe7df;background-color:#fbe7df}.input-group-text{color:#495057;background-color:#f5f5f5;border-color:#e1e1e1}.input-group-text.input-group-text-alt{background-color:#ebebeb;border-color:#ebebeb}.border{border-color:#ebebeb!important}.border-top{border-top-color:#ebebeb!important}.border-right{border-right-color:#ebebeb!important}.border-bottom{border-bottom-color:#ebebeb!important}.border-left{border-left-color:#ebebeb!important}.border-primary-light{border-color:#2a8bf9!important}.border-primary-lighter{border-color:#74b3fb!important}.border-primary-dark{border-color:#054d9e!important}.border-primary-darker{border-color:#022954!important}.border-success-light{border-color:#bed9a2!important}.border-info-light{border-color:#a5ccf0!important}.border-warning-light{border-color:#ffdb93!important}.border-danger-light{border-color:#f1a184!important}.border-primary{border-color:#0665d0!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#82b54b!important}.border-info{border-color:#3c90df!important}.border-warning{border-color:#ffb119!important}.border-danger{border-color:#e04f1a!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-primary{border-color:#319795!important}.border-white{border-color:#fff!important}.border-white-op{border-color:rgba(255,255,255,.1)!important}.border-black-op{border-color:rgba(0,0,0,.1)!important}#page-header{background-color:#fff}#sidebar{background-color:#fff}#side-overlay{background-color:#fff}#page-container.page-header-dark #page-header{color:#d6d6d6;background-color:#319795}#page-container.page-header-glass #page-header{background-color:transparent}#page-container.page-header-glass.page-header-fixed.page-header-scroll #page-header{background-color:rgba(255,255,255,.9)}#page-container.page-header-glass.page-header-fixed.page-header-scroll.page-header-dark #page-header{background-color:rgba(49,151,149,.9)}#page-container.sidebar-dark #sidebar{color:#ebebeb;background-color:#35393e}.block{box-shadow:0 1px 3px rgba(228,228,228,.5),0 1px 2px rgba(228,228,228,.5)}.block-header-default{background-color:#fafafa}.block.block-bordered{border-color:#ebebeb}.block.block-themed>.block-header{background-color:#319795}.block.block-mode-loading::after{color:#319795}a.block{color:#495057}a.block:hover{color:#495057}a.block.block-link-pop:hover{box-shadow:0 .5rem 2rem #e1e1e1}a.block.block-link-pop:active{box-shadow:0 .25rem .75rem #f2f2f2}a.block.block-link-shadow:hover{box-shadow:0 0 2.25rem #e1e1e1}a.block.block-link-shadow:active{box-shadow:0 0 1.125rem #ebebeb}.block.block-fx-shadow{box-shadow:0 0 2.25rem #e1e1e1}.block.block-fx-pop{box-shadow:0 .5rem 2rem #e1e1e1}.btn-block-option{color:#319795}.btn-block-option:hover{color:#4fc6c3}.active>a.btn-block-option,.show>button.btn-block-option,a.btn-block-option:focus{color:#4fc6c3}.btn-block-option:active{color:#a3e1e0}#page-loader{background-color:#319795}.nav-main-heading{color:#869099}.nav-main-link{color:#555d65}.nav-main-link .nav-main-link-icon{color:rgba(49,151,149,.7)}.nav-main-link.active,.nav-main-link:hover{color:#000;background-color:#ebebeb}.nav-main-submenu{background-color:#f5f5f5}.nav-main-submenu .nav-main-link{color:#78838e}.nav-main-submenu .nav-main-link.active,.nav-main-submenu .nav-main-link:hover{color:#383d42;background-color:transparent}.nav-main-item.open>.nav-main-link-submenu{color:#000;background-color:#ebebeb}.nav-main-submenu .nav-main-item.open .nav-main-link{background-color:transparent}@media (min-width:992px){.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu{color:#000;background-color:#ebebeb}}.nav-main-dark .nav-main-heading,.page-header-dark #page-header .nav-main-heading,.sidebar-dark #sidebar .nav-main-heading{color:#7d858f}.nav-main-dark .nav-main-link,.page-header-dark #page-header .nav-main-link,.sidebar-dark #sidebar .nav-main-link{color:#c1c5ca}.nav-main-dark .nav-main-link>.nav-main-link-icon,.page-header-dark #page-header .nav-main-link>.nav-main-link-icon,.sidebar-dark #sidebar .nav-main-link>.nav-main-link-icon{color:#646c75}.nav-main-dark .nav-main-link.active,.nav-main-dark .nav-main-link:hover,.page-header-dark #page-header .nav-main-link.active,.page-header-dark #page-header .nav-main-link:hover,.sidebar-dark #sidebar .nav-main-link.active,.sidebar-dark #sidebar .nav-main-link:hover{color:#fff;background-color:#2a2e32}.nav-main-dark .nav-main-submenu,.page-header-dark #page-header .nav-main-submenu,.sidebar-dark #sidebar .nav-main-submenu{background-color:#2e3136}.nav-main-dark .nav-main-submenu .nav-main-link,.page-header-dark #page-header .nav-main-submenu .nav-main-link,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link{color:#a6acb3}.nav-main-dark .nav-main-submenu .nav-main-link.active,.nav-main-dark .nav-main-submenu .nav-main-link:hover,.page-header-dark #page-header .nav-main-submenu .nav-main-link.active,.page-header-dark #page-header .nav-main-submenu .nav-main-link:hover,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link.active,.sidebar-dark #sidebar .nav-main-submenu .nav-main-link:hover{color:#fff;background-color:transparent}.nav-main-dark .nav-main-item.open>.nav-main-link-submenu,.page-header-dark #page-header .nav-main-item.open>.nav-main-link-submenu,.sidebar-dark #sidebar .nav-main-item.open>.nav-main-link-submenu{color:#fff;background-color:#2a2e32}.nav-main-dark .nav-main-item.open>.nav-main-submenu,.page-header-dark #page-header .nav-main-item.open>.nav-main-submenu,.sidebar-dark #sidebar .nav-main-item.open>.nav-main-submenu{background-color:#2e3136}.nav-main-dark .nav-main-submenu .nav-main-item.open .nav-main-link,.page-header-dark #page-header .nav-main-submenu .nav-main-item.open .nav-main-link,.sidebar-dark #sidebar .nav-main-submenu .nav-main-item.open .nav-main-link{background-color:transparent}@media (min-width:992px){.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-link.active,.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-link:hover,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-link.active,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-link:hover,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-link.active,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-link:hover{background-color:#2b8482}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-link-submenu{background-color:#2b8482}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-item:hover>.nav-main-submenu{background-color:#2b8482}.nav-main-dark.nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link,.page-header-dark #page-header .nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link,.sidebar-dark #sidebar .nav-main-horizontal.nav-main-hover .nav-main-submenu .nav-main-item:hover .nav-main-link{background-color:transparent}}.nav-items a{border-bottom-color:#f5f5f5}.nav-items a:hover{background-color:#fafafa}.list-activity>li{border-bottom-color:#f5f5f5}.timeline-event-icon{box-shadow:0 .375rem 1.5rem #e1e1e1}.ribbon-light .ribbon-box{color:#495057;background-color:#ebebeb}.ribbon-light.ribbon-bookmark .ribbon-box::before{border-color:#ebebeb;border-left-color:transparent}.ribbon-light.ribbon-bookmark.ribbon-left .ribbon-box::before{border-color:#ebebeb;border-right-color:transparent}.ribbon-primary .ribbon-box{color:#fff;background-color:#319795}.ribbon-primary.ribbon-bookmark .ribbon-box::before{border-color:#319795;border-left-color:transparent}.ribbon-primary.ribbon-bookmark.ribbon-left .ribbon-box::before{border-color:#319795;border-right-color:transparent}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:active,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:focus,.datepicker table tr td span.active:hover:hover,.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:focus,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active:active,.datepicker table tr td.active:focus,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:focus,.datepicker table tr td.active:hover:hover,.open .dropdown-toggle.datepicker table tr td span.active,.open .dropdown-toggle.datepicker table tr td span.active.disabled,.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td span.active:hover,.open .dropdown-toggle.datepicker table tr td.active,.open .dropdown-toggle.datepicker table tr td.active.disabled,.open .dropdown-toggle.datepicker table tr td.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td.active:hover{background-color:#319795;border-color:#319795}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused),.ck.ck-toolbar,.cke_chrome{border-color:#ebebeb!important}.ck.ck-toolbar,.cke_top{border-bottom-color:#ebebeb!important;background:#fafafa!important}.ck.ck-toolbar .ck.ck-toolbar__separator{background:#ebebeb!important}.cke_bottom{border-top-color:#ebebeb!important;background:#fafafa!important}.dropzone{background-color:#fafafa;border-color:#e1e1e1}.dropzone .dz-message{color:#495057}.dropzone:hover{background-color:#fff;border-color:#319795}.dropzone:hover .dz-message{color:#319795}.fc-theme-bootstrap .fc-h-event{background-color:#319795;border:#319795}.fc-theme-bootstrap .fc-col-header-cell{background-color:#fafafa}.irs.irs--round .irs-grid-pol,.irs.irs--round .irs-line,.irs.irs--round .irs-max,.irs.irs--round .irs-min{background:#f5f5f5}.irs.irs--round .irs-handle{border-color:#319795}.irs.irs--round .irs-from:before,.irs.irs--round .irs-single:before,.irs.irs--round .irs-to:before{border-top-color:#319795}.irs.irs--round .irs-bar,.irs.irs--round .irs-from,.irs.irs--round .irs-single,.irs.irs--round .irs-to{background:#319795}.select2-container--default .select2-selection--single{border-color:#e1e1e1}.select2-container--default .select2-selection--multiple{border-color:#e1e1e1}.select2-container--default.select2-container--focus .select2-selection--multiple,.select2-container--default.select2-container--focus .select2-selection--single,.select2-container--default.select2-container--open .select2-selection--multiple,.select2-container--default.select2-container--open .select2-selection--single{border-color:#3dbebb;box-shadow:0 0 0 .2rem rgba(49,151,149,.25)}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#319795}.select2-container--default .select2-search--dropdown .select2-search__field{border-color:#e1e1e1}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#319795}.select2-container--default .select2-dropdown .select2-search__field:focus{border-color:#3dbebb;box-shadow:0 0 0 .2rem rgba(49,151,149,.25)}.simplebar-scrollbar::before{background:rgba(18,55,54,.75)}.slick-slider .slick-next::before,.slick-slider .slick-prev::before{color:#287a79}.editor-toolbar{border-color:#ebebeb;background-color:#fafafa}.CodeMirror{border-color:#ebebeb}.note-editor.note-frame{border-color:#ebebeb}.note-editor.note-frame .note-toolbar{background-color:#fafafa;border-bottom-color:#ebebeb}.note-editor.note-frame .note-statusbar{border-top-color:#ebebeb;background-color:#fafafa}.dd-handle{color:#495057;background:#fafafa;border-color:#ebebeb}.dd-handle:hover{color:#212529}.dd-empty,.dd-placeholder{border-color:#1e5d5c;background:#a3e1e0}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{border-color:#319795;background:#319795}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#319795} diff --git a/resources/lang/en-US.json b/resources/lang/en-US.json index 3007aa9..1007453 100644 --- a/resources/lang/en-US.json +++ b/resources/lang/en-US.json @@ -95,5 +95,23 @@ "Sending frequently, please try again later": "Sending frequently, please try again later", "Current product is sold out": "Current product is sold out", "There are too many password errors, please try again after :minute minutes.": "There are too many password errors, please try again after :minute minutes.", - "Reset failed, Please try again later": "Reset failed, Please try again later" + "Reset failed, Please try again later": "Reset failed, Please try again later", + "Subscribe": "Subscribe", + "User Information": "User Information", + "Username": "Username", + "Status": "Status", + "Active": "Active", + "Inactive": "Inactive", + "Data Used": "Data Used", + "Data Limit": "Data Limit", + "Expiration Date": "Expiration Date", + "Reset In": "Reset In", + "Days": "Days", + "Subscription Link": "Subscription Link", + "Copy": "Copy", + "Copied": "Copied", + "QR Code": "QR Code", + "Unlimited": "Unlimited", + "Device Limit": "Device Limit", + "Devices": "Devices" } diff --git a/resources/lang/zh-CN.json b/resources/lang/zh-CN.json index 6d11779..b6a4251 100644 --- a/resources/lang/zh-CN.json +++ b/resources/lang/zh-CN.json @@ -95,5 +95,23 @@ "Sending frequently, please try again later": "发送频繁,请稍后再试", "Current product is sold out": "当前商品已售罄", "There are too many password errors, please try again after :minute minutes.": "密码错误次数过多,请 :minute 分钟后再试", - "Reset failed, Please try again later": "重置失败,请稍后再试" + "Reset failed, Please try again later": "重置失败,请稍后再试", + "Subscribe": "订阅信息", + "User Information": "用户信息", + "Username": "用户名", + "Status": "状态", + "Active": "正常", + "Inactive": "未激活", + "Data Used": "已用流量", + "Data Limit": "流量限制", + "Expiration Date": "到期时间", + "Reset In": "距离重置", + "Days": "天", + "Subscription Link": "订阅链接", + "Copy": "复制", + "Copied": "已复制", + "QR Code": "二维码", + "Unlimited": "长期有效", + "Device Limit": "设备限制", + "Devices": "台设备" } diff --git a/resources/lang/zh-TW.json b/resources/lang/zh-TW.json new file mode 100644 index 0000000..c83473e --- /dev/null +++ b/resources/lang/zh-TW.json @@ -0,0 +1,117 @@ +{ + "The user does not exist": "該用戶不存在", + "The old password is wrong": "舊密碼有誤", + "Save failed": "保存失敗", + "Subscription plan does not exist": "訂閱計劃不存在", + "Reset failed": "重置失敗", + "Invalid parameter": "參數錯誤", + "Insufficient commission balance": "推廣佣金餘額不足", + "Transfer failed": "劃轉失敗", + "Ticket does not exist": "工單不存在", + "There are other unresolved tickets": "存在其他工單尚未處理", + "Failed to open ticket": "工單創建失敗", + "Message cannot be empty": "消息不能為空", + "The ticket is closed and cannot be replied": "工單已關閉,無法回復", + "Please wait for the technical enginneer to reply": "請等待技術支持回復", + "Ticket reply failed": "工單回復失敗", + "Close failed": "關閉失敗", + "Unsupported withdrawal method": "不支持的提現方式", + "The current required minimum withdrawal commission is :limit": "當前系統要求的最少提現佣金為:¥:limitCNY", + "[Commission Withdrawal Request] This ticket is opened by the system": "[提現申請] 本工單由系統發出", + "Withdrawal method": "提現方式", + "Withdrawal account": "提現賬號", + "Unsupported withdrawal": "不支持提現", + "Order does not exist": "訂單不存在", + "You have an unpaid or pending order, please try again later or cancel it": "您有未付款或開通中的訂單,請稍後再試或將其取消", + "This subscription has been sold out, please choose another subscription": "該訂閱已售罄,請更換其它訂閱", + "This subscription cannot be renewed, please change to another subscription": "該訂閱無法續費,請更換其它訂閱", + "This payment period cannot be purchased, please choose another period": "該訂閱週期無法進行購買,請選擇其它週期", + "Subscription has expired or no active subscription, unable to purchase Data Reset Package": "訂閱已過期或無有效訂閱,無法購買重置包", + "This subscription has expired, please change to another subscription": "訂閱已過期,請更換其它訂閱", + "Coupon failed": "優惠券使用失敗", + "Insufficient balance": "餘額不足", + "Failed to create order": "訂單創建失敗", + "Order does not exist or has been paid": "訂單不存在或已支付", + "Payment method is not available": "支付方式不可用", + "You can only cancel pending orders": "只可以取消待支付訂單", + "Cancel failed": "取消失敗", + "Currency conversion has timed out, please try again later": "貨幣轉換超時,請稍後再試", + "Payment gateway request failed": "支付網關請求失敗", + "Oops, there's a problem... Please refresh the page and try again later": "出現了點問題,請刷新頁面稍後再試", + "Payment failed. Please check your credit card information": "扣款失敗,請檢查信用卡信息", + "Article does not exist": "文章不存在", + "No active subscription. Unable to use our provided Apple ID": "無有效訂閱,無法使用本站提供的 Apple ID", + "You must have a valid subscription to view content in this area": "您必須擁有有效的訂閱才可以查看該區域的內容", + "The maximum number of creations has been reached": "已達到創建數量上限", + "Coupon cannot be empty": "優惠券不能為空", + "This coupon is no longer available": "優惠券已無可用次數", + "This coupon has not yet started": "優惠券還未到可用時間", + "This coupon has expired": "優惠券已過期", + "The coupon code cannot be used for this subscription": "該訂閱無法使用此優惠碼", + "Invalid coupon": "優惠券無效", + "Invalid code is incorrect": "驗證碼有誤", + "Email suffix is not in the Whitelist": "郵箱後綴不處於白名單中", + "Gmail alias is not supported": "不支持 Gmail 別名郵箱", + "Registration has closed": "本站已關閉註冊", + "You must use the invitation code to register": "必須使用邀請碼才可以註冊", + "Email verification code cannot be empty": "郵箱驗證碼不能為空", + "Incorrect email verification code": "郵箱驗證碼有誤", + "Email already exists": "郵箱已在系統中存在", + "Invalid invitation code": "邀請碼無效", + "Register failed": "註冊失敗", + "Incorrect email or password": "郵箱或密碼錯誤", + "Your account has been suspended": "該賬戶已被停止使用", + "Token error": "令牌有誤", + "This email is not registered in the system": "該郵箱不存在系統中", + "Email verification code has been sent, please request again later": "驗證碼已發送,請過一會兒再請求", + "Email verification code": "郵箱驗證碼", + "Plan ID cannot be empty": "套餐 ID 不能為空", + "Plan period cannot be empty": "套餐週期不能為空", + "Wrong plan period": "套餐週期參數有誤", + "Ticket subject cannot be empty": "工單主題不能為空", + "Ticket level cannot be empty": "工單等級不能為空", + "Incorrect ticket level format": "工單等級參數有誤", + "The withdrawal method cannot be empty": "提現方式不能為空", + "The withdrawal account cannot be empty": "提現賬號不能為空", + "Old password cannot be empty": "舊密碼不能為空", + "New password cannot be empty": "新密碼不能為空", + "Password must be greater than 8 digits": "密碼必須大於 8 個字符", + "The transfer amount cannot be empty": "劃轉金額不能為空", + "The transfer amount parameter is wrong": "劃轉金額參數有誤", + "Incorrect format of expiration reminder": "過期提醒參數有誤", + "Incorrect traffic alert format": "流量提醒參數有誤", + "Email can not be empty": "郵箱不能為空", + "Email format is incorrect": "郵箱格式不正確", + "Password can not be empty": "密碼不能為空", + "The traffic usage in :app_name has reached 80%": "在 :app_name 的已用流量已達到 80%", + "The service in :app_name is about to expire": "在 :app_name 的服務即將到期", + "The coupon can only be used :limit_use_with_user per person": "該優惠券每人只能用 :limit_use_with_user 次", + "The coupon code cannot be used for this period": "此優惠券無法用於該付款週期", + "Request failed, please try again later": "請求失敗,請稍後再試", + "Register frequently, please try again after :minute minute": "註冊頻繁,請等待 :minute 分鐘後再次嘗試", + "Uh-oh, we've had some problems, we're working on it.": "遇到了些問題,我們正在進行處理", + "This subscription reset package does not apply to your subscription": "該訂閱重置包不適用於你的訂閱", + "Login to :name": "登入到 :name", + "Sending frequently, please try again later": "發送頻繁,請稍後再試", + "Current product is sold out": "當前商品已售罄", + "There are too many password errors, please try again after :minute minutes.": "密碼錯誤次數過多,請 :minute 分鐘後再試", + "Reset failed, Please try again later": "重置失敗,請稍後再試", + "Subscribe": "訂閱資訊", + "User Information": "用戶資訊", + "Username": "用戶名", + "Status": "狀態", + "Active": "正常", + "Inactive": "未啟用", + "Data Used": "已用流量", + "Data Limit": "流量限制", + "Expiration Date": "到期時間", + "Reset In": "距離重置", + "Days": "天", + "Subscription Link": "訂閱連結", + "Copy": "複製", + "Copied": "已複製", + "QR Code": "二維碼", + "Unlimited": "長期有效", + "Device Limit": "設備限制", + "Devices": "台設備" +} diff --git a/resources/rules/default.sing-box.json b/resources/rules/default.sing-box.json index 1cf83a8..8d4fd5a 100644 --- a/resources/rules/default.sing-box.json +++ b/resources/rules/default.sing-box.json @@ -49,8 +49,7 @@ "auto_route": true, "domain_strategy": "prefer_ipv4", "endpoint_independent_nat": true, - "inet4_address": "172.19.0.1/30", - "inet6_address": "2001:0470:f9da:fdfa::1/64", + "address": ["172.19.0.1/30", "2001:0470:f9da:fdfa::1/64"], "mtu": 9000, "sniff": true, "sniff_override_destination": true, diff --git a/resources/views/admin.blade.php b/resources/views/admin.blade.php index 7b9a585..6a3dc23 100644 --- a/resources/views/admin.blade.php +++ b/resources/views/admin.blade.php @@ -1,36 +1,29 @@ - + - - - - - - {{$title}} - - - + + + {{ $title }} + + + + + + + -
- - - +
diff --git a/resources/views/client/subscribe.blade.php b/resources/views/client/subscribe.blade.php new file mode 100644 index 0000000..9895b77 --- /dev/null +++ b/resources/views/client/subscribe.blade.php @@ -0,0 +1,296 @@ + + + + + + + {{ __('Subscribe') }} + + + + +
+

{{ __('User Information') }}

+ +
+
+
{{ __('Username') }}
+
{{ $username }}
+
+ +
+
{{ __('Status') }}
+
+ + {{ $status === 'active' ? __('Active') : __('Inactive') }} + +
+
+ +
+
{{ __('Data Used') }}
+
{{ $data_used }}
+
+ +
+
{{ __('Data Limit') }}
+
{{ $data_limit }}
+
+ +
+
{{ __('Expiration Date') }}
+
{{ $expired_date }}
+
+ + @if (isset($device_limit)) +
+
{{ __('Device Limit') }}
+
{{ $device_limit }} {{ __('Devices') }}
+
+ @endif + + @if ($reset_day) +
+
{{ __('Reset In') }}
+
{{ $reset_day }} {{ __('Days') }}
+
+ @endif +
+ + +
+ + + + + diff --git a/resources/views/mail/classic/notify.blade.php b/resources/views/mail/classic/notify.blade.php index a8781e3..61cba96 100644 --- a/resources/views/mail/classic/notify.blade.php +++ b/resources/views/mail/classic/notify.blade.php @@ -184,4 +184,4 @@ - + \ No newline at end of file diff --git a/routes/channels.php b/routes/channels.php index 2bcb553..12c1b91 100755 --- a/routes/channels.php +++ b/routes/channels.php @@ -1,5 +1,8 @@ server('HTTP_HOST') !== parse_url(admin_setting('app_url'))['host']) { abort(403); } } - $renderParams = [ - 'title' => admin_setting('app_name', 'Xboard'), - 'theme' => admin_setting('frontend_theme', 'Xboard'), - 'version' => config('app.version'), - 'description' => admin_setting('app_description', 'Xboard is best'), - 'logo' => admin_setting('logo') - ]; - if (!admin_setting("theme_{$renderParams['theme']}")) { - $themeService = new ThemeService($renderParams['theme']); - $themeService->init(); + $theme = admin_setting('frontend_theme', 'Xboard'); + $themeService = new ThemeService(); + + try { + // 检查主题是否存在,不存在则尝试切换到默认主题 + if (!$themeService->exists($theme)) { + if ($theme !== 'Xboard') { + Log::warning('Theme not found, switching to default theme', ['theme' => $theme]); + $theme = 'Xboard'; + admin_setting(['frontend_theme' => $theme]); + } + $themeService->switch($theme); + } + + // 检查主题视图文件是否存在 + if (!$themeService->getThemeViewPath($theme)) { + throw new Exception('主题视图文件不存在'); + } + + // 检查主题是否已复制到public目录 + $publicThemePath = public_path('theme/' . $theme); + if (!File::exists($publicThemePath)) { + $themePath = $themeService->getThemePath($theme); + if (!$themePath || !File::copyDirectory($themePath, $publicThemePath)) { + throw new Exception('主题初始化失败'); + } + Log::info('Theme initialized in public directory', ['theme' => $theme]); + } + + $renderParams = [ + 'title' => admin_setting('app_name', 'Xboard'), + 'theme' => $theme, + 'version' => config('app.version'), + 'description' => admin_setting('app_description', 'Xboard is best'), + 'logo' => admin_setting('logo'), + 'theme_config' => $themeService->getConfig($theme) + ]; + return view('theme::' . $theme . '.dashboard', $renderParams); + } catch (Exception $e) { + Log::error('Theme rendering failed', [ + 'theme' => $theme, + 'error' => $e->getMessage() + ]); + abort(500, '主题加载失败'); } - - $renderParams['theme_config'] = admin_setting("theme_". admin_setting('frontend_theme', 'Xboard')) ?? config('theme.' . admin_setting('frontend_theme', 'Xboard')); - return view('theme::' . admin_setting('frontend_theme', 'Xboard') . '.dashboard', $renderParams); }); //TODO:: 兼容 @@ -50,3 +85,7 @@ Route::get('/' . admin_setting('secure_path', admin_setting('frontend_admin_path 'secure_path' => admin_setting('secure_path', admin_setting('frontend_admin_path', hash('crc32b', config('app.key')))) ]); }); + +Route::get('/' . (admin_setting('subscribe_path', 's')) . '/{token}', [\App\Http\Controllers\V1\Client\ClientController::class, 'subscribe']) + ->middleware('client') + ->name('client.subscribe'); \ No newline at end of file diff --git a/routes/websocket.php b/routes/websocket.php deleted file mode 100644 index ddebfe1..0000000 --- a/routes/websocket.php +++ /dev/null @@ -1,26 +0,0 @@ -emit('message', $data); -}); diff --git a/server.php b/server.php deleted file mode 100755 index 7f109d9..0000000 --- a/server.php +++ /dev/null @@ -1,21 +0,0 @@ - - */ - -$uri = urldecode( - parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) -); - -// This file allows us to emulate Apache's "mod_rewrite" functionality from the -// built-in PHP web server. This provides a convenient way to test a Laravel -// application without having installed a "real" web server software here. -if ($uri !== '/' && file_exists(__DIR__ . '/public' . $uri)) { - return false; -} - -require_once __DIR__ . '/public/index.php'; diff --git a/start.php b/start.php deleted file mode 100644 index 01c8bf7..0000000 --- a/start.php +++ /dev/null @@ -1,38 +0,0 @@ -make(Illuminate\Contracts\Http\Kernel::class); - - -function run() -{ - global $kernel; - - ob_start(); - - $response = $kernel->handle( - $request = Illuminate\Http\Request::capture() - ); - - $response->send(); - - $kernel->terminate($request, $response); - - return ob_get_clean(); -} - diff --git a/storage/theme/.gitignore b/storage/theme/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/storage/theme/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/tests/Bootstrap.php b/tests/Bootstrap.php deleted file mode 100755 index 5fa7829..0000000 --- a/tests/Bootstrap.php +++ /dev/null @@ -1,42 +0,0 @@ -createApplication()->make(Kernel::class); - - $commands = [ - 'config:cache', - 'event:cache', - ]; - - foreach ($commands as $command) { - $console->call($command); - } - } - - public function executeAfterLastTest(): void - { - array_map('unlink', glob('bootstrap/cache/*.phpunit.php')); - } -} diff --git a/tests/CreatesApplication.php b/tests/CreatesApplication.php deleted file mode 100755 index ab92402..0000000 --- a/tests/CreatesApplication.php +++ /dev/null @@ -1,22 +0,0 @@ -make(Kernel::class)->bootstrap(); - - return $app; - } -} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php deleted file mode 100755 index cdb5111..0000000 --- a/tests/Feature/ExampleTest.php +++ /dev/null @@ -1,21 +0,0 @@ -get('/'); - - $response->assertStatus(200); - } -} diff --git a/tests/TestCase.php b/tests/TestCase.php deleted file mode 100755 index 2932d4a..0000000 --- a/tests/TestCase.php +++ /dev/null @@ -1,10 +0,0 @@ -assertTrue(true); - } -} diff --git a/theme/.gitignore b/theme/.gitignore new file mode 100644 index 0000000..17697d3 --- /dev/null +++ b/theme/.gitignore @@ -0,0 +1,4 @@ +/* +!v2board +!Xboard +!.gitignore diff --git a/public/theme/Xboard/assets/images/background.svg b/theme/Xboard/assets/images/background.svg similarity index 100% rename from public/theme/Xboard/assets/images/background.svg rename to theme/Xboard/assets/images/background.svg diff --git a/public/theme/Xboard/assets/umi.js b/theme/Xboard/assets/umi.js similarity index 100% rename from public/theme/Xboard/assets/umi.js rename to theme/Xboard/assets/umi.js diff --git a/public/theme/Xboard/assets/umi.js.br b/theme/Xboard/assets/umi.js.br similarity index 100% rename from public/theme/Xboard/assets/umi.js.br rename to theme/Xboard/assets/umi.js.br diff --git a/public/theme/Xboard/assets/umi.js.gz b/theme/Xboard/assets/umi.js.gz similarity index 100% rename from public/theme/Xboard/assets/umi.js.gz rename to theme/Xboard/assets/umi.js.gz diff --git a/theme/Xboard/config.json b/theme/Xboard/config.json new file mode 100644 index 0000000..bcecdbf --- /dev/null +++ b/theme/Xboard/config.json @@ -0,0 +1,35 @@ +{ + "name": "Xboard", + "description": "Xboard", + "version": "1.0.0", + "images": [ + "https://raw.githubusercontent.com/cedar2025/Xboard/new/docs/images/dashboard.png" + ], + "configs": [ + { + "label": "主题色", + "placeholder": "请选择主题颜色", + "field_name": "theme_color", + "field_type": "select", + "select_options": { + "default": "默认(绿色)", + "blue": "蓝色", + "black": "黑色", + "darkblue": "暗蓝色" + }, + "default_value": "default" + }, + { + "label": "背景", + "placeholder": "请输入背景图片URL", + "field_name": "background_url", + "field_type": "input" + }, + { + "label": "自定义页脚HTML", + "placeholder": "可以实现客服JS代码的加入等", + "field_name": "custom_html", + "field_type": "textarea" + } + ] +} diff --git a/public/theme/Xboard/dashboard.blade.php b/theme/Xboard/dashboard.blade.php similarity index 100% rename from public/theme/Xboard/dashboard.blade.php rename to theme/Xboard/dashboard.blade.php diff --git a/public/theme/v2board/assets/components.async.js b/theme/v2board/assets/components.async.js similarity index 100% rename from public/theme/v2board/assets/components.async.js rename to theme/v2board/assets/components.async.js diff --git a/public/theme/v2board/assets/components.chunk.css b/theme/v2board/assets/components.chunk.css similarity index 100% rename from public/theme/v2board/assets/components.chunk.css rename to theme/v2board/assets/components.chunk.css diff --git a/public/theme/v2board/assets/env.example.js b/theme/v2board/assets/env.example.js similarity index 100% rename from public/theme/v2board/assets/env.example.js rename to theme/v2board/assets/env.example.js diff --git a/public/theme/v2board/assets/i18n/en-US.js b/theme/v2board/assets/i18n/en-US.js similarity index 100% rename from public/theme/v2board/assets/i18n/en-US.js rename to theme/v2board/assets/i18n/en-US.js diff --git a/public/theme/v2board/assets/i18n/fa-IR.js b/theme/v2board/assets/i18n/fa-IR.js similarity index 100% rename from public/theme/v2board/assets/i18n/fa-IR.js rename to theme/v2board/assets/i18n/fa-IR.js diff --git a/public/theme/v2board/assets/i18n/ja-JP.js b/theme/v2board/assets/i18n/ja-JP.js similarity index 100% rename from public/theme/v2board/assets/i18n/ja-JP.js rename to theme/v2board/assets/i18n/ja-JP.js diff --git a/public/theme/v2board/assets/i18n/ko-KR.js b/theme/v2board/assets/i18n/ko-KR.js similarity index 100% rename from public/theme/v2board/assets/i18n/ko-KR.js rename to theme/v2board/assets/i18n/ko-KR.js diff --git a/public/theme/v2board/assets/i18n/vi-VN.js b/theme/v2board/assets/i18n/vi-VN.js similarity index 100% rename from public/theme/v2board/assets/i18n/vi-VN.js rename to theme/v2board/assets/i18n/vi-VN.js diff --git a/public/theme/v2board/assets/i18n/zh-CN.js b/theme/v2board/assets/i18n/zh-CN.js similarity index 100% rename from public/theme/v2board/assets/i18n/zh-CN.js rename to theme/v2board/assets/i18n/zh-CN.js diff --git a/public/theme/v2board/assets/i18n/zh-TW.js b/theme/v2board/assets/i18n/zh-TW.js similarity index 100% rename from public/theme/v2board/assets/i18n/zh-TW.js rename to theme/v2board/assets/i18n/zh-TW.js diff --git a/public/theme/v2board/assets/images/icon/Clash For Android.png b/theme/v2board/assets/images/icon/Clash For Android.png similarity index 100% rename from public/theme/v2board/assets/images/icon/Clash For Android.png rename to theme/v2board/assets/images/icon/Clash For Android.png diff --git a/public/theme/v2board/assets/images/icon/Clash For Windows.png b/theme/v2board/assets/images/icon/Clash For Windows.png similarity index 100% rename from public/theme/v2board/assets/images/icon/Clash For Windows.png rename to theme/v2board/assets/images/icon/Clash For Windows.png diff --git a/public/theme/v2board/assets/images/icon/Clash Meta For Android.png b/theme/v2board/assets/images/icon/Clash Meta For Android.png similarity index 100% rename from public/theme/v2board/assets/images/icon/Clash Meta For Android.png rename to theme/v2board/assets/images/icon/Clash Meta For Android.png diff --git a/public/theme/v2board/assets/images/icon/Clash Verge.png b/theme/v2board/assets/images/icon/Clash Verge.png similarity index 100% rename from public/theme/v2board/assets/images/icon/Clash Verge.png rename to theme/v2board/assets/images/icon/Clash Verge.png diff --git a/public/theme/v2board/assets/images/icon/ClashX.png b/theme/v2board/assets/images/icon/ClashX.png similarity index 100% rename from public/theme/v2board/assets/images/icon/ClashX.png rename to theme/v2board/assets/images/icon/ClashX.png diff --git a/public/theme/v2board/assets/images/icon/Clashx Meta.png b/theme/v2board/assets/images/icon/Clashx Meta.png similarity index 100% rename from public/theme/v2board/assets/images/icon/Clashx Meta.png rename to theme/v2board/assets/images/icon/Clashx Meta.png diff --git a/public/theme/v2board/assets/images/icon/Hysteria2.svg b/theme/v2board/assets/images/icon/Hysteria2.svg similarity index 100% rename from public/theme/v2board/assets/images/icon/Hysteria2.svg rename to theme/v2board/assets/images/icon/Hysteria2.svg diff --git a/public/theme/v2board/assets/images/icon/NekoBox.png b/theme/v2board/assets/images/icon/NekoBox.png similarity index 100% rename from public/theme/v2board/assets/images/icon/NekoBox.png rename to theme/v2board/assets/images/icon/NekoBox.png diff --git a/public/theme/v2board/assets/images/icon/QuantumultX.png b/theme/v2board/assets/images/icon/QuantumultX.png similarity index 100% rename from public/theme/v2board/assets/images/icon/QuantumultX.png rename to theme/v2board/assets/images/icon/QuantumultX.png diff --git a/public/theme/v2board/assets/images/icon/Shadowrocket.png b/theme/v2board/assets/images/icon/Shadowrocket.png similarity index 100% rename from public/theme/v2board/assets/images/icon/Shadowrocket.png rename to theme/v2board/assets/images/icon/Shadowrocket.png diff --git a/public/theme/v2board/assets/images/icon/Stash.png b/theme/v2board/assets/images/icon/Stash.png similarity index 100% rename from public/theme/v2board/assets/images/icon/Stash.png rename to theme/v2board/assets/images/icon/Stash.png diff --git a/public/theme/v2board/assets/images/icon/Surfboard.png b/theme/v2board/assets/images/icon/Surfboard.png similarity index 100% rename from public/theme/v2board/assets/images/icon/Surfboard.png rename to theme/v2board/assets/images/icon/Surfboard.png diff --git a/public/theme/v2board/assets/images/icon/Surge.png b/theme/v2board/assets/images/icon/Surge.png similarity index 100% rename from public/theme/v2board/assets/images/icon/Surge.png rename to theme/v2board/assets/images/icon/Surge.png diff --git a/public/theme/v2board/assets/images/icon/Vless.png b/theme/v2board/assets/images/icon/Vless.png similarity index 100% rename from public/theme/v2board/assets/images/icon/Vless.png rename to theme/v2board/assets/images/icon/Vless.png diff --git a/public/assets/admin/static/Simple-Line-Icons.0cb0b9c5.woff2 b/theme/v2board/assets/static/Simple-Line-Icons.0cb0b9c5.woff2 similarity index 100% rename from public/assets/admin/static/Simple-Line-Icons.0cb0b9c5.woff2 rename to theme/v2board/assets/static/Simple-Line-Icons.0cb0b9c5.woff2 diff --git a/public/assets/admin/static/Simple-Line-Icons.78f07e2c.woff b/theme/v2board/assets/static/Simple-Line-Icons.78f07e2c.woff similarity index 100% rename from public/assets/admin/static/Simple-Line-Icons.78f07e2c.woff rename to theme/v2board/assets/static/Simple-Line-Icons.78f07e2c.woff diff --git a/public/assets/admin/static/Simple-Line-Icons.d2285965.ttf b/theme/v2board/assets/static/Simple-Line-Icons.d2285965.ttf similarity index 100% rename from public/assets/admin/static/Simple-Line-Icons.d2285965.ttf rename to theme/v2board/assets/static/Simple-Line-Icons.d2285965.ttf diff --git a/public/assets/admin/static/Simple-Line-Icons.ed67e5a3.svg b/theme/v2board/assets/static/Simple-Line-Icons.ed67e5a3.svg similarity index 100% rename from public/assets/admin/static/Simple-Line-Icons.ed67e5a3.svg rename to theme/v2board/assets/static/Simple-Line-Icons.ed67e5a3.svg diff --git a/public/assets/admin/static/Simple-Line-Icons.f33df365.eot b/theme/v2board/assets/static/Simple-Line-Icons.f33df365.eot similarity index 100% rename from public/assets/admin/static/Simple-Line-Icons.f33df365.eot rename to theme/v2board/assets/static/Simple-Line-Icons.f33df365.eot diff --git a/public/assets/admin/static/fa-brands-400.14c590d1.eot b/theme/v2board/assets/static/fa-brands-400.14c590d1.eot similarity index 100% rename from public/assets/admin/static/fa-brands-400.14c590d1.eot rename to theme/v2board/assets/static/fa-brands-400.14c590d1.eot diff --git a/public/assets/admin/static/fa-brands-400.3e1b2a65.woff2 b/theme/v2board/assets/static/fa-brands-400.3e1b2a65.woff2 similarity index 100% rename from public/assets/admin/static/fa-brands-400.3e1b2a65.woff2 rename to theme/v2board/assets/static/fa-brands-400.3e1b2a65.woff2 diff --git a/public/assets/admin/static/fa-brands-400.5e8aa9ea.ttf b/theme/v2board/assets/static/fa-brands-400.5e8aa9ea.ttf similarity index 100% rename from public/assets/admin/static/fa-brands-400.5e8aa9ea.ttf rename to theme/v2board/assets/static/fa-brands-400.5e8aa9ea.ttf diff --git a/public/assets/admin/static/fa-brands-400.91fd86e5.svg b/theme/v2board/assets/static/fa-brands-400.91fd86e5.svg similarity index 100% rename from public/assets/admin/static/fa-brands-400.91fd86e5.svg rename to theme/v2board/assets/static/fa-brands-400.91fd86e5.svg diff --git a/public/assets/admin/static/fa-brands-400.df02c782.woff b/theme/v2board/assets/static/fa-brands-400.df02c782.woff similarity index 100% rename from public/assets/admin/static/fa-brands-400.df02c782.woff rename to theme/v2board/assets/static/fa-brands-400.df02c782.woff diff --git a/public/assets/admin/static/fa-regular-400.285a9d2a.ttf b/theme/v2board/assets/static/fa-regular-400.285a9d2a.ttf similarity index 100% rename from public/assets/admin/static/fa-regular-400.285a9d2a.ttf rename to theme/v2board/assets/static/fa-regular-400.285a9d2a.ttf diff --git a/public/assets/admin/static/fa-regular-400.5623624d.woff b/theme/v2board/assets/static/fa-regular-400.5623624d.woff similarity index 100% rename from public/assets/admin/static/fa-regular-400.5623624d.woff rename to theme/v2board/assets/static/fa-regular-400.5623624d.woff diff --git a/public/assets/admin/static/fa-regular-400.6b5ed912.svg b/theme/v2board/assets/static/fa-regular-400.6b5ed912.svg similarity index 100% rename from public/assets/admin/static/fa-regular-400.6b5ed912.svg rename to theme/v2board/assets/static/fa-regular-400.6b5ed912.svg diff --git a/public/assets/admin/static/fa-regular-400.aa66d0e0.eot b/theme/v2board/assets/static/fa-regular-400.aa66d0e0.eot similarity index 100% rename from public/assets/admin/static/fa-regular-400.aa66d0e0.eot rename to theme/v2board/assets/static/fa-regular-400.aa66d0e0.eot diff --git a/public/assets/admin/static/fa-regular-400.ac21cac3.woff2 b/theme/v2board/assets/static/fa-regular-400.ac21cac3.woff2 similarity index 100% rename from public/assets/admin/static/fa-regular-400.ac21cac3.woff2 rename to theme/v2board/assets/static/fa-regular-400.ac21cac3.woff2 diff --git a/public/assets/admin/static/fa-solid-900.3ded831d.woff b/theme/v2board/assets/static/fa-solid-900.3ded831d.woff similarity index 100% rename from public/assets/admin/static/fa-solid-900.3ded831d.woff rename to theme/v2board/assets/static/fa-solid-900.3ded831d.woff diff --git a/public/assets/admin/static/fa-solid-900.42e1fbd2.eot b/theme/v2board/assets/static/fa-solid-900.42e1fbd2.eot similarity index 100% rename from public/assets/admin/static/fa-solid-900.42e1fbd2.eot rename to theme/v2board/assets/static/fa-solid-900.42e1fbd2.eot diff --git a/public/assets/admin/static/fa-solid-900.649208f1.svg b/theme/v2board/assets/static/fa-solid-900.649208f1.svg similarity index 100% rename from public/assets/admin/static/fa-solid-900.649208f1.svg rename to theme/v2board/assets/static/fa-solid-900.649208f1.svg diff --git a/public/assets/admin/static/fa-solid-900.896e20e2.ttf b/theme/v2board/assets/static/fa-solid-900.896e20e2.ttf similarity index 100% rename from public/assets/admin/static/fa-solid-900.896e20e2.ttf rename to theme/v2board/assets/static/fa-solid-900.896e20e2.ttf diff --git a/public/assets/admin/static/fa-solid-900.d6d8d5da.woff2 b/theme/v2board/assets/static/fa-solid-900.d6d8d5da.woff2 similarity index 100% rename from public/assets/admin/static/fa-solid-900.d6d8d5da.woff2 rename to theme/v2board/assets/static/fa-solid-900.d6d8d5da.woff2 diff --git a/public/theme/v2board/assets/theme/black.css b/theme/v2board/assets/theme/black.css similarity index 100% rename from public/theme/v2board/assets/theme/black.css rename to theme/v2board/assets/theme/black.css diff --git a/public/theme/v2board/assets/theme/darkblue.css b/theme/v2board/assets/theme/darkblue.css similarity index 100% rename from public/theme/v2board/assets/theme/darkblue.css rename to theme/v2board/assets/theme/darkblue.css diff --git a/public/theme/v2board/assets/theme/default.css b/theme/v2board/assets/theme/default.css similarity index 100% rename from public/theme/v2board/assets/theme/default.css rename to theme/v2board/assets/theme/default.css diff --git a/public/assets/admin/theme/green.css b/theme/v2board/assets/theme/green.css similarity index 100% rename from public/assets/admin/theme/green.css rename to theme/v2board/assets/theme/green.css diff --git a/public/theme/v2board/assets/umi.css b/theme/v2board/assets/umi.css similarity index 100% rename from public/theme/v2board/assets/umi.css rename to theme/v2board/assets/umi.css diff --git a/public/theme/v2board/assets/umi.js b/theme/v2board/assets/umi.js similarity index 100% rename from public/theme/v2board/assets/umi.js rename to theme/v2board/assets/umi.js diff --git a/public/theme/v2board/assets/vendors.async.js b/theme/v2board/assets/vendors.async.js similarity index 100% rename from public/theme/v2board/assets/vendors.async.js rename to theme/v2board/assets/vendors.async.js diff --git a/public/theme/v2board/config.json b/theme/v2board/config.json similarity index 100% rename from public/theme/v2board/config.json rename to theme/v2board/config.json diff --git a/public/theme/v2board/dashboard.blade.php b/theme/v2board/dashboard.blade.php old mode 100755 new mode 100644 similarity index 100% rename from public/theme/v2board/dashboard.blade.php rename to theme/v2board/dashboard.blade.php diff --git a/update.sh b/update.sh index 02e7769..d4a6d0b 100755 --- a/update.sh +++ b/update.sh @@ -11,12 +11,12 @@ if ! command -v git &> /dev/null; then fi git config --global --add safe.directory $(pwd) -git fetch --all && git reset --hard origin/dev && git pull origin dev +git fetch --all && git reset --hard origin/master && git pull origin master rm -rf composer.lock composer.phar wget https://github.com/composer/composer/releases/latest/download/composer.phar -O composer.phar php composer.phar update -vvv php artisan xboard:update -if [ -f "/etc/init.d/bt" ] || [ "$docker" ]; then +if [ -f "/etc/init.d/bt" ] || [ -f "/.dockerenv" ]; then chown -R www:www $(pwd); fi diff --git a/update_dev.sh b/update_dev.sh deleted file mode 100755 index 2a22baa..0000000 --- a/update_dev.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -if [ ! -d ".git" ]; then - echo "Please deploy using Git." - exit 1 -fi - -if ! command -v git &> /dev/null; then - echo "Git is not installed! Please install git and try again." - exit 1 -fi - -git config --global --add safe.directory $(pwd) -git fetch --all && git reset --hard origin/dev && git pull origin dev -git checkout dev -rm -rf composer.lock composer.phar -wget https://github.com/composer/composer/releases/latest/download/composer.phar -O composer.phar -php composer.phar update -vvv -php artisan xboard:update - -if [ -f "/etc/init.d/bt" ] || [ "$docker" ]; then - chown -R www:www $(pwd); -fi diff --git a/webman.php b/webman.php deleted file mode 100644 index 4c7e28c..0000000 --- a/webman.php +++ /dev/null @@ -1,79 +0,0 @@ -count = getenv('WEBMAN_WORKERS') ?: max(swoole_cpu_num(), 2); -$http_worker->name = 'Xboard'; -$http_worker->onWorkerStart = static function () { - require __DIR__ . '/start.php'; -}; -$http_worker->onMessage = static function ($connection, $request) { - static $request_count; - $connection->send(run()); - if (++$request_count > 10000) { - Worker::stopAll(); - } -}; - -if (extension_loaded('inotify')) { - $worker = new Worker(); - $worker->name = 'FileMonitor'; - $worker->reloadable = false; - $monitor_dirs = ['app', 'bootstrap', 'config', 'resources', 'routes', 'public', '.env']; - $monitor_files = array(); - - // 进程启动后创建inotify监控句柄 - $worker->onWorkerStart = function ($worker) { - if (!extension_loaded('inotify')) { - echo "FileMonitor : Please install inotify extension.\n"; - return; - } - global $monitor_dirs, $monitor_files; - $worker->inotifyFd = inotify_init(); - stream_set_blocking($worker->inotifyFd, 0); - - foreach ($monitor_dirs as $monitor_dir) { - $monitor_realpath = realpath(__DIR__ . "/{$monitor_dir}"); - addInofity($monitor_realpath, $worker->inotifyFd); - if (is_file($monitor_realpath)) - continue; - $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($monitor_realpath, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST); - foreach ($iterator as $file) { - if ($file->isDir()) { - $realpath = realpath($file); - addInofity($realpath, $worker->inotifyFd); - } - } - } - Worker::$globalEvent->add($worker->inotifyFd, EventInterface::EV_READ, 'check_files_change'); - }; -} - -function addInofity(string $realpath, $fd) -{ - global $monitor_files; - $wd = inotify_add_watch($fd, $realpath, IN_MODIFY | IN_CREATE | IN_DELETE); - $monitor_files[$wd] = $realpath; - -} -function check_files_change($inotify_fd) -{ - global $monitor_files; - $events = inotify_read($inotify_fd); - if ($events) { - foreach ($events as $ev) { - $file = $monitor_files[$ev['wd']]; - echo $file . "/{$ev['name']} update and reload\n"; - } - posix_kill(posix_getppid(), SIGUSR1); - } -} -Worker::runAll();